Dr Katarzyna Grzesiak-Koped

Dr Katarzyna Grzesiak-Koped 2 ● Tworzenie oprogramowania ● Najlepsze praktyki IO ● Inżynieria wymagao ● Technologia obiektowa i język UML ● Techni...
Author: Ludwik Jarosz
0 downloads 3 Views 4MB Size
Dr Katarzyna Grzesiak-Koped

2

● Tworzenie oprogramowania ● Najlepsze praktyki IO ● Inżynieria wymagao ● Technologia obiektowa i język UML ● Techniki IO ● Metodyki zwinne ● Refaktoryzacja ● Mierzenie oprogramowania ● Jakośd oprogramowania ● Programowanie strukturalne ● Modelowanie analityczne ● Wprowadzenie do testowania © Katarzyna Grzesiak-Koped 2010/2011

3

1. 2. 3. 4. 5. 6.

Podejście iteracyjne Zarządzanie wymaganiami Architektura modułowa (komponenty) Wizualizacja modelu Ciągła weryfikacja jakości Zarządzanie zmianami

© Katarzyna Grzesiak-Koped 2010/2011

4

1. 2. 3. 4. 5. 6.

Podejście iteracyjne Zarządzanie wymaganiami Architektura modułowa (komponenty) Wizualizacja modelu Ciągła weryfikacja jakości Zarządzanie zmianami

© Katarzyna Grzesiak-Koped 2010/2011

5

Analiza wymagao Projektowanie Kodowanie i testowanie modułów

Integracja podsystemów Testowanie systemu

● Opóźnia identyfikację ryzyka ● Trudno ocenid rzeczywisty czas do ukooczenia projektu ● Odsuwa w czasie integrację i agreguje testowanie ● Wyklucza wczesne wdrażanie ● Częste niezaplanowane iteracje

© Katarzyna Grzesiak-Koped 2010/2011

6

Wymagania Planowanie

Analiza i projektowanie Implementacja

Wstępne planowanie

Zarządzanie procesami

Ewaluacja

W wyniku każdej iteracji powstaje wykonywalny moduł

Testowanie

Wdrażanie

© Katarzyna Grzesiak-Koped 2010/2011

7

● Rozwiązanie ryzykownych kwestii zanim będą duże inwestycje ● Umożliwia wczesną ocenę przez klienta ● Ciągłe integrowanie i testowanie ● Realizacja zadania w małych, krótkoterminowych krokach ● Umożliwia częściowe wdrażanie produktu

© Katarzyna Grzesiak-Koped 2010/2011

8

wodospad iteracje

RYZYKO

CZAS © Katarzyna Grzesiak-Koped 2010/2011

9

1. 2. 3. 4. 5. 6.

Podejście iteracyjne Zarządzanie wymaganiami Architektura modułowa (komponenty) Wizualizacja modelu Ciągła weryfikacja jakości Zarządzanie zmianami

© Katarzyna Grzesiak-Koped 2010/2011

10

● Należy upewnid się, że: o Rozwiązujemy właściwy problem o Budujemy właściwy system

● Po przez systematyczne: o gromadzenie, o organizację, o dokumentowanie, o zarządzanie

● zmieniającymi się wymaganiami. © Katarzyna Grzesiak-Koped 2010/2011

11

● Analiza problemu ● Zrozumienie potrzeb klienta ● Zdefiniowanie systemu ● Ogarnięcie całości ● Ciągła weryfikacja definicji systemu ● Budowa właściwego systemu

© Katarzyna Grzesiak-Koped 2010/2011

12

Obszar problemu Potrzeby klienta Charakterystyka

Problem

Obszar rozwiązań

Wymagania (PU) Procedury testowania

produkt Projekt

Dokumentacja użytkownika

© Katarzyna Grzesiak-Koped 2010/2011

13

● Ocena wpływu zmiany wymagania na nasz projekt ● Ocena stopnia realizacji wymagania na podstawie przygotowanych procedur ● Ogarnąd cały projekt ● Zweryfikowad, czy wszystkie wymagania zostały zrealizowane ● Zweryfikowad, czy aplikacja robi tylko to, co miała robid ● Zarządzad zmianami © Katarzyna Grzesiak-Koped 2010/2011

14

1. 2. 3. 4. 5. 6.

Podejście iteracyjne Zarządzanie wymaganiami Architektura modułowa (komponenty) Wizualizacja modelu Ciągła weryfikacja jakości Zarządzanie zmianami

© Katarzyna Grzesiak-Koped 2010/2011

15

ZBIÓR ZASAD, DECYZJI, REGUŁ LUB WZORCÓW DLA DOWOLNEGO SYSTEMU, KTÓRY ZAPOBIEGA NIEPOTRZEBNEJ RADOSNEJ TWÓRCZOŚCI

