Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Zdzisław Sroczyński

Slides:



Advertisements
Podobne prezentacje
JĘZYK VHDL Geneza: komputerowa symulacja układu cyfrowego, Departament Obrony USA opis skomplikowanego systemu w postaci schematu jest nieczytelny, szybkie.
Advertisements

Inżynieria Oprogramowania
Projektowanie w cyklu życia oprogramowania
Katedra Mikroelektroniki i Technik Informatycznych Politechniki Łódzkiej Inżynieria oprogramowania (IO) Wykłady: mgr inż. Sławomir Wróblewski Godziny przyjęć:
Studia Podyplomowe IT w Biznesie Inżynieria Oprogramowania
Złożoność procesu konstrukcji oprogramowania wymusza podział na etapy.
Role w zespole projektowym
Budowa i integracja systemów informacyjnych
1 / 47 WARSZAWA 2005 Przemysław Siekierko Stanisław Andraszek Rational Unified Process.
Planowanie zadań i metody ich obrazowania
Inżynieria Oprogramowania 1. Wstęp
Wydział Zastosowań Informatyki i Matematyki SGGW
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Prototypowanie oprogramowania l Błyskawiczne tworzenie oprogramowania służące.
Projektowanie Aplikacji Komputerowych
Politechnika Gdańska WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI
Propozycja metodyki nauczania inżynierii oprogramowania
Wprowadzenie do inżynierii oprogramowania
Tomasz Pieciukiewicz Rafał Hryniów
Cykle życia oprogramowania
Pomiary w inżynierii oprogramowania
Wymagania jakości w Agile Programming
Pomiary w inżynierii oprogramowania
Quartz. Wstęp Framework stworzony do budowy aplikacji biznesowych Metodologia która łączy prototypowanie, modelowanie wizualne oraz automatyzację budowy.
Rational Unified Process
Podstawy Inżynierii Oprogramowania
Praca Inżynierska „Analiza i projekt aplikacji informatycznej do wspomagania wybranych zadań ośrodków sportowych” Dyplomant: Marcin Iwanicki Promotor:
Analiza i ocena procesów wdrożeniowych systemów klasy MRP/ERP w firmie
Projekt zaliczeniowy z przedmiotu "Inżynieria oprogramowania"
1/18 LOGO Profil zespołu. 2/18 O nas Produkcja autorskich rozwiązań informatycznych dla małych i średnich firm w zakresie systemów: Baz danych Aplikacji.
Dalsze elementy metodologii projektowania. Naszym celem jest...
Analiza, projekt i częściowa implementacja systemu obsługi kina
Wykład 2 Cykl życia systemu informacyjnego
Wykład 10 Narzędzia CASE.
C.d. wstępu do tematyki RUP
Wykład 1 – część pierwsza
Zaprojektowanie i wykonanie prototypowego systemu obiegu dokumentów (workflow) dla Dziekanatu Wydziału z wykorzystaniem narzędzi open-source i cloud computing.
Moduł: Informatyka w Zarządzaniu
Planowanie przepływów materiałów
Unified Modeling Language - Zunifikowany Język Modelowania
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Komputerowe wspomaganie projektowania
Waterfall model.
Zarządzanie zagrożeniami
ŁUKASZ DZWONKOWSKI Modele zwinne i ekstremalne. Podejście tradycyjne
Inżynieria oprogramowania
Proces tworzenia oprogramowania Proces tworzenia oprogramowania jest zbiorem czynności i związanych z nimi wyników, które prowadzą do powstania produktu.
Copyright © Jerzy R. Nawrocki Team Software Process Inżynieria oprogramowania II Wykład.
ZASTOSOWANIE KOMPUTEROWEGO WSPOMAGANIA W ZARZĄDZANIU JAKOŚCIĄ - METODY FMEA I QFD Politechnika Śląska, Wydział Organizacji i Zarządzania, Katedra Zarządzania.
ZINTEGROWANE SYSTEMY ZARZĄDZANIA
Eksploatacja zasobów informatycznych przedsiębiorstwa.
Wdrażanie SYSTEMU Jacek WĘGLARCZYK.
Bartosz Baliś, 2006 Wstęp do Inżynierii Oprogramowania Bartosz Baliś.
7/1/ Projektowanie Aplikacji Komputerowych Piotr Górczyński Cykl życia systemu.
Studia Podyplomowe IT w Biznesie Inżynieria Oprogramowania
Wykład 2 – Zintegrowane systemy informatyczne Michał Wilbrandt.
Budowa i integracja systemów informacyjnych Wykład 2 Cykl życiowy oprogramowania dr inż. Włodzimierz Dąbrowski P olsko J apońska W yższa S zkoła T echnik.
ANALIZA WARTOŚCI PRZEDSIĘWZIĘĆ PROJEKTOWYCH ZE SZCZEGÓLNYM UWZGLĘDNIENIEM KRYTERIUM ICH EFEKTYWNOŚCI Bartłomiej Czekaj Numer albumu: 1892 Promotor: Prof.
Analiza, projekt i częściowa implementacja systemu wspomagania pracy Referatu Reprografii Promotor: mgr inż. Dariusz OlczykWykonała: Katarzyna Ściwiarska.
Cykle życia oprogramowania oraz role w zespole projektowym Autor: Sebastian Szałachowski s4104.
Przygotowanie projektów unijnych
Agile Programming a jakość
Inżynieria systemów informacyjnych
Modele zarządzania ryzykiem w ujęciu jakości projektu
Zarządzanie projektami informatycznymi
Budowa i integracja systemów informacyjnych
Wykład 1 – część pierwsza
IEEE SPMP Autor : Tomasz Czwarno
Cykl życia oprogramowania
Zapis prezentacji:

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Zdzisław Sroczyński Zdzisław Sroczyński Politechnika Śląska Instytut Matematyki Inżynieria programowania Modele cyklu życia oprogramowania

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Inżynieria oprogramowania - definicja Inżynieria (o)programowania – dziedzina informatyki, opisująca wszystkie fazy cyklu życia (produkcji) oprogramowania Dążenie do uzyskania wysokiej jakości produktu – oprogramowania Powiązania z innymi dziedzinami: ekonomia, zarządzanie, nauki społeczne

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Katastrofa mostu w Tacoma ( r)

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Awaria sondy kosmicznej Mariner I ( ) Najdroższy myślnik w historii ;)

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania „kryzys oprogramowania” Lata 60 XXw Przekraczanie czasu i budżetu projektów IT Akceptowanie błędów Przyczyny: – złożoność – unikalność – trudność oceny stopnia zaawansowania – brak skalowalności Trwa do dziś (?)

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Jakość oprogramowania Spełnienie wymagań użytkownika Niezawodność Ergonomia Efektywność Łatwość konserwacji Efektowność (?)

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Przykład: ergonomia pośrednictwa graficznego

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Podział inżynierii oprogramowania Nurt formalny – Metody formalne: języki specyfikacji, transformacje, dowody poprawności Nurt praktyczny – Notacje graficzne, wiedza i doświadczenie programisty W 2005r. ponad połowa projektów IT w USA była prowadzona w oparciu o techniki strukturalne (formalnie przestarzałe)!

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Zadania inżynierii oprogramowania Organizacja przedsięwzięć informatycznych – planowanie, harmonogramowanie, wycena, monitoring, ocena Analiza i projektowanie systemów IT Zwiększanie niezawodności oprogramowania Testowanie systemów IT Przygotowanie dokumentacji technicznej i użytkowej Kontrola jakości Redukcja kosztów konserwacji Praca zespołowa, praca zdalna/uwarunkowania

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Zagrożenia Nowe metodyki – poprawa jakości i efektywności w ograniczonym zakresie Konieczność używania specjalistycznych narzędzi CASE (Computer Aided/Assisted Software Engineering) – Upper-CASE (modelowanie i projekt) – Lower-CASE (implementacja, generacja kodu) Istotny narzut czasu potrzebnego na sporządzenie dokumentacji, diagramów i raportów

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Model kaskadowy (ang. waterfall) Analogia do innych dziedzin inżynierii Liniowość, ścisła kolejność Wysoki koszt błędów popełnianych na etapach początkowych Brak interakcji z klientem/użytkownikiem

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Plan wykładu – cz.1 1. Modele cyklu życia oprogramowania 2. Koncepcje tworzenia złożonego oprogramowania - podejście strukturalne/ podejście obiektowe/RAD, wykorzystanie bibliotek i frameworków 3. Uruchamianie oprogramowania (rodzaje i przyczyny błędów, debugger, refaktoring, praca krokowa, breakpointy, obserwacja zmiennych, wydruki kontrolne)

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Plan wykładu – cz.2 4. Testowanie oprogramowania (modele testowania względem specyfikacji/kodu, testowanie GUI) 5. Zarządzanie projektem informatycznym (Narzędzia pracy grupowej-groupware, wersjonowanie, API, zarządzanie projektami) 6. Dokumentacja procesu tworzenia oprogramowania oraz dokumentacja użytkowa 7. Optymalizacja czasowa i pamięciowa programów

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Plan wykładu – cz.3 8. Komunikacja program-użytkownik 9. Wdrożenie, utrzymanie i konserwacja oprogramowania (systemy zgłaszania błędów, programy instalacyjne) 10. Ocena jakości oprogramowania (kryteria, metryki) 11. Projektowanie niezawodnego oprogramowania (czynniki, techniki zwiększające odporność na defekty, programowanie zwinne (agile) oraz ekstremalne, wzorce projektowe)

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Plan laboratorium 1.Testowanie i uruchamianie 2.Ocena i poprawa efektywności oprogramowania 3.Komunikacja programów z użytkownikiem 4.Zarządzanie projektem informatycznym, notacje wspomagające modelowanie 5.Przygotowywanie programów instalacyjnych 6.Tworzenie dokumentacji użytkowej oprogramowania

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Warunki zaliczenia Kolokwium zaliczeniowe na wykładzie – max. 48 pkt + 2pkt aktywność Sprawozdania z lab. oddane w terminie – 6 ćwiczeń lab. w semestrze – Ocena 0-8pkt. – max. 8pkt <1tydz. od zakończenia ćwiczenia – max. 7pkt <2tyg. Od zakończenia ćwiczenia – Łącznie max. 48 pkt + 2pkt aktywność Obecność na laboratorium obowiązkowa

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Model kaskadowy z iteracjami Problem dogmatycznej interpretacji Wprowadzenie iteracji – rozluźnienie założeń

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Pozostałe modele Model kierowany dokumentami (document-driven) – kosztowny, czasochłonny Prototypowanie (prototyping) Programowanie odkrywcze, zwinne, ekstremalne (exploratory, agile, extreme) Metoda przyrostowa (incremental) Model komponentowy (component-based) Model spiralny (spiral) Transformacje formalne (formal)

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Prototypowanie Budowa prototypu przed realizacją pełnej wersji systemu (metodą kaskadową) Można zaoferować nowe funkcjonalności, nieobecne w dotychczasowym modelu działania klienta Wykrycie braków i nieporozumień w specyfikacji wymagań, identyfikacja brakujących usług Szybka demonstracja, szkolenia przed wdrożeniem Koszt budowy prototypu, niezadowolenie klienta Wykorzystanie gotowych komponentów, generatorów GUI, wersja quick-and-dirty

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Programowanie odkrywcze, zwinne, ekstremalne (exploratory, agile, extreme) Gdy trudne określenie wymagań klienta Iteracje: – realizacja projektu – weryfikacja przez klienta Utrata sensownej struktury programu (?) Bezpośredni udział klienta Amatorski sposób tworzenia oprogramowania (ocena z 1997r) Nowatorski sposób tworzenia oprogramowania (ocena z 2010r) – Zawsze istnieje działająca wersja oprogramowania

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Programowanie odkrywcze, zwinne, ekstremalne - rys

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Metoda przyrostowa Dla dużych projektów (?) Wstępny projekt całości systemu Realizacja poszczególnych modułów z odbiorem przez klienta Skraca przerwy w kontaktach z klientem Umożliwia szybkie korzystanie z (części) systemu Reakcja na opóźnienia Konieczność zapewnienia podziału systemu na moduły, zbudowania substytutów jeszcze nie zrealizowanych modułów

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Metoda przyrostowa - rys

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Model komponentowy (component-based) Biblioteki Języki 4GL (SQL, Oracle Forms) Zewnętrzne aplikacje (przeglądarki plików) SOA (Service-Oriented Architecture) Komponenty etapu projektowania Źródło: zakup, opracowanie własnych fragmentów kodu Zalety: niezawodność, standaryzacja, wykorzystanie zasobów ludzkich, redukcja kosztów Wady: uzależnienie od dostawcy

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Model komponentowy (component-based)

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Model spiralny (spiral ) Analiza ryzyka – czy warto opracować nową wersję systemu? Konstrukcja – nowa wersja powstaje np. zgodnie z modelem kaskadowym Atestowanie – nowa wersja jest oceniana przez klienta/użytkownika Planowanie – wnioski i cele produkcji dla kolejnej wersji Model ogólny - kolejne rynkowe wersje oprogramowania

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Model spiralny - rys

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Transformacje formalne (formal transformations) Przejście od formalnej specyfikacji wymagań w pewnym języku deklaratywnym... poprzez n postaci pośrednich... Do kodu wynikowego Powiązania: algorytmika, dowodzenie poprawności i warunku stop dla algorytmu Wysoka niezawodność (teoretycznie) Formalna specyfikacja wymagań = program w języku (bardzo) wysokiego poziomu Mała efektywność Najczęściej rozwiązania mało uniwersalne

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Podsumowanie Modeli nie należy traktować dogmatycznie Wiele z modeli jest podobnych lub (częściowo) równoważnych Ocena modeli zmienia się wraz z modą/ upływem czasu Warto dobrać model do wielkości i charakteru prowadzonego projektu

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Podsumowanie – jakość oprogramowania

Z. SroczyńskiInżynieria programowania Modele cyklu życia oprogramowania Dziękuję za uwagę Następny temat: wirtualizacja