Procesy wytwarzania oprogramowania Specyfikacja i projektowanie oprogramowania



Podobne dokumenty
Etapy życia oprogramowania

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

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

Cykle życia systemu informatycznego

PRZEWODNIK PO PRZEDMIOCIE

Przedsięwzięcia Informatyczne w Zarządzaniu

PRZEWODNIK PO PRZEDMIOCIE

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

In ż ynieria oprogramowania wykład II Modele i fazy cyklu życia 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ą?

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

Wytwarzanie oprogramowania

Egzamin / zaliczenie na ocenę*

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

Inżynieria oprogramowania (Software Engineering)

Inżynieria oprogramowania I

Wykład 1 Inżynieria Oprogramowania

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

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

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013

Narzędzia CASE dla.net. Łukasz Popiel

Programowanie zespołowe

RUP. Rational Unified Process

Podstawy programowania III WYKŁAD 4

Opis metodyki i procesu produkcji oprogramowania

KARTA MODUŁU KSZTAŁCENIA

Waterfall model. (iteracyjny model kaskadowy) Marcin Wilk

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

Zakres wykładu. Podstawy InŜynierii Oprogramowania

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

INŻYNIERIA OPROGRAMOWANIA

Zasady organizacji projektów informatycznych

E-ID1S-08-s5. Informatyka. I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

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

MODELE CYKLU śycia OPROGRAMOWANIA

Grupa treści kształcenia, w ramach której przedmiot jest realizowany Przedmiot kierunkowy

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

ZASADY TWORZENIA OPROGRAMOWANIA

Maciej Oleksy Zenon Matuszyk

Projektowanie systemów informatycznych. wykład 6

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

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

WPROWADZENIE DO UML-a

Wstęp do zarządzania projektami

Inzynieria Oprogramowania 2... nazwa przedmiotu SYLABUS A. Informacje ogólne. Wydział Ekonomiczno-Informatyczny w Wilnie

Część I - Załącznik nr 7 do SIWZ. Warszawa. 2011r. (dane Wykonawcy) WYKAZ OSÓB, KTÓRYMI BĘDZIE DYSPONOWAŁ WYKONAWCA DO REALIZACJI ZAMÓWIENIA

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

Inżynieria oprogramowania

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

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

E-1IZ3-06-s6. Inżynieria Programowania. Informatyka. I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Jakość w procesie wytwarzania oprogramowania

Wprowadzenie, podstawowe pojęcia, projekt a produkt Wykład1

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Cele oraz techniki tworzenia prototypów systemów infromatycznych. Inżynieria Oprogramowania

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

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

Wstęp do zarządzania projektami

Wstęp. Inżynieria wymagań. Plan wykładu. Wstęp. Wstęp. Wstęp. Schemat procesu pozyskiwania wymagań

Konfiguracja modelowania w procesie wytwarzania oprogramowania

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

Model referencyjny doboru narzędzi Open Source dla zarządzania wymaganiami

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

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

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

Oceny z prezentacji INKU011S. Zofia Kruczkiewicz

Testowanie oprogramowania

Podstawy modelowania programów Kod przedmiotu

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

REFERAT PRACY DYPLOMOWEJ

INŻYNIERIA OPROGRAMOWANIA Wykład 6 Organizacja pracy w dziale wytwarzania oprogramowania - przykład studialny

Narzędzia informatyczne wspierające przedsięwzięcia e-commerce

Inżynieria Programowania Zarządzanie projektem. Plan wykładu. Motto. Motto 2. Notatki. Notatki. Notatki. Notatki.

Zarządzanie projektem wdrożeniowym systemu klasy ERP autorska metodyka

Inżynieria oprogramowania - opis przedmiotu

Inżynieria oprogramowania. Jan Magott

Wprowadzenie, podstawowe pojęcia, projekt a produkt Wykład1

Informatyka II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) kierunkowy (podstawowy / kierunkowy / inny HES)

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:

PRZEWODNIK PO PRZEDMIOCIE

Studia podyplomowe PROGRAM NAUCZANIA PLAN STUDIÓW

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

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

ŚCIEŻKA KRYTYCZNA. W ścieżkach krytycznych kolejne zadanie nie może się rozpocząć, dopóki poprzednie się nie zakończy.

