MODELE CYKLU śycia OPROGRAMOWANIA

Podobne dokumenty
Etapy życia oprogramowania

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

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

Cykle życia systemu informatycznego

KOMPUTEROWE WSPOMAGANIE ZARZĄDZANIA

Programowanie zespołowe

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

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

Przedsięwzięcia Informatyczne w Zarządzaniu

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

ZASADY TWORZENIA OPROGRAMOWANIA

Inżynieria oprogramowania I

Zakres wykładu. Podstawy InŜynierii Oprogramowania

Inżynieria oprogramowania (Software Engineering)

Zasady organizacji projektów informatycznych

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

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

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

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

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

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

Procesy wytwarzania oprogramowania Specyfikacja i projektowanie oprogramowania

Faza strategiczna. Synteza. Analiza. Instalacja. Faza strategiczna. Dokumentacja. kodowanie implementacja. produkt konserwacja

Projektowanie zorientowane na uŝytkownika

Tworzenie gier na urządzenia mobilne

Waterfall model. (iteracyjny model kaskadowy) Marcin Wilk

SYSTEMY INFORMATYCZNE ćwiczenia praktyczne

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

Faza Określania Wymagań

GUI - projektowanie interfejsów

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

Proces tworzenia oprogramowania

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

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

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

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

Usługa: Audyt kodu źródłowego

Cele oraz techniki tworzenia prototypów systemów infromatycznych. Inżynieria Oprogramowania

Metody wytwarzania oprogramowania. Metody wytwarzania oprogramowania 1/31

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

Wstęp do zarządzania projektami

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

Katalog rozwiązań informatycznych dla firm produkcyjnych

Techniki komputerowe w robotyce

Wstęp do zarządzania projektami

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

Projektowanie systemów informatycznych. wykład 6

Testowanie i walidacja oprogramowania

PLANOWANIE JAKOŚCI OPROGRAMOWANIA W ŚWIETLE MIĘDZYNARODOWYCH NORM SERII ISO. POZIOM ORGANIZACYJNY ORAZ WYROBU / PROJEKTU

RUP. Rational Unified Process

Szybkie prototypowanie w projektowaniu mechatronicznym

VII Kongres BOUG 03 października 2012

Strategie rozwoju dla Jednostek Samorządu Terytorialnego i przedsiębiorstw. Przedstawiciel zespołu: dr inŝ. Jan Skonieczny

Kryzys oprogramowania. Wprowadzenie do modelowania. Metodyka projektowania. Próby walki z kryzysem. zastosowanie odpowiedniej metodyki projektowania

Cykl Ŝycia systemów informatycznych

Agile Project Management

Wykład 1 Inżynieria Oprogramowania

STRATEGICZNE ZARZĄDZANIE KOSZTAMI

Opis metodyki i procesu produkcji oprogramowania

Inżynieria Programowania - Projektowanie architektoniczne

WPROWADZENIE DO UML-a

