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