Dr Karolina Muszyńska Opracowano na podstawie: Wiegers K., Beatty J., Specyfikacja oprogramowania. Inżynieria wymagań, Helion, 2014.

Slides:



Advertisements
Podobne prezentacje
Zastosowanie LDAP w obsłudze katalogów bibliotecznych
Advertisements

Projektowanie w cyklu życia oprogramowania
Referat 3. Planowanie zadań i metody ich obrazowania
Dokumentowanie wymagań w języku XML
Administracja zintegrowanych systemów zarządzania
Wstęp do programowania obiektowego
Projektowanie i programowanie obiektowe II - Wykład IV
Projektowanie i programowanie obiektowe II - Wykład II
Wstęp do interpretacji algorytmów
Modele baz danych - spojrzenie na poziom fizyczny
Jakość i niezawodność systemu informacyjnego
Analiza, projekt i częściowa implementacja systemu obsługi kina
Evident – Środki Trwałe
Wykład 4 Analiza i projektowanie obiektowe
Wykład 2 Cykl życia systemu informacyjnego
PROJEKT SIECI KOMPUTEROWYCH
SIEĆ P2P 1. Definicja sieci równouprawnionej. To taka sieć, która składa się z komputerów o takim samym priorytecie ważności, a każdy z nich może pełnić.
Łukasz Sobczak. 1)Co to jest Office 2010 Web Apps 2)SharePoint 2010 a narzędzia pakietu office 3)Integracja Office Web Apps z SharePoint )Problemy.
Rozwój aplikacji przy wykorzystaniu ASP.NET
Elektroniczny Obieg Dokumentów i Elektroniczna Skrzynka Podawcza
Instytut Tele- i Radiotechniczny WARSZAWA
Bazy danych.
Digitalizacja obiektów muzealnych
Microsoft Solution Framework
PAKIET SOTRALENTZ SYSTEM SERWISANT. DODAWANIE NOWEGO KLIENTA DANE KLIENTA 1 DANE URZĄDZENIA 2 Jerzy.
Prezentacja i szkolenie
Sieciowe Systemy Operacyjne
STAĆ CIĘ NA INNOWACJE System CRM w Focus Telecom Polska - cechy i funkcjonalność usługi Autor: Tomasz Paprocki.
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Podstawowe informacje o maturze dla gimnazjalistów.
Programowanie obiektowe 2013/2014
Dr Karolina Muszyńska Na podst.:
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
1 Każdy obiekt jest scharakteryzowany poprzez: tożsamość – daje się jednoznacznie wyróżnić; stan; zachowanie. W analizie obiektowej podstawową strukturą
Algorytmika.
Walidacja danych alina suchomska.
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.
Przykłady analiza i projektowanie
Temat 6: Dokumentacja techniczna urządzeń sieciowych.
Modelowanie obiektowe - system zarządzania projektami.
Projektowanie relacyjnych baz danych – diagramy związków encji
Dokumentacja obsługi programów Kamil Smużyński Piotr Kościński.
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
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.
Diagramy przepływu danych
Projektowanie bazy danych z użyciem diagramów UML Obiektowe projektowanie relacyjnej bazy danych Paweł Jarecki.
Podstawy programowania
Struktura systemu operacyjnego
Moduł e-Kontroli Grzegorz Dziurla.
Wstęp do interpretacji algorytmów
Model warstwowy ISO-OSI
DOKUMENTACJA OCHRONY DANYCH OSOBOWYCH dr hab. Mariusz Jagielski
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.
Temat: Porównanie technologii php,c# oraz javascript na przykładzie webaplikacji typu społecznościowy agregator treści Autor: Wojciech Ślawski.
T ESTY JEDNOSTKOWE W C# Alicja Majka, A GENDA Wprowadzenie do środowiska Czym są testy jednostkowe i po co je stosować? XUnit, NUnit Pokrycie.
Inżynieria systemów informacyjnych
Wady i zalety pracy w chmurze
T. 18. E Proces DGA - Działania (operatorka).
Hipertekst HTML WWW.
Zarządzanie projektami informatycznymi
Inżynieria Oprogramowania Laboratorium
Projekt modułu BANK INTERNETOWY Moduł funkcji banku
[Nazwa projektu] Analiza zamknięcia
Nazwa projektu | Nazwa firmy | Nazwa prezentera
JavaBeans by Paweł Wąsala
Czy mój serwis internetowy jest dostępny dla wszystkich?
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

