Inżynieria Programowania zakres i organizacja przedmiotu

Slides:



Advertisements
Podobne prezentacje
TRADYCYJNE METODY PLANOWANIA I ORGANIZACJI PROCESÓW PRODUKCYJNYCH
Advertisements

Modelowanie przypadków użycia
Projektowanie w cyklu życia oprogramowania
Katedra Mikroelektroniki i Technik Informatycznych Politechniki Łódzkiej Inżynieria oprogramowania (IO) Wykłady: mgr inż. Sławomir Wróblewski Godziny przyjęć:
Złożoność procesu konstrukcji oprogramowania wymusza podział na etapy.
Role w zespole projektowym
Analiza ryzyka projektu
Budowa i integracja systemów informacyjnych
JAKOŚĆ & Metody Jej Pomiaru
1 / 47 WARSZAWA 2005 Przemysław Siekierko Stanisław Andraszek Rational Unified Process.
Propozycja metodyki nauczania inżynierii oprogramowania
SYSTEMY ZARZĄDZANIA - GENEZA
Wprowadzenie do inżynierii oprogramowania
Cykle życia oprogramowania
Inżynieria Oprogramowania dla Fizyków
Jakość systemów informacyjnych (aspekt eksploatacyjny)
Rational Unified Process
Podstawy Inżynierii Oprogramowania
Projektowanie i programowanie obiektowe II - Wykład IV
Proces tworzenia oprogramowania
Analiza i projektowanie Informacyjnych Systemów Zarządzania
Projektowanie - wprowadzenie
Dalsze elementy metodologii projektowania. Naszym celem jest...
Jakość i niezawodność systemu informacyjnego
Analiza, projekt i częściowa implementacja systemu obsługi kina
Wykład 4 Analiza i projektowanie obiektowe
Analiza i projektowanie systemów informacyjnych
Wykład 2 Cykl życia systemu informacyjnego
C.d. wstępu do tematyki RUP
Adam Gabryś , v1.1,
Certyfikacja Kompetencji Informatycznych w standardzie ECCC
Wykład 1 – część pierwsza
Zarządzanie projektami
Microsoft Solution Framework
Zarządzanie jakością projektu
Rational Unified Process Implementacja Aleksandra Reiman, gr. I-52.
Dr Karolina Muszyńska Na podst.:
SPECJALNOŚĆ: Oprogramowanie Systemowe
Unified Modeling Language - Zunifikowany Język Modelowania
Wprowadzenie do UML dr hab. inż. Kazimierz Subieta profesor PJWSTK.
Proces tworzenia oprogramowania
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
PROCESY W SYSTEMACH SYSTEMY I PROCESY.
Komputerowe wspomaganie projektowania
Waterfall model.
Zarządzanie zagrożeniami
ŁUKASZ DZWONKOWSKI Modele zwinne i ekstremalne. Podejście tradycyjne
Inżynieria oprogramowania
Proces tworzenia oprogramowania Proces tworzenia oprogramowania jest zbiorem czynności i związanych z nimi wyników, które prowadzą do powstania produktu.
Copyright © Jerzy R. Nawrocki Team Software Process Inżynieria oprogramowania II Wykład.
ZINTEGROWANE SYSTEMY ZARZĄDZANIA
Eksploatacja zasobów informatycznych przedsiębiorstwa.
Ergonomia procesów informacyjnych
Logical Framework Approach Metoda Macierzy Logicznej
Struktura systemu operacyjnego
Studia Podyplomowe IT w Biznesie Inżynieria Oprogramowania
Wykład 2 – Zintegrowane systemy informatyczne Michał Wilbrandt.
Budowa i integracja systemów informacyjnych Wykład 2 Cykl życiowy oprogramowania dr inż. Włodzimierz Dąbrowski P olsko J apońska W yższa S zkoła T echnik.
WYKŁAD dr Krystyna Kmiotek
Agile Programming a jakość
Inżynieria systemów informacyjnych
Zarządzanie projektami informatycznymi
Inżynieria Oprogramowania Laboratorium
IV Konferencja Naukowo-Techniczna "Nowoczesne technologie w projektowaniu, budowie.
Budowa i integracja systemów informacyjnych
Wykład 1 – część pierwsza
IEEE SPMP Autor : Tomasz Czwarno
Cykl życia oprogramowania
Zapis prezentacji:

Inżynieria Programowania zakres i organizacja przedmiotu w y k ł a d 1 Inżynieria Programowania zakres i organizacja przedmiotu

Konspekt bieżącego wykładu Wprowadzenie Dziedzina Inżynierii Programowania Oprogramowanie Proces tworzenia oprogramowania Pojęcie metodyki Modele cyklu życiowego oprogramowania Wykład inauguracyjny poświęcony jest przedstawieniu zakresu, jaki obejmuje Inżynieria Oprogramowania

mgr inż. Aleksander Pyszny. Wprowadzenie Warunki zaliczenia Sun.iinf.polsl.gliwice.pl/~jszedel/sds/IP-NSM Plan przedmiotu Procesy związane z tworzeniem oprogramowania Wymagania i specyfikacje oprogramowania Analiza i projektowanie Weryfikacja i atestowanie Kolokwium na ostatnim wykładzie, najprawdopodobniej bez możliwości korzystania z materiałów. Pozycje literatury znajdują się na kolejnych slajdach, decyzja o tym czy slajdy zostaną przekazane studentom zapadnie później. Przedmiot będzie prowadzony zgodnie z przebieg typowego projektu informatycznym realizowanego zgodnie z modelem kaskadowym. Materiały opracowane dla potrzeb wykładu z przedmiotu Inżynieria Oprogramowania są kompilacją informacji (tekstów i rysunków) zaczerpniętych ze źródeł wymienionych w liście literatury na następnym slajdzie. Autorami kompilacji są: dr inż. Jacek Szedel, dr inż. Michał Kolano, mgr inż. Aleksander Pyszny.

Wprowadzenie Literatura w języku polskim G. Booch, J. Rumbaugh, I. Jacobson: “UML. Przewodnik użytkownika”, WNT, Warszawa, 2001, 2002 J. Górski (red.): „Inżynieria oprogramowania w projekcie informatycznym”, wyd. II rozszerzone. Mikom, Warszawa 2000 A. Jaszkiewicz: "Inżynieria oprogramowania", Helion, 1997 P. Szmal (red.): "Inżynieria programowania. Metody i ćwiczenćia laboratoryjne", Skrypt uczelniany Politechniki Śląskiej nr 2120, Gliwice, 1998 R. L. Baber: "O oprogramowaniu inaczej", WNT, Warszawa 2001 M. Kliszewski: „Inżyżnieria oprogramowania obiektowego. Część 1: Analiza obiektowa”, WKT „RESPEKT”, Tomaszów Mazowiecki M. Kliszewski: „Inżynieria oprogramowania obiektowego. Część 2: Projekt obiektowy”, WKT „RESPEKT”, Tomaszów Mazowiecki Literatura: Choć większa część literatury dotyczy zagadnień związanych z modelowaniem obiektowym wykład objemować będzie również aspekty modelowania strukturalnego (diagramy DFD i ERD). Do zaliczenia wykładu przedmiotu, oprócz uczestniczenia w wykładach niezbędne jest przynajmniej przejrzenie pracy p.Jaszkiewicza. Jeśli chodzi o laboratorium to w pierwszym semestrze dotyczy ono bardziej aspektów związanych z testowaniem i uruchamianiem, a więc procesami związanymi z realizacją prostych projetków. W celu zaliczenia przedmiotu należy zapewnić sobie dostęp do skryptu pod redakcją p.dr.Szmala

