Proces tworzenia oprogramowania Proces tworzenia oprogramowania jest zbiorem czynności i związanych z nimi wyników, które prowadzą do powstania produktu.

Slides:



Advertisements
Podobne prezentacje
Modelowanie przypadków użycia
Advertisements

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ęć:
“Przenoszenie złożeniowych rysunków z Autodesk Inventor’a do Autodesk AutoCAD’a z zachowaniem hierarchii” Pająk Barbara.
Złożoność procesu konstrukcji oprogramowania wymusza podział na etapy.
Część 2 OiZPI Iteracyjny przyrostowy model cyklu życiowego Rational Unified Process™ w materiałach wykorzystano: K.Subieta: Budowa i integracja systemów.
Budowa i integracja systemów informacyjnych
1 / 47 WARSZAWA 2005 Przemysław Siekierko Stanisław Andraszek Rational Unified Process.
Referat 3. Planowanie zadań i metody ich obrazowania
Inżynieria Oprogramowania 9. Testowanie oprogramowania
Projektowanie Aplikacji Komputerowych
Struktura SYSTEMU Jacek Węglarczyk.
Co UML może zrobić dla Twojego projektu?
Cykle życia oprogramowania
Grzegorz Jokiel Na podstawie materiałów firmy IDS-Scheer
Programowanie obiektowe Andrzej Ziółkowski Wykład 7.
Jakość systemów informacyjnych (aspekt eksploatacyjny)
Rational Unified Process
Podstawy Inżynierii Oprogramowania
Wstęp do programowania obiektowego
Projektowanie i programowanie obiektowe II - Wykład IV
Proces tworzenia oprogramowania
Projekt zaliczeniowy z przedmiotu "Inżynieria oprogramowania"
Dalsze elementy metodologii projektowania. Naszym celem jest...
Inżynieria Oprogramowania
Wykład 7 Projektowanie kodu oprogramowania
Wykład 2 Cykl życia systemu informacyjnego
C.d. wstępu do tematyki RUP
Unified Modeling Language graficzny język wizualizacji, specyfikowania, tworzenia i dokumentowania systemów informatycznych.
Podstawy programowania
Źródła: podręcznikopracował: A. Jędryczkowski.
Microsoft Solution Framework
Jakub Wołczko W obiektowym świecie… Jakub Wołczko
Podsumowanie metodologii OMT
Programowanie obiektowe – język C++
Rational Unified Process Implementacja Aleksandra Reiman, gr. I-52.
Dr Karolina Muszyńska Na podst.:
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Proces tworzenia oprogramowania
Prototypowanie oprogramowania
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Komputerowe wspomaganie projektowania
Waterfall model.
Diagram klas Kluczowymi elementami są: klasy (class)
Walidacja danych alina suchomska.
Zarządzanie zagrożeniami
ŁUKASZ DZWONKOWSKI Modele zwinne i ekstremalne. Podejście tradycyjne
Inżynieria oprogramowania
Przykłady analiza i projektowanie
Podstawy zarządzania projektami Karta projektu
ZINTEGROWANE SYSTEMY ZARZĄDZANIA
Projekt modułu Nazwa całego projektu Nazwa modułu Imię i Nazwisko Inżynieria Oprogramowania II dzień, godzina rok akademicki W szablonie na niebiesko zamieszczone.
Bartosz Baliś, 2006 Wstęp do Inżynierii Oprogramowania Bartosz Baliś.
Wzorce Projektowe w JAVA
Logical Framework Approach Metoda Macierzy Logicznej
Struktura systemu operacyjnego
BAZY DANYCH MS Access.
Dokumentacja programu komputerowego i etapy tworzenia programów.
1 © copyright by Piotr Bigosiński DOKUMENTACJA SYSTEMU HACCP. USTANOWIENIE, PROWADZENIE I UTRZYMANIE DOKUMENTACJI. Piotr Bigosiński 1 czerwiec 2004 r.
E. Stemposz. Rational Unified Process, Wykład 10, Slajd 1 wrzesień 2002 Powrót Studia Podyplomowe IT w Biznesie Rational Unified Process Wykład 10 Przepływ.
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.
Agile Programming a jakość
Inżynieria systemów informacyjnych
Zarządzanie projektami informatycznymi
Weryfikacja i zatwierdzanie
Inżynieria Oprogramowania Laboratorium
Cykl życia oprogramowania
JavaBeans by Paweł Wąsala
Zapis prezentacji:

Proces tworzenia oprogramowania Proces tworzenia oprogramowania jest zbiorem czynności i związanych z nimi wyników, które prowadzą do powstania produktu programowego. Może to być tworzenie oprogramowania od zera, ale coraz częściej nowe oprogramowanie powstaje poprzez rozszerzanie i modyfikowanie istniejących systemów. Procesy tworzenia oprogramowania są złożone i zależą od opinii ludzi, podobnie jak wszystkie procesy intelektualne.

Proces tworzenia oprogramowania Czynności tego procesu są następujące: 1. Specyfikowanie oprogramowania - funkcjonalność oprogramowania i ograniczenia jego działania muszą być zdefiniowane. 2. Projektowanie i implementacja oprogramowania - oprogramowanie, które spełnia specyfikację musi być stworzone. 3. Zatwierdzanie oprogramowania - oprogramowanie musi być zweryfikowane, aby zapewnić, że robi to, czego oczekiwał klient. 4. Ewolucja oprogramowania - oprogramowanie musi ewoluować, aby spełniać zmieniające się potrzeby użytkowników.

Specyfikowanie wymagań Ma na celu określenie, jakich usług wymaga się od systemu i jakim ograniczeniom podlega tworzenie i działanie oprogramowania. Ta czynność jest często nazywana inżynierią oprogramowania. Jest bardzo ważna bowiem błędy w tej fazie prowadzą do późniejszych kłopotów w trakcie projektowania i implementacji. Proces inżynierii wymagań prowadzi do opracowania dokumentacji wymagań, która jest specyfikacją systemu. W tym dokumencie wymagania zwykle przedstawia się w dwóch poziomach szczegółowości. Użytkownicy i klienci potrzebują wykazu wymagań na wysokim poziomie abstrakcji, podczas gdy programiści muszą mieć bardziej szczegółową specyfikację systemu.

Inżynieria wymagań W procesie inżynierii wymagań wyróżnia się cztery główne fazy: 1. Studium wykonalności - ocenia się, czy rozpoznane potrzeby użytkowników mogą być spełnione przy obecnych technologiach sprzętu i oprogramowania. Studium pozwala zdecydować, czy proponowany system, będzie opłacalny z punktu widzenia ekonomii czy można zbudować system w ramach założonego budżetu. 2. Określenie i analiza wymagań - jest to proces określania wymagań na podstawie obserwacji istniejących systemów, rozmów z potencjalnymi użytkownikami i zaopatrzeniowcami, analizy zadań itd. 3. Specyfikowanie wymagań - jest czynnością polegającą na zapisywaniu informacji zebranych w czasie analizy w dokumencie definiującym zbiór wymagań. Mogą w nim pojawić się dwa rodzaje wymagań

Inżynieria wymagań 4. Zatwierdzanie wymagań – w tej czynności sprawdza się realizm, spójność i kompletność wymagań. W jej trakcie niemal pewne jest wykrycie błędów. Następnie należy zmodyfikować dokumentację wymagań tak, aby usunąć te błędy. Czynności procesu inżynierii wymagań nie są wykonywane w tak ścisłej kolejności.

