©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Prototypowanie oprogramowania l Błyskawiczne tworzenie oprogramowania służące.

Slides:



Advertisements
Podobne prezentacje
Joanna Sawicka Wydział Nauk Ekonomicznych, Uniwersytet Warszawski
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ęć:
Złożoność procesu konstrukcji oprogramowania wymusza podział na etapy.
TERMO-SPRĘŻYSTO-PLASTYCZNY MODEL MATERIAŁU
Role w zespole projektowym
1 / 47 WARSZAWA 2005 Przemysław Siekierko Stanisław Andraszek Rational Unified Process.
Inżynieria Oprogramowania 5. Prototypowanie
Inżynieria Oprogramowania 6. Projektowanie architektoniczne
Wydział Zastosowań Informatyki i Matematyki SGGW
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 1 Restrukturyzacja oprogramowania l Reorganizowanie i modyfikowanie istniejącego.
Modele systemu Abstrakcyjne opisy sytemu, którego wymagania są opisywane.
Wyszukiwanie błędów Testowanie programów w celu wyszukania błędów.
Projektowanie architektoniczne
FIT Środowisko Testów Integracyjnych
PySBQL Język zapytań dla obiektowych baz danych. Aplikacje bazodanowe Główny nurt budowania aplikacji opiera się na połączeniu: SQL JDBC Java Jak wyświetlić
Ksantypa2: Architektura
Cykle życia oprogramowania
Pomiary w inżynierii oprogramowania
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
Wstęp do programowania obiektowego
Praca Inżynierska „Analiza i projekt aplikacji informatycznej do wspomagania wybranych zadań ośrodków sportowych” Dyplomant: Marcin Iwanicki Promotor:
Proces tworzenia oprogramowania
Projekt zaliczeniowy z przedmiotu "Inżynieria oprogramowania"
Dalsze elementy metodologii projektowania. Naszym celem jest...
Analiza, projekt i częściowa implementacja systemu obsługi kina
Wykład 2 Cykl życia systemu informacyjnego
C.d. wstępu do tematyki RUP
Wykonawcy:Magdalena Bęczkowska Łukasz Maliszewski Piotr Kwiatek Piotr Litwiniuk Paweł Głębocki.
Twoje narzędzie do pracy grupowej
Rozwój aplikacji przy wykorzystaniu ASP.NET
Podsumowanie działalności Zarządu Banku za okres
Wanda Klenczon Biblioteka Narodowa
EasyLoad BI zarządzanie wczytywaniem danych do hurtowni przez użytkowników biznesowych Prezentacja rozwiązania.
Plan prezentacji Zarys projektu Geneza tematu
ŻYWE JĘZYKI PROGRAMOWANIA LIVING IT UP WITH A LIVE PROGRAMMING LANGUAGE Sean McDirmid Ecole Polytechnique Fédérale de Lausanne (EPFL)
Moduł: Informatyka w Zarządzaniu
Programowanie obiektowe – język C++
Rational Unified Process Implementacja Aleksandra Reiman, gr. I-52.
Dr Karolina Muszyńska Na podst.:
SPECJALNOŚĆ: Oprogramowanie Systemowe
Projektowanie stron WWW
Proces tworzenia oprogramowania
Prototypowanie oprogramowania
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Komputerowe wspomaganie projektowania
Zarządzanie zagrożeniami
Proces tworzenia oprogramowania Proces tworzenia oprogramowania jest zbiorem czynności i związanych z nimi wyników, które prowadzą do powstania produktu.
Podstawy języka skryptów
ZINTEGROWANE SYSTEMY ZARZĄDZANIA
Eksploatacja zasobów informatycznych przedsiębiorstwa.
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 14Slide 1 Projektowanie z użyciem wielokrotnym l Jak w procesie projektowania systemu można ponownie.
Podstawy programowania
Oprogramowaniem (software) nazywa się wszystkie informacje w postaci zestawu instrukcji i programów wykonywanych przez komputer oraz zintegrowanych danych.
Moduł e-Kontroli Grzegorz Dziurla.
Dokumentacja programu komputerowego i etapy tworzenia programów.
Temat: Porównanie technologii php,c# oraz javascript na przykładzie webaplikacji typu społecznościowy agregator treści Autor: Wojciech Ślawski.
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
Wykład 2 – Zintegrowane systemy informatyczne Michał Wilbrandt.
Wyższa Szkoła Informatyki i Zarządzania W Bielsku-Białej Kierunek informatyka Specjalność : Systemy informatyczne Praca dyplomowa inżynierska : System.
Inżynieria systemów informacyjnych
Kurs Access.
JavaBeans by Paweł Wąsala
Zapis prezentacji:

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Prototypowanie oprogramowania l Błyskawiczne tworzenie oprogramowania służące sprawdzeniu wymagań

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 2 Cele l Opisanie użycia prototypów w różnych rodzajach przedsięwzięć l Rozumienie różnicy pomiędzy prototypowaniem ewolucyjnym i prototypowaniem z porzuceniem l Rozpoznawanie trzech metod budowy prototypów, programowania w języku wysokiego poziomu, programowania baz danych, oraz ponownego użycia komponentów l Wyjaśnienie potrzeby prototypowania interfejsów

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 3 Zawartość l Prototypowanie w procesie tworzenia oprogramowania l Metody błyskawicznego prototypowania l Prototypowanie interfejsu użytkownika

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 4 Prototypowanie systemów l Prototypowanie to błyskawiczne tworzenie systemu l W przeszłości tworzony prototyp był traktowany jako gorszy i potrzebne było tworzenie ostatecznej wersji systemu od nowa l Obecnie zaciera się granica pomiędzy prototypem a ostateczną wersją systemu

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 5 Użycie prototypów l Podstawowym zastosowaniem prototypów jest pomoc programistom i użytkownikom w zrozumieniu wymagań systemowych Określanie wymagań. Użytkownicy mogą eksperymentować z prototypem,,żeby zobaczyć jak wspomaga ich pracę Zatwierdzanie wymagań. Prototyp może ujawnić błędy i pominięcia w wymaganiach l Na prototypowanie można patrzeć jak na czynność, która zmniejsza ryzyko związane z wymaganiami

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 6 Zyski z prototypowania l Rozpoznanie nieporozumień pomiędzy użytkownikami a programistami l Łatwo znaleźć brakujące lub sprzeczne usługi l Szybko powstaje działający system l Prototyp może być podstawą specyfikacji systemu l Prototypu można użyć podczas szkoleń i testowania

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 7 Proces budowy prototypu Określ cele prototypu Zdefiniuj funkcjonalność prototypu Zbuduj prototyp Oceń prototyp Plan prototypowania Ogólna definicja Działający prototyp Raport oceniający prototyp

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 8 Zyski z prototypowania l Zwiększona użyteczność systemu l Lepsze dopasowanie systemu do potrzeb l Zwiększona jakość projektu l Większa zdatność do pielęgnacji l Zmniejszony wysiłek twórczy

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 9 Typy prototypowania l Prototypowanie ewolucyjne Podejście polegające na stworzeniu prototypu i jego poprawianiu, aż do dostarczenia działającej ostatecznej wersji systemu l Prototypowanie z porzuceniem Prototyp jest tworzony, aby pomóc zebrać wymagania a potem jest porzucany. System jest tworzony od nowa

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 10 Cele prototypowania l Celem prototypowania ewolucyjnego jest dostarczenie działającego systemu użytkownikom końcowym. Programowanie rozpoczyna się od najbardziej zrozumiałych wymagań l Celem prototypowania z porzuceniem jest sprawdzenie lub zebranie wymagań. Programowanie rozpoczyna się od najmniej zrozumiałych wymagań

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 11 Podejścia do prototypowania Prototypowanie ewolucyjne Prototypowanie z porzuceniem Ogólne wymagania Wykonywalny prototyp + specyfikacja systemu Dostarczony system

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 12 Prototypowanie ewolucyjne l Musi być używane dla systemów w których nie można zebrać specyfikacji z góry np. systemy SI lub interfejsy użytkownika l Jest oparte na technikach pozwalających na błyskawiczne zmiany programu l Weryfikacja jest niemożliwa ponieważ nie ma specyfikacji. Weryfikacja oznacza zademonstrowanie przydatności systemu

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 13 Prototypowanie ewolucyjne Opracuj abstrakcyjną specyfikację Zbuduj prototyp systemu Użytkuj prototyp systemu Dostarcz system System jest odpowiedni? NIE TAK

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 14 Zalety prototypowania ewolucyjnego l Szybsze dostarczenie systemu Błyskawiczna budowa i dostarczenie systemu są czasami ważniejsze od funkcjonalności lub łatwości pielęgnowania w długim okresie l Zaangażowanie użytkownika w system System nie tylko lepiej spełnia wymagania użytkowników, ale użytkownicy chętniej z niego korzystają

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 15 Prototypowanie ewolucyjne l Specyfikacja, projektowanie i implementacja się przeplatają l System powstaje w postaci ciągu przyrostów, które są dostarczane klientowi l Stosuje się techniki do błyskawicznego tworzenia systemów, takie jak CASE i języki czwartej generacji l Interfejsy użytkownika są zwykle budowane za pomocą interakcyjnego systemu wytwórczego

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 16 Problemy z prototypowaniem ewolucyjnym l Kłopoty z zarządzaniem Procesy tworzenia oprogramowania są przystosowane do modelu wodospadowego Może brakować dostatecznie wykształconych specjalistów l Kłopoty z pielęgnacją Ustawiczne zmiany powodują uszkodzenia strukturalne prototypowanego systemu więc pielęgnacja jest kosztowna l Kłopoty z umową

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 17 Prototyp jako specyfikacja l Niektóre części systemu (np. bezpieczeństwa) mogą być niemożliwe do prototypowania i nie pojawiają się w specyfikacji l Implementacja nie może zastąpić kontraktu l Wymagania niefunkcjonalnie nie mogą być odpowiednio przetestowane w prototypie

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 18 Tworzenie przyrostowe l System jest tworzony i dostarczany jako przyrosty po ustaleniu zrębu systemu l Dla każdego przyrostu można stworzyć wymagania i specyfikację l Użytkownicy mogą eksperymentować z dostarczonymi przyrostami podczas gdy inne przyrosty są tworzone l Powinno łączyć część zalet prototypowania z łatwiejszymi do zarządzania procesami i lepszą strukturą systemu

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 19 Proces tworzenia przyrostowego Zaprojektuj architekturę systemu Wyspecyfikuj przyrost systemu Zbuduj przyrost systemu Dostarcz gotowy system System jest gotowy? NIE TAK Określ końcowe produkty Oceń przyrost Oceń system Zintegruj przyrost

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 20 Prototypowanie z porzuceniem l Używane do redukowania ryzyka wymagań l Prototyp jest otrzymywany z wstępnej specyfikacji, dostarczany do eksperymentów i porzucany l Prototyp NIE powinien być traktowany jako końcowy system Część cech systemu może być pominięta Nie ma specyfikacji do długookresowej pielęgnacji System będzie źle ustrukturalizowany i trudny w zarządzaniu

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 21 Prototypowanie z porzuceniem Ogólne wymagania Zbuduj prototyp Oceń prototyp Zbuduj oprogramowanie Wyspecyfikuj system Oceń system Komponenty wielokrotnego użycia Dostarczony system oprogramowania

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 22 Dostarczanie prototypu l Programiści mogą być naciskani aby dostarczyć prototyp do wyrzucenia jako system końcowy l To nie jest polecane Może nie dać się dostosować prototypu do wymagań niefunkcjonalnynch Prototyp jest słabo udokumentowany Struktura systemu pogarszała się wraz z wprowadzaniem kolejnych zmian do prototypu Mogły nie być stosowane normalne standardy firmowe

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 23 Metody błyskawicznego prototypowania l Techniki używane do błyskawicznego prototypowania Tworzenie za pomocą dynamicznych języków wysokiego poziomu Programowanie baz danych Scalanie komponentów i programów użytkowych l Techniki te często łączy się ze sobą l Programowanie wizualne jest nieodzowną częścią tworzenia prototypów

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 24 Dynamiczne języki wysokiego poziomu l Języki te zawierają wsparcie dla skomplikowanych struktur danych l Wymagają dużego środowiska wykonawczego, co nie jest dobre dla dużych systemów l Niektóre z języków zawierają świetne wsparcie dla tworzenia interfejsów użytkownika l Niektóre języki są wspierane przez narzędzia, które mogą być używane podczas prototypowania

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 25 Języki do prototypowania JęzykRodzajDziedzina SmalltalkObiektowySystemy interakcyjne JavaObiektowySystemy interakcyjne PrologLogikaPrzetwarzanie symboliczne LispListyPrzetwarzanie symboliczne

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 26 Wybór języka programowania l Jaka jest dziedzina problemu? l Jaki jest spodziewany rodzaj interakcji z użytkownikiem? l Jakie środowisko wspierające jest dostępne dla języka? l Różne części systemu mogą być pisane w różnych językach, ale występują problemy w komunikacji

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 27 Programowanie baz danych l Dziedzina systemów biznesowych l Język zapytań, generator formularzy, generator raportów i arkusz kalkulacyjny l Może być zintegrowane z narzędziem CASE l Język + środowisko czasem nazywa się językiem czwartej generacji l Tanie rozwiązanie dla małych i średnich systemów

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 28 Programowanie baz danych Język programowania BD Generator interfejsów Arkusz kalkulacyjny Generator raportów System zarządzania bazą danych

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 29 Scalanie komponentów i programów użytkowych l Prototypy mogą być budowane szybko z komponentów i narzędzia do ich scalania l Mechanizm scalania zawiera funkcje kontrolne i komunikacyjne l Specyfikacja systemowa musi brać pod uwagę istniejące komponenty i narzędzia

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 30 Prototypowanie z wielokrotnym użyciem l Poziom programu użytkowego Całe systemy programów użytkowych mogą być zintegrowane z prototypem więc można je powtórnie wykorzystać Przykładowo, jeśli potrzebne jest przetwarzanie tekstów to można użyć standardowego edytora l Poziom komponentów Poszczególne komponenty są integrowane w ramach zrębu systemu Szkieletem może być język skryptowy, albo system współpracy pomiędzy obiektami typu CORBA

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 31 Scalanie komponentów użycia wielokrotnego Oprogramowane komponenty użycia wielokrotnego Zrąb scalania komponentów Wykonywalny prototyp Kod sterujący i integrujący

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 32 Złożone dokumenty l Dla niektórych zastosowań prototypy można tworzyć stosując złożone dokumenty l Są to dokumenty, które zawierają wbudowane funkcje do ich obrabiania (typu makr) l Każdy element ma skojarzoną aplikację, która jest uruchamiana po wybraniu tego dokumentu l Dokument w całości integruje pojedyncze dokumenty

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 33 Łączenie dokumentów w dokumencie złożonym Tekst 1Tabela 1Tekst 2Tekst 3Nagranie 1 Tabela 2Tekst 4Nagranie 2Tekst 5 Dokument złożony Procesor tekstówArkusz kalkulacyjnyOdtwarzacz dźwięku

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 34 Programowanie wizualne l Języki skryptowe takie jak Visual Basic wspierają programowanie wizualne, w którym prototyp jest tworzony przez tworzenie interfejsu użytkownika ze standardowych elementów l Istnieje wiele bibliotek wspomagających takie podejście l Mogą być obcinane do użycia w konkretnym zastosowaniu

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 35 Programowanie wizualne z użyciem wielokrotnym

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 36 Problemy z programowaniem wizualnym l Trudne do skoordynowania w zespole l Brak bezpośredniej architektury systemu l Złożone zależności pomiędzy częściami powodują problemy w pielęgnacji

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 37 Prototypowanie interfejsów użytkownika l Nie można wyspecyfikować wyglądu bez prototypowania l Programowanie interfejsów zabiera coraz więcej czasu l Generatory interfejsów mogą być używane do stworzenia początkowego interfejsu

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 38 Główne tezy l Prototyp jest potrzebny aby pokazać użytkownikowi co zamawia l Prototypy stają się coraz ważniejsze wraz ze wzrostem ważności czasu tworzenia systemów l Prototypowanie z porzuceniem pomaga zrozumieć wymagania l Prototypowanie ewolucyjne polega na ewolucji prototypu w stronę działającego systemu

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 39 Główne tezy l Błyskawiczne tworzenie prototypów jest kluczowe, mogą one nie zawierać części funkcjonalności l Prototypowanie jest ważną częścią tworzenia interfejsów użytkownika, który to użytkownik powinien cały czas oceniać powstający prototyp