Metody wytwarzania oprogramowania. Metody wytwarzania oprogramowania 1/31

Podobne dokumenty
Programowanie Ekstemalne

Główne założenia XP. Prostota (Simplicity) Komunikacja (Communication) Sprzężenie zwrotne (Feedback) Odwaga (Agressiveness)

Tworzenie gier na urządzenia mobilne

Projekt Kompetencyjny - założenia

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

Programowanie zwinne - wprowadzenie. Programowanie ekstremalne. Wstęp Reguły i praktyki SCRUM. Wprowadzenie Role Zdarzenia Artefakty

Modele cyklu życia oprogramowania

Etapy życia oprogramowania

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

Programowanie zespołowe

SYSTEMY INFORMATYCZNE ćwiczenia praktyczne

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

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

Zasady organizacji projektów informatycznych

XPrince dla architektów 1

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

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

Przedsięwzięcia Informatyczne w Zarządzaniu

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

Proces wytwarzania oprogramowania

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

Zakres wykładu. Podstawy InŜynierii Oprogramowania

Zagadnienia. Inżynieria Oprogramowania

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

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

Zarządzanie projektami. Porównanie podstawowych metodyk

Wstęp do zarządzania projektami

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

Programowanie Zespołowe

Lekkie metodyki. tworzenia oprogramowania

Skuteczne zarządzanie projektami IT w otoczeniu uczelnianym. Piotr Ogonowski

Oceny z prezentacji INKU011S. Zofia Kruczkiewicz

Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop Spis treści. Wstęp 15.

Waterfall model. (iteracyjny model kaskadowy) Marcin Wilk

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

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

Inżynieria oprogramowania (Software Engineering)

szkolenia pod drzewem Wybrane Techniki XP bnd 2008 Tomasz Włodarek. Materiał udostępniany na podstawie licencji Creative Commons (by-nc-nd) 1.00.

Metodyki programowania. Tomasz Kaszuba 2015

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

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:

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

Programowanie extremalne. Adrian Gadzina

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

Dlaczego testowanie jest ważne?

4. Wprowadzanie Scruma w ImmobilienScout Opis sytuacji

Feature Driven Development

Klasyczna organizacja też może być zwinna! Zarządzaj zwinnie projektami!

Testujemy dedykowanymi zasobami (ang. agile testers)

Wytwarzanie oprogramowania

Programowanie ekstremalne

Agile Project Management

Testowanie i walidacja oprogramowania

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

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

Czynności konsultantów podczas wdrożenia systemu ERP w kontekście zarządzania wiedzą. Przemysław Lech, Wydział Zarządzania UG

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

Zarządzanie projektami w otoczeniu uczelnianym. Piotr Ogonowski

Inżynieria Oprogramowania w Praktyce

Wstęp do zarządzania projektami

Szybkość w biznesie. Zwinne testowanie oprogramowania (Agile) Mateusz Morawski (mateusz.morawski@hp.com) 14 kwietnia 2015

Wprowadzenie do przedmiotu 1

RUP. Rational Unified Process

I Twój zespół może być zwinny (choć to może trochę potrwać) Paweł Lipiński

Egzamin / zaliczenie na ocenę*

Zagadnienia. Inżynieria Oprogramowania

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Wstęp do zarządzania projektami

Usługa: Testowanie wydajności oprogramowania

Poniższy program może być skrócony do 1 dnia lub kilkugodzinnej prezentacji.

Zaawansowane programowanie w C++ (PCP)

JAKOŚCI W RÓŻNYCH FAZACH I ŻYCIA PRODUKTU

Zarządzanie ryzykiem w projektach informatycznych. Marcin Krysiński marcin@krysinski.eu

Metodyki zwinne wytwarzania oprogramowania

Optymalizacja Automatycznych Testów Regresywnych

Studia podyplomowe PROGRAM NAUCZANIA PLAN STUDIÓW

Zarządzanie bezpieczeństwem informacji przegląd aktualnych standardów i metodyk

Wykład 1 Inżynieria Oprogramowania

Podstawy programowania III WYKŁAD 4

Projektowanie systemów informatycznych. wykład 6

LEKKIE METODOLOGIE WYTWARZANIA OPROGRAMOWANIA

