Rozpoczęcie, inicjacja (ang. inception



Podobne dokumenty
Projektowanie systemów informatycznych. wykład 6

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)

Opis metodyki i procesu produkcji oprogramowania

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

Cykle życia systemu informatycznego

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

RUP. Rational Unified Process

PRZEWODNIK PO PRZEDMIOCIE

Zakres wykładu. Podstawy InŜynierii Oprogramowania

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

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

Feature Driven Development

Przedsięwzięcia Informatyczne w Zarządzaniu

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

Rational Unified Process. Dokładny opis metodyki i procesu produkcji oprogramowania

UPEDU: Rozpoznanie wymagań (ang. requirements discipline)

Inżynieria Programowania Zarządzanie projektem. Plan wykładu. Motto. Motto 2. Notatki. Notatki. Notatki. Notatki.

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

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

Wykład 1 Inżynieria Oprogramowania

Wytwarzanie oprogramowania

UPEDU: Testowanie (ang. Testing discipline)

PRZEWODNIK PO PRZEDMIOCIE

Wstęp do zarządzania projektami

Inżynieria Programowania Zarządzanie projektem

Wstęp do zarządzania projektami

Programowanie zespołowe

wbudowane October 7, 2015 KSEM WETI PG Komputery przemysłowe i systemy wbudowane Oprogramowanie systemów wbudowanych - wydajność Wydajność

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

Narzędzia CASE dla.net. Łukasz Popiel

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

Analityk i współczesna analiza

Zastosowania informatyki w gospodarce Projekt

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

UPEDU: Zarządzanie projektem (ang. Project Management Discipline)

UPEDU: Analiza i projektowanie (ang. analysis and design discipline)

Zasady organizacji projektów informatycznych

Inżynieria oprogramowania (Software Engineering)

INŻYNIERIA OPROGRAMOWANIA

SYSTEMY INFORMATYCZNE ćwiczenia praktyczne

MSF. Microsoft Solution Framework

KARTA MODUŁU KSZTAŁCENIA

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

Podstawy programowania III WYKŁAD 4

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

Egzamin / zaliczenie na ocenę*

Analiza i projektowanie obiektowe w UML Kod przedmiotu

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

Modelowanie i analiza systemów informatycznych

Procesowa specyfikacja systemów IT

Zakład Języków Programowania Instytut Informatyki Uniwersytet Wrocławski

KIERUNKOWE EFEKTY KSZTAŁCENIA

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

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

Projekty BPM z perspektywy analityka biznesowego. Wrocław, 20 stycznia 2011

Szkolenie 1. Zarządzanie projektami

Zarządzanie projektami. Wykład 2 Zarządzanie projektem

WPROWADZENIE DO UML-a

Zastosowanie symulacji Monte Carlo do zarządzania ryzykiem przedsięwzięcia z wykorzystaniem metod sieciowych PERT i CPM

Inżynieria wymagań. Wykład 3 Zarządzanie wymaganiami w oparciu o przypadki użycia. Część 5 Definicja systemu

Wybór ZSI. Zakup standardowego systemu. System pisany na zamówienie

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

KIERUNKOWE EFEKTY KSZTAŁCENIA KIERUNEK STUDIÓW INFORMATYCZNE TECHNIKI ZARZĄDZANIA

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

KIERUNKOWE EFEKTY KSZTAŁCENIA

Analiza i programowanie obiektowe 2016/2017. Wykład 6: Projektowanie obiektowe: diagramy interakcji

Certified IT Manager Training (CITM ) Dni: 3. Opis:

PRZEWODNIK PO PRZEDMIOCIE

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

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

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

Plan wykonania systemu ISOiWUT

Zapewnij sukces swym projektom

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

Architektura oprogramowania w praktyce. Wydanie II.

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

PROJEKT ZARZĄDZANIE PROJEKT. Przedsięwzięcie powtarzalne, kilkurazowe = PROCES

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

Zarządzanie projektami. Porównanie podstawowych metodyk

Praktyczne aspekty stosowania metody punktów funkcyjnych COSMIC. Jarosław Świerczek

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Metodyki zarządzania projektami PRINCE2

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

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

Metody wytwarzania oprogramowania. Metody wytwarzania oprogramowania 1/31