Wprowadzenie Literatura w jęz. polskim (c.d) J. Martin, J.J. Odell: „Podstawy metod obiektowych”, WNT, Warszawa 1997 E. Yourdon: "Współczesna analiza strukturalna", WNT, Warszawa, 1997 P. Fuglewicz, K. Stąpor, A. Trojnar: "CASE dla ludzi", Lupus, Warszawa, 1996 R. Barker, C. Longman: "CASE MethodSM. Modelowanie funkcji i procesów", WNT, Warszawa, 1996 R. Barker: "CASE MethodSM. Modelowanie związków encji", WNT, Warszawa, 1996 P. Coad, E. Yourdon: "Analiza obiektowa", READ ME, Warszawa 1994 P. Coad, E. Yourdon: "Projektowanie obiektowe", READ ME, Warszawa 1994 P. Coad, J. Nicola: "Programowanie obiektowe", READ ME, Warszawa 1993 D. Van Tassel: "Praktyka programowania", wyd.2, WNT, Warszawa 1987

Wstęp (c.d) Literatura w jęz. angielskim I. Sommerville: "Software engineering", Addison-Wesley, Reading, New York 1998 R.S. Pressman: “Software engineering. A practitioner’s approach”, McGraw-Hill Companies, Inc., New York, Toronto 1997 G. Booch: "Object-oriented analysis and design (with applications)", Benjamin/­Cummings, Redwood City 1994 Większość wykładu opiera się na pracy Sommerville'a. W internecie znaleźć można zestaw slajdów zawierających wykład na podstawie książki.

Wprowadzenie Definicje Przedmiot zainteresowania Obszar zastosowania Na samym początku odpowiedzieć należy na pytanie -czy IP jest nauką i czy powinna być wykładana na uczelni technicznej ? -czym zajmuje się IP -gdzie można stosować metody IP

Inżynieria programowania Inżynieria programowania – to dyscyplina wiedzy inżynierskiej, której celem jest przyczynienie się do produkowania oprogramowania o dobrej jakości, oddawanego na czas, mieszczącego się w budżecie i spełniającego potrzeby użytkowników. Inżynieria programowania - to konsekwentne stosowanie ustalonych przez naukę i zweryfikowanych w praktyce zasad, metod i środków w pracach nad wytwarzaniem i konserwacją oprogramowania oraz ich organizowanie ze względu na cele ekonomiczno-techniczne. Inżynieria oprogramowania nie jest nauką, jest raczej wiedzą inżynierską.

Definicje literaturowe Inżynieria Programowania to: Zastosowanie systematycznego, zdyscyplinowanego, ilościowego podejścia do wykonywania, wykorzystywania i konserwowania oprogramowania [IEEE 93] Zastosowanie metod naukowych i matematycznych, dzięki czemu możliwości sprzętu komputerowego stają się użyteczne dla ludzi dzięki programom, procedurom i odpowiedniej dokumentacji [Boehm-S.E. Economics 1981] Wiedza techniczna dotycząca wszystkich faz cyklu życia oprogramowania, której celem jest uzyskanie wysokiej jakości produktu - oprogramowania [Jaszkiewicz-I.O. 1997] Trzy definicje z trzech różnych źródeł: pierwsza kładzie nacisk na metodykę, druga podkreśla aspekt naukowy, a trzecia jakość dostarczanego produktu

Przedmiot zainteresowań Różne aspekty tworzenia, rozwijania i eksploatacji oprogramowania Próba racjonalizacji postępowania w celu: uzyskania oprogramowania działającego niezawodnie i efektywnie na rzeczywistym sprzęcie i realizującego zadany cel ograniczenie wysiłku i czasu niezbędnego do uzyskania produktu o pożądanych cechach zapewnienie optymalnego wykorzystania zasobów zachowanie ustalonego budżetu i terminów projektowych

CASE Grupy aspektów Organizacja prac nad oprogramowaniem Metodyki Narzędzia Osoba prawna Osoba fizyczna Firma CASE

Obszar zainteresowania Duże systemy liczba wykonawców: od kilkudziesięciu do kilku tysięcy wyodrębniony zespół kierujący wykonawcy o różnych kwalifikacjach, zespół nie w pełni stabilny Małe systemy metody IP można z powodzeniem stosować w przedsięwzięciach o mniejszej skali, chociaż część problemów zanika (np. ze względu na uproszczoną organizację)

