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



Podobne dokumenty
Inżynieria oprogramowania I

Inżynieria oprogramowania

Inżynieria oprogramowania

Inżynieria oprogramowania

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ś

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

Projektowanie systemów informatycznych. wykład 6

Egzamin / zaliczenie na ocenę*

Zasady organizacji projektów informatycznych

KARTA MODUŁU KSZTAŁCENIA

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

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

Zakres wykładu. Podstawy InŜynierii Oprogramowania

Analiza i projektowanie obiektowe w UML Kod przedmiotu

Inżynieria oprogramowania (Software Engineering)

PRZEWODNIK PO PRZEDMIOCIE

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

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

Opis metodyki i procesu produkcji oprogramowania

PRZEWODNIK PO PRZEDMIOCIE

E-1IZ3-06-s6. Inżynieria Programowania. Informatyka. I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Inzynieria Oprogramowania 2... nazwa przedmiotu SYLABUS A. Informacje ogólne. Wydział Ekonomiczno-Informatyczny w Wilnie

Programowanie zespołowe

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

Cykle życia systemu informatycznego

Inżynieria oprogramowania. Jan Magott

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

Metody wytwarzania oprogramowania. Metody wytwarzania oprogramowania 1/31

Wykład 1 Inżynieria Oprogramowania

Procesy wytwarzania oprogramowania Specyfikacja i projektowanie oprogramowania

Przedsięwzięcia Informatyczne w Zarządzaniu

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

ZASADY TWORZENIA OPROGRAMOWANIA

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

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/17

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

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

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

Wykład 2. MIS n Inżynieria oprogramowania Marzec Kazimierz Michalik Akademia Górniczo-Hutnicza im. S. Staszica w Krakowie

MODELE CYKLU śycia OPROGRAMOWANIA

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

INŻYNIERIA OPROGRAMOWANIA

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

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/17

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

Metodyki zwinne wytwarzania oprogramowania

Prowadzenie projektu programistycznego. Modele tworzenia oprogramowania. Programowanie kaskadowe i zwinne. Wykład 9

PRZEWODNIK PO PRZEDMIOCIE

Narzędzia CASE dla.net. Łukasz Popiel

KOMPUTEROWE WSPOMAGANIE ZARZĄDZANIA

Podstawy modelowania programów Kod przedmiotu

Agile Project Management

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

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

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

Techniki modelowania programów Kod przedmiotu

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

Programowanie zwinne

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2011/2012

Języki i metodyka oprogramowania

WPROWADZENIE DO UML-a

PRZEWODNIK PO PRZEDMIOCIE

INŻYNIERIA OPROGRAMOWANIA

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Technologie obiektowe Object-oriented technologies. Informatyka II stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

PRZEWODNIK PO PRZEDMIOCIE

Wytwarzanie oprogramowania

Zasadnicze czynności w zarządzaniu projektem, fazy cyklu życia systemu informatycznego. Modele cyklu życia - część 1

Inżynieria oprogramowania - opis przedmiotu

INKS105 ( INK9117 ) Podstawy inżynierii oprogramowania

Podstawy programowania III WYKŁAD 4

Wprowadzenie, podstawowe pojęcia, projekt a produkt Wykład1

Inżynieria oprogramowania

Oceny z prezentacji INKU011S. Zofia Kruczkiewicz

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

Analiza i projektowanie obiektowe 2016/2017. Wykład 1: Wprowadzenie oraz cykl życia oprogramowania i faza określenia wymagań

Techniki CAx. dr inż. Michał Michna. Politechnika Gdańska

Inżynieria Programowania - Wstęp. Plan wykładu. Bibliografia (część, reszta na stronie) Motto. Notatki. Notatki. Notatki. Notatki.

RUP. Rational Unified Process

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

Wzorce projektowe i refaktoryzacja