KARTA PRZEDMIOTU. 1. NAZWA PRZEDMIOTU: Zespołowy projekt informatyczny. 2. KIERUNEK: Matematyka. 3. POZIOM STUDIÓW: I stopnia

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

Rozdział 4 Planowanie rozwoju technologii - Aleksander Buczacki 4.1. Wstęp 4.2. Proces planowania rozwoju technologii

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

SYSTEMY INFORMATYCZNE ćwiczenia praktyczne

Łatwa czy niełatwa droga do celu? - wdrożenie COSMIC w ZUS

KOMPUTEROWE WSPOMAGANIE ZARZĄDZANIA

E-1IZ s2. Informatyka II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

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

Feature Driven Development

1. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Inżynieria oprogramowania, C12

Inżynieria Programowania Zarządzanie projektem

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

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

Transkrypt:

Procesy wytwarzania oprogramowania Specyfikacja i projektowanie oprogramowania dr inż. Marcin Szlenk Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych

Wprowadzenie O mnie dr inż. Marcin Szlenk Instytut Automatyki i Informatyki Stosowanej, pok. 555 www.ia.pw.edu.pl/~mszlenk m.szlenk@ia.pw.edu.pl O wykładzie Procesy konstrukcji systemów informatycznych: kaskadowy, V, konstrukcji prototypów, przyrostowy, iteracyjny, spiralny, transformacji formalnych Model Driven Architecture (MDA) a Domain Specific Modeling (DSM) 2

Kategorie projektów informatycznych Zapotrzebowanie Czy na rynku dostępne są zadowalające nas rozwiązania COTS? Tak Nie Projekt wdrożeniowy Projekt konstrukcyjny Kastomizacja oprogramowania wdrożeniowego = (mały) projekt konstrukcyjny 3

Proces wytwórczy systemu Proces wytwórczy systemu Zbiór czynności i związanych z nimi wyników, które prowadzą do powstania systemu Czynności wspólne dla wszystkich procesów: Analiza wymagań Projektowanie Implementacja Testowanie Wdrożenie i pielęgnacja 4

Analiza wymagań Zebranie i uporządkowanie wymagań użytkownika oraz określenie, co system będzie robił by je spełnić Projektowanie Odwzorowanie wymagań w konstrukcję systemu, czyli określenie jak system będzie zrealizowany Implementacja Zbudowanie działającego systemu Testowanie Sprawdzanie poprawności działania i usuwanie błędów Wdrożenie i pielęgnacja Instalacja oprogramowania i dalsze utrzymanie Wymagania systemowe Dobranie architektury, struktury oprogramowania, środowiska implementacji Usuwanie błędów, wprowadzanie zmian 5

Wymagania użytkownika i systemowe Wymaganie użytkownika 1. Oprogramowanie musi zapewnić mechanizmy reprezentowania i dostępu do plików zewnętrznych tworzonych przez inne narzędzia Wymaganie systemowe 1. Użytkownik powinien mieć możliwość definiowania typów plików zewnętrznych 2. Każdemu typowi pliku zewnętrznego użytkownik może przypisać narzędzie do obróbki takich plików 3. Każdy typ pliku zewnętrznego powinien być przedstawiony na ekranie w postaci charakterystycznej ikony 4. Gdy użytkownik wybierze ikonę powiązaną z plikiem zewnętrznym następuje uruchomienie narzędzia przypisanego tego typu plikom Ian Sommerville: Inżynieria oprogramowania, WNT (2003) 6

Wymagania funkcjonalne i pozafunkcjonalne Wymagania funkcjonalne Usługi lub funkcje wymagane od systemu Wymagania pozafunkcjonalne Ograniczenia jakim ma podlegać tworzenie i działanie systemu: niezawodność wydajność pielęgnowalność przenośność bezpieczeństwo 7

Studium wykonalności Czy? Ustalenie możliwości realizacji przedsięwzięcia i podjęcie decyzji o realizacji dalszych prac Na podstawie ogólnej analizy 1. Czy system jest w ogóle potrzebny? 2. Czy system da się zrealizować przy użyciu dostępnych technologii? 3. Czy system jest ekonomicznie opłacalny? 4. Czy system da się zrealizować w ramach ustalonego budżetu i ograniczeń czasowych? 5. Czy system da się zintegrować z istniejącymi systemami? 8

