Inżynieria wymagań
Inżynieria wymagań ( RE ) to proces definiowania, dokumentowania i utrzymywania wymagań w procesie projektowania inżynierskiego . Jest to powszechna rola w inżynierii systemów i inżynierii oprogramowania .
Pierwsze użycie terminu inżynieria wymagań miało miejsce prawdopodobnie w 1964 roku w artykule konferencyjnym „Maintenance, Maintenanceability, and System Requirements Engineering”, ale wszedł on do powszechnego użytku dopiero pod koniec lat 90. XX wieku wraz z publikacją samouczka IEEE Computer Society w marcu 1997 i ustanowienie serii konferencji poświęconych inżynierii wymagań, która przekształciła się w Międzynarodową Konferencję Inżynierii Wymagań .
W modelu kaskadowym inżynieria wymagań jest przedstawiona jako pierwsza faza procesu rozwoju. Późniejsze metody rozwoju, w tym Rational Unified Process (RUP) dla oprogramowania, zakładają, że inżynieria wymagań trwa przez cały okres życia systemu.
Zarządzanie wymaganiami , które jest funkcją podrzędną praktyk inżynierii systemów, jest również indeksowane w podręcznikach Międzynarodowej Rady Inżynierii Systemów (INCOSE).
Zajęcia
Czynności związane z inżynierią wymagań różnią się znacznie w zależności od typu opracowywanego systemu i konkretnych praktyk organizacji. Mogą to być:
- Inicjowanie wymagań lub pozyskiwanie wymagań — spotykają się programiści i interesariusze; ci ostatni są pytani o ich potrzeby i pragnienia dotyczące oprogramowania.
- Analiza wymagań i negocjacje – Wymagania są identyfikowane (w tym nowe, jeśli rozwój jest iteracyjny) i rozwiązywane są konflikty z interesariuszami. Zarówno narzędzia pisane, jak i graficzne (te ostatnie są powszechnie stosowane w fazie projektowania, ale niektórzy uważają je za pomocne także na tym etapie) są z powodzeniem wykorzystywane jako pomoce. Przykłady pisemnych narzędzi analitycznych: przypadki użycia i historie użytkowników . Przykłady narzędzi graficznych: UML i LML .
- Modelowanie systemu — niektóre dziedziny inżynierii (lub określone sytuacje) wymagają całkowitego zaprojektowania i wymodelowania produktu przed rozpoczęciem jego budowy lub produkcji. Dlatego faza projektowania musi być wykonana z wyprzedzeniem. Na przykład plany budynku muszą zostać opracowane przed zatwierdzeniem i podpisaniem jakiejkolwiek umowy. Wiele pól może uzyskiwać modele systemu za pomocą języka modelowania cyklu życia , podczas gdy inne mogą używać języka UML . Uwaga: W wielu dziedzinach, takich jak inżynieria oprogramowania, większość działań związanych z modelowaniem jest klasyfikowana jako działania projektowe, a nie jako działania związane z inżynierią wymagań.
- Specyfikacja wymagań — wymagania są udokumentowane w formalnym artefaktie zwanym specyfikacją wymagań (RS), która stanie się oficjalna dopiero po walidacji. W razie potrzeby RS może zawierać zarówno informacje pisemne, jak i graficzne (modele). Przykład: Specyfikacja wymagań oprogramowania (SRS).
- Walidacja wymagań – Sprawdzenie, czy udokumentowane wymagania i modele są spójne i spełniają potrzeby interesariuszy. Tylko wtedy, gdy ostateczny projekt przejdzie proces walidacji, RS staje się oficjalny.
- Zarządzanie wymaganiami – Zarządzanie wszystkimi działaniami związanymi z wymaganiami od momentu powstania, nadzór nad rozwojem systemu, a nawet po oddaniu do użytku (np. zmiany, rozszerzenia itp.)
Są one czasami przedstawiane jako etapy chronologiczne, chociaż w praktyce te działania są w znacznym stopniu przeplatane.
Wykazano, że inżynieria wymagań wyraźnie przyczynia się do sukcesów projektów oprogramowania.
Problemy
W jednym ograniczonym badaniu przeprowadzonym w Niemczech przedstawiono możliwe problemy we wdrażaniu inżynierii wymagań i zapytano respondentów, czy zgadzają się, że są to rzeczywiste problemy. Wyniki nie zostały przedstawione jako dające się uogólnić, ale sugerowały, że głównymi dostrzeganymi problemami były niekompletne wymagania, przesuwające się cele i ograniczenia czasowe, przy czym mniejsze problemy to błędy w komunikacji, brak identyfikowalności, problemy terminologiczne i niejasne obowiązki.
Krytyka
Spekuluje się, że struktura problemu, kluczowy aspekt inżynierii wymagań, zmniejsza wydajność projektu. Niektóre badania sugerują, że jest możliwe, że w przypadku braków w procesie inżynierii wymagań skutkujących sytuacją, w której wymagania nie istnieją, wymagania oprogramowania mogą być tworzone niezależnie jako iluzja fałszywie przedstawiająca decyzje projektowe jako wymagania
Zobacz też
- Lista narzędzi inżynierii wymagań
- Analiza wymagań , inżynieria wymagań skoncentrowana na inżynierii oprogramowania.
- Grupa Specjalistów ds. Inżynierii Wymagań (RESG)
- Międzynarodowa Rada Inżynierii Wymagań (IREB)
- Międzynarodowa Rada Inżynierii Systemów (INCOSE)
- IEEE 12207 „Inżynieria systemów i oprogramowania - Procesy cyklu życia oprogramowania”
- TOGAF (Rozdział 17)
- Koncepcja operacji (ConOps)
- Zarządzanie operacjami
- Wymagania Systemowe
- Specyfikacje dotyczące wymagań oprogramowania
- Ciało wiedzy o inżynierii oprogramowania (SWEBOK)
- Specyfikacja projektu
- Specyfikacja (norma techniczna)
- Specyfikacja formalna
- Jakość oprogramowania
- Zarządzanie jakością
- Zarządzanie zakresem
Linki zewnętrzne
- 29148-2011 - Inżynieria systemów i oprogramowania — Procesy cyklu życia — Inżynieria wymagań . ISO/Iec/IEEE 29148:2011(E) . 2011. s. 1–94. doi : 10.1109/IEEEESTD.2011.6146379 . ISBN 978-0-7381-6591-2 . („Niniejszy standard zastępuje IEEE 830–1998, IEEE 1233–1998, IEEE 1362-1998 - http://standards.ieee.org/findstds/standard/29148-2011.html ")
- Ciało wiedzy o inżynierii systemów
- Podręcznik zarządzania inżynierią wymagań autorstwa FAA
- Międzynarodowa Rada Inżynierii Wymagań (IREB)
- IBM Rational Resource Library firmy IEEE Spectrum