UPEDU: Implementacja (ang. Implementation discipline)

Konfiguracja modelowania w procesie wytwarzania oprogramowania

Harmonogramowanie projektów Wprowadzenie

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

KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA

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

Warsztaty FRAME. Sygnatura warsztatu: W1 (W3) Czas trwania: 3 dni

Inżynieria oprogramowania I

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

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

Waterfall model. (iteracyjny model kaskadowy) Marcin Wilk

Oceny z prezentacji INKU011S. Zofia Kruczkiewicz

RAPORT Z POLSKIEGO BADANIA PROJEKTÓW IT 2010

Transkrypt:

Wydział Informatyki PB Analogia do budowanego domu Inżynieria oprogramowania II Wykład 2: Proces tworzenia oprogramowania (na podstawie Unified Process) Marek Krętowski pokój 206 e-mail: mkret@ii.pb.bialystok.pl http://aragorn.pb.bialystok.pl/~mkret Cykl życia domu: pomysł (miejsce, styl, budżet, otoczenie, wyposażenie,...) planowanie (zakup gruntu, projektowanie, wybór wykonawcy, zapewnienie finansowania,...) realizacja (budowa) zamieszkanie (przekazanie budynku właścicielowi, poprawki, przeprowadzka) Nowe potrzeby (garaż, większa kuchnia,...) mogą spowodować ponowne przejście przez wymienione fazy Iteracje w ramach jednej fazy Proces definiuje sposób w jaki budynek powstaje (proces może być inny w różnych częściach świata, ale cykl życia jest ten sam) Proces może być bardzo rygorystyczny (firma realizująca wiele budów równocześnie) lub mniej formalny (amator budujący domek na działce) Proces powinien być adaptowalny Wersja 1.02 IO2, wyk.2 Slajd 2 z 19 Cykl życia oprogramowania (ang. software life cycle) Cztery fazy cyklu życia Obejmuje okres od pojawienia się pierwszych pomysłów dotyczących oprogramowania aż do rezygnacji z jego wykorzystania lub do wymiany na inne oprogramowanie Od momentu narodzin aż do śmierci programu obserwujemy serie różnego rodzaju zmian i modyfikacji (różnej wagi i znaczenia) stymulowanych przez potrzeby użytkownika Obejmuje początkowy cykl budowy (ang. development cycle) po którym następują kolejne cykle rozwoju (ang. evolution cycles) Niezależnie od aktualnego cyklu wyróżniane są 4 fazy: czas IO2, wyk.2 Slajd 3 z 19 Rozpoczęcie, inicjacja (ang. inception -the concept) - celem jest uzasadnienie (biznesowe) tworzenia nowego produktu lub modyfikowania istniejącego; główne zadania to opracowanie podstawowych wymagań dla projektu, przeprowadzenie wstępnej analizy ryzyka i ew. stworzenie prototypu pojęciowego Opracowanie, rozwinięcie - (ang. elaboration - the design) - analiza dziedziny problemu w celu opracowania odpowiedniej architektury produktu, przygotowanie planu pracy, który neutralizuje najistotniejsze zagrożenia; m.in. stworzenie modelu zachowania systemu i modelu dziedzinowego Budowa (ang. construction) - obejmuje zakodowanie (programowanie) produktu, stworzenie dokumentacji systemowej i użytkowników, opracowanie planu wdrożenia, zapewnienie jakości produktu Przekazanie, wdrożenie (ang. transition) - polega na udostępnieniu oprogramowania użytkownikowi; wiąże się zwykle z dopracowaniem szczegółów, usunięciem nie wykrytych wcześniej błędów,... IO2, wyk.2 Slajd 4 z 19

