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



Podobne dokumenty
Politechnika Poznańska, Instytut Informatyki, Studia niestacjonarne. Inżynieria oprogramowania

Politechnika Poznańska, Instytut Informatyki, Studia niestacjonarne. Inżynieria oprogramowania

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

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ą?

Etapy życia oprogramowania

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

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

Opis metodyki i procesu produkcji oprogramowania

Metody wytwarzania oprogramowania. Metody wytwarzania oprogramowania 1/31

INŻYNIERIA OPROGRAMOWANIA

DOKUMENTACJA. Przeznaczenie dokumentacji użytkowej. Użytkownicy końcowi Administratorzy SKŁADNIKI DOKUMENTACJI. Synteza Dokumentacja.

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

Szczegółowy opis przedmiotu umowy. 1. Środowisko SharePoint UWMD (wewnętrzne) składa się z następujących grup serwerów:

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

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

Wykład 1 Inżynieria Oprogramowania

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

Dr Katarzyna Grzesiak-Koped

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

Narzędzia CASE dla.net. Łukasz Popiel

Acceptance Test Driven Development wspierane przez narzędzie ROBOT Framework. Edyta Tomalik Grzegorz Ziemiecki

Procesy wytwarzania oprogramowania Specyfikacja i projektowanie oprogramowania

Program szkolenia: Continuous Integration i Git

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

Metodyki programowania. Tomasz Kaszuba 2015

Programowanie zespołowe

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Egzamin / zaliczenie na ocenę*

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

Tworzenie gier na urządzenia mobilne

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

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

Konfiguracja modelowania w procesie wytwarzania oprogramowania

Inżynieria oprogramowania (Software Engineering)

AUREA BPM HP Software. TECNA Sp. z o.o. Strona 1 z 7

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

Testowanie oprogramowania

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

Feature Driven Development

SYSTEMY INFORMATYCZNE ćwiczenia praktyczne

Wytwarzanie oprogramowania

Cykle życia systemu informatycznego

Modelowanie i analiza systemów informatycznych

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

PRZEWODNIK PO PRZEDMIOCIE

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

Studia podyplomowe PROGRAM NAUCZANIA PLAN STUDIÓW

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

Testowanie w procesie Scrum

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

Automatyczne decyzje kredytowe, siła szybkiego reagowania i optymalizacji kosztów. Roman Tyszkowski ING Bank Śląski S.A. roman.tyszkowski@ingbank.

Wykład 7. Projektowanie kodu oprogramowania

Testowanie i walidacja oprogramowania

Agile Project Management

PRZEWODNIK PO PRZEDMIOCIE

INŻYNIERIA OPROGRAMOWANIA Wykład 6 Organizacja pracy w dziale wytwarzania oprogramowania - przykład studialny

Przedsięwzięcia Informatyczne w Zarządzaniu

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

Warsztaty szkoleniowe. Technologia SafetyLon w systemach związanych z bezpieczeństwem funkcjonalnym Narzędzia SafetyLon Moduł 4.5.

Inżynieria oprogramowania I

Podstawy programowania III WYKŁAD 4

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

Jak daleko jesteśmy od standardu? ankieta dla twórców produktów informatycznych o podwyższonych wymaganiach bezpieczeństwa

Dokument Detaliczny Projektu

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ś

Opis realizacji dla czterech zespołów (4 przypadki użycia)

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Dokument Detaliczny Projektu

I. Opis przedmiotu zamówienia

Metodyka projektowania komputerowych systemów sterowania

Zarządzanie projektami. Porównanie podstawowych metodyk

Waterfall model. (iteracyjny model kaskadowy) Marcin Wilk

Dlaczego testowanie jest ważne?

Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz

DSL w środowisku Eclipse. Grzegorz Białek Architekt techniczny, Sygnity S.A.

Zapewnij sukces swym projektom

Testowanie oprogramowania. Piotr Ciskowski

REFERAT PRACY DYPLOMOWEJ

Projektowanie oprogramowania. Termin zajęć: poniedziałek, a podstawie materiału ze strony.

SPECYFIKACJA WYMAGAŃ

Inżynieria oprogramowania - opis przedmiotu

INŻYNIERIA OPROGRAMOWANIA

