Opis
W ostatnich latach rośnie zainteresowanie dziedziną inżynierii wymagań i zagadnień z nią bezpośrednio związanych, takich jak modelowanie biznesowe czy zarządzanie projektem. Istniejące książki i publikacje z reguły koncentrują się na wybranych aspektach czy narzędziach inżynierii wymagań, brak jest natomiast publikacji opisujących całościowo proces inżynierii wymagań, jego kontekst w wytwarzaniu produktu, czynności i ich praktyczne zastosowanie, możliwe ryzyka i sposoby ich uniknięcia. Książka skierowana jest do osób zawodowo zajmujących się analizą biznesową i systemową, odpowiedzialnych za jakość oprogramowania i systemów oraz architektów czy kierowników projektów, jak również osób pragnących zrozumieć wyzwania związane z inżynierią wymagań i jej wzajemne zależności z innymi procesami w ogólnym procesie wytwarzania produktu. Dowiesz się: - jak zarządzać wymaganiami w różnych projektach od formalnych po zwinne (ang. Agile), - jak przekładać język i potrzeby biznesu na ich realizację w systemach informatycznych, - jak łatwo weryfikować możliwość realizacji wymagań przed rozpoczęciem projektu, - jak zadawać pytania klientowi, aby uniknąć problemów po zakończeniu projektu. Powinieneś znać: - podstawowe zagadnienia inżynierii oprogramowania, - podstawowe zagadnienia zarządzania projektami informatycznymi, - realia pracy z klientami i wyzwania z tym związane. Spis treściOd Autorów 11 1. Wprowadzenie do inżynierii wymagań 13 1.1. Wyzwania związane z projektami IT 15 1.1.1. Cele i wizja 16 1.1.2. Złe planowanie projektu 16 1.1.3. Słaba komunikacja 19 1.1.4. Złe zarządzanie oczekiwaniami interesariuszy 20 1.1.5. Problemy z wymaganiami i ich zakresem 21 1.1.6. Brak umiejętności miękkich 22 1.1.7. Nierealistyczne oczekiwania 23 1.1.8. Brak zasobów ludzkich 24 1.1.9. Brak odpowiedniego wsparcia narzędziowego i metodycznego 26 1.2. Podstawowe definicje oraz klasyfikacje 27 1.2.1. Wymagania biznesowe 29 1.2.2. Wymagania interesariuszy 29 1.2.3. Wymagania rozwiązania 30 1.2.4. Wymagania przejścia 30 1.3. Atrybuty wymagań 31 1.4. Kryteria jakości wymagań 34 1.5. Wymagania w procesie zapewnienia jakości oprogramowania 36 1.6. Inżynieria wymagań oraz jej znaczenie w projekcie 37 1.7. Podstawowe role w procesie inżynierii wymagań 39 1.8. Koncepcja interesariuszy 40 1.9. Standardy oraz normy 42 1.9.1. ISO 9000 43 1.9.2. ISO/IEC 25000 – Software Engineering – Software Product Quality Requirements and Evaluation (SQuaRE) – Guide to SQuaRE 43 1.9.3. ISO 9241 43 1.9.4. ISO 31000: Risk Management 44 1.9.5. IEEE 610:1990: Standard Glossary of Software Engineering Terminology 44 1.9.6. IEEE 828-2012: Standard for Configuration Management in Systems and Software Engineering 44 1.9.7. IEEE 830-1998: Recommended Practice for Software Requirements Specifications . 44 1.9.8. IEEE 1233-1996: Guide for Developing of System Requirements Specifications 45 1.9.9. IEEE 1362-1998: Guide for Information Technology – System Definition – Concept of Operations (ConOps) Document 45 1.9.10. IEEE 29148-2011 – Systems and software engineering – Life cycle processes – Requirements engineering 45 1.9.11. IEEE 1028:2008 Standard for Software Reviews and Audits 45 1.9.12. SWEBOK: The Guide to the Software Engineering Body of Knowledge (ISO Technical Report 19759) 46 1.9.13. CMMI 46 1.9.14. BABOK – A Guide to the Business Analysis Body of Knowledge 46 1.10. Słowniki 47 2. Proces inżynierii wymagań 49 2.1. Definicja procesu 51 2.2. Inżynieria wymagań a analiza biznesowa 56 2.3. Zasady tworzenia udanych wymagań 58 2.3.1. Zrozum krytyczne cele najwyższego poziomu 59 2.3.2. Koncentruj się na dostarczeniu wartości 60 2.3.3. Zdefiniuj wymaganie jako „stan końcowy o wartości dla interesariusza” 60 2.3.4. Wyrażaj wymagania ilościowo 61 2.3.5. Nie mieszaj środków z celami 63 2.3.6. Skup się na pożądanej jakości systemu, nie tylko na jego funkcjonalności 65 2.3.7. Zapewnij „bogatą specyfikację” 65 2.3.8. Wykonuj kontrolę jakości specyfikacji 68 2.3.9. Uznaj, że wymagania się zmieniają 69 3. Inżynieria wymagań a inne procesy 71 3.1. Zarządzanie projektem 73 3.2. Zarządzanie ryzykiem 77 3.3. Testowanie i zapewnienie jakości 83 3.4. Wpływ wymagań na inne artefakty projektu 86 4. Inżynieria wymagań w procesach tworzenia oprogramowania 89 4.1. Model V jako przykład kaskadowego wytwarzania systemów 91 4.2. IBM Rational Unified Process 94 4.2.1. Zarządzania wymaganiami w IBM Rational Unified Process 96 4.2.2. Przepływ prac dla wymagań w IBM Rational Unified Process 97 4.2.3. Role i artefakty w IBM Rational Unified Process 99 4.3. Zwinne metodyki w zarządzaniu wymaganiami 100 4.4. Programowanie ekstremalne 102 4.5. Scrum (według Scrum.org) 107 4.5.1. Rejestr produktowy, czyli metoda na zorganizowanie wymagań 111 4.5.2. Wyzwania związane z migracją do Scrum 114 4.6. Disciplined Agile Delivery 115 4.7. Przypadek biznesowy 116 4.7.1. Informacja o firmie i sytuacja rynkowa 116 4.7.2. Potrzeba 116 4.7.3. Rozwiązanie 116 4.7.4. Zyski 117 5. Identyfikacja wymagań 119 5.1. Źródła w