Zakres wykładu. Podstawy InŜynierii Oprogramowania



Podobne dokumenty
Etapy życia oprogramowania

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

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

Projektowanie systemów informatycznych. wykład 6

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

Wytwarzanie oprogramowania

Egzamin / zaliczenie na ocenę*

Podstawy programowania III WYKŁAD 4

Inżynieria oprogramowania. Jan Magott

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

Wykład 1 Inżynieria Oprogramowania

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

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

Zasady organizacji projektów informatycznych

PRZEWODNIK PO PRZEDMIOCIE

Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty

WPROWADZENIE DO UML-a

SYSTEMY INFORMATYCZNE ćwiczenia praktyczne

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

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

Metody wytwarzania oprogramowania. Metody wytwarzania oprogramowania 1/31

Cykle życia systemu informatycznego

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

Inżynieria oprogramowania (Software Engineering)

Przedsięwzięcia Informatyczne w Zarządzaniu

Inżynieria oprogramowania I

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

KARTA MODUŁU KSZTAŁCENIA

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

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

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

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

RUP. Rational Unified Process

Rozpoczęcie, inicjacja (ang. inception

Feature Driven Development

MODELE CYKLU śycia OPROGRAMOWANIA

Analiza biznesowa a metody agile owe

Modelowanie i analiza systemów informatycznych

Analiza i projekt systemu pracy grupowej z zastosowaniem metodyki SCRUM w technologii SharePoint Karolina Konstantynowicz

Opis metodyki i procesu produkcji oprogramowania

Projekt. Prince2 PRoject. IN Controlled Environments PROCESY KOMPONENTY TECHNIKI

Narzędzia CASE dla.net. Łukasz Popiel

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

KARTA PRZEDMIOTU. 1) Nazwa przedmiotu: INŻYNIERIA SYSTEMÓW I ANALIZA SYSTEMOWA. 2) Kod przedmiotu: ROZ-L3-20

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

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

JAK OPTYMALNIE DOBRAĆ ODPOWIEDNIE TECHNOLOGIE INFORMATYCZNE?

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

Projekt systemu informatycznego

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

AL 1302 ZARZĄDZANIE PROJEKTAMI W OPARCIU O METODYKĘ PRINCE2

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Spis treúci. Księgarnia PWN: Robert A. Maksimchuk, Eric J. Naiburg - UML dla zwykłych śmiertelników. Wstęp Podziękowania...

Procesy wytwarzania oprogramowania Specyfikacja i projektowanie oprogramowania

Inżynieria oprogramowania. Założenia i cele przedmiotu: Opis form zajęć

Modele bezpieczeństwa logicznego i ich implementacje w systemach informatycznych / Aneta Poniszewska-Marańda. Warszawa, 2013.

Podstawy modelowania programów Kod przedmiotu

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

Wykorzystanie standardów serii ISO oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Zarządzanie konfiguracją produktu w całym cyklu Ŝycia. Aleksandra Grzywak-Gawryś Warsztaty Rola IRIS w branŝy kolejowej

INŻYNIERIA OPROGRAMOWANIA

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

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

Agile Project Management

E-I2SG-2010-s1. Informatyka II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

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

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

Inżynieria oprogramowania

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

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Języki i metodyka oprogramowania

Zarządzanie projektami. Porównanie podstawowych metodyk

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Spis treści. Analiza i modelowanie_nowicki, Chomiak_Księga1.indb :03:08

Jakość w procesie wytwarzania oprogramowania

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

PROJEKTOWANIE ZORIENTOWANE NA UŻYTKOWNIKA W METODYCE SCRUM. Hubert Wawrzyniak Grupa Allegro

Plan zarządzania projektem

PRZEWODNIK PO PRZEDMIOCIE

ZASADY TWORZENIA OPROGRAMOWANIA

Podejście tradycyjne. plan wykonanie sekwencyjna natura wykonywanych zadań

Oceny z prezentacji INKU011S. Zofia Kruczkiewicz