Ciągłe dostarczanie oprogramowania : kompletny przewodnik / Eberhard Wolff. Gliwice, cop Spis treści

Michał Olejnik. 22 grudnia 2009

Projektowanie systemów informatycznych. wykład 6

STUDIA STACJONARNE I STOPNIA Przedmioty kierunkowe

RUP. Rational Unified Process

Lekkie metodyki. tworzenia oprogramowania

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

Konwerter Plan testów. Jakub Rauch Tomasz Gołębiowski Adam Busch Bartosz Franaszek 1 czerwca 2008

Rok akademicki: 2012/2013 Kod: IET SW-s Punkty ECTS: 3. Kierunek: Elektronika i Telekomunikacja Specjalność: Systemy wbudowane

Zagadnienia. Inżynieria Oprogramowania

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński

Planowanie i realizacja zadań w zespole Scrum

Usługa: Testowanie wydajności oprogramowania

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE SYSTEMOWE

Metodyka Sure Step. Agenda:

Kontraktor - Analityk Biznesowy

Transkrypt:

Instalacja/wdrożenie Szkolenia użytkowników końcowych i administratorów systemu Instalacja sprzętu i przeniesienie Wypełnienie baz danych Uruchomienie Plany awaryjne Instalacja Nadzorowane korzystanie z systemu, często równoległe z tradycyjnym sposobem pracy Usuwanie błędów w oprogramowaniu i dokumentacji użytkowej Przekazanie systemu klientowi Klient powinien otrzymać także dokumentację techniczną Konserwacja Modyfikacje poprawiające/korygujące ulepszające dostosowujące Źródła żądań zmian Klienci Wytwórcy Zarząd Narzędzia zarządzania żądaniami zmian Keystone (Freeware) JitterBug (Freeware, Open Source) GNATS (Freeware) Visual Intercept (commercial) Bugzilla (Open source) Mantis (Open source) Funkcje narzędzi zarządzania żądaniami zmian Zarządzanie projektami/podprojektami i przydziałami odpowiedzialności Wprowadzanie żądań zmian Powiadamianie osób odpowiedzialnych, osób wprowadzających żądania Śledzenie żądań zmian Raporty, statystyki 1

Ocena żądanej zmiany Znaczenie wprowadzenia zmiany dla użytkowników Koszt wprowadzenia zmiany Wpływ zmiany za poszczególne składowe systemu Wpływ zmiany na poszczególne składowe dokumentacji technicznej Propagacja zmian Zarządzanie żądaniami zmian Całościowa ocena i decyzja Kolejkowanie żądań zmian Zlecenie wykonania zmiany Przydział osoby/zespołu do wykonania zmiany Monitorowanie realizacji zmiany Czynniki wpływające na koszty konserwacji niezależne od firmy Stabilność środowiska, w którym pracuje system Stabilność platformy sprzętowej i systemowego Czas użytkowania systemu Czynniki wpływające na koszty konserwacji zależne od firmy Znajomość dziedziny problemu Wysoka jakość modelu i projektu Wysoka jakość dokumentacji technicznej pełna zgodność z systemem wystarczająca szczegółowość zgodność ze standardami Stabilność personelu Dokumentacja techniczna Dokumentacja techniczna a projekt Jakość dokumentacji a jakość projektu Dobra dokumentacja Zły projekt Dobra dokumentacja Dobry projekt Inżynieria odwrotna (reverse engineering) Typowa składowa narzędzi CASE Generowanie kodu Synchronizacja projektu z kodem Narzędzia niezależne JavaDoc, Doxygen Zła dokumentacja Zły projekt Zła dokumentacja Dobry projekt 2