Oprogramowanie Czym jest oprogramowanie Rodzaje programów Charakterystyka oprogramowania Cechy oprogramowania

Czym jest oprogramowanie Oprogramowanie to: kod (program), realizujący określone funkcje struktury danych umożliwiające programowi odpowiednie przetwarzanie danych dokumentacja opisująca mechanizmy działania programu przedstawiająca sposoby korzystania z programu

Rodzaje programów Rodzaje programów: ogólne „z półki”, („off the shelf”) na zamówienie („bespoke”) Problemy i metody IP stosowane w obu przypadkach są identyczne. Główna różnica to źródło specyfikacji programu dla ogólnych tworzona wewnętrznie np. przez dział marketingu w systemach na zamówienie określana przez klienta składającego zamówienie

Charakterystyka oprogramowania Oprogramowanie jest tworzone, a nie produkowane w klasycznym sensie Oprogramowanie nie „zużywa się” z biegiem czasu, ale może się pogarszać na skutek wprowadzanych zmian Oprogramowanie w większości budowane jest od podstaw, rzadziej składane z gotowych elementów (ta sytuacja ulega stopniowej zmianie) cechy oprogramowania w porównaniu z innymi dziedzinami produkcji

Atrybuty oprogramowania Podstawowe atrybuty dobrego oprogramowania uniwersalność - możliwość dostosowania oprogramowania do zmieniających się potrzeb pewność - niezawodność i bezpieczeństwo, czyli zabezpieczenie przed oddziaływaniem otoczenia (security) oraz pewność pracy (safety) - awaria oprogramowanie nie powinna powodować fizycznych i ekonomicznych szkód wydajność - oprogramowanie nie powinno marnować zasobów systemowych wygoda w użyciu - oprogramowanie powinno mieć właściwy interfejs użytkownika i dokumentację

Kompromisy Koszt Wydajność Jeśli wymagany jest wysoki poziom jednego z atrybutów (np. wydajności) koszty wytworzenia oprogramowania rosną wykładniczo Koszt Tutaj dobrze pasuje następujący przykład: Załóżmy, że elektrownia Rybnik została zmodernizowana i stała się elektrownią atomową. Potrzebne jest oprogramowanie do sterowania prętami grafitowymi regulującymi przebieg reakcji rozszczepiania atomu i niedopuszczające do przegrzania reaktora. Odpowiednie oprogramowanie gotowa jest dostarczyć za 1600 zł + VAT firma JanSOFT z Klimaszowej. Pan Jan Kowalski, właściciel firmy, twierdzi że napisał w Visual Basicu nie jeden program i jak dotychczas nikt nie narzeka. Pytanie – dlaczego to jest śmieszne. Odpowiedź: gdy wymagany jest wysoki poziom jednego z atrybutów (tutaj pewność) nikt nie weźmie na poważnie takiej oferty. Wydajność

Inne atrybuty oprogramowania Poprawność określa, czy oprogramowanie wypełnia postawione przed nim zadania i czy jest wolne od błędów. Łatwość użycia jest miarą stopnia łatwości korzystania z oprogramowania. Czytelność pozwala na określenie wysiłku niezbędnego do zrozumienia oprogramowania. Ponowne użycie charakteryzuje przydatność oprogramowania, całego lub tylko pewnych fragmentów, do wykorzystania w innych produktach programistycznych. Stopień strukturalizacji (modularność) określa, jak łatwo oprogramowanie daje się podzielić na części o dobrze wyrażonej semantyce i dobrze wyspecyfikowanej wzajemnej interakcji.

