Dr Katarzyna Grzesiak-Koped

Dr Katarzyna Grzesiak-Koped Wykład z Inżynierii Oprogramowania kooczy się oceną, która jest liczona jako ocena zaliczeniowa z przedmiotu i wchodzi w...
7 downloads 0 Views 3MB Size
Dr Katarzyna Grzesiak-Koped

Wykład z Inżynierii Oprogramowania kooczy się oceną, która jest liczona jako ocena zaliczeniowa z przedmiotu i wchodzi w skład średniej ocen ze studiów. Podstawą uzyskania zaliczenia z wykładu jest: 1. obecnośd na wykładach: można opuścid 4 wykłady, bądź 2. zaliczenie testu na zakooczenie semestru. W obu powyższych przypadkach jako ocena koocowa zostanie przepisana ocena zaliczeniowa z dwiczeo.

© Katarzyna Grzesiak-Koped 2011/2012

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 2011/2012

3

● R. S. Pressman, Praktyczne podejście do inżynierii oprogramowania, WNT 2004 ● D. Hamlet & J. Maybee, Podstawy techniczne inżynierii oprogramowania, WNT 2003 ● G. Booch, J. Rumbaugh, I. Jacobson, UML przewodnik użytkownika, WNT 2002 ● M. Fowler & K. Scott, UML w kropelce. Wersja 2.0, LT&P 2005

© Katarzyna Grzesiak-Koped 2011/2012

4

5

● 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 2011/2012

6

● Raczej byt logiczny niż fizyczny o Wytwarzany a nie fizycznie konstruowane o Niewidoczny

● Nie zużywa się tak, jak byt fizyczny ● Ciągła zmiana wymagao (żyje!) ● Złożonośd o Zarówno produkt, jak i proces

© Katarzyna Grzesiak-Koped 2011/2012

7

● Wytwarzany przez projektantów, programistów i innych  ● Składa się z: o programów wykonywanych na komputerach każdej wielkości i rodzaju o dokumentów elektronicznych i drukowanych o danych

© Katarzyna Grzesiak-Koped 2011/2012

8

1. Zastosowanie systematycznego, zdyscyplinowanego, poddającego się ocenie ilościowej podejścia do wytwarzania, stosowania i pielęgnacji oprogramowania, czyli wykorzystanie tradycyjnej inżynierii w informatyce. 2. Dziedzina wiedzy zajmująca się badaniem metod jak w (1). IEEE © Katarzyna Grzesiak-Koped 2011/2012

9

http://www.prashantmhatre.com/fun/software-engineering-classics/ © Katarzyna Grzesiak-Koped 2011/2012

10

ŚRODOWISKO

KOD

@ ZAMAWIAJĄCY MODEL ŚRODOWISKA

@

Employee - name - employee id : int - bank info : BankInformation - social security number - address - phone number - email - payment method

PROGRAMISTA Timecard - hours worked - pay period

+ // is payday?() + // get pay amount() + // get payment method() + // get bank info() + // calculatePay() + // add() + // get Employee ID() + // getTimecard() + // add() + // getEmployeeName()

+ // get timecard info() + // update timecard() + // new()

MODEL KODU HourlyEmployee - hourlyRate + + // getHourlyRate()

Paycheck

- amount + // create with amount() + // getAmount() + // getEmployee()

SalariedEmployee - annualSalary + + // getAnnualSalary()

CommissionedEmployee

PurchaseOrder

- commissionRate + + // getPurchaseOrders() + + // getCommissionRate()

1

© Katarzyna Grzesiak-Koped 2011/2012

0..*

+ // get PO info()

11

Jest pewnym uproszczeniem rzeczywistości.

© Katarzyna Grzesiak-Koped 2011/2012

12

● Lepiej zrozumied system, który rozwijamy ● Pokazanie zależności między elementami ● Budujemy modele skomplikowanych systemów, ponieważ nie jesteśmy w stanie ogarnąd ich w całości

© Katarzyna Grzesiak-Koped 2011/2012

13

● Realizuje 4 cele: o Pomaga w wizualizacji o Pozwala wyspecyfikowad strukturę i zachowanie systemu o Daje pewien wzorzec wyznaczający nam kolejne kroki budowy aplikacji o Dokumentuje podjęte przez nas decyzje

© Katarzyna Grzesiak-Koped 2011/2012

14

● Oprogramowanie może robid wszystko (prawie ) ● Jest sztuczne i logiczne ● Chyba najbardziej złożone dzieło człowieka i najbardziej złożony proces wytwarzania ● Młody i gwałtownie rozwijający się przemysł

© Katarzyna Grzesiak-Koped 2011/2012

15

● Jedna z najbardziej stresujących sytuacji ● Syndrom pierwszych dni po przeprowadzce o Gdzie jest moja szczoteczka do zębów? o Dlaczego nie przyszedł wyciąg z konta? o Jak odebrad awizowaną przesyłkę?

