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

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

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

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

Wykład 1 Inżynieria Oprogramowania

Wprowadzenie, konsekwencje stosowania modelowania w projektach programistycznych Wykład1

Wprowadzenie, konsekwencje stosowania modelowania w projektach programistycznych Wykład1

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

Etapy życia oprogramowania

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

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Prowadzenie projektu programistycznego. Modele tworzenia oprogramowania. Programowanie kaskadowe i zwinne. Wykład 9

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

Wprowadzenie do inżynierii oprogramowania. Wykładowca Dr inż. Zofia Kruczkiewicz

Przedsięwzięcia Informatyczne w Zarządzaniu

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

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

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

PRZEWODNIK PO PRZEDMIOCIE

WPROWADZENIE DO UML-a

Zakres wykładu. Podstawy InŜynierii Oprogramowania

Spis treúci. 1. Wprowadzenie... 13

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

Narzędzia CASE dla.net. Łukasz Popiel

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

RUP. Rational Unified Process

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

Opis metodyki i procesu produkcji oprogramowania

Podstawy programowania III WYKŁAD 4

Inżynieria oprogramowania. Jan Magott

Wstęp do zarządzania projektami

Zasady organizacji projektów informatycznych

Egzamin / zaliczenie na ocenę*

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

Wstęp do zarządzania projektami

Projekt systemu informatycznego

Inżynieria oprogramowania (Software Engineering)

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

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

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

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

PRZEWODNIK PO PRZEDMIOCIE

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

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

Podstawy modelowania programów Kod przedmiotu

Wzorce projektowe i refaktoryzacja

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

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

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

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

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Tworzenie i śledzenie harmonogramów. Definicje i metody weryfikacji i walidacji

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

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

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

INŻYNIERIA OPROGRAMOWANIA

Diagramy czynności Na podstawie UML 2.0 Tutorial

Projektowanie oprogramowania

Inżynieria oprogramowania II

Inżynieria oprogramowania - opis przedmiotu

Procesy wytwarzania oprogramowania Specyfikacja i projektowanie oprogramowania

Analiza i projektowanie obiektowe w UML Kod przedmiotu

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

PRZEWODNIK PO PRZEDMIOCIE

Oceny z prezentacji INKU011S. Zofia Kruczkiewicz

Tworzenie i śledzenie harmonogramów Wykładowca Dr inż. Zofia Kruczkiewicz