Inne atrybuty oprogramowania Efektywność opisuje stopień wykorzystania zasobów sprzętowych i programowych stanowiących podstawę działania oprogramowania. Uniwersalność mówi o łatwości przenoszenia oprogramowania na inne platformy sprzętowe czy programowe. Skalowalność opisuje zachowanie się oprogramowania przy rozroście liczby użytkowników, objętości przetwarzanych danych, dołączaniu nowych składników, itp. Współdziałanie charakteryzuje zdolność oprogramowania do niezawodnej współpracy z innym niezależnie skonstruowanym oprogramowaniem.

Proces tworzenia oprogramowania Zasadnicze czynności Rozkład kosztów Mity o oprogramowaniu Klasyfikacja organizacji procesu tworzenia

Proces Proces to sekwencja czynności wykonanych w określonym celu. Pierwszy krok do sukcesu – dostrzec, że tworzenie oprogramowania nie jest „aktem” lecz procesem. początek koniec sekwencja czynności

Proces tworzenia oprogramowania Proces tworzenia oprogramowania jest to zestaw czynności, metod, praktyk i przekształceń, które stosują ludzie, by opracowywać (tworzyć) i konserwować oprogramowanie i inne pokrewne produkty z nim związane (np. plan przedsięwzięcia, projekt, kod, zestawy testów, podręczniki użytkownika). W miarę jak organizacja (firmy) dojrzewa, proces programowy staje się lepiej zdefiniowany.

Schemat prostego procesu Analiza, Projektowanie Implementacja Testowanie Uruchamianie Bardziej złożone podejścia zostaną omówione na kolejnych wykładach Implementacja zawiera elementy optymalizacji Optymalizacje (pamięciowa i czasowa ) oraz testowanie i uruchamianie będą przedmiotem laboratorium (warsztat programisty) To jest bardzo prosty model, jak widać nie uwzględnia fazy strategiczne, fazy definiowania wymagań, połączone jest analiza i projektowanie, do których zresztą nie można wrócić, jeśli zostanie popełniony jakiś błąd itp. Ten model odpowiada sposobowi, w jaki implementuje się oprogramowania na zajęciach PK1 do PK3 Eksploatacja Konserwacja

Zasadnicze czynności Specyfikacja oprogramowania – określenie funkcji systemu i jego ograniczeń) Tworzenie (development) Walidacja (atestowanie) – potwierdzenie zgodności ze specyfikacją Ewolucja – dostosowanie do zmieniających się potrzeb użytkownika

Organizacja procesu tworzenia Poziom organizacji procesu tworzenia (jak ewoluuje organizacja firmy) Wstępny Nieformalny Zarządzany Zdefiniowany Mierzony Optymalizowany

Organizacja procesu tworzenia (c.d.) Poziom wstępny anarchia w tworzeniu, brak standardów, procedur; jedynym efektem prac jest kod programu Poziom nieformalny wykonuje się takie czynności, jak projektowanie, testowanie, ale bez ich planowania i monitorowania, ich jakość zależy od solidności wykonawcy Poziom zarządzany (zaplanowany i śledzony) proces jest monitorowany, weryfikowany jest poprawność, zgodność z harmonogramem, mają miejsce zaplanowane przeglądy

Organizacja procesu tworzenia (c.d.) Poziom zdefiniowany proces tworzenia i zarządzania opiera się na udokumentowanych procedurach i standardach Poziom mierzony przeprowadzane są szczegółowe pomiary jakości procesu i produktu, możliwe jest przewidywanie wydajności procesu (np. w sytuacji zastosowania określonego narzędzia) Poziom optymalizowany ciągłe ulepszanie organizacji dzięki ilościowemu określeniu efektywności procesu oraz poprzez wprowadzanie nowych idei i technologii

Koncepcja cyklu życiowego oprogramowania