PROJEKTANTÓW.

© Katarzyna Grzesiak-Koped 2010/2011

16

● Architektura oprogramowania określa najważniejsze elementy organizacji systemu: o Wybór elementów strukturalnych oraz ich interfejsów o Określenie zachowania systemu jako interakcji pomiędzy tymi elementami o Kompozycja elementów strukturalnych i behawioralnych w podsystemy

© Katarzyna Grzesiak-Koped 2010/2011

17

● Ogólna budowa pewnego rozwiązania informatycznego, którego elementem jest zarówno oprogramowanie, jak i pewna infrastruktura techniczna, sprzęt ● Łączy własności strukturalne (komponenty fizyczne) oraz funkcjonalne (zewnętrzne i wewnętrzne funkcje systemu) ● Opisuje składowe, powiązania między nimi oraz sposoby i kierunki przepływu danych © Katarzyna Grzesiak-Koped 2010/2011

18

● Architektura logiczna o Podział na logiczne fragmenty (moduły, pakiety, komponenty), które powinny współpracowad w celu realizacji wymagao o UML – komponent + interfejsy

● Architektura fizyczna o Określenie fizycznych jednostek (maszyn) oraz metod komunikacji o UML – węzeł

© Katarzyna Grzesiak-Koped 2010/2011

19

● Określenie architektury, to podjęcie strategicznych decyzji, określenie reguł i wzorców determinujących projektowanie i konstrukcję – FUNDAMENTALNE DECYZJE Implementacja Projekt Architektura

© Katarzyna Grzesiak-Koped 2010/2011

20

● Elastyczna o Spełnia bieżące i przyszłe wymagania o Umożliwia rozbudowę o Umożliwia ponowne użycie o Enkapsuluje zależne części systemu

● Modułowa o Ponowne użycie i modyfikacja modułów o Wybór z komercyjnie dostępnych komponentów o Inkrementacyjny rozwój oprogramowania

© Katarzyna Grzesiak-Koped 2010/2011

21

Nietrywialna, prawie niezależna i wymienna część systemu, która realizuje zdefiniowaną funkcjonalność.

© Katarzyna Grzesiak-Koped 2010/2011

22

● Umożliwia ponowne wykorzystanie o Komponentów o Architektury

● Podstawa do zarządzania projektem o Planowanie o Ludzie o Dostarczanie produktu

● Kontrola o Zarządzanie złożonym systemem o Integracja © Katarzyna Grzesiak-Koped 2010/2011

23

1. 2. 3. 4. 5. 6.

Podejście iteracyjne Zarządzanie wymaganiami Architektura modułowa (komponenty) Wizualizacja modelu Ciągła weryfikacja jakości Zarządzanie zmianami

© Katarzyna Grzesiak-Koped 2010/2011

24

● ● ● ●

Uchwycenie struktury i zachowania Pokazanie zależności między elementami Utrzymanie spójnego projektu i implementacji Ukrywanie oraz wyróżnianie szczegółów kiedy trzeba ● Promuje jeden wspólny język wymiany informacji o UML: jeden język dla wszystkich osób związanych z tworzeniem projektu

© Katarzyna Grzesiak-Koped 2010/2011

25

● Język do specyfikowania, wizualizowania, konstruowania i dokumentowania tworów oprogramowania i modelowania biznesu ● Reprezentuje zbiór najlepszych praktyk inżynierskich które dowiodły przydatności przy modelowaniu dużych i skomplikowanych systemów

© Katarzyna Grzesiak-Koped 2010/2011

26