● Jak uniknąd syndromu? o Przygotowad szczegółowy plan działao o Wynająd profesjonalną firmę

© Katarzyna Grzesiak-Koped 2011/2012

16

● Nowy projekt to przeprowadzka o Nowa dziedzina i nowe wymagania o Nowa technologia o Nowy klient i nowi współpracownicy

● Syndrom nowego projektu o Jak rozmawiad z klientem? o Jak opisad programistom architekturę? o Co i jak dokumentowad? o Jak opisad interfejs użytkownika? o Jak zweryfikowad system? ... © Katarzyna Grzesiak-Koped 2011/2012

17

● Podobieostwa o Nie zbieramy doświadczeo – zawsze rewolucja o Nie potrafimy oszacowad terminu zakooczenia o Zakres prac drastycznie się zwiększa o Każda większa zmiana to katastrofa o Zorientujemy się w czym tkwił błąd – KONIEC projektu!

© Katarzyna Grzesiak-Koped 2011/2012

18

● Różnice o Złożonośd problemu o Po przeprowadzce nie zaczynamy następnej (zazwyczaj)

© Katarzyna Grzesiak-Koped 2011/2012

19

● Kiedy osiągnęliśmy sukces? o Zmieściliśmy się w zaplanowanym budżecie o Zmieściliśmy się w zaplanowanym czasie o Spełniliśmy rzeczywiste wymagania klienta

● To nie jest proste 

© Katarzyna Grzesiak-Koped 2011/2012

20

● Chaos Report – Standish Group o Rynek amerykaoski, 40000 projektów, 10 lat o 1994 – 16% zakooczonych sukcesem o 2004 – 34% zakooczonych sukcesem

● Nadal o 2004 – 52% wymagao nie zrealizowanych o 2004 – 82% przekroczony czas

© Katarzyna Grzesiak-Koped 2011/2012

21

© Katarzyna Grzesiak-Koped 2011/2012

22

● Cutter Consortium 2002 ankieta wśród kierowników projektów o 94% to systemy dobrej, bardzo dobrej, doskonałej jakości o 92% zamawiających było dosyd zadowolonych, zadowolonych lub bardzo zadowolonych

● Skąd to samozadowolenie?

© Katarzyna Grzesiak-Koped 2011/2012

23

● Niezadowolony klient o Nie o taki system chodziło!

● Niezadowolony wykonawca o Czego oni od nas chcą?

● Kłótnie o zakres systemu o Żądacie, a tego nie było w umowie!

● Chaotyczna obsługa zmian o Tutaj wstawisz, tam przesuniesz….

© Katarzyna Grzesiak-Koped 2011/2012

24

● Niewyspani programiści o Pizza i cola pod drzwi

● Stres związany z koocem projektu o To nie tak miało byd, zupełnie nie tak…

● Brak powtarzalności procesu o To o ile tym razem przekroczymy budżet?

● Marsz śmierci (Ed Yourdon) o Musicie zrobid to dwa razy szybciej niż konkurencja. © Katarzyna Grzesiak-Koped 2011/2012

25

● Nie spełnia oczekiwao klienta ● Zmiana wymagao ● Moduły nie są zintegrowane ● Trudności w utrzymaniu ● Późna identyfikacja „dziur” ● Kiepska jakośd lub niezadowolenie klienta ● Brak koordynacji w zespole oprogramowania ● Trudności podczas wdrożenia © Katarzyna Grzesiak-Koped 2011/2012

26

● Kontrola o Złożone problemy o Uwaga – język nas zawodzi!

● Dziel i zwyciężaj o Rozwiązanie części nie zawsze gwarantuje rozwiązania całości o Niezależnośd części o Reguła 7  2 o Hierarchie o Wiedzied, kiedy się zatrzymad © Katarzyna Grzesiak-Koped 2011/2012

27

● Od rozmycia do skupienia o Uwaga na abstrakcje – dysonans poznawczy o Ważny jest model

● Udokumentuj to o Plany testów o Własne założenia o Dokumentacja to nie powieśd

● Wejście/wyjście jest podstawą oprogramowania © Katarzyna Grzesiak-Koped 2011/2012

28

● Nie przesadzaj z inżynierią o Lepsze jest wrogiem dobrego o Nie zaskakuj mile klienta

● Przygotuj się na zmiany ● Nie wynajduj koła ● Przyjmij odpowiedzialnośd

© Katarzyna Grzesiak-Koped 2011/2012

29

● Internet, literatura ● Potrzebny nam proces? ● Ocena procesu i standardy IO ● Najlepsze praktyki

© Katarzyna Grzesiak-Koped 2011/2012

30

Definiuje KTO robi CO, KIEDY oraz JAK, żeby osiągnąd zamierzony cel.

Nowe lub zmienione wymagania

Proces IO

© Katarzyna Grzesiak-Koped 2011/2012

Nowy lub zmieniony system

31

IO to zbiór sztuczek umożliwiających zapanowanie nad pracownikami technicznymi.