Zasadnicze składowe cyklu wytwórczego oprogramowania Faza strategiczna: określenie celów, planowanie i definicja projektu Definiowanie wymagań: określenie co oprogramowanie ma robić Analiza: dotyczy dziedziny przedsiębiorczości, wymagań systemowych Projektowanie: projektowanie pojęciowe, projektowanie logiczne Implementacja: rozwijanie, testowanie, dokumentacja Testowanie: sprawdzenie czy system robi to co powinien Dokumentacja: przygotowanie materiałów o systemie Instalacja: uruchomienie systemu u klienta Wdrożenie: przygotowanie użytkowników, akceptacja, szkolenie Działanie: wyłączając wspomaganie tworzenia aplikacji: utrzymanie, konserwacja, pielęgnacja takie pojęcia zdarza się słyszeć jeśli jest mowa o procesie tworzenia oprogramowania

Definiowanie wymagań Proces ustalania jakie usługi są wymagane oraz jaki jest zakres odpowiedzialności systemu Proces definiowania wymagań zwany też inżynierią wymagań obejmuje: Studium wymagalności Analizę wymagań Specyfikację wymagań Walidację wymagań

Projekt i implementacja oprogramowania Projektowanie to proces konwersji specyfikacji wymagań w projekt działającego systemu Projekt oprogramowania – przygotowanie planu budowy systemu oprogramowania, które zapewni realizację specyfikacji wymagań Implementacja – budowa wykonywalnego program zgodnie z planem projektowym Czynności projektowania i implementacji są ściśle powiązane i mogą się wzajemnie przeplatać

Czynności fazy projektowej Projektowanie architektury Specyfikacja oprogramowania Projekt interfejsu Projektowanie komponentów Projektowanie struktur danych Projektowanie algorytmów

Metodologie projektowania Systematyczne podejście do procesu projektowania Projekt jest zwykle dokumentowany z wykorzystaniem modeli graficznych Niektóre modele Model przepływu danych (data-flow model) Model encja-związak (entity-relation-attribute model) Modele obiektowe (object models)

Cykl życiowy oprogramowania Cykl życiowy oprogramowania (ang. Livecycle) – zależny od organizacji i typu tworzonego oprogramowania zestaw czynności, niezbędnych do jego dostarczenia klientowi w założonym czasie i przy założonym budżecie. Inne określenia – cykl wytwórczy oprogramowania, proces wytwórczy oprogramowania. bez komentarza

Generyczne modele cyklu życia oprogramowania Model kaskadowy (the waterfall model) separacja i rozróżnienie faz specyfikacji i implementacji Model ewolucyjny (evolutionary development) specyfikacja i implementacja przeplatają się Generyczne – może zła nazwa – tłumaczenie z generic - > chodzi o „czyste koncepcje”.

Prosty model kaskadowy (wodospadowy) Określenie wymagań Cele i szczegółowe wymagania wobec systemu. Analiza Projektowanie Szczegółowy projekt systemu uwzględniający wcześniejsze wymagania. Implementacja Testowanie Modyfikacje producenta - usunięcie błędów, zmiany i rozszerzenia. Konserwacja

Model kaskadowy Zalety przydatny w harmonogramowaniu i budżetowaniu przedsięwzięcia formalny odbiór rezultatów poszczególnych faz ułatwia monitorowanie postępu projektu przynajmniej teoretyczna możliwość prowadzenia projektów w reżimie potokowym ułatwia prowadzenie rozliczeń finansowych z klientem Wady narzuca ścisłą kolejność faz wysoki koszt błędów ponoszonych we wczesnych fazach cyklu długa przerwa w kontaktach z klientem problemy z wprowadzaniem zmian w projekcie

Model kaskadowy z iteracjami Określenie wymagań Analiza Projektowanie Implementacja Testowanie Konserwacja

czynności przebiegające równolegle Model ewolucyjny Specyfikacja Wersja początkowa Zarys systemu Rozwój systemu Wersje pośrednie Weryfikacja Wersja końcowa Taki model nieświadomie wykorzystują studenci w czasie prac nad projektami PK czynności przebiegające równolegle

Model ewolucyjny Zalety bardzo dobry dla małych projektów lub części większej całości (np. interfejs użytkownika) dobry dla systemów o krótkim czasie życia (np. migracje danych) projekt może szybko wystartować i to zarówno przy dobrym zrozumieniu potrzeb użytkownika jak i przy słabo zdefiniowanych wymaganiach Wady trudno określić zaawansowanie projektu problemy z budżetowaniem, harmonogramowaniem itp. często wymaga specjalnych narzędzi ułatwiających budowę prototypów wyprodukowane systemy są najczęściej źle ustruktualizowane

