Suurilla laitteisto- tai ohjelmistojärjestelmillä, kuten avaruusaluksella, on monimutkaiset vaatimukset. Vaatimukset ovat määrittely siitä, mitä pitäisi rakentaa, miten järjestelmän pitäisi toimia, tai rajoitukset järjestelmän rakentamisprosessille. Vaatimustekniikka on hyvien suunnittelukäytäntöjen käyttö vaatimusten ymmärtämiseksi ennen järjestelmän rakentamista. Se on tärkeä, koska järjestelmän sidosryhmät eivät itse tiedä tarpeistaan ja heillä on erilaisia tarpeita.
Monimutkaisessa järjestelmässä voi olla monia sidosryhmiä, kuten ihmiset, jotka ottavat järjestelmän käyttöön, käyttäjät, jotka käyttävät yhtä tai useampaa järjestelmän osaa, ja ihmiset, jotka hyötyvät järjestelmästä. On myös mahdollista, että sidosryhmiin kuuluu yleisön jäseniä, joihin järjestelmän tietyt erityispiirteet vaikuttavat. Sidosryhmillä on omat erityistarpeensa. Toisaalta järjestelmän kehittäjät voivat olla teknisesti kykeneviä, mutta eivät ehkä täysin ymmärrä sidosryhmien näkemystä. Vaatimustekniikka on olennainen ominaisuus, joka yhdistää nämä puolet.
Muodollisesti vaatimusten suunnittelu on jaettu vaatimusten kehittämiseen ja vaatimusten hallintaan. Vaatimusten kehittäminen koostuu herättämisestä, analysoinnista, määrittelystä ja todentamisesta. Vaatimustenhallinta on koko vaatimusprosessin valvonta, erityisesti vaatimusten muutosten käsittely. Jotkut harjoittajat sitä vastoin kutsuvat koko toimintaa vaatimusanalyysiksi.
Sidosryhmien vaatimusten esittäminen tulee tarpeelliseksi, koska sidosryhmät eivät useinkaan tarkasti määrittele tarpeitaan eivätkä ymmärrä uuden järjestelmän seurauksia. Sidosryhmät eivät ehkä avaudu, koska he voivat pelätä vaikutusta nykyiseen työhönsä. Elicitaatio on siis varovainen ja mahdollisesti pitkä prosessi, jossa tarvitaan empatiaa ja hienovaraista psykologiaa. On oltava varovainen, että eri sidosryhmien ja kehittäjien väliset kulttuurierot poistetaan.
Vaatimusten esittämiseen käytetään useita tekniikoita. Vaatimukset voitaisiin saada yksilöllisten haastattelujen, ryhmätapaamisten ja ihmisten tehtävien tarkkailun kautta. Tekniikoita, jotka voivat tuoda esiin vaatimuksia, ovat kohderyhmät, priorisoitujen luetteloiden luominen, prototyyppien laatiminen ja vertailu muihin käytössä oleviin järjestelmiin. Esitettävät vaatimukset sisältävät järjestelmän liiketoimintatarpeet, käyttäjien liiketoimintaprosessit, kun he käyttävät järjestelmää, sekä järjestelmän toiminnalliset ominaisuudet. Lisäksi on otettava huomioon ei-toiminnalliset vaatimukset, kuten vasteaika, järjestelmän saatavuus ja helppokäyttöisyys.
Vaatimustekniikan analyysivaihe muodostaa matalan tason vaatimukset, jotka täyttävät alkuperäiset korkean tason vaatimukset. Tämä sisältää käsitteellisten mallien ja prototyyppien luomisen vaatimusten täydellisyyden varmistamiseksi. Ristiriidat eri sidosryhmien tarpeisiin löytyvät useammin malleista ja prototyypeistä kuin pelkästä vaatimusten luettelosta. Analyytikkojen on lisättävä vaatimuksiin halutut järjestelmän ominaisuudet, kuten turvallisuus, joustavuus ja ylläpidettävyys.
Vaatimukset on määritelty asiakirjassa kaikkien sidosryhmien ymmärtämisen helpottamiseksi. Ohjelmistokentässä asiakirjaa kutsutaan SRS: ksi (Software Requirements Specification). Tärkeimmät sidosryhmät tarkistavat vaatimukset. Tämä tapahtuu pääasiassa esitysten ja erittelyasiakirjan kautta, mutta joskus myös vaatimuksia vastaavilla testitapauksilla.
Vaatimustekniikka on ensisijaisesti viestintää, toimintaa eikä teknistä. Se vaatii monialaista osaamista. Vaatimustekniikka auttaa sidosryhmiä ja kehittäjiä ratkaisemaan konfliktit ja yhdistää heidät tavoitteisiinsa. Tämä johtaa vankkaan järjestelmään.