Programowanie zespołowe

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

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

PYTANIA PRÓBNE DO EGZAMINU NA CERTYFIKAT ZAAWANSOWANY REQB KLUCZ ODPOWIEDZI. Część DODATEK

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

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

Michał Adamczyk. Język UML

Program kształcenia i plan studiów podyplomowych: Zarządzanie projektami

Projektowanie oprogramowania. Wykład Weryfikacja i Zatwierdzanie Inżynieria Oprogramowania Kazimierz Michalik

RAPORT Z POLSKIEGO BADANIA PROJEKTÓW IT 2010

Inżynieria Oprogramowania w Praktyce

Analityk i współczesna analiza

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

Koncepcja systemu zarządzania jakością w dużym projekcie informatycznym zgodnie z normą ISO/IEC 9001:2008

Inżynieria oprogramowania - opis przedmiotu

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

Lista przykładowych pytań do egzaminu z przedmiotu Inżynieria Oprogramowania

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

Transkrypt:

Zakres wykładu Pojęcia podstawowe InŜynierii Oprogramowania Proces wytwarzania oprogramowania Artefakty procesu wytwarzania i ich modele Jakość oprogramowania Literatura: [1] Sacha K., InŜynieria oprogramowania, WNT 2009 [2] Pressman R.S., Praktyczne podejście do inŝynierii oprogramowania, WNT 2003 [3] Hamlet D., Maybee J., Podstawy techniczne inŝynierii oprogramowania, WNT 2003 [4] Fowler M., UML 2.0 w kropelce, Micom 2006 [5] Cocburn A., Jak pisać efektywne przypadki uŝycia, WNT, 2004. 1

Wykład 1 - WPROWADZENIE InŜynieria oprogramowania Procesy cyklu Ŝycia oprogramowania Modele cyklu Ŝycia oprogramowania Metodyki wytwarzania oprogramowania 2

Wzrost rozmiaru oprogramowania 3

KRYZYS wytwarzania 4

Ceny kryzysu Koszt 1godz. upadku systemu 5

Inne Podstawy InŜynierii Oprogramowania Przyczyny niepowodzeń 6 Nierealne oczekiwania Niejasne cele Nierealny czas Nowa technologia Niekompletne wymagania i specyfikacja Zmieniane wymagania i specyfikacja Brak wsparcia kierownictwa Niekompetencja technologiczna Brak zasobów Brak aktywności uŝytkownika

Historia sukcesów projektów informatycznych Wzrost sukcesu realizacji przedsięwzięć informatycznych (dzięki stosowaniu inŝynierii oprogramowania?) 30 tys. projektów róŝnych wielkości w USA 7

INśYNIERIA wiedza matematyczna i przyrodnicza zdobyta podczas studiowania oraz wynikająca z doświadczeń i praktyki, która jest stosowana do opracowania takich metod działania, by wykorzystać ekonomicznie materiały i naturę, na rzecz dobra człowieka OPROGRAMOWANIA* zestaw programów komputerowych, procedur i dokumentacji; pojęcie InŜynieria Oprogramowania (IO) pojawiło się 1968 r; podejście inŝynierskie to reakcja na tzw. kryzys oprogramowania 8

4 x P elementy IO Produkt (co) Projekt (realizacja) Proces (sposób) Personel (kto) PRODUKT = OPROGRAMOWANIE wykonuje funkcje (usługi) ma jakość 9

Cykl Ŝycia oprogramowania obejmuje okres Ŝycia oprogramowania -od pojawienia się koncepcji (potrzeby) posiadania i stosowania oprogramowania, - do momentu jego wycofania z uŝycia. 10

Procesy cyklu Ŝycia oprogramowania [ISO12207:1998] 11