Rozpoczęcie, inicjacja (ang. inception

Plan testów do Internetowego Serwisu Oferowania i Wyszukiwania Usług Transportowych

Design thinking zaprojektuj, zbuduj i przetestuj swoje pomysły

Inżynieria oprogramowania

Logika projektu EFS w odniesieniu do nowej wersji Generatora Wniosków Aplikacyjnych.

Plan. Zarządzanie zespołem rozproszonym. 1. O co chodzi w Agile (bez Manifestu!) 2. Rozpoczynanie projektu. 3. Utrzymywanie komunikacji

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

PLAN ZARZĄDZANIA WYMAGANIAMI PROJEKT <NAZWA PROJEKTU> WERSJA <NUMER WERSJI DOKUMENTU>

RACHUNKOWOŚĆ ZARZĄDCZA

Projektowanie systemu sprzedaŝy ubezpieczeń dla T. U. Generali zgodnie z metodyką User-Centered Design

Wytwarzanie oprogramowania

Wstęp do zarządzania projektami

Testujemy dedykowanymi zasobami (ang. agile testers)

SCRUM niełatwe wdrażanie metodyki w praktyce. Adam Krosny

Podstawy Inżynierii Oprogramowania

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

INŻYNIERIA OPROGRAMOWANIA

Zarządzanie projektami UE

Inżynieria oprogramowania II

Testy poziom po poziomie

PROJEKTOWANIE. kodowanie implementacja. PROJEKT most pomiędzy specyfikowaniem a kodowaniem

Katalog rozwiązań informatycznych dla firm produkcyjnych

Metodyka projektowania komputerowych systemów sterowania

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

INKS105 ( INK9117 ) Podstawy inżynierii oprogramowania

ISO w Banku Spółdzielczym - od decyzji do realizacji

GUI - projektowanie interfejsów

Projekty IT w praktyce biznesowej

Egzamin / zaliczenie na ocenę*

Wprowadzenie do systemów informacyjnych

LabVIEW - Modele Rozwoju

Walter Networkline ekonomiczny sposób wydawania narzędzi do produkcji

Zarządzanie projektami. Porównanie podstawowych metodyk

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

REGULAMIN FUNKCJONOWANIA KONTROLI ZARZADCZEJ W POWIATOWYM URZĘDZIE PRACY W GIśYCKU. Postanowienia ogólne

Plan zarządzania projektem

IO - Plan wdrożenia. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

Case study: Mobilny serwis WWW dla Kolporter

Transkrypt:

MODELE CYKLU śycia OPROGRAMOWANIA Plan prezentacji: Definicja procesu i procesu programowego Model buduj i poprawiaj Model kaskadowy (czysty i z nawrotami) Modele ewolucyjne (spiralny i przyrostowy) Prototypowanie RAD MontaŜ z gotowych komponentów Model formalnych transformacji Przypomnienie - podstawowe fazy cyklu Ŝyciowego programu: Faza strategiczna Faza specyfikacji i analizy wymagań Faza projektowania Faza konstrukcji- implementacji Faza testowania Faza konserwacji W pierwszej fazie (strategicznej) podejmowane są czynności poprzedzające decyzję o realizacji przedsięwzięcia. Między innymi, decyzje o sposobie organizacji i harmonogramowania. Decyzje strategiczne: Wybór modelu, zgodnie z którym będzie realizowane przedsięwzięcie Wybór technik stosowanych w fazach analizy i projektowania Wybór środowiska (środowisk) implementacji Wybór narzędzia CASE Określenie stopnia wykorzystania gotowych komponentów Podjęcie decyzji o współpracy z innymi producentami 1

Proces programowy jest to zestaw czynności, metod, przekształceń, które stosują ludzie, by opracowywać i konserwować oprogramowanie oraz inne pokrewne produkty z nim związane. np. plan realizacji przedsięwzięcia, projekt, kod, zestawy testów, podręczniki uŝytkownika, itp. Dla lepszego zrozumienia i organizacji tego procesu, korzystne jest ustalenie jego modelu. 0) Naturalny model Buduj i poprawiaj Budowa pierwszej wersji Modyfikuj aŝ klient będzie zadowolony Rozwój Konserwacja Tryb operacyjny Wycofanie produktu kiedy rozwiązywany problem jest niewielki kiedy nie wiemy jak się za niego zabrać 2

1) Model kaskadowy - wodospadowy (ang. waterfall model) Zalety: ułatwia organizację: planowanie, harmonogramowanie, monitorowanie przedsięwzięcia zmusza do zdyscyplinowanego podejścia wymusza kończenie dokumentacji po kaŝdej fazie wymusza sprawdzenie kaŝdej fazy przez SQA narzuca twórcom oprogramowania ścisłą kolejność wykonywania prac występują trudności w sformułowaniu wymagań od samego początku powoduje wysokie koszty błędów popełnionych we wczesnych fazach, powoduje długie przerwy w kontaktach z klientem. brak jest weryfikacji i elastyczności moŝliwa jest niezgodność z faktycznymi potrzebami klienta niedopasowanie - rzeczywiste przedsięwzięcia rzadko są sekwencyjne realizatorzy kolejnych faz muszą czekać na zakończenie wcześniejszych Stosowany w projekcie o dobrze zdefiniowanych wymaganiach dla dobrze rozumianych zastosowań. Rzadko stosuje się ten model w czystej postaci, ale stanowi on bazę dla innych modeli powstałych jako jego udoskonalenia. 3