Kamienie milowe Każda z faz powinna kończyć się tzw. kamieniami milowymi (cele) (architektura) (pracująca wersja) Cykle nie muszą być koniecznie sekwencyjne i mogą się w pewnym zakresie nakładać (gotowy produkt) Proces tworzenia oprogramowania (ang. software engineering process) Proces definiuje sposób postępowania, którego zastosowanie prowadzić ma do efektywnego tworzenia i/lub rozwoju oprogramowania Opiera się na opracowywaniu kolejnych generacji produktu (podejście ewolucyjne) Redukuje ryzyko niepowodzenia (wystąpienie możliwych do przewidzenia trudności) i umożliwia poprawę jakości Wychwytuje i dokumentuje najlepsze rozwiązania praktyczne gromadzone na podstawie wcześniejszych doświadczeń Promuje wspólną wizję (widzenie problemów) i kulturę pracy, poprzez zapewnienie zaleceń do stosowania odpowiednich narzędzi czas Rozpoczęcie... IO2, wyk.2 Slajd 5 z 19 IO2, wyk.2 Slajd 6 z 19 Proces tworzenia oprogramowania (2) Dyscypliny (dziedziny) procesu Proces definiuje w jaki sposób ludzie przeprowadzają kolejne etapy cyklu życia oprogramowania Cykl życia jest związany (należy do) produktu, natomiast proces opisuje czynności wykonywane przez ludzi w ramach cyklu Innymi słowy proces definiuje kto wykonuje co, kiedy i jak aby osiągnąć zamierzony cel (sukces przedsięwzięcia programistycznego) Stosowanie procesu zasadniczo poprawia rezultaty pracy zespołów wytwórczych New or changed requirements Who Is Doing What, When, and How Software Process New or changed system IO2, wyk.2 Slajd 7 z 19 Proces zawiera wszystkie czynności niezbędne do przełożenia (przetransformowania) potrzeb użytkownika w funkcjonujący produkt Wyróżnione są dwie grupy dyscyplin: inżynieryjne (ang. engineering disciplines) - obejmują techniczne aspekty procesu takie jak opracowanie wymagań, na ich podstawie stworzenie projektu, implementację i testowanie kodu: wymagania (przypadki użycia do opisania zachowania systemu) analiza i projektowanie (specyfikacja umożliwiająca implementację systemu) implementacja (organizacja kodu, programowanie, integracja modułów) testowanie (zapewnienie oczekiwanego poziomu niezawodności) zarządcze (ang. management disciplines): zarządzanie konfiguracją i zmianami zarządzanie projektem (równoważenie sprzecznych celów, zarządzanie ryzykiem, pokonywanie ograniczeń) IO2, wyk.2 Slajd 8 z 19

Dyscypliny procesu (2) UPEDU a RUP Unified Process for EDUcation (UPEDU) jest procesem tworzenia oprogramowania powstałym na bazie Rational Unified Process(RUP) Stworzony został z myślą o wykorzystaniu w nauczaniu inżynierii oprogramowania Zawiera tylko najważniejsze elementy pełnego procesu, dzięki czemu możliwe jest skoncentrowanie się na najistotniejszych jego elementach, bez grzęźnięcia w drugorzędnych szczegółach UPEDU składa się z dyscyplin, z których każda definiuje zbiór czynności (działań) wykonywanych przez członków zespołu, w wyniku których tworzone są lub modyfikowane elementy projektu Dla poszczególnych dyscyplin istnieją diagramy (może być ich wiele), które pokazują role odgrywane przez członków zespołu, wejściowe i wyjściowe elementy oraz podejmowane działania IO2, wyk.2 Slajd 9 z 19 IO2, wyk.2 Slajd 10 z 19 Organizacja procesu - diagramy dyscyplin Podstawowy model pojęciowy Diagramy wykorzystywane są do przedstawienia całościowego obrazu czynności wykonywanych w ramach dyscypliny (sekwencyjnie lub równolegle) Pojedynczy członek zespołu może równocześnie odgrywać różne role w różnych czynnościach pracując nad innymi elementami IO2, wyk.2 Slajd 11 z 19 Proces tworzenia oprogramowania polega na współpracy pomiędzy abstrakcyjnymi, aktywnymi jednostkami (nazywanymi rolami), które wykonują operacje (zwane czynnościami) na konkretnych, namacalnych elementach (zwanych artyfaktami) IO2, wyk.2 Slajd 12 z 19