Procesy cyklu Ŝycia oprogramowania perspektywa udziałowców stosuje stosuje Proces nabywania stosuje kontrakt Proces zarządzania Proces dostawy PERSPEKTYWA KONTRAKTU Nabywca, Dostawca MenadŜer stosuje stosuje stosuje PERSPEKTYWA ZARZĄDZANIA stosuje Proces eksploatacji Operator, UŜytkownik stosuje PERSPEKTYWA DZIAŁANIA stosuje Proces konserwacji stosuje Proces wytwarzania PERSPEKTYWA INśYNIERII Producent, Serwisant PROCESY WSPOMAGAJĄCE: dokumentowanie weryfikacja zarządzanie konfiguracją walidacja rozwiązywanie problemów przegląd wspólny zapewnienie jakości audyt PROCESY ORGANIZACYJNE infrastruktura doskonalenie szkolenie PERSPEKTYWA WSPOMAGANIA Pracownik ProcesówWs pomag. [ISO12207:1998] 12

[ISO12207:2008] 13

Model cyklu Ŝycia oprogramowania sposób organizacji wybranych procesów cyklu Ŝycia oprogramowania i wykonywanych w ich ramach czynności. Zwykle rozwaŝa się procesy: wytwórcze zarządcze 14

Modele cyklu Ŝycia oprogramowania kryterium: kompletność wymagań (ISO 12207): - kaskadowy - przyrostowy - ewolucyjny (syn. prototypowanie) kryteria dodatkowe: -iteracyjny powtarzalność działań -spiralny zarządzany ryzykiem 15

Model kaskadowy (1970, Royce) ustalone wymagania Określenie wymagań Zaleta: proste planowanie procesu wytwarzania Analiza Projektowanie opcjonalna Implementacja Testowanie Wada: Konserwacja w praktyce nie działa (w tej czystej postaci) 16

Model kaskadowy + (Royce 1973) A tak jest realizowany w praktyce model kaskadowy 17

Model kaskadowy + Definicja wymagań Zaleta: nawroty Analliza Projekt elastyczność realizacji Kodowanie Testy systmu Wada: dodatkowe koszty ( np. dokumentacji) Instalacja i konwersja UŜywanie i utrzymywanie 18

Przyrost 1 W Przyrost 2 Podstawy InŜynierii Oprogramowania Model przyrostowy P K/T I/W P K/T I/W Zalety: -szybkie wykrywanie usterek - szybkie dostarczanie częściowej implementacji Przyrost n P K/T I/W W - wymagania P - projekt MoŜliwy przepływ informacji K/T - kodowanie i testy I/W - instalacja i wsparcie Wady: - trudniejsze planowanie - dodatkowe koszty wg ISO12207 19

Model ewolucyjny (prototypowania) W 1 Przyrost 1 P K/T I/W W 2 Przyrost 2 Zaleta: P K/T I/W uniknięcie niezrozumienia wymagań W n Przyrost n P K/T I/W MoŜliwy przepływ informacji W - wymagania P - projekt K/T - kodowanie i testy I/W - instalacja i wsparcie Wada: koszty (budowanie wielu rozwiązań) wg ISO12207 20

Model spiralny Zaleta: szybka identyfikacja ryzyka Wada: koszty!! [Boehm,1988] 21

METODYKA WYTWARZANIA OPROGRAMOWANIA to wszystko, co jest systematycznie wykonywane w celu wytworzenia oprogramowania (np. dobór pracowników, zadań, zasady współpracy, procedury postępowania); => kaŝda organizacja ma swoją własną, niepowtarzalną metodykę. 22

Atrybuty metodyki Zakres metodyki określa, które fazy wytwarzania oprogramowania są objęte metodyką, jakie role i aktywności metodyka definiuje. Rozmiar metodyki jest liczbą typów elementów kontrolowanych w metodyce (wytwarzany artefakt,, miara jakości, opis techniki, itd.). Ceremoniał metodyki (stopień formalizacji) określa wymagany stopień precyzji, nakładu pracy i stopnia formalizacji dokumentów (duŝy, średni, mały). Waga metodyki to koncepcyjny iloczyn rozmiaru i ceremoniału dla poszczególnych elementów kontrolnych. Widzialność łatwość oceny, czy projekt jest wykonywany zgodnie z metodyką. 23

