OiZPI Część 4 zarządzanie procesem formułowania wymagań

Slides:



Advertisements
Podobne prezentacje
REFLEKSJE NA TEMAT ZARZĄDZANIA STRATEGICZNEGO
Advertisements

Modelowanie przypadków użycia
Projektowanie w cyklu życia oprogramowania
Część 2 OiZPI Iteracyjny przyrostowy model cyklu życiowego Rational Unified Process™ w materiałach wykorzystano: K.Subieta: Budowa i integracja systemów.
Analiza ryzyka projektu
Referat 3. Planowanie zadań i metody ich obrazowania
Architektura systemu Gra strategiczna „Strusia Jama”
Propozycja metodyki nauczania inżynierii oprogramowania
METODA PROJEKTU Metoda ta polega na samodzielnym realizowaniu przez uczniów zadania przygotowanego przez nauczyciela na podstawie wcześniej ustalonych.
Co UML może zrobić dla Twojego projektu?
Dokumentowanie wymagań w języku XML
Cykle życia oprogramowania
Systemy operacyjne.
Diagram czynności (Activity Diagrams)
Rational Unified Process
Projektowanie i programowanie obiektowe II - Wykład II
Wstęp do interpretacji algorytmów
Modele baz danych - spojrzenie na poziom fizyczny
Analiza i projektowanie Informacyjnych Systemów Zarządzania
Projektowanie - wprowadzenie
Wykład 4 Analiza i projektowanie obiektowe
Wykład 3 Analiza i projektowanie strukturalne
Wykład 2 Cykl życia systemu informacyjnego
Określanie wymagań Inżynieria wymagań
ALGORYTMY.
C.d. wstępu do tematyki RUP
Inżynieria Oprogramowania
Etapy podejmowania decyzji
Wanda Klenczon Biblioteka Narodowa
Rozwiązanie zadań do zaliczenia I0G1S4 // indeks
Wybrane zagadnienia relacyjnych baz danych
Dr Karolina Muszyńska Na podst.:
Program Operacyjny Kapitał Ludzki
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Modelowanie obiektowe Diagramy UML – diagram przypadków użycia
Planowanie przepływów materiałów
Sebastian Wojczyk Inżynieria wymagań Sebastian Wojczyk
Opracowanie ćwiczeń dotyczących zapewniania niezawodności baz danych na przykładzie Oracle Opiekun : dr inż. Agnieszka Landowska Dyplomant : Tomasz Krzyżanowski.
Podstawowe elementy Strategii Rozwoju Obszaru Społeczno-Gospodarczego
Modelowanie obiektowe Diagramy klas
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 +
Model obiektowy bazy danych
Komputerowe wspomaganie projektowania
Diagram klas Kluczowymi elementami są: klasy (class)
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.
Systemy informatyczne
Modelowanie obiektowe - system zarządzania projektami.
Projektowanie relacyjnych baz danych – diagramy związków encji
ZINTEGROWANE SYSTEMY ZARZĄDZANIA
Eksploatacja zasobów informatycznych przedsiębiorstwa.
Diagramy przepływu danych
Projektowanie bazy danych z użyciem diagramów UML Obiektowe projektowanie relacyjnej bazy danych Paweł Jarecki.
Logical Framework Approach Metoda Macierzy Logicznej
Wstęp do interpretacji algorytmów
Wstęp do systemów informatycznych Model przypadków użycia.
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.
Temat: Tworzenie bazy danych
Inżynieria systemów informacyjnych
Funkcja planowania.
Zarządzanie projektami informatycznymi
Projekt modułu BANK INTERNETOWY Moduł funkcji banku
{ Wsparcie informacyjne dla zarządzania strategicznego Tereshkun Volodymyr.
[Nazwa projektu] Analiza zamknięcia
Systemy eksperckie i sztuczna inteligencja
Budowa planu strategicznego – formułowanie celów.
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

OiZPI Część 4 zarządzanie procesem formułowania wymagań w materiałach wykorzystano: K.Subieta: Budowa i integracja systemów informatycznych A.Kobieliński: Inżynieria Oprogramowania I.Sommerville: Software Engineering IBM Rational: RUP™ S.Wyrcza, B.Marcinkowski: Język Inżynierii Systemów SysML, Architektura i Zastosowanie

Zarządzanie procesem formułowania wymagań Pojęcie inżynierii wymagań Poziomy szczegółowości wymagań Dokumentacja fazy określania wymagań

Wymagania Wymaganie to najogólniej opis tego, co i przy jakich założeniach system powinien robić by klient osiągnął postawiony sobie cel. Formułowanie wymagań to proces zamiany celów klienta (określonych w fazie strategicznej) na konkretne wymagania zapewniające osiągnięcie tych celów. W fazie określania wymagań klient - samodzielnie albo wspólnie z grupą doradców i/lub przedstawicielami producenta - tworzy zbiór wymagań zgodny z jego celami Uwaga: pojęcie wymagania może odnosić się także do zasad prowadzenia i zarządzania projektem.

Metody rozpoznania wymagań Wywiady i przeglądy. Wywiady powinny być przygotowane (w postaci listy pytań) i podzielone na odrębne zagadnienia. Podział powinien przykrywać całość tematu i powinny być przeprowadzone na reprezentatywnej grupie użytkowników. Wywiady powinny doprowadzić do szerokiej zgody i akceptacji projektu. Studia na istniejącym oprogramowaniu. Dość często nowe oprogramowanie zastępuje stare. Studia powinny ustalić wszystkie dobre i złe strony starego oprogramowania. Studia wymagań systemowych. Dotyczy sytuacji, kiedy nowy system ma być częścią większego systemu. Studia osiągalności. Określenie realistycznych celów systemu i metod ich osiągnięcia. Prototypowanie. Zbudowanie prototypu systemu działającego w zmniejszonej skali, z uproszczonymi interfejsami.

Metody rozpoznania wymagań Warsztaty wymagań. Jest to spotkanie z inwestorami i użytkownikami (jeśli takich można wskazać) mające na celu uświadomienie sobie tego, co powinien robić przyszły system. Osoba prowadząca – analityk systemowy Uczestnicy – inwestorzy, użytkownicy i inne osoby, które mogą znać problemy rozpatrywanej jednostki organizacyjnej

Warsztaty wymagań Przebieg warsztatów Każda z osób przemawia i artykułuje – na ile jest to możliwe, czytelnie swoje problemy Każdy problem zapisuje się – jakikolwiek by ten problem nie był Wszyscy uczestnicy starają się znaleźć – na zasadzie "burzy mózgów" rozwiązanie tego problemu, Rozwiązania zapisuje się obok problemów Przykład: problem: nie mogę się nigdy doliczyć palet na magazynie rozwiązanie: wprowadzić na faktury zakupowe i sprzedażowe pole określające liczbę przyjętych i wydanych palet.

Warsztaty wymagań Inne podejście Analityk najpierw rozpoznaje problemy na niezależnych wcześniejszych spotkaniach Systematyzuje problemy tworząc listę pytań, Do każdego pytania można przygotować dodatkową ilustrację (np.. w postaci slajdu z diagramem, rysunkiem, tabelą, itp. Podczas warsztatów analityk objaśnia problem, przedstawia ilustrację Znajduje się rozwiązanie i udziela odpowiedzi na pytania na odpowiednim formularzu (query sheet) przykład: XXX przykład: YYY

Problem ewolucji wymagań Ewolucja wymagań to najpoważniejszy problem projektowania systemów informatycznych. Szacuje się, że większość niepowodzeń projektów ma swe źródło w zmieniających się wymaganiach. Niestety zmiany wymagań raczej nie uda się uniknąć - trzeba raczej spróbować się na nią przygotować - wiedzieć co trzeba poprawić, gdy zmienią się wymagania czas Początkowe zrozumienie problemu Zmiana zrozumienia problemu Początkowe wymagania Zmiana wymagań

Problem ewolucji wymagań Należy uznać, że ewolucja wymagań jest naturalną właściwością procesu analizy, w którym wiedza o rozpatrywanym problemie systematycznie wzrasta Im dłużej zajmujemy się jakimś zagadnieniem, tym większa jest nasza wiedza, tym większa jest świadomość użytkowników Należy przewidzieć mechanizmy pozwalające kontrolować proces ewolucji wymagań, Nie należy takiego problemu wykluczać Kategoryzacja skali zmian – pomocny mechanizm Poszczególne kategorie odpowiadają zmianom o różnej skali

Rodzaje wymagań Wymagania Wymagania funkcjonalne Wymaganie niefunkcjonalne

Wymagania funkcjonalne Wymagania funkcjonalne opisują operacje wykonywane przez system. Inne aspekty wymagań funkcjonalnych Określenie wszystkich rodzajów użytkowników, którzy będą korzystać z systemu. Określenie wszystkich rodzajów użytkowników, którzy są niezbędni do działania systemu (obsługa, wprowadzanie danych, administracja). Dla każdego rodzaju użytkownika określenie funkcji systemu oraz sposobów korzystania z planowanego systemu. Określenie systemów zewnętrznych (obcych baz danych, sieci, Internetu), które będą wykorzystywane podczas działania systemu. Ustalenie struktur organizacyjnych, przepisów prawnych, statutów, zarządzeń, instrukcji, itd., które pośrednio lub bezpośrednio określają funkcje wykonywane przez planowany system.

Metody specyfikacji wymagań funkcjonalnych Język naturalny najczęściej stosowany. Wady: niejednoznaczność powodująca różne rozumienie tego samego tekstu; elastyczność, powodująca wyrazić te same treści na wiele sposobów. Utrudnia to wykrycie powiązanych wymagań i powoduje trudności w wykryciu sprzeczności. Język naturalny strukturalny Język naturalny z ograniczonym słownictwem i składnią. Tematy i zagadnienia wyspecyfikowane w punktach i podpunktach. Tablice, formularze Wyspecyfikowanie wymagań w postaci (zwykle dwuwymiarowych) tablic, kojarzących różne aspekty (np. tablica ustalająca zależność pomiędzy typem użytkownika i rodzajem usługi).

Metody specyfikacji wymagań funkcjonalnych Diagramy blokowe forma graficzna pokazująca cykl przetwarzania. Diagramy kontekstowe ukazują system w postaci jednego bloku oraz jego powiązania z otoczeniem, wejściem i wyjściem. Diagramy przypadków użycia poglądowy sposób przedstawienia aktorów i funkcji systemu.

Trudności fazy formułowania wymagań Klient nie potrafi rozgraniczyć celów od wymagań; te pierwsze często formułuje mało konkretnie i ogólnikowo; tych drugich nie potrafi wyartykułować (trzeba pomóc mu je rozpoznać) Klient z reguły spodziewa się poprawy stanu aktualnego organizacji, często nie przewidując jakie zmiany w organizacji przedsiębiorstwa spowoduje ulepszony system; najchętniej też nie ponosiłby za nie odpowiedzialności cel: usprawnienie sprzedaży, wymaganie: możliwość wystawienia faktury, możliwość wydruku faktury.

Trudności fazy formułowania wymagań Klient z reguły nie wie w jaki sposób osiągnąć założone cele; z drugiej strony cele klienta można osiągnąć na wiele sposobów Duże systemy wykorzystywane są przez wielu użytkowników; ich cele często są sprzeczne; różni użytkownicy mogą posługiwać się inną terminologią mówiąc o tych samych problemach Inwestorzy i użytkownicy do często inne osoby; głos inwestora, choć decydujący, nie zawsze właściwie potrafi przewidzieć potrzeby rzeczywistych użytkowników cel: usprawnienie sprzedaży, wymaganie: możliwość wystawienia faktury, możliwość wydruku faktury.

Zalecenia Wymagania użytkowników powinny być wyjaśniane poprzez krytykę i porównanie z istniejącym oprogramowaniem i prototypami. Należy uzyskać stan porozumienia pomiędzy projektantami i użytkownikami dotyczący projektowanego systemu. Wiedza i doświadczenia potencjalnej organizacji podejmującej się rozwoju systemu powinny wspomóc studia nad osiągalnością systemu. W wielu przypadkach dużym wspomaganiem jest budowa prototypów. Wymagania użytkowników powinny być: jasne, jednoznaczne, weryfikowalne, kompletne, dokładne, realistyczne, osiągalne.

Wymagania niefunkcjonalne Wymagania niefunkcjonalne określają jakim ograniczeniom podlegać ma system wypełniając wymagania funkcjonalne. Najczęściej związane są z wydajnością systemu, właściwościami interfejsu użytkownika, dopasowaniem do określonego środowiska – system operacyjny, system zarządzania bazą danych

Weryfikowalność wymagań niefunkcjonalnych Wymagania niefunkcjonalne powinny być weryfikowalne, czyli powinna istnieć możliwość sprawdzenia lub zmierzenia czy system je rzeczywiście spełnia, np. wymagania “system ma być łatwy w obsłudze”, „system ma być niezawodny”, „system ma być dostatecznie szybki”, itd. nie są weryfikowalne. Aby uniknąć nieporozumień na etapie odbioru systemu (testach akceptacyjnych) najlepiej posługi się metryką, która obiektywizuje spełnienie bądź nie wymagań niefunkcjonalnych.

Przykłady metryk wymagań niefunkcjonalnych Cecha Metryka Szybkość Liczba transakcji przetwarzanych na sekundę, czas reakcji na sygnał użytkownika / sygnał zewnętrzny Rozmiar KB/MB/GB Łatwość użycia Czas treningu użytkownika, liczba stron systemu pomocy, liczba stron dokumentacji Niezawodność Średni czas międzyawaryjny, prawdopodobieństwo niedostępności, częstotliwość występowania awarii Odporność na błędy Czas restartu po awarii, statystyczny procent zdarzeń powodujących awarie Przenośność Procent instrukcji zależnych od systemu operacyjnego, liczba systemów docelowych

SysML - wymagania Formułowanie wymagań – najbardziej newralgiczny etap pracy nad systemami W języku SysML wyodrębniono dla wymagań osobną kategorie modelowania Notacja – diagram wymagań systemowych Wymaganie – symbol kasy o stereotypie <<requirement>> Wymaganie jest identyfikowane przez: Numer – numeracja o strukturze hierarchiczne, notacja Deweya (numerowanie wierzchołków drzewa) Treść wymagania – spójny, syntetyczny opis właściwości, która powinien posiadać system (nazwa) Wymaganie można uzupełnić opisem, korzystając z metki „tekst” lub z pola notatek

SysML - wymagania

SysML – wymagania i relacje W SysML przewidziano siedem kategorii zależności: Zagnieżdżenie Zależność wyprowadzania (<<deriveReqt>>) Zależność realizacji (<<satisfy>>) Zależność powielenia (<<copy>>) Zależność weryfikowania (<<verify>>) Zależność precyzowania (<<refine>>) Zależność śledzenia (<<trace>>)

SysML: wymagania i relacje – zagnieżdżenie Najczęściej spotykana relacja Znaczenie: łączy wymagania nadrzędne z podrzędnymi pozwalając na tworzenie hierarchicznej struktury powiązań Na jednym poziomie hierarchii może istnieć tylko jeden element nadrzędny Przeniesienie pomiędzy elementami nadrzędnymi – zależność kopiowania

SysML: wymagania i relacje – zależność wyprowadzania Znaczenie: wyprowadzanie jednego wymagania z innego Wyprowadzone wymaganie to wymaganie pochodne Strzałka wskazuje wymaganie, z którego wyprowadzono wymaganie pochodne

SysML: wymagania i relacje – zależność realizacji Znaczenie: przypisanie wymagania do spełniającego go elementu Strzałka wskazuje spełniane wymaganie

SysML: wymagania i relacje – zależność powielania Znaczenie: wyrażanie tożsamości wymagań Pozwala unikać wielokrotnego definiowania podobnych wymagań Strzałka wskazuje powielane wymaganie

SysML: wymagania i relacje – zależność weryfikowania Znaczenie: powiązanie testu formalnego z wymaganiem Test formalny (ang. testcase) jest odrębna kategoria modelowania SysML (także UML) Strzałka wskazuje weryfikowane wymaganie

SysML: wymagania i relacje – zależność precyzowania Znaczenie: powiązanie wymagania z elementem modelu wzbogacającym jego specyfikację Elementem wzbogacającym może być dowolna kategoria modelowania, ale także specyfikacja tekstowa, projekt interfejsu, itp. Strzałka wskazuje wzbogacane wymaganie

SysML: wymagania i relacje – zależność śledzenia Znaczenie: pokazanie formalnego związku pomiędzy wymaganiem i elementami modelu Duża swoboda posługiwania się znaczeniem (swoboda interpretacji) Przykładowe zastosowanie: zależności czasowe