In ż ynieria oprogramowania wykład II Modele i fazy cyklu życia oprogramowania



Podobne dokumenty
In ż ynieria oprogramowania wykład II Modele i fazy cyklu życia oprogramowania

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

Etapy życia oprogramowania

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

Programowanie zespołowe

Cykle życia systemu informatycznego

Inżynieria oprogramowania (Software Engineering)

MODELE CYKLU ŻYCIA OPROGRAMOWANIA (1) Model kaskadowy (często stosowany w praktyce do projektów o niewielkiej złożonoś

Opis metodyki i procesu produkcji oprogramowania

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Projektowanie systemów informatycznych. wykład 6

Przedsięwzięcia Informatyczne w Zarządzaniu

Ogólne określenie wymagań. Ogólny projekt. Budowa systemu. Ocena systemu. Nie. Tak. System poprawny. Wdrożenie. Określenie.

Inżynieria oprogramowania I

Projektowanie systemów informatycznych. Roman Simiński programowanie.siminskionline.pl. Cykl życia systemu informatycznego

Zasady organizacji projektów informatycznych

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

MODELE CYKLU śycia OPROGRAMOWANIA

Zakład Języków Programowania Instytut Informatyki Uniwersytet Wrocławski

Waterfall model. (iteracyjny model kaskadowy) Marcin Wilk

Wytwórstwo oprogramowania. michał możdżonek

ZASADY TWORZENIA OPROGRAMOWANIA

Procesy wytwarzania oprogramowania Specyfikacja i projektowanie oprogramowania

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

Rozpoczęcie, inicjacja (ang. inception

Inżynieria Oprogramowania. Inżynieria Oprogramowania 1/36

PRZEWODNIK PO PRZEDMIOCIE

Wprowadzenie do systemów informacyjnych

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

RUP. Rational Unified Process

Metodyki programowania. Tomasz Kaszuba 2015

SYSTEMY INFORMATYCZNE ćwiczenia praktyczne

Podstawy programowania III WYKŁAD 4

PRZEWODNIK PO PRZEDMIOCIE

Wytwarzanie oprogramowania

WPROWADZENIE DO UML-a

Wykład 1 Inżynieria Oprogramowania

Laboratorium 5 - Projektowanie programów zorientowanych obiektowo. Indywidualny projekt programistyczny

Wstęp do zarządzania projektami

Agile Project Management

Analiza i programowanie obiektowe 2016/2017. Wykład 6: Projektowanie obiektowe: diagramy interakcji

IO - inżynieria oprogramowania. dr inż. M. Żabińska, zabinska@agh.edu.pl

Narzędzia CASE dla.net. Łukasz Popiel

Testowanie oprogramowania

KARTA MODUŁU KSZTAŁCENIA

Tworzenie gier na urządzenia mobilne

Wykład 2. MIS n Inżynieria oprogramowania Marzec Kazimierz Michalik Akademia Górniczo-Hutnicza im. S. Staszica w Krakowie

Metody wytwarzania oprogramowania. Metody wytwarzania oprogramowania 1/31

PYTANIA PRÓBNE DO EGZAMINU NA CERTYFIKAT ZAAWANSOWANY REQB KLUCZ ODPOWIEDZI. Część DODATEK

Zakres wykładu. Podstawy InŜynierii Oprogramowania

KOMPUTEROWE WSPOMAGANIE ZARZĄDZANIA

Zasadnicze czynności w zarządzaniu projektem, fazy cyklu życia systemu informatycznego. Modele cyklu życia - część 1

Inżynieria oprogramowania II

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Zagadnienia. Inżynieria Oprogramowania

Inżynieria oprogramowania

Faza strategiczna. Synteza. Analiza. Instalacja. Faza strategiczna. Dokumentacja. kodowanie implementacja. produkt konserwacja

Rational Unified Process. Dokładny opis metodyki i procesu produkcji oprogramowania

Wstęp do zarządzania projektami

REFERAT PRACY DYPLOMOWEJ

SVN. 10 października Instalacja. Wchodzimy na stronę i pobieramy aplikację. Rysunek 1: Instalacja - krok 1

Dokument Detaliczny Projektu

Inżynieria oprogramowania (Software Engineering) Wykład 1

AUREA BPM HP Software. TECNA Sp. z o.o. Strona 1 z 7

RATIONAL UNIFIED PROCESS. Opis metodyki i procesu produkcji oprogramowania

Wzorce projektowe i refaktoryzacja

Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz

Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010

Feature Driven Development

Jakość w procesie wytwarzania oprogramowania

Maciej Oleksy Zenon Matuszyk

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Egzamin / zaliczenie na ocenę*

Analiza i projektowanie obiektowe 2017/2018. Wykład 3: Model wiedzy dziedzinowej

Usługa: Audyt kodu źródłowego

ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski

wbudowane October 7, 2015 KSEM WETI PG Komputery przemysłowe i systemy wbudowane Oprogramowanie systemów wbudowanych - wydajność Wydajność

Modelowanie i analiza systemów informatycznych

Analityk i współczesna analiza

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Konfiguracja modelowania w procesie wytwarzania oprogramowania

Proces tworzenia oprogramowania

Organizacja procesu projektowania, rozwoju i serwisowania systemu wspomagającego zarzadzanie uczelnią

Inżynieria oprogramowania (Software Engineering)

Zarządzanie jakością w logistyce ćw. Artur Olejniczak

Projektowanie oprogramowania. Wykład Weryfikacja i Zatwierdzanie Inżynieria Oprogramowania Kazimierz Michalik

PROJEKTOWANIE. kodowanie implementacja. PROJEKT most pomiędzy specyfikowaniem a kodowaniem

Testowanie oprogramowania w środowisku IBM Rational Software Architect

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE INTEGRACYJNE

Wykaz osób w postępowaniu o udzielenie zamówienia publicznego nr 32-CPI-WZP-2244/13. Podstawa do dysponowania osobą

Wstęp do zarządzania projektami

Priorytetyzacja przypadków testowych za pomocą macierzy

Lekkie metodyki. tworzenia oprogramowania

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Specyfikowanie wymagań przypadki użycia

Zagadnienia. Inżynieria Oprogramowania

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

Transkrypt:

In ż ynieria oprogramowania wykład II Modele i fazy cyklu życia oprogramowania prowadzący: dr inż. Krzysztof Bartecki www.k.bartecki.po.opole.pl

Proces tworzenia oprogramowania jest zbiorem czynności i związanych z nimi wyników, które prowadzą do powstania produktu programowego (programowania), może to być tworzenie oprogramowania od zera, ale coraz częściej nowe oprogramowanie powstaje przez rozbudowę i modyfikowanie istniejących systemów. K. Bartecki, Inżynieria oprogramowania, II/2

Idea przyświecająca wytwarzaniu oprogramowania: Myśląc o czymś bardzo skomplikowanym, nie próbuj robić wszystkiego jednocześnie. Podziel to na mniej złożone części i skoncentruj się kolejno na każdej z nich. Z tego względu proces wytwarzania oprogramowania dzieli się zwykle na pewne fazy. K. Bartecki, Inżynieria oprogramowania, II/3

Ogólne fazy procesu produkcji oprogramowania specyfikacja określenie i zapisanie wymagań, które musi spełniać oprogramowanie, projektowanie ustalenie ogólnej architektury systemu oraz wymagań dla poszczególnych jego składowych, implementacja realizacja ustalonej architektury poprzez tworzenie kodu składowych systemu (modułów) oraz połączeń między nimi, integracja zintegrowanie poszczególnych składowych (modułów) w jeden system, testowanie całego systemu, ewolucja uruchomienie systemu, usuwanie wykrytych podczas jego używania błędów, rozszerzanie systemu. K. Bartecki, Inżynieria oprogramowania, II/4

Modele cyklu życia oprogramowania model kaskadowy, model przyrostowy (iteracyjny), model V, model prototypowy, programowanie odkrywcze, model spiralny, model formalnych transformacji. K. Bartecki, Inżynieria oprogramowania, II/5

Model kaskadowy W modelu kaskadowym (ang. waterfall model), nazywanym także modelem liniowym, wszystkie podstawowe czynności przy tworzeniu oprogramowania wykonywane są jako odrębne fazy projektowe, jedna po drugiej. Wymagania Projektowanie Implementacja Testowanie Konserwacja K. Bartecki, Inżynieria oprogramowania, II/6

Model kaskadowy fazy Faza określenia wymagań (ang. requirements) określane są cele oraz szczegółowe wymagania wobec tworzonego systemu, Faza projektowania (ang. design) powstaje szczegółowy projekt systemu, spełniającego ustalone wcześniej wymagania, Faza implementacji (ang. implementation) projekt implementowany (kodowany) jest w określonym środowisku programistycznym oraz wykonywane są testy jego modułów, Faza testowania (ang. verification) następuje integracja oraz testowanie całości oprogramowania, Faza konserwacji (ang. maintenance) oprogramowanie jest wykorzystywane przez użytkowników, a producent dokonuje jego konserwacji (usuwanie błędów, rozszerzanie funkcji, wsparcie techniczne). K. Bartecki, Inżynieria oprogramowania, II/7

Dodatkowe fazy modelu kaskadowego Wymagania Projektowanie Implementacja Testowanie Konserwacja Strategiczna Analiza Instalacja Dokumentacja Faza strategiczna (ang. strategy) strategiczne decyzje dotyczące kolejnych etapów prac, Faza analizy (ang. analysis) budowa logicznego modelu systemu, Faza dokumentacji (ang. documentation) wytwarzanie dokumentacji użytkownika, Faza instalacji (ang. installation) instalacja systemu i przekazanie go użytkownikowi. K. Bartecki, Inżynieria oprogramowania, II/8

Model kaskadowy z iteracjami Jeśli któraś z faz da niezadowalający efekt, cofamy się, wykonując kolejne iteracje, aż do momentu, kiedy na końcu schodków otrzymamy satysfakcjonujący produkt. Wymagania Projektowanie Implementacja Testowanie Konserwacja K. Bartecki, Inżynieria oprogramowania, II/9

Zalety modelu kaskadowego: przejrzystość, łatwość zarządzania przedsięwzięciem, stanowi podstawę dla wielu innych modeli życia oprogramowania. Wady modelu kaskadowego: narzucenie twórcom oprogramowania ścisłej kolejności wykonywania prac nie można przejść do następnej fazy przed zakończeniem poprzedniej, wysoki koszt błędów popełnionych we wstępnych fazach iteracje są bardzo kosztowne, gdyż powtarzamy wiele czynności, długa przerwa w kontaktach z klientem projektowanie oraz implementacja wykonywane są wyłącznie przez firmę programistyczną. K. Bartecki, Inżynieria oprogramowania, II/10

Model przyrostowy (iteracyjny) W modelu przyrostowym (ang. incremental model), po określeniu wymagań oraz zbudowaniu ogólnego projektu systemu, wybierany, implementowany oraz dostarczany klientowi jest kolejny podzbiór funkcji systemu. wymagania ogólny projekt proces realizowany iteracyjnie wybór podzbioru funkcji projekt, implementacja, testy dostarczenie klientowi K. Bartecki, Inżynieria oprogramowania, II/11

Model przyrostowy fazy określenie całości wymagań (na ile uda się je sprecyzować), oraz wykonanie wstępnego, ogólnego projektu całości systemu, wybór pewnego podzbioru funkcji systemu, szczegółowy projekt (zgodnie z modelem kaskadowym) oraz implementacja części systemu realizującej wybrane funkcje, testowanie zrealizowanego fragmentu i dostarczenie go klientowi, powtarzanie kolejnych etapów (od wyboru nowego podzbioru funkcji), aż do zakończenia implementacji całego systemu. K. Bartecki, Inżynieria oprogramowania, II/12

Zalety modelu przyrostowego: częstsze niż w modelu kaskadowym kontakty z klientem, brak konieczności definiowania z góry całości wymagań, możliwość wcześniejszego wykorzystania przez klienta fragmentów systemu, możliwość elastycznego reagowania na opóźnienia realizacji fragmentu przyspieszenie prac nad innymi częściami. Wady modelu przyrostowego: dodatkowy koszt związany z niezależną realizacją fragmentów systemu, trudności z wycinaniem podzbioru funkcji w pełni niezależnych, konieczność implementacji szkieletów (interfejs). K. Bartecki, Inżynieria oprogramowania, II/13

źródło: testerzy.pl Model V jest rozwinięciem modelu kaskadowego, charakteryzującym się rozbudowaną fazą testów, testy te mają na celu weryfikację poprawności każdego etapu, dzięki temu, że każdy z etapów wytwórczych kończy się przeglądami i inspekcjami, prawdopodobieństwo pojawienia się błędu lub niezgodności z wymaganiami przy wdrożeniu i eksploatacji jest dużo mniejsze niż w klasycznym modelu kaskadowym, implementacja stanowi zakończenie lewego ramienia projektowania, prawe ramię, czyli weryfikacja, to sprawdzanie, czy wstępne założenia zostały wypełnione poczynając od sprawdzania najmniejszych komponentów na całym zintegrowanym systemie kończąc. K. Bartecki, Inżynieria oprogramowania, II/14

Zalety modelu V: mniejsze niż w modelu kaskadowym prawdopodobieństwo wystąpienia błędów, w związku z powyższym znaczące obniżenie kosztów pielęgnacji systemu, zachęca do jak najwcześniejszego rozpoczęcia procesu tworzenia planów testów, specyfikacji testowej i samego testowania. Wady modelu V: stanowi jedynie niewielką modyfikację modelu kaskadowego, powielając jego wady, stanowi jedynie propozycję (w dużej mierze teoretyczną) idealnego świata współpracy między architektami, a programistami, testerami i klientami. K. Bartecki, Inżynieria oprogramowania, II/15

Model prototypowy polega na stworzeniu podczas projektowania prototypu systemu w celu przedyskutowania oraz akceptacji ze strony klienta. Metody budowy prototypu: rozpisanie interfejsów użytkownika na kartce papieru, realizacja wyłącznie interfejsu użytkownika, np. z wykorzystaniem narzędzi RAD (ang. Rapid Application Development), niepełna realizacja np. implementacja jedynie kilku modułów systemu, implementacja metod działających jedynie w większości przypadków lub dla niektórych danych, w celu pokazanie jedynie idei, niskiej jakości system wykonany za pomocą modelu odkrywczego, który stosunkowo szybko się wykonuje. K. Bartecki, Inżynieria oprogramowania, II/16

Zalety modelu prototypowego: pozwala klientowi szybko zobaczyć jak mniej więcej będzie wyglądał system, zwiększa zrozumienie twórców systemu co do potrzeb klienta, w zależności od rodzaju prototypu, może pozwalać rozpocząć szkolenie obsługi systemu po stronie klienta, prototyp jest łatwy do zmiany. Wady modelu prototypowego: wysoki koszt budowy systemu po weryfikacji prototyp jest najczęściej porzucany lub tylko częściowo wykorzystywany do budowy właściwego systemu, możliwość nieporozumień z klientem klient widzi prawie gotowy produkt, który w rzeczywistości jest dopiero w początkowej fazie rozwoju. K. Bartecki, Inżynieria oprogramowania, II/17

Programowanie odkrywcze Programowanie odkrywcze (ang. exploratory programming) to model, w którym budowa systemu rozpoczyna się natychmiast po określeniu ogólnych wymagań. Zbudowany system jest weryfikowany przez klienta jeżeli zostanie uznany za nieodpowiedni, budowana (modyfikowana) jest kolejna jego wersja tak długo, aż jedna z kolejnych jego wersji zadowoli klienta. Określenie ogólnych wymagań Budowa systemu Testowanie systemu System działa poprawnie? Dostarczenie systemu K. Bartecki, Inżynieria oprogramowania, II/18

Zalety programowania odkrywczego: możliwość stosowania przy bardzo trudnych sytuacjach z określeniem wymagań klienta, dobrze opisuje amatorski sposób tworzenia oprogramowania, w profesjonalnych projektach dobrze nadaje się do budowy prototypu, Wady programowania odkrywczego: brak możliwości opracowania i zachowania sensownej struktury systemu, testowanie odbywa się jedynie przy obecności klienta ze względu na pełnych brak wymagań. K. Bartecki, Inżynieria oprogramowania, II/19

Model spiralny W modelu spiralnym (ang. spiral model) proces tworzenia oprogramowania ma postać spirali, której każda pętla reprezentuje jedną iterację procesu. Najbardziej wewnętrzna pętla przedstawia początkowe etapy projektowania, np. studium wykonalności, kolejna definicji wymagań systemowych, itd. Analiza ryzyka w oparciu o wymagania wstępne Weryfikacja planu projektu oraz planowanie kolejnej iteracji na podstawie ocen użytkownika Analiza ryzyka na podstawie ocen użytkownika Wymagania wstępne, plan projektu Kolejne wersje produktu K. Bartecki, Inżynieria oprogramowania, II/20

Model spiralny fazy Model spiralny składa się z czterech głównych faz, wykonywanych cyklicznie: planowanie definiowanie konkretnych celów, wymaganych w danej fazie przedsięwzięcia. analiza ryzyka identyfikacja ograniczeń i zagrożeń, ustalanie planów realizacji, tworzenie i zatwierdzanie tworzenie oprogramowania w oparciu o najbardziej odpowiedni model, wybrany na podstawie oceny zagrożeń, ocena i planowanie recenzja postępu prac i planowanie kolejnej fazy przedsięwzięcia, bądź zakończenie projektu. K. Bartecki, Inżynieria oprogramowania, II/21

Zalety modelu spiralnego: można wykorzystać gotowe projekty, faza oceny przeprowadzana w każdym cyklu pozwala uniknąć błędów lub odpowiednio wcześnie je wykryć, cały czas istnieje możliwość rozwijania projektu. Wady modelu spiralnego: metodologia nie do końca dopracowana każdy projekt jest inny i powstaje w innych warunkach, tworzenie w oparciu o ten model wymaga doświadczenia w prowadzeniu tego typu projektów oraz wiedzy ekonomicznej w zarządzaniu, przeznaczony tylko dla dużych przedsięwzięć programistycznych. K. Bartecki, Inżynieria oprogramowania, II/22

Model formalnych transformacji W metodzie formalnych transformacji (ang. formal transformations) zakłada się, że wymagania systemowe zapisywane są w pewnym formalnym języku. Następnie podlegają one automatycznym (tzn. bez udziału ludzi) transformacjom do kolejnych form coraz bliższych kodowi. Formalna specyfikacja wymagań Postać pośrednia... Postać pośrednia Kod K. Bartecki, Inżynieria oprogramowania, II/23

Zalety modelu formalnych transformacji: pełna automatyzacja procesu wytwarzania oprogramowania, wysoka niezawodność, jeśli nie popełniono błędów na etapie określania wymagań. Wady modelu formalnych transformacji: trudność formalnej specyfikacji wymagań polega ona tu właściwie na napisaniu programu rozwiązującego pewien problem, który podlegał będzie stopniowej kompilacji do poziomu kodu, mała efektywność tak uzyskanego kodu, brak dobrze rozwiniętych języków formalnej specyfikacji wymagań, model stanowi właściwie jedynie propozycję teoretyczną, związaną z tzw. nurtem formalnym inżynierii oprogramowania. K. Bartecki, Inżynieria oprogramowania, II/24

Co to jest RUP? RUP (ang. Rational Unified Process) to proces iteracyjnego wytwarzania oprogramowania opracowany przez firmę Rational Software Corporation (przedsiębiorstwo zostało przejęte przez IBM). Proces RUP został opracowany z użyciem tych samych technik, których zespół Rational używał do modelowania systemów czyli głównie języka UML. Język UML powstawał równolegle z RUP. Powstał na bazie analizy najczęstszych przyczyn niepowodzeń istniejących procesów wytwarzania oprogramowania. K. Bartecki, Inżynieria oprogramowania, II/25

RUP bazuje na zbiorze zasad inżynierii programowania oraz na tzw. najlepszych praktykach, wśród których można wymienić: iteracyjne wytwarzanie oprogramowania (Iterative Development), zarządzanie wymaganiami (Requirement Management) skupione na zaspokojeniu oczekiwań użytkowników końcowych systemu poprzez identyfikację i specyfikację ich potrzeb oraz wykrywanie zmiany tych wymagań, używanie architektury bazującej na komponentach (Component-based architecture) komponentem nazywamy zbiór powiązanych obiektów (w sensie programowania obiektowego), graficzne projektowanie oprogramowania, kontrolę jakości oprogramowania (Quality Assurance) RUP zakłada, że każdy członek zespołu jest odpowiedzialny za jakość w ciągu całego procesu, proces kontroli zmian w oprogramowaniu (Change Management). K. Bartecki, Inżynieria oprogramowania, II/26

Fazy RUP K. Bartecki, Inżynieria oprogramowania, II/27

Cykl życia oprogramowania na wesoło : K. Bartecki, Inżynieria oprogramowania, II/28