@

Kontrola to działania niekompetentnych menedżerów próbujących prowadzid przedsięwzięcie bez znajomości, o co w nim rzeczywiście chodzi

# © Katarzyna Grzesiak-Koped 2011/2012

32

© Katarzyna Grzesiak-Koped 2011/2012

33

● Można kontrolowad ● Można mierzyd ● Można zmieniad w miarę poznawania ● Można poprawiad! ● Orientacja na PRODUKT

© Katarzyna Grzesiak-Koped 2011/2012

34

● Efektywnośd o Zrozumied i wyprodukowad to, czego oczekuje klient o Zweryfikowad, czy o taki produkt chodziło

● ● ● ● ● ●

Pielęgnacja Przewidywalnośd Powtarzalnośd Jakośd Doskonalenie Śledzenie

© Katarzyna Grzesiak-Koped 2011/2012

35

● Model dojrzałości Capability Maturity Model o Software Engineering Institute (SEI) o Pięciostopniowa miara dojrzałości organizacji do produkcji oprogramowania o Ocena zakłada, że zawsze stosujemy te same procedury o Brak procedury oceny CMM – jest subiektywna o 2003 zmierzch modelu CMM

© Katarzyna Grzesiak-Koped 2011/2012

36

● IEEE (The Institute of Electrical and Electronics Engineers ) ● ISO (International Organization for Standardization) ● DoD (the US Department of Defense)

© Katarzyna Grzesiak-Koped 2011/2012

37

● Wzorce procesów ● Modele procesów o technika wodospadu, model spiralny, model oparty na metodach formalnych, prototypowanie, Rapid Application Development (RAD), Component Based Development (CBD), Concurrent Development, Disciplined Software Development, Aspect-Oriented Software Development, Agile Process Models, The Rational Unified Process (RUP)…

© Katarzyna Grzesiak-Koped 2011/2012

38

39

● Ocena poziomu CMM mówi dużo o przedsiębiorstwie, a czynniki, które muszą byd uwzględnione w celu osiągnięcia wyższych poziomów, odzwierciedlają ogólną wiarę w najlepszy sposób tworzenia oprogramowania. ● SW-CMM o Software Capability Maturity Model

© Katarzyna Grzesiak-Koped 2010/2011

40

● Poziom 1 – początkowy o Brak procesu, działania ad-hoc, czasem chaotyczne; sukces zależy od wysiłku poszczególnych pracowników

● Poziom 2 – powtarzalny o Podstawowe procesy kontrolowania kosztów, harmonogramów i możliwości produktów; pozwalają na powtórzenie poprzednich sukcesów z podobnymi produktami

© Katarzyna Grzesiak-Koped 2010/2011

41

● Poziom 3 – zdefiniowany [Poziom 2 Poziom 3] o Ustalony, zintegrowany i udokumentowany schemat procesu wytwórczego stosowany we wszystkich projektach

● Poziom 4 – zarządzany [Poziom 3 Poziom 4] o Pomiary kontrolujące proces i produkt

● Poziom 5 – optymalizowany [Poziom 4 Poziom 5] o Proces jest stale udoskonalany dzięki nowym pomysłom i technikom oraz doświadczeniu © Katarzyna Grzesiak-Koped 2010/2011

42

● Poziom 2 1) 2) 3) 4) 5) 6)

Zarządzanie konfiguracją Zapewnianie jakości Zarządzanie współpracą z podwykonawcami Śledzenie i nadzór nad projektem Planowanie projektu Zarządzanie wymaganiami

© Katarzyna Grzesiak-Koped 2010/2011

43

● Poziom 3 7) Wewnętrzne recenzje i przeglądy 8) Zarządzanie współpracą między zespołami 9) Zastosowanie metod IO 10) Zintegrowane zarządzanie oprogramowaniem 11) Program szkoleo 12) Ustalenie schematu procesu 13) Duże znaczenie procesu w działalności firmy

© Katarzyna Grzesiak-Koped 2010/2011

44

● Poziom 4 14) Zarządzanie jakością oprogramowania 15) Zarządzanie procesami określone ilościowo

● Poziom 5 16) Zarządzanie zmianami procesu 17) Zarządzanie zmianami technologicznymi 18) Zapobieganie błędom

© Katarzyna Grzesiak-Koped 2010/2011

45

● Opis pełen pojęd mających na celu sprzedanie go menadżerom ● Wysiłki nie powinny koncentrowad się na procesie kosztem produktu ● Koncepcje CMM muszą byd stosowane w kolejności

© Katarzyna Grzesiak-Koped 2010/2011

46

● 2003 zmierzch modelu CMM o Software Engineering Institute (SEI) przestał • certyfikowad audytorów, • prowadzid kursy CMM, • doradzad przejście na któryś z modeli CMMI (Integration) (następca CMM)

● CMMI ???

© Katarzyna Grzesiak-Koped 2010/2011

47