Rozpoczęcie, inicjacja (ang. inception

Proces projektowania i wdrożenia serwisu internetowego

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

Inżynieria oprogramowania II

Inżynieria Oprogramowania:

Podstawy modelowania programów Kod przedmiotu

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

Techniki i rozwiązania IT w optymalizacji procesów

Zarządzanie Projektami zgodnie z PRINCE2

Organizacja procesu projektowania, rozwoju i serwisowania systemu wspomagającego zarzadzanie uczelnią

Programowanie zwinne

Opis metodyki i procesu produkcji oprogramowania

Jakość w procesie wytwarzania oprogramowania

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

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

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

Transkrypt:

Metody wytwarzania oprogramowania Metody wytwarzania oprogramowania 1/31

Metody wytwarzania oprogramowania 2/31 Wprowadzenie Syndrom LOOP Late Późno Over budget Przekroczono budżet Overtime nadgodziny Poor quality kiepska jakość Rozwiązanie: Więcej dyscypliny

Metody wytwarzania oprogramowania 3/31 Model CMM Właściwości Departament Obrony USA SEI, Carnegie-Mellon Univ. 1987-97 CMMI: grudzień, 2000

Metody wytwarzania oprogramowania 4/31 Procedury dla CMM Poziom 2 przeglądy zobowiązań zewnętrznych, opracowanie planu przedsięwzięcia szacowanie rozmiaru, pracochłonności, kosztu, krytycznych zasobów obliczeniowych i harmonogramu dokonywanie zmian w planie przeglądy przedsięwzięcia przy kamieniach milowych planowanie zapewnienia jakości...

Metody wytwarzania oprogramowania 5/31 Krytyka podejść zorientowanych na dyscyplinę Dużo czasu poświęconego na administrację Papierowa fikcja Skupienie się na procesie, nie na jakości produktu Zapis procedur utrudnia poprawy procesów Dyscyplina zabija inicjatywę i elastyczność

Metody wytwarzania oprogramowania 6/31 Programowanie ekstremalne Extreme Programming lekka (ang. agile) metodyka rozwoju oprogramowania 1999 Kent Beck

Metody wytwarzania oprogramowania 7/31 Manifest zwinności Ważniejsze: Jednostki i interakcje niż procesy i narzędzia, czyli ewidentnie sprzeciwiają się podejściom zorientowanym na procedury i dyscyplinę Działające oprogramowanie niż obszerna dokumentacja stawiają na jakość produktu końcowego Współpraca klienta niż negocjacja kontraktu Nadążanie za zmianami niż trzymanie się planu

Metody wytwarzania oprogramowania 8/31 Wartości XP Komunikacja wymagania, wyobrażenie systemu głównie werbalna Prostota na początku najprostsze rozwiązanie refaktoryzacja pomaga przekształcić w bardziej skomplikowane Sprzężenie zwrotne w różnych wymiarach: system klient zespół

Metody wytwarzania oprogramowania 9/31 Wartości XP Odwaga aby nie projektować na wyrost aby refaktoryzować kod aby wyrzucić kod kiedy potrzeba Szacunek pomiędzy członkami zespołu czasu i pracy innych

Metody wytwarzania oprogramowania 10/31 Główne reguły i praktyki XP Struktura zespołu Relacje z klientem Zapewnienie jakości Programowanie parami

Metody wytwarzania oprogramowania 11/31 Opowieści użytkowników Są wstępem do rozmowy Są krótkie Opisują funkcję/cechę systemu Mają wartość dla klienta Muszą być testowalne

Metody wytwarzania oprogramowania 12/31 Hydrodynamiczny model projektu Data dostarczenia Koszt Defekty Niekompletność

Metody wytwarzania oprogramowania 13/31 Hydrodynamiczny model projektu Data dostarczenia Koszt Defekty Niekompletność

Metody wytwarzania oprogramowania 14/31 Cykl życia w XP stosuj częste, krótkie wydania wydanie: Ma wartość użytkową trafia do użytkowników końcowych Wydanie podziel na przyrosty przyrost: niepusty zbiór opowieści użytkownika charakter wewnętrzny 2 3 tygodnie Znajdź metaforę dla systemu metafora: wyjaśnia działanie systemu w terminach zrozumiałych dla klienta

Metody wytwarzania oprogramowania 15/31 Gra planistyczna Klient Pisze opowieść Informatycy Szacują opowieść Klient Dzieli opowieść

Zarządzanie zmianą w CMM Metody wytwarzania oprogramowania 16/31

Zarządzanie zmianą w XP Metody wytwarzania oprogramowania 17/31

Zarządzanie zmianą w XP Metody wytwarzania oprogramowania 18/31

Metody wytwarzania oprogramowania 19/31 Testy akceptacyjne Arkusz1 14 12 Liczba testów 10 8 6 4 2 Błąd Sukces 0 1 2 3 4 5 6 Kolejna iteracja

Metody wytwarzania oprogramowania 20/31 Zapewnianie jakości Dbaj o prostotę Unikaj optymalizacji Dla każdej jednostki kodu opracuj NAJPIERW zestaw testów, potem pisz kod Automatyczne wykonanie testów Refaktoryzacja

Metody wytwarzania oprogramowania 21/31 Zapewnianie jakości Kod musi przejść wszystkie testy jednostkowe zanim przekażesz go do eksploatacji Dla każdego wykrytego błędu utwórz zestaw testów Często integruj kod Często wykonuj testy akceptacyjne i publikuj ich wyniki

Metody wytwarzania oprogramowania 22/31 Programowanie parami Cały produkt jest kodowany w parach Standard kodowania Tylko jedna para integruje kod w danej chwili Pary się zmieniają Kod jest własnością całego zespołu System zarządzania wersjami Otwarta przestrzeń dla zespołu

Metody wytwarzania oprogramowania 23/31 Czynniki ryzyka Klient cały czas pracuje z zespołem Brak dokumentacji Brak fazy projektowania Krótka perspektywa planowania

Metody wytwarzania oprogramowania 24/31 Podsumowanie Manifest zwinności zorientowanie na ludzi i komunikację dopuszczenie zmian jakość oprogramowania Gra planistyczna Programowanie parami Wady XP

Metody wytwarzania oprogramowania 25/31 Geneza ewolucji oprogramowania Zmiana jest naturalnym procesem w cyklu rozwojowym oprogramowania i nie można jej uniknąć Zmiana środowiska Zmiana wymagań Potrzeba ulepszania Usuwanie błędów

Metody wytwarzania oprogramowania 26/31 Ewolucja a pielęgnacja Ewolucja oprogramowania: Ewolucja oprogramowania (ang. software evolution) to proces zmian zachodzących w oprogramowaniu w czasie jego życia. Pielęgnacja oprogramowania: Pielęgnacja oprogramowania (ang. software maintenance) to czynności modyfikujące program po jego dostarczeniu i wdrożeniu. Cele: poprawa błędów poprawa wydajności lub innych atrybutów programu adaptacja produktu do zmian w środowisku operacyjnym.

Metody wytwarzania oprogramowania 27/31 Czynniki wpływające na koszt pielęgnacji Czynniki wpływające na koszt pielęgnacji: Dziedzina zastosowań systemu Stabilność personelu pielęgnacyjnego Czas życia oprogramowania Stabilność sprzętu Jakość kodu i dokumentacji Czynniki nie wpływające na koszt pielęgnacji Metoda zarządzania przedsięwzięciem Dostępność zasobów

Metody wytwarzania oprogramowania 28/31 Inżynieria ponowna proces transformacji istniejącego oprogramowania (ang. legacy software) w celu poprawy jego pielęgnowalności niższe ryzyko niż w przypadku budowy nowego systemu opłacalne, jeżeli koszt jest niższy od kosztu stworzenia nowego systemu stosowane w przypadku często ewoluujących fragmentów systemu

Metody wytwarzania oprogramowania 29/31 Refaktoryzacja Refaktoryzacja to: zmiana wewnętrznej struktury kodu programu która zwiększa jego czytelność i obniża koszt pielęgnacji ale nie zmienia jego obserwowalnego zachowania

Metody wytwarzania oprogramowania 30/31 Koszt refaktoryzacji Refaktoryzacja nie zwiększa funkcjonalności programu, ale kosztuje: identyfikacja problemu przekształcenie kodu weryfikacja poprawności Koszt zależy od: własności języka oprogramowania wsparcia ze strony narzędzi CASE natury wykonywanego przekształcenia liczby i jakości posiadanych testów

Metody wytwarzania oprogramowania 31/31 W wykładzie wykorzystano materiały Programowanie ekstremalne, Jerzy Nawrocki, Łukasz Olek, http://wazniak.mimuw.edu.pl/index.php?title=io-12-wyk-toc Ewolucja oprogramowania i refaktoryzacja, Bartosz Walter, http://wazniak.mimuw.edu.pl/index.php?title=io-13-wyk-toc