Reinżynieria (software reengineering, round-trip engineering) Generowanie kodu CASE Kod Dokumentacja użytkowa Odbiorcy dokumentacji Potencjalni użytkownicy Użytkownicy początkujący Użytkownicy zaawansowani Administratorzy Inżynieria odwrotna Składowe dokumentacji użytkowej Opis funkcjonalny Podręcznik użytkownika Kompletny opis (reference) Opis instalacji Podręcznik administratora systemu Słownik używanych terminów Indeks Podręcznik użytkownika Sposoby uruchamiania oraz kończenia pracy z systemem Sposoby realizacji najczęściej wykorzystywanych funkcji systemu Metody obsługi błędów, np. sposoby odwoływania błędnych operacji wykonanych przez użytkownika Sposoby korzystania z systemu pomocy Podręcznik użytkownika powinien przedstawiać prosty przykład(y) korzystania z systemu. Kompletny opis (reference) Szczegółowy opis wszystkich funkcji systemu Informacje o wszystkich sposobach wywoływania tych funkcji Opisy formatów danych Opisy wszystkich błędów, które mogą się pojawiać podczas pracy z systemem Informacje o wszelkich ograniczeniach dotyczących np. zakresów danych Jakość dokumentacji użytkowej Struktura Zachowanie standardów Sposób pisania Stosowanie formy aktywnej oraz zwracanie się do czytelnika. Poprawność gramatyczna i ortograficzna. Krótkie zdania. Krótkie akapity. Oszczędność słów. Precyzyjna definicja używanych terminów. Powtarzanie trudnego opisu. Stosowanie tytułów i podtytułów sekcji, wyliczeń i wyróżnień. Zrozumiałe odwołania do innych rozdziałów. 3

Bezpieczeństwo użytkowników Zagrożenie dla życia lub zdrowia systemy medyczne, systemy sterowania Bezpieczeństwo prawne Bezpieczeństwo finansowe Bezpieczeństwo niezawodność Program zawodny może być bezpieczny Program niezawodny może nie być bezpieczny Jak zapewnić bezpieczeństwo Należy określić potencjalne zagrożenia Przykład - program sporządzający PIT-y błędne rozliczenie podatnika z urzędem podatkowym niezłożenie zeznania podatkowego złożenie wielu zeznań dla jednego podatnika, być może w różnych urzędach Określanie potencjalnych przyczyn zagrożeń - analiza drzewa błędów Unikanie zagrożeń Szczególny nacisk na niezawodność najważniejszych fragmentów systemu - unikanie błędów, testowanie Weryfikacja wprowadzonych danych Sprawdzanie warunków poprawności Zapewnianie jakości Zapewnianie jakości a inżynieria Główne działania składające się na zapewnianie jakości: Standaryzacja Kontrole jakości formalne przeglądy techniczne 4

Standaryzacja Standardy dotyczące artefaktów: Kod, projekt, specyfikacja wymagań, dokumentacja techniczna, dokumentacja użytkowa Procedury standardy dotyczące działań Sposób zatwierdzania dokumentacji technicznej, sposób przekazywania modułu do testowania Cele: Promowanie dobrych praktyk Wymuszenie spójności Możliwość automatyzacji Praca grupowa Gdzie Czy jest Kowalski najnowsza cokolwiek Kto popełnił wersja!!! robi w tym ten błąd?!!! projekcie?!!! Nie ja!!! Przecież już raz poprawiłem ten błąd!!! Przecież poprzednio to działało!!! Ktoś nadpisał moje zmiany!!! Inne typowe problemy Czy wszystko zostało skompilowanie? Przetestowane? Jak usunąć niekompletną/błędną modyfikację? Nie mogę odtworzyć tego błędu. Jakie zmiany zostały uwzględnione w tej wersji? Muszę połączyć 250 plików? Jaką wersję ma ten klient? Czy dostarczyliśmy właściwą wersję? Czy klient zmodyfikował nam kod? Czy można klientowi dostarczyć najnowszą wersję jeżeli na zakupił dwóch poprzednich? Praca grupowa i zarządzanie konfiguracjami Równoległa pracy wielu osób nad tym samym projektem Ryzyko nadpisywania zmian Problem najnowszej wersji Potrzeba odwoływania się do poprzednich wersji Monitorowanie prac SVN - struktura Podstawowy model pracy użytkownika Server Server 1: Pobranie pliku(ów) (check-out) 2: Edycja pliku(ów) Centralne repozytorium Centralne repozytorium 3: Zapis pliku(ów) (check-in/commit) 5