Modele procesów wytwórczych Model procesu wytwórczego = abstrakcja przebiegu wytwarzania systemu informatycznego Kluczowe modele: Model kaskadowy Model V Prototypowanie (model konstrukcji prototypów) Model przyrostowy Model iteracyjny Model spiralny Transformacje formalne 9

Model kaskadowy Analiza wymagań Projektowanie Implementacja Testowanie Wdrożenie i pielęgnacja Interpretacja ścisła Fazy nie nakładają się na siebie Interpretacja ogólna Przejście do fazy n+1 wymaga zakończenia fazy n Sąsiednie fazy nakładają się w czasie, ale w minimalnym stopniu Na początku fazy n+1 można dokonać zmian w fazie n 10

Zalety naturalność i zrozumiałość ułatwia planowanie, harmonogramowanie i śledzenie postępów projektu Wady utrudnia reagowanie na: zmieniające się wymagania użytkownika błędy wymagające cofnięcia się do faz zakończonych do końca projektu utrzymuje się wysokie ryzyko, że system nie spełni wymagań użytkownika wysoki koszt błędów popełnionych w fazie analizy Sprawdza się w niewielkich projektach o łatwych do określenia i stabilnych wymaganiach co do systemu 11

Model V Analiza wymagań Testowanie walidacyjne Q Projektowanie Testowanie weryfikacyjne Q Q Implementacja Q Q czynności weryfikujące jakość wykonanych prac Odmiana modelu kaskadowego (fazy wykonywane sekwencyjnie) Faza zostaje zamknięta po pozytywnej ocenie jakości Testy opracowuje się równolegle do prac analitycznych i projektowych 12

Kilka uwag na temat testowania Weryfikacja Czy budujemy system we właściwy sposób? (Czy system działa poprawnie?) Walidacja Czy budujemy właściwy system? (Czy system realizuje wymagania użytkownika?) Podstawowe rodzaje testów: testy jednostkowe testy integracyjne testy systemowe testy akceptacyjne Wymagania funkcjonalne i pozafunkcjonalne Podstawa odbioru 13

Zalety obniżone ryzyko popełnienia błędów i konieczności nawrotów dzięki ciągłej kontroli jakości zapewnienie wysokiej jakości systemu (obniżenie kosztów dalszego utrzymania) Wady narzuty dodatkowej pracy, czasu i kosztu realizacji silnie rozbudowana dokumentacja utrudniona adaptacja do zmiennych wymagań lub warunków prowadzenia projektu (jak w modelu kaskadowym) 14

Prototypowanie Wstępna analiza wymagań Konstrukcja prototypu Weryfikacja prototypu Określenie wymagań i konstrukcja właściwego systemu (model kaskadowy) Prototyp systemu Uproszczenie docelowego systemu, konstruowane przy względnie niedużym nakładzie środków i czasu 15

Zalety minimalizacja ryzyka błędnego określenia wymagań Wady dodatkowy koszt związany z konstrukcją prototypu problemy z dokonywaniem nawrotów do faz wcześniejszych jak w modelu kaskadowym Odmianą prototypowania jest programowanie odkrywcze 16

Czas Model przyrostowy Analiza wymagań Projektowanie Analiza wymagań Implementacja Projektowanie... fragment 1 Implementacja fragment 2... Podział systemu na mniejsze fragmenty i ich sukcesywna realizacja Czynności dotyczące odrębnych fragmentów mogą być wykonywane równolegle 17

Zalety lepszy kontakt z przyszłym użytkownikiem możliwość bardziej elastycznego reagowania na opóźnienia Wady nie zawsze możliwe rozbicie systemu na niezależne fragmenty możliwe kłopoty z późniejszą integracją fragmentów dodatkowe koszty tworzenia atrap brakujących fragmentów 18

Model iteracyjny iteracja 1 iteracja 2 Analiza wymagań Analiza wymagań... Projektowanie Projektowanie Implementacja Implementacja Testowanie Testowanie Czas Stopniowe dochodzenie do pożądanego rozwiązania Iteracje względnie krótkie Zazwyczaj w połączeniu z podejściem przyrostowym 19