Dr Karolina Muszyńska Opracowano na podstawie: Wiegers K., Beatty J., Specyfikacja oprogramowania. Inżynieria wymagań, Helion, 2014

 SRS określa funkcjonalności oraz możliwości, które musi realizować system oprogramowania, a także definiuje charakterystyki oraz ograniczenia, które system powinien uwzględniać.  SRS w wystarczającym stopniu powinien opisywać zachowania systemu w różnych warunkach, jak i pożądane charakterystyki systemu, takie jak wydajność, bezpieczeństwo i użyteczność.  SRS jest podstawą przyszłego planowania, projektowania i kodowania projektu, a także stanowi bazę dla testów systemu oraz dokumentacji użytkownika. 2

 Klientom, żeby wiedzieć jakiego produktu mogą się spodziewać  Menedżerom projektu do szacowania harmonogramów, nakładów oraz zasobów  Zespołom programistycznym, aby wiedzieć, co mają zbudować  Testerom w celu opracowywania testów, ich planowania, a także definiowania procedur testowych  Serwisantom oraz obsłudze technicznej w celu zrozumienia, co powinna robić każda część produktu  Autorom dokumentacji do opracowania podręczników oraz ekranów pomocy  Szkoleniowcom w celu tworzenia materiałów edukacyjnych  Działowi prawnemu aby sprawdzić czy wymagania są zgodne z odpowiednimi przepisami i regulacjami. 3

 Kolejne niepowtarzalne numery - brak jakiegokolwiek grupowania i uporządkowania, z etykiet nie wynika czego dotyczy dane wymaganie (np. WF-24)  Numerowanie hierarchiczne – hierarchia może się mocno rozrosnąć, numery nie przekazują żadnej informacji na temat celu danego wymagania, a dodanie nowego wymagania powoduje przenumerowanie kolejnych wymagań (np , , itd.)  Hierarchiczne znaczniki tekstowe – są ustrukturyzowane, niosą ze sobą treść i nie ma na nie wpływu dodawanie, usuwanie i przenoszenie innych wymagań (np. Drukuj.PotwierdźKopie); pełny i niepowtarzalny identyfikator każdego wymagania jest tworzony przez dołączenie etykiety każdego wiersza do nadrzędnej etykiety wiersza poprzedniego; mogą być jedynie problemy z wymyślaniem sensownych, niepowtarzalnych nazw, szczególnie jeżeli nad dokumentem pracuje jednocześnie wiele osób 4

Dołączanie projektów interfejsu użytkownika do SRS ma swoje zalety i wady  Zalety: ◦ wymagania stają się namacalne zarówno dla użytkowników, jak i programistów ◦ są to wydajne techniki służące do pozyskiwania i weryfikowania wymagań ◦ jeśli użytkownicy mają swoje oczekiwania dotyczące wyglądu i działania określonych elementów produktu i będą rozczarowani, jeśli nie zostaną one uwzględnione, to oczekiwania te należy uważać za wymagania  Wady: ◦ obrazy ekranów oraz architektura interfejsu użytkownika opisują rozwiązania i w rzeczywistości mogą nie definiować wymagań ◦ odraczanie tworzenia bazowego SRS do czasu, w którym gotowy będzie interfejs użytkownika, może spowolnić prace nad projektem ◦ niebezpieczeństwo że wymagania zostaną podporządkowane projektom graficznym, co z kolei może prowadzić do powstania luk funkcjonalnych 5