Rozpoczęcie, inicjacja (ang. inception

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

tel. (+48 81) /22 fax (+48 81) Wykład Ćwiczenia Laboratorium Projekt

Wstęp do zarządzania projektami

Feature Driven Development

Warstwa prezentacji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2

Studia podyplomowe PROGRAM NAUCZANIA PLAN STUDIÓW

Kuchta Jarosław Jakość Oprogramowania. Modele dojrzałości procesu wytwarzania oprogramowania CMM/CMMI

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

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

Wykład 3 Wymagania. MIS n Inżynieria oprogramowania Październik Kazimierz Michalik Akademia Górniczo-Hutnicza im. S. Staszica w Krakowie

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

STUDIA NIESTACJONARNE I STOPNIA Przedmioty kierunkowe

Dr Katarzyna Grzesiak-Koped

STUDIA STACJONARNE I STOPNIA Przedmioty kierunkowe

Wytwarzanie oprogramowania

Programowanie zespołowe

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

Projekt Kompetencyjny - założenia

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

Dokument Detaliczny Projektu

Modelowanie i analiza systemów informatycznych

Rozwiązanie Compuware dynatrace

Inżynieria oprogramowania I

Specyfikowanie wymagań przypadki użycia

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop Spis treści. Wstęp 15.

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

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

PRZEWODNIK PO PRZEDMIOCIE

Transkrypt:

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

Literatura 1. Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, 2004 2. Stephen H. Kan, Metryki i modele w inżynierii jakości oprogramowania, Mikom, 2006 3. Jacobson, Booch, Rumbaung, The Unified Software Development Process,Addison Wesley, 1999 4. Shalloway A.,Trott James R.,Projektowanie zorientowane obiektowo. Wzorce projektowe. Gliwice, Helion, 2005 2

Elementy tworzenia oprogramowania struktura [3] Ludzie Proces Wzorzec Uczestnicy Projekt Rezultat Produkt Automatyzacja Narzędzia 3

Elementy tworzenia oprogramowania - Ludzie: uczestnicy struktura Produkt: rzeczy tworzone podczas cyklu życia oprogramowania: modele, kod źródłowy, kod wynikowy, dokumentacja Proces (tworzenia oprogramowania): wzorzec realizacji produktu (wymagania użytkownika oprogramowanie) Projekt (przedsięwzięcie): organizacja tworzenia produktu Narzędzia: sprzęt i oprogramowanie umożliwiające zautomatyzowanie procesu. 4

Artefakt Artefakt reprezentuje różne rodzaje informacji tworzonej, produkowanej, zmienianej lub używanej podczas cyklu życia oprogramowania. Są to artefakty inżynierskie związane: - z procesem wytwórczym (wymagania, analiza, projektowanie, programowanie, testy) - z kierowaniem projektu (narzędzia programistyczne, kompilatory, komputery, programiści, architekci, testerzy, handlowcy, administratorzy) 5

Ludzie [3] 6

Ludzie Użytkownicy Eksperci Klienci Kierownik projektu Projekt Analitycy Testujący Projektanci 7

Produkt [1] 8

Produkt Co to jest? Kto się tym zajmuje? Dlaczego to jest ważne? Jak to się robi? Co jest produktem roboczym? 9

Produkt 1. Modele, kod źródłowy, kod wynikowy, dokumentacja 2. Podsystemy 3. Diagramy: klas, interakcji, kooperacji, stanów 4. Wymagania, testy, produkcja, instalacja 5. Wytworzone oprogramowanie 6. Jest to system złożony z artefaktów związanych z procesem wytwórczym (wymagania, analiza, projektowanie, programowanie, testy)

Zmieniająca się rola oprogramowania Oprogramowanie jest produktem i mechanizmem jego dostarczania: Dlaczego trwa tak długo? Dlaczego tyle kosztuje? Dlaczego zawiera błędy? Nadal brak precyzyjnego pomiaru oprogramowania, analizowania procesu powstawania oprogramowania? 11

Oprogramowanie byt logiczny Oprogramowanie to: rozkazy, których wykonanie pozwala wypełnić określone funkcje w oczekiwany sposób struktury danych, które umożliwiają programom manipulowanie informacjami oraz dokumenty, które opisują działanie i sposób użytkowania programów. 12

Cechy charakterystyczne oprogramowania Oprogramowanie jest wytwarzane, ale nie jest fizycznie konstruowane (np. tak jak sprzęt) Oprogramowanie się nie zużywa, ale z czasem niszczeje Korzystanie z gotowych komponentów, ale większość jest tworzona od nowa 13

Dziedziny zastosowań oprogramowania Oprogramowanie systemowe Systemy czasu rzeczywistego Systemy informacyjne dla przedsiębiorstw Oprogramowanie inżynierskie i naukowe Systemy wbudowane Oprogramowanie komputerów osobistych Oprogramowanie internetowe Sztuczna inteligencja 14

Mity - ignorowanie zasad inżynierii oprogramowania Mity kierownictwa Standardy i procedury zapewniają tworzenie dobrego oprogramowania Dobre oprogramowanie narzędziowe działające na dobrym sprzęcie gwarantuje wykonanie dobrych programów Jeśli prace się opóźniają, wystarczy przydzielić do zadania więcej programistów Jeżeli oprogramowanie wykonuje inna firma (outsourcing), to można pozbyć się problemów 15

Mity klientów Ogólne określenie oczekiwań klienta wystarczy do rozpoczęcia prac, a szczegóły można dopracować później Wymaganie wobec systemu wciąż się zmienia. Ale to nie problem, bo oprogramowanie jest elastyczne i łatwo je zmienić. 16

Mity informatyków Po napisaniu programu i uruchomieniu go praca jest wykonana Dopóki program nie działa, nie da się ocenić jego jakości Jedynym wynikiem pracy nad oprogramowaniem jest działający program komputerowy Inżynieria oprogramowania zmusi nas do tworzenia przepastnych, zbędnych dokumentów i nieuchronnie spowolni pracę. 17

Produkt Modele [3] Modele: Abstrakcja systemu Przedstawianie różnych perspektyw systemu Związki między modelami Model use-case przypadków użycia Model analizy Model projektu Model wdrożenia rozmieszczenia Model implementacji Model testów 18

Produkt - warstwy aplikacji (Java EE) 19

Produkt Pięciowarstwowy model logicznego rozdzielania zadań aplikacji (wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.) Warstwa klienta Klienci aplikacji, aplety, aplikacje i inne elementy z graficznym interfejsem użytkownika Warstwa prezentacji Strony JSP, serwlety i inne elementy interfejsu użytkownika Interakcja z użytkownikiem, urządzenia i prezentacja interfejsu użytkownika Logowanie, zarządzanie sesją, tworzenie zawartości, formatowania i dostarczanie Warstwa biznesowa Komponenty EJB i inne obiekty biznesowe Logika biznesowa, transakcje, dane i usługi Warstwa integracji JMS, JDBC, konektory i połączenia z systemami zewnetrznymi Adaptery zasobów, systemy zewnętrzne, mechanizmy zasobów, przepływ sterowania Warstwa zasobów Bazy danych, systemy zewnętrzne i pozostałe zasoby Zasoby, dane i usługi zewnętrzne 20

Produkt diagramy UML wspierające zunifikowany iteracyjno - przyrostowy proces tworzenia oprogramowania [3] Diagramy modelowania struktury 1.1. Diagramy pakietów 1.2. Diagramy klas 1.3. Diagramy obiektów 1.4. Diagramy mieszane 1.5. Diagramy komponentów 1.6. Diagramy wdrożenia 21

Diagramy UML modelowania zachowania 2.1. Diagramy przypadków użycia 2.2. Diagramy aktywności 2.3. Diagramy stanów 2.4. Diagramy komunikacji 2.5. Diagramy sekwencji 2.6. Diagramy czasu 2.7. Diagramy interakcji 22

praca zespołowa Rola diagramów UML 2 pokonanie złożoności produktu formalne, precyzyjne prezentowanie produktu tworzenie wzorca produktu możliwość testowania oprogramowania we wczesnym stadium jego tworzenia 23

Narzędzia [1] 24

Narzędzia Automatyzacja procesu Standaryzacja procesu i produktu Wspomaganie całego cyklu życia oprogramowania: wymagania, wizualne modelowanie i projektowanie, programowanie, testowanie 25

Proces tworzenia oprogramowania - proces wytwórczy [1] 26

Proces tworzenia oprogramowania Kto robi? Co robi? Kiedy robi? Jak robi? 27

Proces tworzenia oprogramowania Technologie Narzędzia Ludzie Wzorce organizacyjne 28

Proces tworzenia oprogramowania 1) Proces tworzenia oprogramowania jest definicją kompletnego zbioru aktywności potrzebnych do odwzorowania wymagań użytkownika w zbiór artefaktów, które reprezentują produkt (oprogramowanie) 2) Obejmuje czynniki: Czynniki organizacyjne Czynniki dziedzinowe Czynniki cyklu życia Czynniki techniczne 29

