Inżynieria oprogramowania II

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

Podstawy programowania III WYKŁAD 4

Inżynieria wymagań. Wykład 2 Proces pisania przypadków użycia. Część 6 Wskazówki i sugestie

Modelowanie przypadków użycia. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA

Zasady organizacji projektów informatycznych

Modelowanie i analiza systemów informatycznych Spis treści

Specyfikowanie wymagań przypadki użycia

Inżynieria oprogramowania. Przypadki użycia. Piotr Miklosik Mirosław Ochodek

Feature Driven Development

APIO. W7 SPECYFIKACJA (UŻYCIA) DOSTĘPU DO DANYCH I SPOSOBU ICH PRZETWARZANIA 1. METODA CRUD 2. LOGIKA FUNKCJI

Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2

Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia

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

Inżynieria wymagań. Wykład 2 Proces pisania przypadków użycia. Część 3 Identyfikacja przypadków użycia

Etapy życia oprogramowania

Diagram przypadków użycia

Wszystkie problemy leżą w testach. ForProgress spółka z ograniczoną odpowiedzialnością sp.k.

Inżynieria oprogramowania wykład IV Faza określenia wymagań

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

Procesowa specyfikacja systemów IT

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

Język UML w modelowaniu systemów informatycznych

Modelowanie obiektowe - Ćw. 3.

Diagramy przypadków użycia - MS Visio

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Udane wdrożenie systemu IT

Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia

Analiza i projektowanie obiektowe 2015/2016. Wykład 2: Przypadki użycia

<Nazwa firmy> <Nazwa projektu> Specyfikacja wymagań projektu. Wersja <1.0>

Egzamin / zaliczenie na ocenę*

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

REFERAT PRACY DYPLOMOWEJ

Inżynieria wymagań. Wykład 3 Zarządzanie wymaganiami w oparciu o przypadki użycia. Część 9 Strukturyzacja modelu przypadków użycia

Wprowadzenie do Behaviordriven

Opis metodyki i procesu produkcji oprogramowania

Diagramy sekwencji. wymienianych między nimi

Programowanie zespołowe

Diagramy przypadków użycia

Inżynieria wymagań. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Inżyniera wymagań

MiASI. Modele, perspektywy, diagramy UML. Piotr Fulmański. 7 grudnia Wydział Matematyki i Informatyki, Uniwersytet Łódzki, Polska

Programowanie obiektowe

JAK TO DOBRZE ZROBIĆ

Cykle życia systemu informatycznego

Programowanie Zespołowe

Projektowanie systemów informatycznych. Diagramy przypadków użycia

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

Przykładowy Projekt i

Faza Określania Wymagań

Instrukcja obsługi Zaplecza epk dla Pracowników Instytucji w zakresie zarządzania danymi szczegółowymi dotyczącymi sposobu realizacji procedury

Inżynieria oprogramowania. Wykład 7 Inżynieria wymagań: punkty widzenia, scenariusze, przypadki użycia

RUP. Rational Unified Process

Jarosław Żeliński analityk biznesowy, projektant systemów

Narzędzia informatyczne wspierające przedsięwzięcia e-commerce

CEMEX Go. Katalog zamówień i produktów. Wersja 2.1

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

Analiza i projektowanie obiektowe 2017/2018. Wykład 3: Model wiedzy dziedzinowej

Projektowanie baz danych za pomocą narzędzi CASE

Dokumentacja projektu Makao karciana gra sieciowa

Inżynieria oprogramowania

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

ZAPYTANIE OFERTOWE. Zamawiający. Przedmiot zapytania ofertowego. Wrocław, dnia r.

IO - Plan wdrożenia. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Diagramy przypadków użycia

Praktyka testowania dla początkujących testerów

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Zalety projektowania obiektowego

Modelowanie i Programowanie Obiektowe

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Analiza i projektowanie obiektowe 2017/2018. Wykład 2: Przypadki użycia

Diagramu Związków Encji - CELE. Diagram Związków Encji - CHARAKTERYSTYKA. Diagram Związków Encji - Podstawowe bloki składowe i reguły konstrukcji

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

Określanie wymagań. Cele przedsięwzięcia. Kontekst przedsięwzięcia. Rodzaje wymagań. Diagramy przypadków użycia use case diagrams

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

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

Faza analizy (modelowania) Faza projektowania

Agenda. Cele projektu Wizja projektu Modelowanie biznesowe Wymagania użytkownika Przypadki użycia

Zarządzanie projektami. Wykład 3 Wyznaczanie zakresu projektu Planowanie projektu

020 ANALIZA WYMAGAŃ. Prof. dr hab. Marek Wisła

Projekt z przedmiotu Specjalizowane języki programowania Temat: Zastosowanie programowania obiektowego w środowisku LabView