6

 Cel ◦ identyfikacja produktu/aplikacji; opis grup czytelników, dla których przeznaczony jest dokument  Konwencje użyte w dokumencie ◦ opis standardów i konwencji typograficznych użytych w dokumencie  Zakres projektu ◦ opis specyfikowanego oprogramowania oraz jego celu, wraz z odniesieniem do celów użytkowników albo firmy oraz do celów i strategii biznesowych  Materiały uzupełniające ◦ lista wszystkich załączników do SRS wraz z odnośnikami 7

 Perspektywa produktu ◦ opis kontekstu produktu i jego pochodzenia, ewentualny związek z innymi systemami (można dołączyć diagram kontekstowy lub mapę ekosystemu)  Klasy oraz charakterystyki użytkowników ◦ definicja różnych klas użytkowników i opis ich cech (klasy uprzywilejowane)  Środowisko operacyjne ◦ opis środowiska, w którym oprogramowanie będzie funkcjonować (platforma sprzętowa, systemy operacyjne, serwery, bazy danych)  Ograniczenia projektu oraz implementacji ◦ opis ograniczeń limitujących opcje dostępne dla programistów (np. konkretny język programowania, biblioteki kodu itp.)  Założenia i zależności ◦ opis przyjętych założeń dotyczących funkcjonalności systemu ◦ identyfikacja zależności systemu od czynników zewnętrznych 8

 Wymagania funkcjonalne pogrupowane według określonego sposobu ◦ wg funkcjonalności systemu, obszarów funkcjonalności, przepływów procesów, przypadków użycia, trybów działania, klas użytkowników, bodźców i reakcji  Każda funkcjonalność powinna mieć zdefiniowaną nazwę, opis i priorytet  Dla każdej funkcjonalności wymienione są związane z nią wymagania funkcjonalne, czyli możliwości oprogramowania, które powinny zostać zaimplementowane, zanim użytkownik będzie mógł skorzystać z tej funkcjonalności albo zrealizować przypadek użycia ◦ należy dołączyć również opis tego jak produkt powinien reagować na możliwe do przewidzenia błędy oraz niewłaściwe dane wprowadzane przez użytkownika i jego nieprawidłowe zachowania 9

 Logiczny model danych ◦ wizualna reprezentacja obiektów i zbiorów danych, które system będzie przetwarzać, oraz relacji, jakie między nimi zachodzą, np. diagram związków encji lub klas  Słownik danych ◦ definicja budowy struktur danych oraz znaczenie, typy, długości, formaty i dozwolone wartości danych tworzące te struktury  Raporty ◦ definicja i opis właściwości raportów, które będą generowane przez system, ewentualne szablony  Pozyskiwanie, integralność, przechowywanie i usuwanie danych ◦ opis tego, jak w systemie są pozyskiwane i przetwarzane dane, jakie są wymagania odnośnie potrzeby ochrony integralności danych ◦ identyfikacja koniecznych technik, np. tworzenie kopii bezpieczeństwa, kopii zapasowych itp. 10

 Interfejsy użytkownika ◦ opis logicznych właściwości każdego interfejsu użytkownika (m.in. standardy dotyczące czcionek, obrazów, schematu kolorów, itd.)  Interfejsy oprogramowania ◦ opis połączeń między rozwijanym produktem a pozostałymi składnikami oprogramowania (m.in. sposób przenoszenia danych z jednego systemu do drugiego, rodzaje wymaganych usług, itp.) ◦ określenie wymagań pozafunkcjonalnych mających wpływ na interfejs, takich jak czasy i częstotliwości reakcji oraz procedury i ograniczenia związane z bezpieczeństwem  Interfejsy sprzętowe ◦ opis właściwości interfejsów łączących składniki programowe systemu ze składnikami sprzętowymi (np. lista kompatybilnych urządzeń, itp.)  Interfejsy komunikacyjne ◦ opis wymagań funkcji komunikacyjnych, w tym poczty elektronicznej, przeglądarek internetowych, protokołów sieciowych oraz formularzy elektronicznych. 11

 Użyteczność ◦ opis wymagań użytecznościowych, które mają związek z łatwością uczenia się, prostotą korzystania, omijaniem błędów, powracaniem do stanu używalności, sprawnością interakcji oraz dostępnością.  Wydajność ◦ opis wymagań wydajnościowych dotyczących różnych operacji przeprowadzanych w systemie  Bezpieczeństwo ◦ określenie wymagań dotyczących kwestii bezpieczeństwa i prywatności, które mają wpływ na ograniczenie dostępu do produktu albo korzystania z niego (bezpieczeństwo danych i oprogramowania oraz fizyczne)  Zagrożenia ◦ definicja środków bezpieczeństwa lub działań, które należy podjąć, a także potencjalnych niebezpiecznych zachowań, którym należy zapobiegać  Inne – ważne dla klienta cechy produktu (dostępność, modyfikowalność, skalowalność, prostota instalacji, itp.) 12

 Wymagania międzynarodowe i lokalizacyjne gwarantują, że z produktu będą mogły korzystać różne narodowości, pochodzące z innych kręgów kulturowych i położeń geograficznych niż te, w których produkt został stworzony  Tego typu wymagania mogą dotyczyć różnic w walutach; formatowaniu dat, liczb, adresów i numerów telefonów; językach, w tym różnych pisowni w obrębie tego samego języka; stosowanych symbolach i zestawach liter; kolejności imion i nazwisk; strefach czasowych; przepisach i regulacjach; kwestiach kulturowych i politycznych; stosowanych rozmiarach papieru; jednostkach miar i wag; napięciach elektrycznych, kształtach wtyczek i wielu innych. 13

 Mogą to być wymagania mające na celu zachowanie zgodności produktu z przepisami prawnymi, regulacjami finansowymi lub standardami; m.in. wymagania związane z instalacją produktu, jego konfiguracją, uruchamianiem i zamykaniem, logowaniem, monitorowaniem i logowaniem zdarzeń systemu. 14