Zalety mniejsze ryzyko, że końcowy system nie spełni wymagań użytkownika łatwiejsza adaptacja do zmian w wymaganiach lub w przyjętych założeniach projektowych Wady problem z zaplanowaniem procesu (określenie potrzebnej liczby iteracji i harmonogramu prac) większa czasochłonność (osiągniecie docelowej wersji systemu bardziej rozłożone w czasie) 20

Model spiralny Planowanie Analiza ryzyka Atestowanie Konstrukcja Bardzo ogólny model (Boehm 1988) Nacisk na analizę i redukcję ryzyka Pasuje do procesu tworzenia oprogramowania rynkowego 21

Planowanie Określenie celów, alternatyw i ograniczeń Analiza ryzyka Ocena możliwych rozwiązań oraz identyfikacja i oszacowanie ryzyka dla każdego z nich Konstrukcja Konstrukcja kolejnego przybliżenia systemu zgodnie z modelem kaskadowym Atestowanie Ocena przez klienta powstałej wersji systemu ocena negatywna kolejny cykl 22

Transformacje formalne Specyfikacja wymagań w języku formalnym Dowód poprawności Postać pośrednia Dowód poprawności Postać pośrednia Kod Bezbłędny! Propozycja teoretyczna Trudności specyfikowania i dowodzenia 23

Model Driven Architecture (MDA) CIM Model biznesowy (computation independent) Model zależny od platformy (platform specific) PIM PSM Kod iteracje Model niezależny od platformy (platform independent) Zapisanego w języku UML (Unified Modeling Language) Proces wytwórczy polega na transformacji jednego modelu w inny i na końcu w kod Proces iteracyjno-przyrostowy transformacje mogą być wykonywane wiele razy (najlepiej automatycznie) 24

Dwa słowa o UML... Diagram przypadków użycia Diagram klas Diagram stanów Diagram sekwencji Diagram komponentów Diagram wdrożenia 25

Zalety praca skupia się na abstrakcyjnych modelach (głównie PIM), co uniezależnia od platformy możliwość ponownego użycia fragmentów modelu PIM automatyzacja zmniejsza ryzyko popełnienia błędów i przyśpiesza proces tworzenia Wady transformacje są zadaniem trudnym i obecnie tylko nieznacznie wspieranym przez narzędzia problem zastosowania w przypadku rozwoju już istniejących systemów (odtworzenie modelu PIM na podstawie PSM) 26

Domain Specific Modeling (DSM) Wymagania użytkownika Modele zapisane w UML CIM Wymagania użytkownika PIM Model dziedzinowy PSM iteracje Kod Kod Model zapisany w języku dziedzinowym Model systemu jest zapisywany w dedykowanym języku (Domain Specific Modeling Language) język specyficzny dla danej dziedziny problemu Wchodzący w skład języka generator kodu przekształca model w kod całkowicie automatycznie 27

Źródło: www.metacase.com 28

Zalety Modelowanie oprogramowania przy użyciu pojęć z dziedziny (intuicyjny język modelowania) Możliwość szybkiego generowania kodu wysokiej jakości Przydatność w przypadku tzw. linii produktowych (software product line) Wady Konieczność opracowania języka dziedzinowego i generatora kodu Wymagane duże umiejętności projektanta języka Sprawdza się w przypadku gdy opracowany język będzie wykorzystywany wielokrotnie (np. różne wersje oprogramowanie urządzeń mobilnych) 29

Literatura Mariusz Flasiński, Zarządzanie projektami informatycznymi, Wydawnictwo Naukowe PWN (2006) Ian Sommerville, Inżynieria oprogramowania, WNT (2003) Andrzej Jaszkiewicz, Inżynieria oprogramowania, Wydawnictwo HELION (1997) Stanisław Szejko, Metody wytwarzania oprogramowania, Wydawnictwo MIKOM (2002) Alan Monnox, J2EE: Podstawy programowania aplikacji korporacyjnych, HELION (2006) Steven Kelly, Juha-Pekka Tolvanen, Domain-Specific Modeling: Enabling Full Code Generation, Wiley-Interscience (2008) 30