Podstawowy model pracy użytkownika Dołączanie komentarzy nt. wprowadzonych zmian podczas zapisu pliku(ów) Porównywanie lokalnej pliku(ów) z zawartością repozytorium Jaka powinna być częstotliwość zapisu do repozytorium? bazowa (baseline) Przed powstaniem wersji bazowej samodzielna praca osoby/zesołu bazowa od tego momentu komponent może być wykorzystywany przez inne osoby/zespoły i podlega zarządzaniu konfiguracjami Praca równoległa unikanie konfliktów Blokowanie pliku(ów) lub pobieranie bez wyłączności (unreserved check-out) Synchronizacja lokalnej kopii pliku(ów) Wykrywanie konfliktów bez interpretacji zawartości pliku tekstowego Informowanie innych użytkowników o zapisie Możliwość sprawdzenia kto korzysta z pliku Obserwowanie wybranych plików - powiadamianie Użytkownicy Hasła Prawa dostępu Ochrona danych Wersjonowanie Sposób zapisu wersji Jednostką wersjonowania jest plik Każda zmiana powoduje powstanie nowej wersji pliku Możliwość opisywania wersji etykietami Pobieranie poprzednich wersji na podstawie daty lub etykiety Porównywanie różnych wersji bazowa 01.05 Zmiany 04.05 04.05 Zmiany 07.05 07.05 Zmiany 11.05 11.05 6

Rozgałęzianie i łączenie gałęzi 1 1.1b 1.1a 1.2b 1.2a 1.3b 1.3 Przyczyny rozgałęzień Niezależne ścieżki rozwoju, np. konserwacja komponentu vs. jego dalszy rozwój Warianty np. konfiguracje na różne platformy Eksperymentalne ścieżki rozwoju Równoległa praca dwóch programistów/zespołów trudna do bieżącej synchronizacji Śledzenie prac Obserwacja komentarzy Monitorowanie pracy użytkowników Analiza danych Inne modele pracy w systemach zarządzania konfiguracjami Composition Model Long Transaction Model Change Set Model Narzędzia wspomagające wytwarzanie Narzędzia programistyczne Narzędzia wspomagające pracę nad oprogramowaniem Narzędzia zarządzania i pracy grupowej Zaawansowane narzędzia wspomagające wytwarzanie Narzędzia wspomagające wytwarzanie Narzędzia programistyczne Kompilatory Edytory kodu Debuggery IDE Narzędzia projektowania interfejsu użytkownika Biblioteki Narzędzia formatujące Analizatory kodu Narzędzia wspomagające refaktoryzację 7

Narzędzia wspomagające pracę nad oprogramowaniem Narzędzia zarządzania wymaganiami Narzędzia CASE modelowanie, projektowanie, generowanie i dokumentowanie Narzędzia zarządzania konfiguracjami Narzędzia wspomagające testowanie Narzędzia dokumentacji technicznej Narzędzia zarządzania zgłoszeniami zmian/błędów Narzędzia zarządzania i pracy grupowej Narzędzia harmonogramowania przedsięwzięć Personalne plany zadań Narzędzia rozproszonego zarządzania przedsięwzięciami Narzędzia generujące metryki Narzędzia szacowania kosztów Narzędzia komunikacji Narzędzia zarządzania konfiguracjami Zaawansowane narzędzia wspomagające wytwarzanie Narzędzia typu workflow Narzędzia śledzenia powiązań Narzędzia analizy danych Narzędzia CASE Computer Assisted/ ssisted/aided ided Software/ oftware/system Engineering CAD dla inżynierów Upper-CASE głównie analiza Lower-CASE projektowanie, generowanie kodu, inżynieria odwrotna I-CASE, Integrated-CASE Składowe narzędzi CASE Słownik danych repozytorium Edytor(y) notacji graficznych Generator raportów Generator dokumentacji technicznej Generator(y) kodu Moduł projektowania interfejsu użytkownika Moduł(y) inżynierii odwrotnej Składowe narzędzi CASE Moduł kontroli poprawności Moduł kontroli jakości Moduł importu/eksportu danych Moduł zarządzania wersjami Moduł zarządzania pracą grupową 8