Rozpoczęcie, inicjacja (ang. inception

Techniki CAx. dr inż. Michał Michna. Politechnika Gdańska

Inżynieria Oprogramowania Wykład 01 - Wprowadzenie

Inżynieria oprogramowania

Akademia ADB Wykład I Praca w grupie i jakość kodu

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

Projektowanie Systemy Informatycznego

Technologia programowania

KARTA PRZEDMIOTU. Projektowanie systemów czasu rzeczywistego D1_13

Zagadnienia. Inżynieria Oprogramowania

5 Moduył do wyboru II *[zobacz opis poniżej] 4 Projektowanie i konfiguracja sieci komputerowych Z

Projekt systemu informatycznego

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

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

PRZEWODNIK PO PRZEDMIOCIE

2005 Andrzej Jaszkiewicz. Wyłącznie dla użytku studentów Politechniki Poznańskiej, kierunek Informatyka

OPIS MODUŁU KSZTAŁCENIA (przedmiot lub grupa przedmiotów)

Transkrypt:

Inżynieria I Andrzej Jaszkiewicz Kontakt Andrzej Jaszkiewicz p. 8, CW Berdychowo tel. 66 52 933 ajaszkiewicz@cs.put.poznan.pl Rynek 2008 Świat 304 miliardy $ (451 miliardów 2013F) Bez wytwarzanego na własne potrzeby Wzrost 6.5% rocznie W UE 60-70% jest wytwarzane w firmach, dla których nie jest to główną działalnością Podejście amatorskie a inżynierskie Co by tu wymyślić!? Do pracy. Definicje inżynierii Duże systemy wymagające pracy wielu osób praca grupowa Definicja inżynierii Wiedza techniczna,, dotycząca wszystkich faz cyklu życia,, której celem jest uzyskanie wysokiej jakości produktu -. Wielowersyjność 1

Jakość produktu/ Użyteczność/funkcjonalność (usefulness) Niezawodność (reliability) Ergonomia (usability) Efektywność (efficiency) Łatwość konserwacji/utrzymania/modyfikacji (maintability) Koszt Bezpieczeństwo użytkownika (user safety) Wygląd Literatura A. Jaszkiewicz, Inżynieria, Helion, 1997. G. Booch, J. Rambaugh, I. Jacobson, UML przewodnik użytkownika, WNT, 2000. M. Fowler, K. Scott, UML w kropelce, Oficyna Wydawnicza LTP, 2002 S. Maguire, Niezawodność, Helion, 2002 J. W. Cooper, Java. Wzorce projektowe, Helion, 2001 Literatura Sommerville Ian Inżynieria, WNT, 2003. Pressman Roger S. Praktyczne podejście do inżynierii, WNT, 2004. Warmer Jos, Kleppe Anneke, Inżynieria OCL precyzyjne modelowanie w UML, WNT, 2003. Kernighan W. Brian, Pike Rob Inżynieria. Lekcja, WNT, 2002. Literatura UML. Inżynieria. Wydanie IIUML. Inżynieria. Wydanie II, P. Stevens, Helion, Gliwice, 2007 E. Gamma, R. Helm, R. Johnson, J. Vlissides, Wzorce projektowe. Elementy obiektowego wielokrotnego użytku, WNT, 2008 K. Sacha, Inżynieria, PWN, 2010. R.C. Martin, M. Martin, Agile, programowanie zwinne, Helion, 2008. Program wykładu - semestr I Wprowadzenie w tym podstawowe modele cyklu życia Analiza/modelowanie systemów z wykorzystaniem języka UML Analiza/modelowanie systemów z wykorzystaniem języka UML UML jako narzędzie projektowania i dokumentowania Projektowanie Projektowanie Wzorce projektowe Refaktoryzacja Niezawodność unikanie błędów, odporność na błędy Niezawodność testowanie Konserwacja i ponowne wykorzystanie, dokumentacja techniczna i użytkowa Narzędzia inżynierii. Zarządzanie zmianami i konfiguracją Kolokwium zaliczeniowe Trochę historii - Rozwój technik wytwarzania Lata 50-te Sprzęt o bardzo ograniczonych możliwościach Ograniczone zastosowania Małe programy Programy pisane często dla własnych potrzeb lub potrzeb dobrze znanych osób Dobrze wyspecyfikowane zadania 2

Rozwój technik wytwarzania Lata 60-te Profesjonalni programiści Nowe języki programowania COBOL, Fortran, Algol Sprzęt o dużo większych możliwościach, np. pamięć wirtualna Nowe zastosowania np. w biznesie Próba realizacji wielu dużych przedsięwzięć programistycznych Kryzys Rozwój technik wytwarzania nie nadąża za rozwojem sprzętu komputerowego Czy kryzys trwa do dzisiaj? Nadal większość przedsięwzięć przekracza czas i/lub budżet (choć trend jest pozytywny) Około 25% przedsięwzięć programistycznych nie jest kończona 90% firm przyznaje, że dość często zdarzają im się opóźnienia przedsięwzięć Powszechna akceptacja kiepskiej jakości (w pewnych obszarach) Zależność osiągnięcia- oczekiwania w wytwarzaniu Efekty Kryzys Oczekiwania Rzeczywiste osiągnięcia Czas Przyczyny kryzysu Duża złożoność systemów informatycznych Złożoność, zmienność, nieadekwatność Niepowtarzalność poszczególnych przedsięwzięć Nieprzejrzystość procesu budowy Pozorna łatwość wytwarzania i modyfikowania Potrzeba kreatywności Czynnik ludzki Mało wymagający rynek Niedoskonałość narzędzi Początek inżynierii 1968 NATO Conference on Software Engineering Zakres inżynierii Wytwarzanie i innych produktów (np. dokumentacji) Zarządzanie wytwarzaniem 3

Modele cyklu życia Uporządkowanie prac. Ustalenie kolejności prac. Planowanie i monitorowanie realizacji. Programowanie odkrywcze Ogólne określenie Ogólny projekt Budowa systemu Ocena systemu Wdrożenie Tak System poprawny Nie Określenie Model kaskadowy Dodatkowe fazy w modelu kaskadowym Projektowanie Testowanie Konserwacja Co zastępuje testy w innych dziedzinach techniki? Certyfikaty Zapasy bezpieczeństwa Symulacje Prototypy techniczne spike solutions Określenie Ścisłe i elastyczne rozumienie modelu kaskadowego Projektowanie Testowanie Konserwacja 4

pracochłonność 100% 90% 80% 70% 60% 50% 40% 30% 20% 10% Przykład elastycznego podejścia do modelu kaskadowego analiza projektowanie implementacja testowanie wdrażanie odniesienie do 12 modelu wodspadowego 10 wdrożenie zapewnianie jakości 8 implementacja projektowanie 6 analiza współpraca z odbiorcą zarządzanie konfiguracją 4 zarządzanie projektem liczba pracowników 2 pracownicy Wady i zalety modelu kaskadowego (rozumianego ściśle) + Łatwość zarządzania planowanie i monitorowanie - Wysoki koszt błędów popełnionych we wstępnych fazach Koszt błędu w wymaganiach 100-10001000 razy większy od kosztu błędu programistycznego! - Długa przerwa w kontaktach z klientem - Nie lubiany przez wykonawców 0% 0 1 2 3 4 5 6 7 8 9 10 czas Prototypowanie Cel lepsze określenie Fazy: Ogólne określenie Budowa prototypu Weryfikacja prototypu przez klienta Pełne określenie Realizacja pełnego systemu zgodnie z modelem kaskadowym lub innym profesjonalnym modelem Sposoby budowy prototypu Prototyp musi być zbudowany szybko i niskim kosztem Niepełna realizacja Języki wysokiego poziomu Wykorzystanie gotowych komponentów Generatory interfejsu użytkownika Szybkie programowanie (quick-and-dirtydirty programming) Papier Programowanie odkrywcze Wady i zalety prototypowania + Mniejsze ryzyko popełnienia kosztownych błędów we wczesnych fazach. + Możliwość szybkiej demonstracji prototypu i szkolenia użytkowników. - Koszt budowy prototypu, który może się nie zwrócić. - Możliwość nieporozumień z klientem. Realizacja przyrostowa Określenie i wstępny projekt Wybór przyrostu - podzbioru funkcji Realizacja przyrostu Proces realizowany iteracyjnie Wdrożenie przyrostu 5

Wady i zalety realizacji przyrostowej + Możliwość wcześniejszego korzystania z pewnych funkcji systemu + Skrócenie przerw w kontaktach z klientem + Możliwość elastycznego reagowania na opóźnienia - Kłopoty z integracją oddzielnie realizowanych modułów Realizacja przyrostowa Zalecana w większości żwawych (agile) metodyk np. w programowaniu ekstremalnym często małe przyrosty (kilka tygodni) Dobrze opisuje realizację wielu (zwłaszcza udanych) projektów wolnego (free/open source) Łączenie realizacji przyrostowej z prototypowaniem 1. Jeden prototyp na początku, potem realizacja przyrostowa 2. Prototyp w ramach każdego przyrostu Ogólne określenie i projekt architektury Cykl życia w lekich metodykach Wybór przyrostu (podzbioru funkcji) Analiza i projektowanie i testy jednostkowe Opracowanie przypadków testowych Integracja i testy Wdrożenie przyrostu Refaktoryzacja Rational unified process Rational unified process Faza rozpoczęcia (Inception phase) Faza opracowywania (Elaboration phase) Faza konstrukcji (Construction phase) Faza przekazania systemu (Transition phase) 6

Wybór modelu do konkretnego przedsięwzięcia Duże przedsięwzięcia, np. > 6 miesięcy realizacja przyrostowa, mniejsze m. Kaskadowy W żwawych metodykach także dla mniejszych przedsięwzięć Trudności w określeniu : nowatorski system z punktu widzenia klienta mała znajomość dziedziny problemu przez wykonawcę: Jeżeli tak, to prototypowanie Typowe zasady nowoczesnych metodyk Praca zespołowa z udziałem klienta Opowieści (scenariusze) użytkownika Krótkie cykle Plan iteracji i wydania Testy akceptacyjne na bazie opowieści użytkownika Programowanie w parach Wytwarzanie sterowane testami Typowe zasady nowoczesnych metodyk Wspólna własność Ciągła integracja Równe tempo Prosty projekt, metafora Refaktoryzacja 7