Model procesu wytwarzania oprogramowania - czyli model cyklu życia oprogramowania [3], [4] Tworzenie technicznego systemu informacyjnego jest powiązane z: budową oprogramowania: co i jak wykonać? kiedy wykonać? wdrażaniem oprogramowania Modelowanie struktury i dynamiki systemu Implementacja systemu, struktury i dynamiki generowanie kodu Perspektywa koncepcji co należy wykonać? Perspektywa specyfikacji jak należy używać? Perspektywa implementacji jak należy wykonać? model problemu np. przedsiębiorstwa wymagania analiza (model konceptualny ) testy modelu projektowanie (model projektowy: architektura sprzętu i oprogramowania; dostęp użytkownika; przechowywanie danych) testy projektu programowanie (specyfikacja programu : deklaracje, definicje; dodatkowe struktury danych: struktury pojemnikowe, pliki, bazy danych) testy oprogramowania wdrażanie testy wdrażania 30

Definicje inżynierii oprogramowania [Fritz Bauer] Opracowanie sprawdzonych zasad inżynierii oraz ich zastosowanie w celu wytworzenia niedrogiego i niezawodnego oprogramowania, działającego efektywnie na rzeczywistych maszynach [IEEE 1993] (1)Zastosowanie systematycznego, zdyscyplinowanego, poddającego się ocenie ilościowej, podejścia do wytwarzania, stosowania i pielęgnacji oprogramowania, czyli wykorzystanie technik tradycyjnej inżynierii w informatyce. (2) Dziedzina wiedzy zajmująca się badaniem metod jak w p. (1) 31