Główne zalety narzędzi CASE Wspomaganie analizy i projektowania Opracowywanie dokumentacji Wspomaganie pracy grupowej A co z generowaniem kodu? Główne problemy we wdrażaniu narzędzi CASE Traktowanie narzędzi CASE wyłącznie jako generatorów kodu Nieznajomość metodyki analizy i projektowania Niewłaściwa organizacja i zarządzanie przedsięwzięciem Zbyt wysokie oczekiwania związane z wdrożeniem narzędzi CASE Żwawe (miękkie, lekkie) metodyki Extreme programming Microsoft Solutions Framework (MSF) Scrum XPrince? Co znaczy żwawe? Nie projektuj (szczegółowo) Nie dokumentuj (szczegółowo) Nie stosuj formalnych przeglądów technicznych, w tym inspekcji kodu Lekkie nie są wcale takie lekkie Lekkich metodyk nie wolno mylić z programowaniem odkrywczymym Ogólne określenie wymagań Wdrożenie Ogólny projekt Tak Budowa systemu Ocena systemu System poprawny Nie Ciężkie wymagania w Extreme programming Praca zespołowa z udziałem klienta Proces iteracyjny połączony z planowaniem programowanie przyrostowe Opowieści (scenariusze) użytkownika Praca parami i wspólna własność kodu Nacisk na testowanie Grupowe sesje projektowe Stosowanie metafor/analogii w trakcie projektowania Stosowanie standardów kodowania Częsta refaktoryzacja Zarządzanie wersjami i ciągła integracja Ciągła obserwacja, ocena i usprawnianie stosowanych technik 9

Praca zespołowa z udziałem klienta Udział klienta Zespół w jednym miejscu open space Niewielki zespół XP - Proces iteracyjny połączony z planowaniem Każda iteracja powinna wiązać z istotnym i dobrze określonym wzrostem funkcjonalności Koncentracja na funkcjach najważniejszych dla użytkownika Gra planistyczna Opowieści (scenariusze) użytkownika Krótki scenariusz Podstawa Szacowania kosztów Implementacji Testów akceptacyjnych XP - Częsta refaktoryzacja Zmiana kodu bez modyfikowania jego funkcjonalności Optymalizacja Poprawa struktury... XP - Praca parami Rodzaj nieformalnych przeglądów technicznych zastępuje formalne przeglądy w tym inspekcje kodu Zmiany w składzie par programistów Krótka narada na stojąco na początku każdego dnia pracy Wymagania wobec pomieszczenia pracy Wspólna własność kodu XP - Nacisk na testowanie Przypadki testowe traktowane jako elementy specyfikacji wymagań i projektu! Opracowywanie testów jednostkowych przed kodowaniem! Test-driven development Testy jednostkowe muszą obejmować cały kod! Testy muszą być uzupełnione w przypadku znalezienia błędu nie wykrytego przez dotychczasowe testy Stosowanie narzędzi wspomagających wykonywanie testów 10

XP - Grupowe sesje projektowe Prosty projekt Metody grupowego projektowanie np. CRC (class, responsibility, communication) Przypadki testowe jako element projektu XP - Stosowanie metafor/ analogii trakcie projektowania Analogie do poprzednich systemów Wzorce projektowe Stosowanie standardów kodowania Ścisłe przestrzeganie standardu kodowania Ścisłe przestrzeganie zasad dokumentowania Stosowanie narzędzi automatycznego generowania dokumentacji Zarządzanie wersjami i ciągłą integracja Stosowanie narzędzi zarządzania wersjami Unikanie równoległej pracy dwóch par nad tym samym kodem Częsta integracja Częste, najlepiej zautomatyzowane wykonywanie testów Ciągła obserwacja, ocena i usprawnianie stosowanych technik Ciągła poprawa jakości Zbieranie danych Ograniczenia XP Stosunkowo małe zespoły do kilkunastu osób 11

