Współczesne metody zapewniania jakości oprogramowania
Nagroda II stopnia w Konkursie PTI – Informatyczna Książka Roku 2021.
Współczesne metody zapewniania jakości oprogramowania. Od klasyki do zwinności to książka dla tych, którzy chcą się dowiedzieć, w jaki sposób można zapewnić jakość oprogramowania. Publikacja pokazuje, że jest ona ściśle związana z metodami wytwarzania oraz przedstawia praktyki, jakie trzeba stosować, aby uzyskać wymaganą jakość oprogramowania.
Dlatego jeśli:
- jesteś początkującym programistą i myślisz, że jakość to nie twój problem,
- masz już trochę doświadczenia i denerwuje cię dług techniczny,
- zostałeś team leaderem i martwisz się, że w twoim zespole coś nie gra,
- jesteś właścicielem produktu i musisz się domyślać, o co chodzi klientom,
- jesteś szefem firmy IT i nie wiesz, dlaczego praca informatyków tyle kosztuje,
to powinieneś sięgnąć po tę książkę.
Publikacja zawiera zebraną przez autora – dr inż. Jarosława Kuchtę wiedzę na temat jakości oprogramowania, metod jej pomiaru, sposobów zapewnienia, systemów zarządzania jakością, rozwiązań projektowych wpływających na jakość, odpowiedniego stosowania narzędzi programowania, testowania i utrzymania oprogramowania. Książka Współczesne metody zapewniania jakości oprogramowania. Od klasyki do zwinności pokazuje jakość oprogramowania w całym procesie jego wytwarzania.
Na początku książki można znaleźć dużo przykładów wpływu kiepskiej jakości oprogramowania na życie przeciętnego człowieka. Kolejne rozdziały pokazują:
- podstawowe pojęcia i problemy jakości,
- jakość w ujęciu klasycznym,
- metryki i pomiary jakości zdefiniowane m.in. w ISO/IEC 9126,
- dokumentację projektową i normy jakości procesu wytwarzania oprogramowania m.in. ISO, PMBOK, PRINCE2 czy Six Sigma,
- jakość oprogramowania w podejściu zwinnym, w tym metodyki Agile, Scrum i programowanie ekstremalne (XP).
- Kategorie:
- Język wydania: polski
- ISBN: 978-83-01-21401-2
- ISBN druku: 978-83-01-21293-3
- Liczba stron: 586
-
Sposób dostarczenia produktu elektronicznegoProdukty elektroniczne takie jak Ebooki czy Audiobooki są udostępniane online po opłaceniu zamówienia kartą lub przelewem na stronie Twoje konto > Biblioteka.Pliki można pobrać zazwyczaj w ciągu kilku-kilkunastu minut po uzyskaniu poprawnej autoryzacji płatności, choć w przypadku niektórych publikacji elektronicznych czas oczekiwania może być nieco dłuższy.Sprzedaż terytorialna towarów elektronicznych jest regulowana wyłącznie ograniczeniami terytorialnymi licencji konkretnych produktów.
-
Ważne informacje techniczneMinimalne wymagania sprzętowe:procesor: architektura x86 1GHz lub odpowiedniki w pozostałych architekturachPamięć operacyjna: 512MBMonitor i karta graficzna: zgodny ze standardem XGA, minimalna rozdzielczość 1024x768 16bitDysk twardy: dowolny obsługujący system operacyjny z minimalnie 100MB wolnego miejscaMysz lub inny manipulator + klawiaturaKarta sieciowa/modem: umożliwiająca dostęp do sieci Internet z prędkością 512kb/sMinimalne wymagania oprogramowania:System Operacyjny: System MS Windows 95 i wyżej, Linux z X.ORG, MacOS 9 lub wyżej, najnowsze systemy mobilne: Android, iPhone, SymbianOS, Windows MobilePrzeglądarka internetowa: Internet Explorer 7 lub wyżej, Opera 9 i wyżej, FireFox 2 i wyżej, Chrome 1.0 i wyżej, Safari 5Przeglądarka z obsługą ciasteczek i włączoną obsługą JavaScriptZalecany plugin Flash Player w wersji 10.0 lub wyżej.Informacja o formatach plików:
- PDF - format polecany do czytania na laptopach oraz komputerach stacjonarnych.
- EPUB - format pliku, który umożliwia czytanie książek elektronicznych na urządzeniach z mniejszymi ekranami (np. e-czytnik lub smartfon), dając możliwość dopasowania tekstu do wielkości urządzenia i preferencji użytkownika.
- MOBI - format zapisu firmy Mobipocket, który można pobrać na dowolne urządzenie elektroniczne (np.e-czytnik Kindle) z zainstalowanym programem (np. MobiPocket Reader) pozwalającym czytać pliki MOBI.
- Audiobooki w formacie MP3 - format pliku, przeznaczony do odsłuchu nagrań audio.
Rodzaje zabezpieczeń plików:- Watermark - (znak wodny) to zaszyfrowana informacja o użytkowniku, który zakupił produkt. Dzięki temu łatwo jest zidentyfikować użytkownika, który rozpowszechnił produkt w sposób niezgodny z prawem. Ten rodzaj zabezpieczenia jest zdecydowanie bardziej przyjazny dla użytkownika, ponieważ aby otworzyć książkę zabezpieczoną Watermarkiem nie jest potrzebne konto Adobe ID oraz autoryzacja urządzenia.
- Brak zabezpieczenia - część oferowanych w naszym sklepie plików nie posiada zabezpieczeń. Zazwyczaj tego typu pliki można pobierać ograniczoną ilość razy, określaną przez dostawcę publikacji elektronicznych. W przypadku zbyt dużej ilości pobrań plików na stronie WWW pojawia się stosowny komunikat.
Dla kogo jest ta książka? XIII Od autora XV Przewodnik po książce XXI CZĘŚĆ I. ZNACZENIE JAKOŚCI OPROGRAMOWANIA 1 1. Wyjaśnienia wstępne 3 1.1. Jakość oprogramowania czy jakość systemów? 3 1.2. Od pomyłki do katastrofy 5 2. Znaczenie jakości systemów informatycznych 8 2.1. Jakość systemów informatycznych w naszym życiu 8 2.1.1. Systemy bankowe i e-commerce 9 2.1.2. Systemy medyczne 14 2.1.3. Systemy zarządzania ruchem 16 2.1.4. Systemy pokładowe w motoryzacji 18 2.1.5. Sprzęt AGD 20 2.2. Nagłośnione skutki błędów oprogramowania 21 2.2.1. Rakiety kosmiczne zbaczają z kursu 21 2.2.2. Fałszywe alarmy nuklearne 22 2.2.3. Przedawkowania przy terapii radiologicznej 22 2.2.4. Wirusy atakują 23 2.2.5. Znany procesor nie potrafi dzielić 25 2.2.6. Katastrofa sondy marsjańskiej 26 2.2.7. Problem roku 2000 26 2.2.8. Samoloty spadają z nieba 27 2.3. Skala problemu 30 2.3.1. Koszty błędów 30 2.3.2. Rozmiary oprogramowania 30 2.3.3. Średnia liczba defektów na tysiąc linii kodu 31 3. Studium przypadku – Therac-25 32 3.1. Geneza i budowa systemów Therac 32 3.1.1. Systemy Therac-25 jako wersja rozwojowa 32 3.1.2. Złożoność systemu 34 3.1.3. Tworzenie oprogramowania 35 3.1.4. Dopuszczenie do eksploatacji 36 3.2. Przebieg wypadków 37 3.3. Ustalenia powypadkowe 44 3.3.1. Główne przyczyny wypadków 44 3.3.2. Czynniki ryzyka 45 3.3.3. Wnioski 46 CZĘŚĆ II. PODSTAWOWE POJĘCIA I PROBLEMY JAKOŚCI 49 4. Definicje jakości oprogramowania 51 4.1. Definicje jakości oprogramowania według IEEE 52 4.2. Różne spojrzenia na jakość oprogramowania 55 5. Składowe jakości 57 5.1. Funkcjonalność 58 5.2. Wiarygodność 62 5.3. Wydajność 70 5.4. Elastyczność 72 5.5. Użyteczność 73 5.6. Łatwość pielęgnacji (utrzymania) 77 5.7. Inne atrybuty jakości 79 6. Drzewo jakości 85 6.1. Wagi atrybutów 86 6.2. Co to są metryki i miary jakości? 87 6.3. Skalowanie i normalizacja miar 88 6.4. Problemy pomiarów jakości 93 6.4.1. Problemy metod ankietowych 94 6.5. Problemy oceny jakości oprogramowania 96 7. Podstawy zarządzania ryzykiem 99 7.1. Definicja ryzyka 99 7.2. Minimalizacja ryzyka 105 CZĘŚĆ III. JAKOŚĆ W UJĘCIU KLASYCZNYM 113 8. Jakość w cyklu życia oprogramowania 115 8.1. Opłacalność jakości oprogramowania 116 8.2. Ewolucja podejścia do jakości w procesie wytwarzania 119 8.2.1. Ewolucja podejścia do jakości 120 8.2.2. Ewolucja metodyk wytwarzania 122 8.3. Zapewnienie jakości oprogramowania (SQA) 124 8.3.1. Formalne przeglądy techniczne 124 8.3.2. SQA w procesie wytwarzania oprogramowania 127 8.4. Zarządzanie jakością – tło historyczne 133 8.5. Kompleksowe zarządzanie jakością (TQM) 138 8.5.1. Co to jest TQM? 139 8.5.2. Zasady TQM 140 8.5.3. TQM a SQA 142 9. Klasyczne modele procesu programowego 143 9.1. Tradycyjny model kaskadowy 143 9.2. Model klasyczny z prototypowaniem 149 9.3. Model iteracyjno-inkrementacyjny 151 9.4. Model spiralny 152 9.5. Model V 155 9.6. Wielofazowy model RUP 158 9.7. Podsumowanie metodyk klasycznych 161 10. Wybrane klasyczne modele jakości 163 10.1. Model McCalla 163 10.2. Model Boehma 175 10.3. Model FURPS 176 10.4. Model Dromeya 179 10.5. Model ISO/IEC 9126 184 10.5.1. Modele jakości zewnętrznej i wewnętrznej 186 10.5.2. Model jakości użytkowej 202 10.5.3. Typy metryk w modelach ISO/IEC 9126 204 10.5.4. Zalety i wady ISO/IEC 9126 206 10.6. Model SQuaRE 207 CZĘŚĆ IV. POMIARY JAKOŚCI 211 11. Pomiary i metryki w inżynierii oprogramowania 213 11.1. Wiadomości podstawowe 214 11.2. Metryki zorientowane na rozmiar kodu 217 11.3. Metryki zorientowane na funkcjonalność 219 11.4. Metryki złożoności 222 11.4.1. Metryki Halsteada 222 11.4.2. Metryka złożoności cyklometrycznej McCabe’a 225 11.4.3. Metryki złożoności projektowej 227 11.5. Metryki grafów 235 11.6. Metryki obiektowe 240 11.6.1. Metryki Chidambera i Kemerera 240 11.6.2. Inne metryki obiektowe 242 12. Metryki i miary jakości produktu wg ISO/IEC 9126 244 12.1. Metryki jakości zewnętrznej 245 12.2. Metryki jakości wewnętrznej 260 12.3. Metryki jakości użytkowej 269 13. Alternatywne metody oceny jakości 272 13.1. Metoda Goal-Question-Metrics 272 13.2. Analytic Hierarchy Process (metoda Saaty’ego) 283 CZĘŚĆ V. DOKUMENTACJA I NORMY JAKOŚCI PROCESU 291 14. Dokumentacja projektowa 293 14.1. Znaczenie dokumentacji technicznej 294 14.2. Artefakty projektowe 297 14.3. Jakość dokumentacji 298 14.4. Zarządzanie zmianami dokumentacji 305 15. Dojrzałość procesu wytwarzania 307 15.1. Model dojrzałości SW-CMM 307 15.1.1. Poziomy dojrzałości CMM 308 15.1.2. Kluczowe obszary procesowe SW-CMM 310 15.2. Zintegrowany model dojrzałości CMMI 318 15.2.1. Reprezentacja stopniowana i reprezentacja ciągła 319 15.2.2. Dziedziny zastosowania i obszary procesowe CMMI 320 15.2.3. Cele i praktyki ogólne 322 15.2.4. Cele i praktyki specyficzne dla obszarów procesowych 324 16. Jakość według ISO 346 16.1. Standardy ISO inżynierii i jakości oprogramowania 348 16.1.1. Standardy związane z inżynierią oprogramowania 349 16.1.2. Standardy związane z zarządzaniem jakością 363 16.2. Standardy ISO 9000 366 16.2.1. Krótka historia rodziny standardów ISO 9000 368 16.2.2. System zarządzania jakością wg normy ISO 9001:1994 371 16.2.3. Księga jakości 376 16.2.4. Integracja modeli w ISO 9001:2000 378 16.2.5. Podejście procesowe w ISO 9001:2015 379 16.2.6. Kontrowersje związane z ISO 9001 385 16.3. ISO 90003, czyli ISO 9001 dla oprogramowania 386 16.4. Podsumowanie ISO dla wytwarzania oprogramowania 389 17. PRINCE2 391 17.1. Główne zasady PRINCE2 392 17.2. Tematy PRINCE2 396 17.3. Procesy 401 17.4. Dokumenty i produkty do zarządzania 404 17.4.1. Dokumenty i produkty poddawane zarządzaniu konfiguracją 404 17.4.2. Zapisy 409 17.4.3. Raporty 410 17.5. Jakość w PRINCE2 411 18. PMBOK 412 18.1. Procesy i obszary wiedzy 412 18.1.1. Zarządzanie integralnością projektu 413 18.1.2. Zarządzanie zakresem projektu 415 18.1.3. Zarządzanie czasem 416 18.1.4. Zarządzanie kosztami 420 18.1.5. Zarządzanie jakością 422 18.1.6. Zarządzanie zasobami ludzkimi 423 18.1.7. Zarządzanie komunikacją 425 18.1.8. Zarządzanie ryzykiem 426 18.1.9. Zarządzanie zaopatrzeniem 427 18.1.10. Zarządzanie zaangażowaniem interesariuszy 429 18.2. Systemowe podejście procesowe 430 18.3. PMBOK a jakość 431 19. Six Sigma 432 19.1. Six Sigma w procesie produkcji 432 19.1.1. Statystyka procesu produkcyjnego u podstaw Six Sigma 432 19.1.2. Cykl DMAIC 434 19.1.3. Cykl DMADV 435 19.2. Narzędzia Six Sigma 435 19.2.1. Karta projektu 436 19.2.2. Ocena ekonomiczna projektu 436 19.2.3. Drzewa CTQ 437 19.2.4. FMEA 438 19.2.5. QFD 439 19.2.6. Analiza Kano 440 19.2.7. Mapa procesu 441 19.2.8. Diagram powinowactwa 442 19.2.9. Analiza zdolności i wydajności procesu 443 19.2.10. Analiza Pareto 444 19.2.11. Diagramy przyczynowo-skutkowe (Ishikawy) 445 19.2.12. Analiza korelacji 446 19.2.13. Analiza regresji 447 19.2.14. Test t-Studenta 447 19.2.15. Analiza wariancji ANOVA 448 19.2.16. Miernik powtarzalności i odtwarzalności (Gauge R&R) 449 19.2.17. Analiza wartości uzyskanej 449 19.2.18. Analiza kosztów i korzyści 451 19.2.19. Wykresy kontrolne (Shewharta) 452 19.3. Six Sigma w wytwarzaniu oprogramowania 454 19.3.1. Dyskusja: kontrowersje i odpowiedzi 454 19.3.2. Praktyczne zastosowanie? 456 CZĘŚĆ VI. JAKOŚĆ W PODEJŚCIU ZWINNYM 459 20. Przegląd metodyk zwinnych 461 20.1. Agile Manifesto 462 20.2. Programowanie ekstremalne (XP) 463 20.3. Scrum 466 20.4. Inne podejścia zwinne i szczupłe 470 20.5. Silne i słabe strony metodyk zwinnych 474 21. Jakość według Agile 477 21.1. Co znaczy „jakość” w metodykach zwinnych 478 21.2. Czynniki powodzenia metodyk zwinnych 480 21.3. Wpływ praktyk zwinnych na jakość oprogramowania 481 21.3.1. Praktyki planowania i pozyskiwania wymagań 483 21.3.2. Praktyki zarządzania 490 21.3.3. Praktyki związane z projektowaniem 492 21.3.4. Praktyki związane z kodowaniem i integracją 495 21.3.5. Praktyki związane z testowaniem 496 21.4. Czy Agile może zapewnić jakość oprogramowania? 499 21.4.1. Ograniczenia stosowania metodyk zwinnych 503 21.4.2. Agile a CMM/CMMI 505 21.4.3. Agile w dużych organizacjach 505 21.4.4. Zaawansowane metryki zwinne 507 21.4.5. Woń psującego się oprogramowania 509 21.5. Podsumowanie i dyskusja o metodykach Agile 510 22. Integracja klasycznych i zwinnych metod zapewnienia jakości 515 22.1. Zwiększanie zwinności metod klasycznych 516 22.2. Disciplined Agile Development 518 22.3. Stan obecny i perspektywy 520 Podsumowanie 523 Bibliografia 527 Słownik skrótów 540 Skorowidz 546