Warstwowe podejście w inżynierii oprogramowania Narzędzia (środowisko CASE rozwiązania sprzętowe, programy komputerowe i bazy danych) Metody (modelowanie, projektowanie, programowanie, testowanie i pielęgnacja) Proces wytwórczy (spaja wszystkie elementy należące do kolejnych warstw, umożliwiając racjonalne i terminowe wytwarzanie oprogramowania) Dbanie o jakość (kompleksowe zarządzanie jakością) 32

Ogólne spojrzenie na inżynierię oprogramowania 1) Jaki problem należy rozwiązać 2) Jakie cechy produktu umożliwiają rozwiązanie problemu 3) Jak ma wyglądać produkt (rozwiązanie problemu) 4) Jak skonstruować taki produkt 5) Jak wykrywać błędy w projekcie lub podczas konstrukcji produktu 6) Jak obsługiwać i pielęgnować gotowy produkt i jak uwzględniać uwagi, reklamacje i żądania jego użytkowników: poprawianie, adaptowanie, rozszerzanie, zapobieganie 33

Proces wytwórczy Uniwersalny schemat procesu wytwórczego Czynności przekrojowe Podstawowe czynności wytwórcze Zestawy zadań Zadania Kamienie milowe, produkty robocze Punkty kontroli jakości 34

Uzupełnienie faz procesu wytwórczego - zestaw czynności przekrojowych, wykonywanych przez cały czas działania projektu 1) Zarządzanie przedsięwzięciem programistycznym i śledzenie jego przebiegu 2) Formalne przeglądy techniczne 3) Zapewniane jakości 4) Zarządzanie konfiguracją 5) Przygotowanie i drukowanie dokumentacji 6) Zarządzanie elementami oprogramowania nadającymi się do wielokrotnego użycia 7) Pomiary 8) Panowanie nad ryzykiem 35

Poziomy dojrzałości procesów wytwórczych CMM (capability maturity model) ustalone przez SEI (Software Engineering Institute ) Poziom 1 - początkowy Poziom2 - powtarzalny Poziom 3 - zdefiniowany Poziom 4 - zarządzany Poziom 5 - optymalizowany 36

Opis kluczowego elementu procesu (KPA key process areas) każdego poziomu dojrzałości procesu, związanego z kluczowymi praktykami (key practices) kontrolowanymi za pomocą kluczowych wskaźników (key indicators) 1) Cele 2) Zobowiązania podjęte do spełnienia celów 3) Możliwości konieczne do spełniania zobowiązań 4) Konkretne czynności 5) Metody monitorowania przebiegu prac 6) Metody sprawdzania 37

5 poziomów dojrzałości procesów wytwórczych CMM (capability maturity model) ustalone przez SEI (Software Engineering Institute). Każdy poziom dojrzałości procesu jest powiązany z listą kluczowych elementów procesu (razem 18 KPA) 1) Poziom 1- początkowy: chaotyczny 2) Poziom2 powtarzalny: 1. Zarządzanie konfiguracją 2. Zapewnianie jakości 3. Zarządzanie współpracą z podwykonawcami 4. Śledzenie i nadzór nad przedsięwzięciem programistycznym 5. Planowanie przedsięwzięcia programistycznego 6. Zarządzanie wymaganiami 38