Praktyki Extreme programming a praktyki klasyczne Praca parami przeglądy techniczne, szkolenia Nacisk na testowanie - szczegółowa specyfikacja Częsta refaktoryzacja/przebudowa kodu szczegółowe projektowanie Ciężkie wymagania w MSF Proces iteracyjny połączony z planowaniem Analiza i uwzględnianie ryzyka Niezmienna data zakończenia iteracji Codzienna kompilacja, linkowanie (budowa) i testowanie systemu Stabilizacja Osiągnięcie zakresu Iteracja w MSF Projektowanie i programowanie Wydanie przyrostu Zatwierdzenie planu i projektu koncepcji Ogólna koncepcja systemu Zatwierdzenie koncepcji Projekt koncepcyjny Lekkie metodyki a model kaskadowy Lekkie metodyki są często przedstawiane jako alternatywa dla modelu kaskadowy Sprzeczności często wynikają z odwoływania się do konkretnych procesów opartych na modelu kaskadowym Wiele praktyk pochodzących z lekkich metodyk może być stosowanych w ramach modelu kaskadowego i Scrum Zespół 5-9 osób, interdyscyplinarny, jeden cel (można uczestniczyć w jednym zespole) Scrum master, product owner, the team Sprint (przyrost) 2-6 tygodni Wymagania scenariusze, use casy Priorytety i wybór Realizacja przebiegu brak ingerencji właściciela produktu Codzienne spotkania Sprint review Miękkie metodyki a model kaskadowy Miękkie metodyki są często przedstawiane jako alternatywa dla modelu kaskadowy Sprzeczności często wynikają z odwoływania się do konkretnych procesów opartych na modelu kaskadowym Wiele praktyk pochodzących z miękkich metodyk może być stosowanych w ramach modelu kaskadowego i programowania przyrostowego 12

Ważne trendy w inżynierii Lekkie metodyki Wpływ na podejścia klasyczne Narzędzia Integracja Zaawansowane narzędzia typu workflow, śledzenia powiązań, analizy danych Wolne oprogramowanie Wytwarzanie rozproszone Ponowne wykorzystanie W tym Applications framework Architektura/inżynieria kierowana modelem Architektura kierowana modelem Model driven architecture (MDA) Współczesne oprogramowanie to coraz częściej oprogramowanie rozproszone Problem wielość technologii wytwarzania systemów rozproszonych Corba J2EE.NET Web services Rozwiązanie jeden model, różne rozwiązania technologiczne Modele w MDA PIM platform independent model model niezależny od platformy PSM platform specific model model specyficzny dla platformy Półautomatyczna transformacja PIM do PSM + generowanie kodu z PSM Standardy wykorzystywane w MDA UML (XMI) MOF Meta Object Facility CWM Common Warehouse Model Gotowe modele dla typowych obszarów zastosowań Inżynieria kierowana modelem Model driven engineering (MDE) Realizacja przedsięwzięcia sterowana modelem Zarządzania Testowanie Zarządzanie konfiguracjami Definicja inżynierii Wiedza techniczna,, dotycząca wszystkich faz cyklu życia,, której celem jest uzyskanie wysokiej jakości produktu -. Przykład wykorzystanie informacji o przypadkach użycia w planowaniu przedsięwzięcia 13

Tanie Użyteczne Niezawodne Określanie celów i wymagań Niezawodne Prototypowanie Bezpieczne Dobre oprogramowanie Ergonomiczne Użyteczne Łatwe w konserwacji Zapewnianie jakości Efektywne Ergonomiczne Projektowanie, implementacja, testowanie Analiza - modelowanie Dobrze zaprojektowane Unikanie błędów Dobrze zaprojektowane Projektowanie interfejsu użytkownika Ponowne wykorzystanie Niezawodne Odporność na błędy Ergonomiczne Dobrze udokumentowane Testowanie Warunki poprawności Dokumentacja użytkowa Wzorce projektowe np. Proxy Notacje Dobrze udokumentowane Inżynieria odwrotna Efektywne Łatwe w konserwacji UML Optymalizacja efektywności Refaktoryzacja Metody analizy i projektowania Dobrze zaprojektowane Przejrzyste Wzorce projektowe Zgodne z rzeczywistością Modularne 14

Łatwe w konserwacji Niezawodne Zapewnianie bezpieczeństwa Lekkie metodyki Bezpieczne Ponowne wykorzystanie re-use Tanie Narzędzia Niezawodne Unikanie błędów Praca grupowa Modularne Narzędzia Notacje Wzorce projektowe Standardy, procedury Zapewnianie jakości Przeglądy techniczne Nie zapominajmy o przyjemności... z dobrze wykonanej pracy 15