In¿ynieria Oprogramowania Anna Bobkowska Katedra In ...imeble.internetdsl.pl/kms/Wprowadzenie-Cykl.pdf · Inżynieria Oprogramowania Wprowadzenie do przedmiotu Cel: przegląd wiedzy
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
• Oczekiwania (głównie jakościowe):– wysoce niezawodne– użyteczne– łatwe w użyciu– trudne do użycia w sposób niewłaściwy– bezpieczne– tanie– dostępne . . .
• zdominowane przez proces projektowania– pomijalne nakłady na produkcję, większość wysiłku skierowana
na projektowanie; niedojrzała technologia, kompetencje ?• trudności w wizualizacji
– oprogramowanie to “niematerialny wytwór intelektu”; trudności w obserwacji wcześniejszych form (specyfikacji wymagań, projektu,...); dążenie do jak najwcześniejszej implementacji obniżające szansę na sukces
• nie zużywa się– nie zużywa się; wadliwe działanie wynika z niedopasowania do środowiska, z błędów konstrukcji, często ujawniających się bardzo późno
• duża złożoność– trudno znaleźć standardy projektowe, trudno prześledzić wszystkie
– zwykle niewielkie ograniczenia i duże pole do popisu projektantów -złożoność, nieregularność, niezrozumiałość struktury - trudności modyfikacji i pielęgnacji
• zależność elementów– niejawne zależności pomiędzy elementami prowadzą do trudności
konstrukcyjnych, błędnych ocen poprawności oprogramowania, stwarzają problemy modyfikacji i pielęgnacji
• brak ograniczeń (np. prawami fizyki)– nieznaczna zmiana może spowodować duże odchylenie; „mała
modyfikacja”? „przybliżona analiza”?• łatwość zmian
– łatwość dokonywania zmian prowadzi do chaosu, błędów i bylejakości
• Oprogramowanie (software) - zbiór programów, procedur postępowania i związanej z nimi dokumentacji, w ramach danego systemu (komputerowego).
• Inżynieria (engineering) - polega na takim zastosowaniu nauk ścisłych, przyrodniczych i humanistycznych, poprzez które materiai źródła energii naturalnej stają się użyteczne dla człowieka.
Inżynieria oprogramowania polega na takim zastosowaniu nauk (ścisłych, przyrodniczych, humanistycznych), poprzez które własności i możliwości sprzętu komputerowego stająsię, za pośrednictwem oprogramowania, użyteczne dla człowieka.
Systematyczne wytwarzanie, zgodnie z przyjętym cyklem
Rozwój notacji modelujących i wspomaganie uznanych cykli rozwojuoprogramowania, głównie klasycznego
Definiowanie nowych cykli wytwórczych, często posiłkujących się nowymi metodologiami
Rozwijanie nowych metodologii systematycznej konstrukcji oprogramowania, bazujących na istniejących bądź nowych notacjach; najwięcej prac dotyczy metodologii obiektowych
- Jest zbiorem procedur, metod, narzędzi i środkówwspomagających dokumentowanie
- Składa się z faz, które same składają się z kolejnych faz- Stanowi 'przewodnik' dla konstruktorów systemu- Stanowi metodę systematycznej budowy systemów- Bazuje na pewnym widzeniu świata, nazywanym podejściem
Środowiska wspomagajacespecyfikację wymagań, najcześciej za pomocą notacji graficznych,walidację dokonanej specyfikacji (modelu logicznego), ocenę jej spójności i kompletności,przekształcenie utworzonego modelu w projekt,weryfikację zgodności projektu z wymaganiami i jego logiczną walidację, często poprzez prototypowanie lub symulację działania przyjętej konstrukcji,szkieletową lub pełniejsza generację kodu,testowanie, animację i pomiary utworzonej aplikacji,tworzenie dokumentacji, na różnych poziomach i w różnych przekrojach, zarządzanie projektem, od planowania i harmonogramowania po kontrolę realizacji,analizę zamierzonych zmian i wspomaganie ich dokonania, prace zapewniające re-development, zarządzanie konfiguracją lub przeniesienie aplikacji do nowego środowiskareverse - engineering, czyli pozyskiwanie specyfikacji projektowej oraz analitycznej na podstawie istniejącego kodu i wiedzy konstruktora,powtórne wykorzystanie wcześniejszych rozwiązań w konstrukcji nowych projektów wersjonowanie projektu oraz zespołową pracę nad nim
Struktura obrazująca podstawoweetapy rozwoju i eksploatacji systemuwraz z ich produktami, wzajemnymi relacjami pomiędzy tymi etapamioraz ich zależnościami w czasie
Cykl życia oprogramowania reprezentuje powtarzającą się w czasie całość działań prowadzonych od ujawnienia potrzeby budowy systemu po zakończenia jego wykorzystania. Obrazowane są kolejne etapy rozwoju i eksploatacji systemu, wraz z ich kontekstem, produktami, wzajemnymi relacjami i zależnościami w czasie.
Cykl wytwarzania oprogramowania - ta część cyklu życia, która obejmuje etapy wytwórcze.
Klasyczny cykl życia - produkty (wg ESA) FAZY ELEMENTY
UR DEFINIOWANIE WYMAGAŃ UŻYTKOWNIKA
UR/R SR DEFINIOWANIE WYMAGAŃ SOFT- WARE'OWYCH
SR/R
AD PROJEKT KONSTRUKCYJ- NY
AD/R DD PROJEKT SZCZEGÓŁOWY I WYTWARZANIE
DD/R TR PRZEKAZANIE
OM UŻYTKOWANIE I UTRZYMANIE
GŁÓWNE DZIAŁANIA
• ustalenie środowiska użytkwania • identyfikacja wymagań użytkownika
• konstrukcja modelu logicznego • identyfikacja wymagań software'owych
• konstrukcja modelu fizycznego • zdefiniowanie podstawowych komponentów
• projektowanie modułów • kodowanie • testy
segmentów • testy integra- cyjne • testy
systemowe
• instalacja • testy wstępnego odbioru
• testy ostatecznego odbioru • użytkowanie • utrzymanie kodu i dokumentacji
PRODUKTY Dokument Wymagań Użytkownika URD
→
Dokument Wymagań Software'owych SRD
→
Dokument Projektu Konstrukcyjnego ADD
→
Dokument Szczegółowego Projektu DDD Kod SUM Podręcznik Użytkownika Oprogramowania
→
→ →
Dokument Przekazania Software'u STD
Dokument Historii Projektu → PHD
PRZEGLĄ-DY
przeglądy techniczne
przeglądy kontrole
przeglądy techniczne
przeglądy kontrole
przeglady techniczne
przeglądy kontrole
przeglądy techniczne
GŁÓWNE ETAPY
Zatwierdzenie URD
Zatwierdzenie SRD
Zatwierdzenie ADD
Zatwierdzenie Kodu/ADD/ SUM
Powstanie STD Wstępny odbiór
Powstanie PHD Ostateczny odb.
AD;ADD;AD/R Architectural Design/Document/Review Projekt Konstrukcyjny/Dokument /Przegląd DD;DDD;DD/R Detailed Design and production/Document/Review Szczegółowy Projekt i Wytwarzanie/Dokument /Przegląd PHD Project History Document Dokument Historii Projektu SR;SRD;SR/R Software Requirements/Document/Review Wymagania Software'owe/Dokument /Przegląd STD Software Transfer Document Dokument Przekazania Oprogramowania SUM Software User Manual Podręcznik Użytkownika Oprogramowania UR/D/R User Requirements/Document/Review Wymagania Użytkownika/Dokument/Przegląd
Softwarerequirements(software models) Design proposal Acceptance Acceptance test testing specification Test reports
Testing
Design
Systen architecture specification Module (object) Integration specification tests Integration Test reports and module Module tests test plans Test reports
pielęgnacja naprawcza (ang. corrective maintenance)obejmuje diagnostykę i usuwanie błędów,
adaptacja (ang. adaptive maintenance),dostosowuje oprogramowanie do zmian środowiska jego pracy,
ulepszanie (ang. perfective maintenance)ma na celu poprawę funkcjonalności i jakości oprogramowania, np.dostosowanie oprogramowania do nowych wymagań użytkowników,zwiększenie wydajności wybranych funkcji systemu,zmianę interfejsu użytkownika
utrzymanie zapobiegawcze (ang. preventive maintenance)przygotowuje istniejące oprogramowanie do zwiększenia jegopielęgnowalności, w tym głównie do wykrycia i poprawienia defektówzanim one wystąpią.
• obejmuje cały cykl życia• wprowadza systematykę• sprawdzony, zweryfikowany praktycznie• dobra strukturalizacja (etapy, czynności)• uwypukla analizę i projektowanie, ze szczególnym
uwzględnieniem aspektów technicznych rozwiązania• pozwala na dobrą dekompozycję pracy