Zagadnienia Semestr IV Inżynieria Oprogramowania WSZiB

KARTA MODUŁU KSZTAŁCENIA

Wykład 1 Inżynieria Oprogramowania

Zarządzanie projektami. Porównanie podstawowych metodyk

Testujemy dedykowanymi zasobami (ang. agile testers)

Cel, kontekst, opowieści użytkownika

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

Inżynieria oprogramowania (Software Engineering)

Diagramy czynności Na podstawie UML 2.0 Tutorial

Inżynierski Projekt Zespołowy

PORTAL KLIENTA I OBSŁUGA ZGŁOSZEŃ.V01. VULCAN Innowacji

Modelowanie obiektowe - Ćw. 1.

Transkrypt:

Wymagania funkcjonalne, przypadki użycia Inżynieria oprogramowania II

Problem i cel Tworzenie projektów bez konkretnego celu nie jest dobre Praktycznie każdy projekt informatyczny powstaje z uwagi na jakiś problem, który wymaga rozwiązania Ustalenie konkretnego celu przybliża nas do pomyślnego zakończenia projektu Mniejsza szansa, iż projekt zacznie się niebezpiecznie rozszerzać

Przykład Problem: Zarządzanie papierowymi indeksami Propozycja rozwiązania: Stworzenie systemu eproto (opisane w materiałach)

Przebieg prac nad projektem 1. Określenie celu 2. Analiza i specyfikowanie wymagań 3. Wybranie fragmentu funkcjonalności 4. Implementacja 5. Testowanie 6. Odbiór, refleksja, wdrożenie 7. Powrót do punktu 3. (kolejna iteracja) 8. Utrzymywanie

Role w projekcie (1/5) Klient Zleca i płaci za projekt Prezentuje swoje oczekiwania i cele związane z projektem Ma decydujący głos w sprawie kolejnych faz powstawania systemu Weryfikuje postęp prac i końcowy kształt systemu Klienci bywają różni

Role w projekcie (2/5) Kierownik projektu Reprezentuje i zarządza zespołem Uzgadnia z klientem szczegóły projektu (m.in. harmonogram prac) Przydziela zadania członkom zespołu Musi być świadomy potrzeb i możliwości członków zespołu Stara się usuwać wszystkie przeszkody stojące na drodze zespołu

Role w projekcie (3/5) Analityk Tłumaczy oczekiwania klienta na wymagania zrozumiałe dla zespołu (dyskusja, analiza, specyfikacja) Posiada pełną wiedzę na temat kontekstu i środowiska biznesowego systemu Wyjaśnia wszelkie wątpliwości i szczególne przypadki Kontroluje powstający system pod kątem oczekiwań klienta

Role w projekcie (4/5) Architekt Projektuje system od strony technicznej Podejmuje decyzje technologiczne Przydziela członkom zespołu konkretne zadania związane z technologią Pomaga lub sam rozwiązuje wszelkie problemy techniczne

Role w projekcie (5/5) Programiści, testerzy i inni Siła robocza Zwykle nie mają bezpośredniego kontaktu z klientem klientem jest analityk

Zasada dziewięciu kroków 1. Określenie problemu 2. Określenie procesu biznesowego 3. Identyfikacja aktorów (diagram kontekstu) 4. Identyfikacja przypadków użycia (diagram przypadków użycia) 5. Identyfikacja obiektów biznesowych 6. Zbadanie kompletności przypadków użycia (tablica CRUD) 7. Opisanie scenariuszy głównych 8. Identyfikacja zdarzeń 9. Opisanie scenariuszy rozszerzeń

Aktor Rola w procesie biznesowym W uproszczeniu: grupa użytkowników Posiada dostęp do specyficznej funkcjonalności Ma mniejsze lub większe uprawnienia Istnieją role specjalne (Administrator)

Proces biznesowy Proces biznesowy jest listą kroków, które muszą być wykonywane, aby osiągnąć zamierzony wcześniej cel biznesowy Interakcja aktorów między sobą, przepływ informacji Ogólny pogląd na wymagania Na tym etapie stopniowo uszczegóławiamy naszą wiedzę o dziedzinie problemu

Obiekt biznesowy Obiekt zarządzany przez system, niosący pewne dane Na obiekcie najczęściej są zdefiniowane operacje CRUDL (Create, Retrieve, Update, Delete, List) Nie należy mylić aktora z obiektem!

Wymaganie funkcjonalne Pojedyncza funkcjonalność (funkcja) wymagana od systemu Opisanie co robi system Pochodzą z opowieści użytkownika lub procesów biznesowych Wymagania są skojarzone z aktorami Specyfikacja wymagań ułatwia implementację, ale też oszacowanie pracochłonności