3) Poziom 3- zdefiniowany (po osiągnięciu poziomu 2) 7. Wewnętrzne recenzje i przeglądy 8. Zarządzanie współpracą między zespołami 9. Zastosowanie metod inżynierii oprogramowania podczas tworzenie produktu 10. Zintegrowanie zarządzanie oprogramowaniem 11. Program szkoleń 12. Określenie schematu procesu wytwórczego 13. Duże znaczenie procesu wytwórczego w działalności firm 39

4) Poziom 4 zarządzany (po osiągnięciu poziomu 3) 14. Zarządzanie jakością oprogramowania 15. Zarządzanie procesami określone ilościowo 5) Poziom 5 optymalizowany (po osiągnięciu poziomu 4) 16. Zarządzanie zmianami procesu 17. Zarządzanie zmianami technologicznymi 18. Zapobieganie błędom 40

Modele procesów wytwórczych 1. Sekwencyjny model liniowy 2. Model oparty na prototypowaniu 3. Model szybkiej rozbudowy aplikacji 4. Modele ewolucyjne Model przyrostowy Model spiralny Model spiralny WINWIN Model równoległy 5. Model oparty na metodach formalnych 6. Model oparty na komponentach 7. Techniki czwartej generacji 41

Technologia procesu wytwórczego Narzędzia do analizy procesu, organizowania zadań, kontrolowania i monitorowania postępu prac, zarządzanie techniczną jakością oprogramowania, 42

Produkt a proces wytwórczy (dopasowanie procesu do produktu) 1) Wadliwy proces może spowodować powstanie produktu o niskiej jakości 2) Dualna natura procesu i produktu wspierająca wieloużywalność produktu 3) Czerpanie satysfakcji z faktu tworzenia i jego rezultatu 4) Ścisły związek między procesem i produktem zachęca twórczych ludzi do pracy 43

Projekt wstęp do zarządzania projektami programistycznymi [1], [2] 44

Projekt = przedsięwzięcie Główny, organizacyjny element powiązany z: Ludzie, Produkt, Proces Pojęcia: 1. Wykonalność projektu 2. Zarządzanie ryzykiem 3. Struktura grup projektowych 4. Szeregowanie zadań projektowych 5. Zrozumiałość projektu 6. Sensowność działań w projekcie Cechy projektu: 1. Sekwencja zmian w projekcie 2. Seria iteracji 3. Wzorzec organizacyjny 45

Zarządzanie projektem - wstęp 1) Co to jest ogólny plan pracy nad oprogramowaniem 2) Kto się tym zajmuje Informatycy, kierownicy i klienci 3) Dlaczego jest to ważne bo wprowadza stabilność, przewidywalność i uporządkowanie 4) Jak to się robi (Ludzie, Produkt, Proces, Projekt) np. postać projektu zależy od rodzaju wytwarzanego oprogramowania (produktu) 5) Co jest produktem roboczym programy, dokumenty i dane 6) Jak to zrobić dobrze można ocenić dojrzałość projektu. Jego jakość potwierdza wysoka jakość stworzonego produktu, jego zdolność do długotrwałego utrzymania się na rynku i terminowość procesu 46

Zarządzanie projektem: planowanie, organizowanie, monitorowanie i kontrolowanie 1) Jak zarządzać pracownikami, procesami i problemami podczas tworzenia oprogramowania? 2) Czym są miary i jak ich używać do zarządzania projektami i procesami wytwórczymi? 3) Jak sporządzać wiarygodne prognozy kosztów pracochłonności i czasu trwania prac? 4) Jakimi metodami można formalnie ocenić zagrożenia, które mogą mieć wpływ na powodzenie projektu? 47

4) Jak wybrać zadania, które trzeba zrealizować, aby stworzyć nowy produkt? 5) Jak sporządzić harmonogram? 6) Jak zdefiniować jakość oprogramowania, aby można było ją kontrolować? 7) Na czym polega zapewnianie jakości? 8) Dlaczego formalne przeglądy techniczne są tak ważne? 9) Jak zarządzać zmianami w czasie procesu wytwórczego i po oddaniu produktu do użytku? 48

Dodatek (Modelowanie i analiza systemów informatycznych) Przykład procesu wytwórczego [3] 49