Dla poszczególnych wymagań:  Kompletność  Poprawność  Wykonalność  Niezbędność  Priorytet  Jednoznaczność  Weryfikowalność Dla zbiorów wymagań dodatkowo:  Spójność  Modyfikowalność  Możliwość śledzenia 15

 Perspektywa systemu czy perspektywa użytkownika - wymagania funkcjonalne można pisać z perspektywy tego, co robi system, albo z perspektywy tego, co może robić użytkownik – oba podejścia są prawidłowe, ale należy używać konsekwentnie jednego rodzaju zwrotu, np. „System powinien…” lub „Użytkownik powinien…”, po którym następuje czasownik opisujący czynność oraz spodziewany wynik tej czynności. Przedtem powinien znaleźć się warunek, który spowoduje, że system zachowa się w określony sposób  Styl pisania wymagań - najważniejszą cechą dobrze napisanych wymagań jest łatwość ich czytania i zrozumienia, czyli trzeba zachować jasność i zwięzłość wypowiedzi; dobrze jest konsekwentnie stosować słowo „powinien”, wypowiedzi w stronie czynnej, nie łączyć kilku wymagań w jednym zdaniu  Poziom szczegółowości – zależy m.in. od wiedzy, doświadczenia i zaangażowania zespołu 16

17

18

19

20

21

22

23

24

25

Dr Karolina Muszyńska Opracowano na podstawie: Wiegers K., Beatty J., Specyfikacja oprogramowania. Inżynieria wymagań, Helion, 2014

 Mianem atrybutu jakościowego można nazwać kilkadziesiąt rożnych cech produktu  Jeden ze sposobów klasyfikowania atrybutów jakościowych opiera się na odróżnieniu właściwości widocznych podczas działania oprogramowania - jakość zewnętrzna (ważna przede wszystkim dla użytkowników) od właściwości, które są wówczas niewidoczne - jakość wewnętrzna (ważna dla programistów i serwisantów, chociaż pośrednio wpływa też na zadowolenie klienta, sprawiając, że produkt jest łatwiejszy do wzbogacania, poprawiania, testowania oraz w przenoszeniu na nowe platformy) 27

28

29

 Dostępność - przewidywany czas, podczas którego usługi systemu będą dostępne oraz w pełni sprawne System powinien być dostępny przez co najmniej 95% czasu w dni powszednie od godziny 6.00 do północy czasu środkowoeuropejskiego oraz przez co najmniej 99% czasu w dni powszednie między a czasu środkowoeuropejskiego.  Integralność – to zapobieganie utracie informacji oraz zachowanie spójności danych wprowadzonych do systemu; dane należy chronić przed takimi zagrożeniami jak: ich przypadkowa utrata lub zniszczenie; fizyczne uszkodzenie nośników danych; przypadkowe skasowanie pliku lub nadpisanie danych przez użytkownika; umyślne ataki mające na celu zniszczenie lub kradzież danych; integralność to także określnie formatów pól danych, ograniczanie danych przyjmowanych w polach do określonego typu lub długości, gwarantowanie, że elementy danych mają poprawne wartości, itd. 30

 Wydajność - prędkość reagowania systemu na różne działania użytkowników 31

 Wytrzymałość - określa, w jakim stopniu system może prawidłowo działać, gdy otrzyma niepoprawne dane, wystąpi awaria we współpracującym oprogramowaniu lub sprzęcie, nastąpi atak z zewnątrz lub pojawią się nieprzewidziane warunki pracy. Inne określenia związane z wytrzymałością to tolerancja na błędy czy przywracalność Jeśli w edytorze tekstów wystąpi awaria, zanim użytkownik zdoła zapisać plik, w chwili ponownego uruchomienia aplikacji system powinien odzyskać zawartość edytowanego pliku w postaci, jaką miał on najwyżej na minutę przed awarią.  Ochrona – dotyczy zapobiegania wyrządzaniu przez system urazów u jego użytkowników oraz szkód w ich własności Urządzenie do naświetleń terapeutycznych powinno zezwalać na naświetlenia tylko wtedy, gdy zamontowany jest odpowiedni filtr. 32

 Użyteczność – odnosi się do wielu aspektów określanych przyjaznością dla użytkownika, prostotą użycia lub projektowaniem pod człowieka 33

 Modyfikowalność – określa, jak łatwo można zrozumieć, zmieniać i rozszerzać projekt oprogramowania oraz jego kod 34

 Przenośność – określa możliwości przenoszenia oprogramowania z jednego środowiska roboczego do innego (np. różne systemy operacyjne, urządzenia mobilne); do przenośności zalicza się również możliwości związane z internacjonalizacją oraz lokalizacją produktu  Skalowalność – określa możliwości poszerzenia aplikacji w taki sposób aby mogła ona przyjąć więcej użytkowników, danych, serwerów, lokalizacji geograficznych, transakcji, ruchu sieciowego, wykonać więcej operacji szukania lub innych usług bez pogorszenia wydajności i przy zachowaniu poprawności działania  Weryfikowalność – inaczej mówiąc testowalność, czyli możliwość sprawdzenia, czy poszczególne elementy produktu lub produkt traktowany jako całość funkcjonuje zgodnie z oczekiwaniami. 35