Nadawanie priorytetów H High, wysoki priorytet (wymagania obowiązkowe) M Medium, średni priorytet (ważne wymagania) L Low, niski priorytet (wymagania opcjonalne)

Przypadek użycia (ang. use case) Sposób opisu wymagań funkcjonalnych Lista kroków, które muszą być wykonane w celu ukończenia danego wymagania Forma przyjazna opisuje kolejno co należy zrobić, jest zrozumiała i łatwa w przygotowaniu Forma uniwersalna dla klienta, programisty, testera

Przykład przypadku użycia UC01: Wyświetlenie ocen Aktorzy: Student Scenariusz Główny 1. Student wybiera opcję wyświetlenia semestrów. 2. System wyświetla listę dotychczasowych semestrów. 3. Student wybiera jeden z dostępnych semestrów. 4. System wyświetla listę przedmiotów wraz z ocenami. Rozszerzenia 3.A Student chce wrócić do menu głównego. 3.A.1 Student wybiera opcję powrotu. 3.A.2 System wyświetla menu główne. 3.A.3 Koniec przypadku użycia.

Ważne informacje Przedstawiony przypadek użycia jest napisany na tzw. poziomie użytkownika Opisuje interakcję użytkownika z systemem akcję i reakcję System jest domyślnym aktorem, nie trzeba go dodatkowo podawać

Poziomy przypadków użycia Biznesowy najbardziej ogólny, opisuje interakcję różnych organizacji, nie rozgrywa się natychmiast Użytkownika najbardziej typowy, interakcja pomiędzy użytkownikiem a systemem, bez szczegółów technicznych Podfunkcji szczegóły techniczne, dotyczy detali interfejsu, dla lepszego zrozumienia wymagania

Dobra praktyka nr 1 Zawsze wypisz aktora, który wykonuje daną akcję - dla każdego kroku musi być on zdefiniowany. Dobry przykład: 3. Wykładowca wybiera opcję edycji danego protokołu. Zły przykład: 3. Dla danego protokołu wybierana jest edycja.

Dobra praktyka nr 2 Przypadek użycia powinien być odpowiedniej długości. Scenariusze poniżej 3 kroków wydają się bezużyteczne i mogą być,,wchłonięte'' przez inne, natomiast powyżej 9 kroków są ciężkie w odczytaniu, zrozumieniu i najprawdopodobniej dotyczą zbyt wielu rzeczy.

Dobra praktyka nr 3 (1/2) Należy unikać,,technikaliów'', w tym określeń typowych dla interfejsu użytkownika (jak,,klika'',,,wpisuje' - zamiast tego piszemy,,wybiera'',,,podaje''). Ważna jest funkcjonalność, a nie sposób jej realizacji - ten aspekt pokrywają prototypy i trochę wymagania pozafunkcjonalne. Jednakże, na poziomie podfunkcji szczegóły techniczne są dopuszczalne.

Dobra praktyka nr 3 (2/2) Dobry przykład: 3. Student wybiera jeden z dostępnych semestrów. Zły przykład: 3. Student klika na przycisk związany z danym semestrem.

Dobra praktyka nr 4 (1/2) Główny scenariusz to lista typowych, nieprzerwanych kroków, które kończą się optymistycznie. Na wszelkie konstrukcje warunkowe i możliwe anomalie miejsce jest w rozszerzeniach

Dobra praktyka nr 4 (2/2) Dobry przykład: 7. System wyświetla informację o wprowadzonych zmianach. Rozszerzenia: 7.A System nie może zapisać wprowadzonych zmian. 7.A.1 System wyświetla informację o błędzie. 7.A.2 Powrót do punktu 4. Zły przykład: 7. Jeśli informacje są poprawne, system wyświetla...

Dobra praktyka nr 5 Należy stosować proste zdania i nie bać się powtórzeń - przypadek użycia nie jest wierszem z okresu romantyzmu do analizy na języku polskim, lecz ma precyzyjnie,,opowiadać'' o danym wymaganiu i być bezproblemowo zrozumiany przez czytającego (a przede wszystkim realizującego). Dobry przykład: 5. Wykładowca zmienia żądane dane. Zły przykład: 5. Wykładowca zmienia dane, które wymagają edycji.

Dobra praktyka nr 6 Nazwa przypadku użycia powinna odzwierciedlać cel, który chce osiągnąć aktor. Przykładowo, prawidłowa nazwa wymagania to,,usunięcie studenta'', a nie,,dezaktywacja rekordu studenta'', nawet jeżeli technicznie tak to wygląda Dobry przykład: UC06: Wstawienie oceny Zły przykład: UC06: Dodanie obiektu oceny do przedmiotu studenta

Przypadki użycia dodatki Diagramy przypadków użycia Zawieranie (includes) Rozszerzanie (extends) Specjalizacja

Diagram przypadków użycia

A teraz praca w grupach!