Hybrydowe modele cyklu życia oprogramowania W przypadku dużych systemów istną częścią procesu zarządzania projektem jest przeciwdziałanie ryzyku Ponieważ ryzyko wynika głównie z nieodpowiedniej lub niepełnej informacji, aby je wyeliminować należy zdobyć pewne dodatkowe dane. Modele generyczne nie uwzględniają faz związanych z zarządzeniem ryzykiem; w przypadku dobrze zdefiniowanych problemów można wykorzystać model kaskadowy a w przypadku systemów wysokiego ryzyka prototypowanie (cykl ewolucyjny) I właśnie miedzy innymi dlatego powstały modele hybrydowe

Model spiralny - wprowadzenie Przegląd: Ustalenie celów, alternatywnych dróg i ograniczeń Identyfikacja i analiza ryzyka (ew. budowa prototypu) Ogólnie Konstrukcja (model kaskadowy) Atestowanie (w tym przez klienta). Jeżeli ocena nie jest w pełni pozytywna, rozpoczynany jest kolejny cykl. Planowanie: Ustalenie planu kolejnej fazy

Model spiralny Boehm’a Identyfikacja i analiza ryzyka (ew. budowa prototypu) Przegląd: Ustalenie celów, alternatywnych dróg i ograniczeń Przegląd Analiza ryzyka Analiza ryzyka Przegląd Analiza ryzyka Prototyp 3 Prototyp operacyjny Przegląd Prototyp 2 Analiza ryzyka Prototyp 1 Przegląd Symulacja, modele, testy wydajności Plan cyklu życia i akwizycji wymagań Koncepcja działania Wymagania I szczegółowo – opis w materiałach dr.Szmala Projekt produktu Projekt szczegółowy Walidacja wymagań Planowanie tworzenia (rozwijania) Konstrukcja (model kaskadowy) Atestowanie (w tym przez klienta). Kod Walidacja produktu Test jednostek Planowanie scalania i testowania Test scalania Planowanie: Ustalenie planu kolejnej fazy Test akceptacyjny Obsługa

Model spiralny Zalety zmniejszenie ryzyka elastyczność – dla każdego z zagadnień można stosować odmienny model rozwoju przeglądy kończące poszczególne fazy ułatwiają szybkie wykrywanie błędów Wady kontrakty często zawierają specyfikację, harmonogram oraz sposób wytwarzania dostarczanych składowych systemu co często ogranicza zastosowanie modelu spiralnego model wymaga ekspertyz z zakresu zarządzania ryzykiem bez komentarza.

Model przyrostowy (odmiana modelu spiralnego) Określenie wymagań Wybierany i realizowany jest podstawowy zestaw funkcji. Po realizacji pewnych funkcji następuje zrealizowanie i dostarczenie kolejnych funkcji. Ogólny projekt Proces realizowany iteracyjnie Wybór podzbioru funkcji Szczegółowy projekt, implementacja testy Taki model w nieco zmienionej postaci jest wykorzystywany przez Rational Unified Process Dostarczenie zrealizowanej części systemu

Model iteracyjny przyrostowy Rational Unified Approach Metodyka RUP – nakład pracy w ramach poszczególnych etapów. Źródło: RUP © Rational Software

Iteracje w modelu Rational Unified Approach tradycyjny model kaskadowy Przykłady skopiowane z metodyki RUP – jak widać model iteracyjny, w którym w każdym cyklu większość nakładów dotyczy jednego z etapów model iteracyjny Źródło: RUP © Rational Software

Podsumowanie Dziedzina Inżynierii Oprogramowania Oprogramowanie Proces tworzenia oprogramowania Pojęcie metodyki Modele cyklu życiowego oprogramowania