Projektowanie i implementowanie oprogramowania Faza implementowania w tworzeniu oprogramowania to proces przekształcania specyfikacji systemu w działający system. Obejmuje zawsze projektowanie i programowanie, ale jeśli zastosowano podejście ewolucyjne, to może również zawierać udoskonalanie specyfikacji oprogramowania. Projekt oprogramowania to opis struktury oprogramowania, które ma być zaimplementowane, danych, które są częścią systemu, interfejsów między komponentami systemu i użytych algorytmów. Projektanci nie tworzą od razu końcowego projektu, ale opracowują go iteracyjnie poprzez wiele różnych wersji. Proces projektowania może obejmować opracowanie kilku modeli na różnych poziomach abstrakcji. W miarę dekompozycji projektu odkrywa się błędy i przeoczenia w poprzednich fazach. Powoduje to sprzężenie zwrotne umożliwiające poprawę wcześniej powstałych błędów.

Projektowanie i implementowanie oprogramowania Końcowym wynikiem tego procesu są: 1. Projektowanie architektury - identyfikuje i dokumentuje podsystemy tworzące system i związki między nimi. 2. Specyfikowanie abstrakcyjne - opracowuje się abstrakcyjną specyfikację usług każdego podsystemu oraz ograniczeń, w ramach których musi pracować. 3. Projektowanie interfejsów - projektuje i dokumentuje interfejsy każdego podsystemu z innymi podsystemami. Specyfikacja interfejsów musi być jednoznaczna, ponieważ umożliwia korzystanie z podsystemów bez znajomości ich działania.

Projektowanie i implementowanie oprogramowania 4. Projektowanie komponentów - przypisuje się usługi do różnych komponentów i projektuje interfejsy tych komponentów. 5. Projektowanie struktur danych - szczegółowo specyfikuje się i projektuje struktury danych użyte w implementacji systemu. 6. Projektowanie algorytmów - szczegółowo specyfikuje się i projektuje algorytmy służące do realizacji usług.

Zatwierdzanie oprogramowania Zatwierdzanie oprogramowania lub bardziej ogólnie weryfikacja i zatwierdzanie mają wykazać, że system jest zgodny ze swoją specyfikacją i spełnia oczekiwania klienta. Obejmuje proces sprawdzania, m.in. kontrole i recenzje w każdym kroku procesu tworzenia od definicji wymagań użytkowania do pisania programów. Z wyjątkiem małych programów nie należy testować systemu jako pojedynczej, monolitycznej całości. Wielkie systemy buduje się z podsystemów, te są z kolei składane z modułów, w skład których wchodzą procedury i funkcje. Proces testowania powinien być zatem wykonywany w wielu krokach, w których testuje się przyrostowo jednocześnie z implementowaniem systemu.

Zatwierdzanie oprogramowania Faza procesu testowania są następujące: 1.Testowanie jednostek - testuje się poszczególne komponenty, aby zapewnić, że działają poprawnie. Każdy komponent jest niezależnie testowany bez udziału innych komponentów. 2. Testowanie modułów - moduł jest kolekcją niezależnych komponentów takich jak klasy obiektów, abstrakcyjne typy danych, albo bardziej luźną kolekcję procedur i funkcji. 3. Testowanie podsystemów - ta faza obejmuje testowanie kolekcji modułów, które zintegrowano w podsystemie. W wypadku wielkich systemów głównymi napotkanymi tu problemami są niezgodność interfejsów.

Zatwierdzanie oprogramowania 4. Testowanie systemu - podsystemy zintegrowano w system. Ten proces ma wykryć błędy wynikające z nie przewidzianych interakcji między podsystemami i problemami z interfejsami podsystemów. 5. Testowanie odbiorcze - jest to końcowa faza procesu testowania przed przyjęciem systemu przez użytkownika.

Ewolucja systemu Elastyczność systemów oprogramowania jest jedną z głównych przyczyn, że coraz więcej i więcej oprogramowania włącza się do wielkich złożonych systemów.

Ewolucja systemu Istniejące systemy Zdefiniuj wymagania Zbadaj istniejące systemy Zaproponuj zmiany Wybierz dostawcę Nowy system