● Do połowy lat 90 – około 50 metod ● Potrzeba unifikacji ● `94 Booch, Jacobson i Rumbaugh z Rational Software ● `95 Unifikacja OMT, Boocha i OOSE w UML ● `96 standaryzacja UML pod skrzydłami OMG (http://www.omg.org) [wersje 1.1,..,1.5] ● 2005 OMG publikuje UML 2.0 ● Maj 2010 UML 2.3 © Katarzyna Grzesiak-Koped 2010/2011

27

● Object Management Group (OMG) ● Hewlett-Packard Company ● IBM Corporation (Rational Software Corporation) ● Microsoft Corporation ● Oracle Corporation ● i inne mniej znane...

© Katarzyna Grzesiak-Koped 2010/2011

28

Computer Aided Software Engineering

● IMB Rational Rose/IMB Rational Software Architect ● Microsoft Visio ● Poseidon for UML ● Sybase PowerDesigner ● Visual Paradigm ● Umbrello ● Eclipse ● NetBeans ● I wiele innych freeware, shareware i komercyjnych © Katarzyna Grzesiak-Koped 2010/2011

29

● Gotowy wizualny język modelowania do budowy i wymiany modeli ● Niezależny od języków programowania i procesów tworzenia ● Udostępnia podstawy formalne do zrozumienia języka modelowania ● Zachęca do wzrostu rynku narzędzi OO ● Wspomaga wysoko-poziomowe rozwiązania ● Integruje najlepsze praktyki © Katarzyna Grzesiak-Koped 2010/2011

30

● Wiele punktów widzenia ● Precyzyjna syntaksa i semantyka Use-Case Diagrams

Sequence Diagrams

Class Diagrams

Models

Communication Diagrams State Machine Diagrams

Activity Diagrams

© Katarzyna Grzesiak-Koped 2010/2011

Object Diagrams

Component Diagrams

Deployment Diagrams 31

DIAGRAMY

© Katarzyna Grzesiak-Koped 2010/2011

32

© Katarzyna Grzesiak-Koped 2010/2011

33

1. 2. 3. 4. 5. 6.

Podejście iteracyjne Zarządzanie wymaganiami Architektura modułowa (komponenty) Wizualizacja modelu Ciągła weryfikacja jakości Zarządzanie zmianami

© Katarzyna Grzesiak-Koped 2010/2011

34

Charakterystyka wyniku produkcji oprogramowania określona na podstawie tego, czy produkt spełnia lub przewyższa uzgodnione wymagania oraz czy zostało ono wytworzone zgodnie z ustalonym procesem, co jest mierzone zgodnie z ustalonymi kryteriami .

© Katarzyna Grzesiak-Koped 2010/2011

35

● Widoczna ● Ukryta ● Testy to za mało ● Oceny użytkownika o Inspekcje modeli o Inspekcje kodu

● Kontrola jakości w każdej iteracji!

© Katarzyna Grzesiak-Koped 2010/2011

36

● Wady oprogramowania są od 100 do 1000 razy droższe do zidentyfikowania i do naprawienia po wdrożeniu o Koszt naprawy błędów o Koszt straconych możliwości o Koszt straconych klientów

© Katarzyna Grzesiak-Koped 2010/2011

37

Czy osiągnięto zadawalającą niezawodnośd?

Czy aplikacja robi to co trzeba?

Czy system działa przy rzeczywistym obciążeniu?

© Katarzyna Grzesiak-Koped 2010/2011

38

1. 2. 3. 4. 5. 6.

Podejście iteracyjne Zarządzanie wymaganiami Architektura modułowa (komponenty) Wizualizacja modelu Ciągła weryfikacja jakości Zarządzanie zmianami

© Katarzyna Grzesiak-Koped 2010/2011

39

● Zmiany ● Podział pracy w zespole ● Integrację ● Równoległe prace

© Katarzyna Grzesiak-Koped 2010/2011

40

● Zarządzanie zgłoszonymi zmianami o Formalny proces zgłaszania zmian i oceny ich wpływu na projekt o Blokujemy „przeciekanie” nowych wymagao

● Raportowanie stanu konfiguracji o Mierzenie rodzaju i liczby błędów

● Zarządzanie konfiguracją o Narzędzia do wersjonowania i pracy grupowej

© Katarzyna Grzesiak-Koped 2010/2011

41

● Śledzenie zmian o Formalny proces realizacji zmian

● Wybór wersji i produkowanie systemu o Automatyzacja kompilacji, testowania, pakietowania i rozprowadzania

© Katarzyna Grzesiak-Koped 2010/2011

42

● Zarządzanie konfiguracją ● Zarządzanie katalogami, plikami i zmianami ● Architektura o Scentarlizowana klient-serwer o Rozproszona P2P

● Organizuje pracę w zespole

© Katarzyna Grzesiak-Koped 2010/2011

43

● Commit (checkin) ● Checkout ● Trunk (baseline, mainline) 7 ● Branch 2

1

6

3

4

5

© Katarzyna Grzesiak-Koped 2010/2011

10

8

9

11

44

© Katarzyna Grzesiak-Koped 2010/2011

45

© Katarzyna Grzesiak-Koped 2010/2011

46

1. 2. 3. 4. 5. 6. 7.

Podejście iteracyjne Zarządzanie wymaganiami Architektura modułowa (komponenty) Wizualizacja modelu Ciągła weryfikacja jakości Zarządzanie zmianami ?

© Katarzyna Grzesiak-Koped 2010/2011

47

● Poziomy ponownego użycia o Klasy o Wzorce projektowe o Komponenty o Interfejsy i wzorce analityczne o Wzorce architektury o Wzorce wymagao

● Wyższy poziom  trudniej wykorzystad ● Wyższy poziom  większe korzyści © Katarzyna Grzesiak-Koped 2010/2011

48

49