Kategorie metodyk wytwarzania: wg paradygmatu - strukturalne - obiektowo-zorientowane wg złoŝoności - regularne/cięŝkie: obszerna dokumentacja - elastyczne/ zwinne: komunikacja słowna 24

Metodyka wytwarzania oprogramowania jest procesem, a jej definicja jest wykorzystuje definicje trzech podstawowych pojęć: rola (ang. role), zadanie (ang. task), produktu pracy (ang. work product). [SPEM 2008] 25

Metodyki sterowane modelami [RUP 2003] 2009/20010 26

Generyczna metodyka USDP* fazy i dyscypliny FAZY USDP : Zapoczątkowanie Opracowanie Konstrukcja Przejście Specyfikacja wymagań Analiza Projektowanie Implementacja Testowanie Iter(1) iter(2) *USDP- Unified Software Development Process iter iter (n-1) (n) 27

Metodyka USDP CHARAKTERYSTYKA sterowany przez przypadki uŝycia zorientowany na opis architektury iteracyjny przyrostowy Proces USDP powtarza się przez wiele cykli, z których kaŝdy daje na końcu gotowy produkt PODSTAWOWY ZESTAW MODELI USDP model przypadków uŝycia model analizy model projektowy model rozmieszczenia model implementacyjny model testów 28

Metodyka RUP* fazy i dyscypliny *RUP- RationalUnified Process [RUP,2003] 29

Metodyki AUP* v1.1 fazy i dyscypliny *AUP- Agile Unified Process; rodzina metodyk 30

SCRUM- przykład metodyki AUP 31

Dziedzina zastosowań Podstawy InŜynierii Oprogramowania Język UML* w obiektowym procesie wytwarzania oprogramowania 6 Modelowanie biznesowe Analiza System UML Projektowanie *UML - Unified Modeling Language C++, Java, etc 32

Język UML Abstrakcyjny Pozwala wyrazić najwaŝniejsze zagadnienia z pominięciem zbędnych szczegółów Precyzyjny Pomaga znaleźć braki oraz niespójności Graficzny Pozwala zilustrować obiekty oraz związki zachodzące między nimi 33

Język UML w budowie modeli oprogramowania Modelowanie statyczne opisuje elementy i strukturę wnętrza systemu diagramy klas, obiektów, komponentów i rozmieszczenia Modelowanie funkcjonalności systemu opisuje co nowy system ma robić (lub co robi system istniejący) diagramy przypadków uŝycia Modelowanie dynamiczne - opisuje zachowanie systemu w terminach interakcji elementów systemu - diagramy aktywności, stanów, sekwencji i współdziałania 34

Problem: jakie są rzeczywiste wymagania klienta 35

InŜynieria wymagań DEFINICJA: systematyczny proces opracowywania wymagań realizowany przez iteracyjną współpracę między procesami: analizy problemu, dokumentowania końcowych obserwacji w postaci róŝnorodnych formatów prezentacji oraz sprawdzania dokładności uzyskanych informacji InŜynieria wymagań jest działalnością, która przekształca potrzeby i Ŝyczenia (zwykle niekompletne i wyraŝone nieformalnie) klienta i potencjalnego uŝytkownika systemu komputerowego w kompletną precyzyjną i spójną specyfikację, i o ile to moŝliwe, zapisaną w formalnej notacji. 36

Podsumowanie -Wytwarzanie oprogramowania obejmuje następujące etapy: [modelowanie biznesowe], specyfikowanie wymagań, [analizę] projektowanie, implementację, testowanie i pielęgnację. - Wytworzenie oprogramowania wysokiej jakości wymaga doboru i stosowania metodyki wytwórczej - Język UML jest językiem modelowania i specyfikacji; moŝe być stosowany na wszystkich etapach wytwarzania oprogramowania. - Kompletna specyfikacja wymagań jest kluczowa dla powodzenia przedsięwzięcia wytwórczego. 37