Zunifikowany iteracyjno- przyrostowy proces tworzenia oprogramowania kiedy? Przepływ działań Modelowanie przedsiębiorstwa Etap1: Początek Etap2: Opracowanie Budowa Zakończenie Wymagania Analiza, Projektowanie Programowanie Testowanie Wdrożenie Zarządzanie zmianami Zarządzanie projektem Środowisko 1-a 2-a - - - - - n-1 n Iteracje (czas ) 50

Przepływy czynności Modelowanie przedsiębiorstwa opis dynamiki i struktury przedsiębiorstwa Wymagania zapisanie wymagań metodą opartą na przypadkach użycia Analiza i projektowanie zapisanie różnych perspektyw architektonicznych Implementacja tworzenie oprogramowania, testowanie modułów, scalanie systemu Testowanie opisanie danych testowych, procedur i metryk poprawności Wdrożenie ustalenie konfiguracji gotowego systemu Zarządzanie zmianami panowanie nad zmianami i dbanie o spójność elementów systemu Zarządzanie projektem - opisane różnych strategii prowadzenia procesu iteracyjnego Określenie środowiska opisanie struktury niezbędnej do opracowania systemu 51

Co i jak wykonać? Perspektywy projektowania obiektowych systemów informacyjnych [4] koncepcji ( co obiekty powinny robić?) (model analizy) specyfikacji interfejsów (model projektowy) ( jak używać obiektów? ) implementacji ( w jaki sposób zaimplementować interfejs?) (implementacja) tworzenia i zarządzania obiektami (implementacja) (obiekt A w roli fabryki obiektów tworzy obiekt B i/lub zarządza obiektem) używania obiektów (implementacja) ( obiekt A tylko używa obiektu B nie może go jednocześnie tworzyć; opiera się na hermetyzacji i polimorfiźmie obiektu B ) 52

Perspektywy rozumienia obiektów identyfikacji obiektów [4] Perspektywa koncepcji (modelu konceptualnego) - obiekt jest zbiorem różnego rodzaju odpowiedzialności Perspektywa specyfikacji (modelu projektowego) - obiekt jest zbiorem metod (zachowań), które mogą być wywoływane przez metody tego obiektu lub innych obiektów Perspektywa implementacji (kodu źródłowego) - obiekt składa się z kodu metod i danych oraz interakcji między nimi 53

Perspektywy skalowania systemu tworzenia, zarządzania i używania obiektów [4] Perspektywa tworzenia i zarządzania obiektami Zmiany w implementacji obiektów dotyczą obiektów czyli fabryk obiektów (tworzących te obiekty i zarządzających tworzeniem tych obiektów) Używanie obiektów Zmiana implementacji obiektów nie zmienia implementacji obiektów, które używają zmieniane obiekty 54

Metoda identyfikacji obiektów i klas [4] Analiza wspólności Perspektywa koncepcji Klasa abstrakcyjna +Metody() Analiza zmienności Perspektywa specyfikacji Perspektywa implementacji Klasa konkretna1 +Metody() Klasa konkretna2 +Metody() Związek między perspektywą specyfikacji, koncepcji i implementacji 55

Zależności między analizą, projektowaniem i implementacją [4] Związek między perspektywą koncepcji i specyfikacji Perspektywa specyfikacji określa interfejs potrzebny do obsługi wszystkich przypadków danego problemu (czyli część wspólną określoną przez perspektywę koncepcji) Związek pomiędzy perspektywą specyfikacji i implementacji Biorąc pod uwagę określoną specyfikację ustala się, w jaki sposób należy zaimplementować poszczególne przypadki (czyli część zmienną) 56

Model p ruse-case z y p a d k ó w u ż y c i a Model analizy Model projektu Model r o z mwdrożenia i e s z c z e n i a Model implementacji Model testów 2.1, 2.2 1.1, 1.2, 1.3, 2.5, 2.7, 2.3 wyższy poziom abstrakcji niż w modelu projektowym 1.1, 1.2, 1.3, 2.5, 2.7, 2.3-więcej szczegółów niż w modelu analizy (niższy poziom abstrakcji) 1.6, 1.5 1.2, 1.5 1.2, 2.2 Numery diagramów UML: slajdy 21 i 22