2) Model kaskadowy z iteracjami (z nawrotami) Jest to odmiana modelu kaskadowego Wymagania Zmienione wymagania Specyfikacja Planowanie Projektowanie Implementacja Rozwój Integrowanie Konserwacja Tryb operacyjny Wycofanie W czystym modelu kaskadowym: zaplanowane fazy pracy powinny być w zasadzie realizowane po kolei; konieczność powrotu do wcześniejszej fazy traktuje się jako nieprawidłowość, czyli sytuację awaryjną. W iteracyjnym modelu kaskadowym: Takie powroty z góry się przewiduje, daje to większą elastyczność, ale wydłuŝa czas przedsięwzięcia KaŜda faza kończy się sporządzeniem szeregu dokumentów, w których opisuje się wyniki danej fazy. Łatwe planowanie, harmonogramowanie oraz monitorowanie przedsięwzięcia. Dodatkowa zaleta: (teoretyczna) moŝliwość realizacji dalszych faz przez inną firmę. DuŜy nakład pracy na opracowanie dokumentów zgodnych ze standardem Przerwy w realizacji niezbędne dla weryfikacji dokumentów przez klienta. 4

Modele ewolucyjne: spiralny i przyrostowy 3) Model spiralny (ang. spiral model ) Regiony zadań modelu spiralnego: Porozumienie z klientem - ustanowienie efektywnego porozumiewania się między producentem a klientem. Planowanie - zdefiniowanie zasobów, terminów i inne ustalenia. Analiza ryzyka - ocena ryzyka technicznego i związanego z zarządzaniem projektem. Projektowanie - zadania związane z analizą i budową projektu. Konstrukcja i oddanie do uŝytku: konstrukcja, testowanie, instalacja i wspomaganie uŝytkownika Ocena dokonana przez klienta uzyskanie od klienta informacji nt. oceny projektu i jego implementacji. 5

Zalety: Do duŝych systemów - szybka reakcja na pojawiające się czynniki ryzyka Połączenie iteracji z klasycznym modelem kaskadowym Trudno do niego przekonać klienta Konieczność umiejętności szacowania ryzyka Problemy, gdy źle oszacujemy ryzyko Istnieje wiele wariantów tego modelu np. realizacja przyrostowa 4) Model realizacji przyrostowej (ang. incremental development) Jest to odmiana modelu spiralnego. Wybierany jest i realizowany podstawowy zestaw funkcji. Po realizacji pewnych funkcji następuje zrealizowanie i dostarczenie kolejnych funkcji. Zalety: skrócenie przerw w kontaktach z klientem moŝliwość wczesnego wykorzystania przez klienta dostarczonych fragmentów systemu moŝliwość elastycznego reagowania na powstałe opóźnienia dodatkowy koszt towarzyszący niezaleŝnej realizacji fragmentów systemu 6

5) Prototypowanie - Model szybkiego prototypu Prototypowanie - sposób na uniknięcie zbyt wysokich kosztów błędów popełnionych w fazie określania wymagań. Zalecany w przypadku, gdy określenie początkowych wymagań jest stosunkowo łatwe. Model kaskadowy wymaga określenia wymagań na samym początku pracy. MoŜemy to ułatwić przez zbudowanie prototypu. Występują wówczas dodatkowe fazy projektu poprzedzające wykonanie zadań zgodnych ze zwykłym modelem kaskadowym: wstępne określenie wymagań, budowa prototypu weryfikacja prototypu przez klienta pełne określenie wymagań realizacja pełnego systemu zgodnie z modelem kaskadowym Cele: wykrycie nieporozumień pomiędzy klientem a twórcami systemu wykrycie brakujących funkcji wykrycie trudnych usług wykrycie braków w specyfikacji wymagań 7