Role, czynności i artefakty Rola (ang. role) - jest odgrywana przez pojedynczą osobę lub niewielką grupę; definiuje zakres odpowiedzialności poszczególnych osób; rola określonego członka zespołu zmienia się w czasie projektu; jest sterowana przez aktualne potrzeby Czynność, działania (ang. activity) - najmniejsza część pracy wykonywana w ramach procesu przez role. Technicznie określana jest jako operacja, czyli jest w zasadzie niepodzielna (możliwe są pewne opcjonalne kroki, np. myślenie, wykonywanie, przeglądanie ). Czynność musi mieć jasno zdefiniowany cel, wyrażony zwykle w terminach tworzenia lub zmiany elementów (artefaktów). Odpowiadająca zwykle od kilku godzin do kilku osobo-dni. Artefakt (ang. artifact) - dowolna grupa informacji lub fizyczny byt wykorzystywany (przetwarzany) przez czynności procesu. Przykłady: modele, plany, kod, programy wykonywalne, dokumenty, bazy danych,.... Czynności i artefakty Podział pracy na czynności ułatwia monitorowanie, gdyż każda czynność jest odrębnym zadaniem, które może być zaplanowane i ocenione Artefakty są elementami tworzonymi, modyfikowanymi i wykorzystywanymi przez proces; pracownicy mogą otrzymywać określone artefakty na wejściu czynności oraz rezultatem wykonania czynności są również artefakty Zwykle artefakty mają określone w miarę szczegółowe zalecenia (ang. guidelines), dzięki czemu mogą być opisane w sposób wyczerpujący; ponadto mogą składać się z innych elementów (np. model projektowy zawierający klasy) IO2, wyk.2 Slajd 13 z 19 IO2, wyk.2 Slajd 14 z 19 Disciplines (Rational) Unified Process (for Education) Iteracja to konstrukcja zarządcza, polegająca na tworzeniu kolejnych przybliżeń systemu Waga dyscyplin w każdej iteracji zmienia się IO2, wyk.2 Slajd 15 z 19 Charakterystyka procesu: iteracyjność W iteracyjnym procesie pewne elementy (artefakty) są rozwijane w różnych iteracjach Z punktu widzenia zarządzania procesem szczególnie istotne jest jasne określenie mechanizmów służących do szacowania postępu prac; ponadto ważna jest umiejętność stwierdzenia, że zadanie zostało już wykonane (milestones oraz deadlines) Iteracja - wyróżniona sekwencja działań wykonywana w określonym celu, posiadająca ustalony plan oraz kryteria oceny, skutkująca zmianą określonych elementów (artefaktów) Ewolucja artefaktów w procesie wytwórczym IO2, wyk.2 Slajd 16 z 19

Porządkowanie działań Charakterystyka UP (2) Proces architekturocentryczny - nacisk na możliwie wczesne opracowanie architektury systemu; dobra architektura: ułatwia równoległe tworzenie oprogr. wpływa na minimalizowanie powtarzania tych samych działań, zwiększenie prawdopodobieństwa ponownego użycia i łatwość pielęgnacji (oprogramowanie komponentowe) Ukierunkowany na przypadki użycia - kładzie nacisk na określenie pożądanego zachowania systemu; przypadki użycia i scenariusze służą do uporządkowania procesu - od rozpoznawania wymagań do testowania systemu Ułatwia kontrolę jakości i zarządzania ryzykiem - wykorzystanie do kontroli obiektowych miar i kryteriów jakości; dotyczy wszystkich działań i każdego uczestnika przedsięwzięcia Proces konfigurowalny - ponieważ nie istnieje metoda optymalna w każdym zastosowaniu UP jest elastyczny; można go dostosować zarówno do małych zespołów jak i wielkich firm informatycznych; RUP zawiera informacje jak dostosowywać proces do konkretnych przedsięwzięć IO2, wyk.2 Slajd 17 z 19 IO2, wyk.2 Slajd 18 z 19 Istotne czynniki podczas dostosowywania procesu Analiza i projektowanie Zarządzanie konfiguracją i zmianami Wszystkie dyscypliny Czas (okres wyk.), technologia, planowane wersje Wzorce elementów, wykorzystywane narzędzia, standardowe architektury,... Rodzaj aplikacji (biznesowa, czasu rzeczywistego, krytyczna, gra) Wymagania Testowanie Analiza i projektowanie Implementacja Zarządzanie projektem Rozmiar i struktura firmy (projektu), kompetencje, doświadczenie, istniejące systemy IO2, wyk.2 Slajd 19 z 19