Takie podejście zwiększa koszt przedsięwzięcia, ale: prototyp nie musi być wykonany w pełni, nie musi być niezawodny ani starannie przetestowany, nie musi działać szybko ani mieć dobrego interfejsu uŝytkownika, moŝe być realizowany w nieoptymalnych językach bardzo wysokiego poziomu, moŝna nie instalować go u klienta. Zalety prototypowania : lepsze poznanie potrzeb i wymagań klienta moŝliwość szybkiej demonstracji pracującej wersji systemu moŝliwość szkoleń zanim zbudowany zostanie pełny system niezadowolenie klienta, który po obejrzeniu działającego prototypu musi następnie długo czekać na dostawę gotowego systemu (pozorna) koszt budowy prototypu Metody prototypowania Niepełna realizacja: objęcie tylko części funkcji Języki wysokiego poziomu: Smalltalk, Lisp, Prolog, 4GL,... Wykorzystanie gotowych komponentów Generatory interfejsu uŝytkownika: wykonywany jest wyłącznie interfejs, wnętrze systemu jest podróbką. Szybkie programowanie: normalne programowanie, ale bez zwracania uwagi na niektóre jego elementy, np. zaniechanie testowania 8

6) Model RAD (ang. Rapid Application Development) Szczególna implementacja modelu kaskadowego, moŝna ją zastosować, gdy: system jest skalowalny składa się z kilku słabo ze sobą powiązanych lub niepowiązanych głównych funkcji; kaŝdą funkcję moŝna przydzielić do realizacji innemu zespołowi produkcyjnemu; zespoły pracują niezaleŝnie od siebie, a na końcu integrowane są efekty ich prac, zakłada się stosowanie gotowych komponentów wielokrotnego wykorzystania oraz stosowanie technik i języków 4-tej generacji Zalety modelu RAD: szybkość musi być skalowalny duŝe zasoby pracownicze intensywne zaangaŝowanie pracowników nie dla wszystkich rodzajów aplikacji 9

7) MontaŜ z gotowych komponentów (ang. reuse) Kładzie nacisk na moŝliwość redukcji nakładów poprzez wykorzystanie podobieństwa tworzonego oprogramowania do wcześniej tworzonych systemów oraz wykorzystanie gotowych komponentów dostępnych na rynku. Metody: zakup elementów ponownego uŝycia od dostawców przygotowanie elementów poprzednich przedsięwzięć do ponownego uŝycia Zalety: wysoka niezawodność zmniejszenie ryzyka efektywne wykorzystanie specjalistów narzucenie standardów redukcja kosztów dodatkowy koszt przygotowania elementów ponownego uŝycia dodatkowy koszt standaryzacji ryzyko uzaleŝnienia się od dostawcy elementów 8) Model formalnych transformacji Wady Trudność formalnej specyfikacji Wiele czasu i kosztowny Niewielu informatyków ma odpowiednie podstawy matematyczne Trudności w komunikacji z uŝytkownikiem Mała efektywność kodu Zalety Oczekiwana jest duŝa bezbłędność kodu wynikowego 10

Podsumowanie zasad wyboru modelu: Kiedy na własny uŝytek chcemy rozwiązać pewien niewielki problem i nie wiemy, jak się za niego zabrać model buduj-i-poprawiaj. Kiedy wymagania są dobrze zdefiniowane, produkt jest podobny do realizowanych przez nas do tej pory, mamy doświadczenie w realizacji podobnych przedsięwzięć model kaskadowy lub montaŝu z gotowych elementów. Kiedy klient ma problemy ze wyartykułowaniem swych wymagań prototypowanie Kiedy istnieje duŝa niepewność związana z wytwarzaniem produktu i duŝe ryzyko podejście ewolucyjne (modele przyrostowy, spiralny). Kiedy wymagania są dość dobrze zdefiniowane, ale występuje dość duŝa złoŝoność problemu (np. bardzo duŝy system duŝo kodu do napisania) podejście przyrostowe. Kiedy są krótkie terminy, a system jest dość duŝy zastosować podejście RAD ( gdy dysponujemy duŝym zespołem produkcyjnym) przyrostowe ( jeŝeli mamy niewielki zespół, a klientowi zaleŝy głównie na najwaŝniejszych funkcjach). Kiedy są krótkie terminy, system jest niewielki, a klientowi bardzo na nim zaleŝy model programowania ekstremalnego. Kiedy klient ma chwilowo małe fundusze, ale jest szansa, Ŝe w trakcie realizacji budŝet się zwiększy model spiralny. Kiedy system jest typu krytycznego model formalnych transformacji. W kaŝdym moŝliwym przypadku budować z gotowych elementów. W przypadku wyboru dowolnego modelu, jeśli wymagania są źle określone zrobić prototyp 11