Table of Contents

Inżynieria oprogramowania (Projekt)

Terminy spotkań:

LpTerminOpis
14.10.2016 11.10.2016Spotkanie organizacyjne. Podział na grupy. Wybór tematów, itp.
218.10.2016 25.10.2016Rysujemy diagramy przepływu danych
38.11.2016 15.11.2016Rysujemy diagramy ERD
422.11.2016 29.11.2016Specyfikacje procesów
56.12.2016 13.12.2016Konsultacje
620.12.2016 3.01.2017Konsultacje
710.01.2017 17.01.2017konsultacje i oddawanie projektów

Terminy przesyłania projektów

Uwaga: oceny będą publikowane w miarę sprawdzania projektów: w sekcji oceny

Szanowni Państwo, proszę o sprawdzenie swoich ocen. Jeżeli grupa nie ma oceny, oznacza to, że praca nie została sprawdzona. Przyczyny mogą być dwie: (1) nie została dostarczona (2) nie zauważyłem, że praca została przesłana. W obu przypadkach proszę o kontakt

Przesyłanie projektów

Projekty mają zostać dostarczone wyłącznie w wersji elektronicznej (jeden dokument PDF). Proszę o:

Zawartość projektu:

Uwagi

Przesyłanie projektów:

Cel projektu

Celem projektu jest sporządzenie modelu systemu w konwencji Analizy Strukturalnej obejmującego:

Efektem powinien być jeden dokument zawierający:

Diagramy przepływu danych DFD

  1. kilkuzdaniowy opis problemu
  2. diagram kontekstowy
  3. diagram wstępny
  4. diagramy niższych poziomów

Słownik danych

  1. diagram ERD definiujący magazyny
  2. specyfikacje danych w przepływach

Specyfikacje procesów atomowych (12 specyfikacji różnych procesów)

  1. opis w postaci prewarunków i postwarunków
  2. opis słowny (pseudokod)
  3. flowchart

Cała specyfikacja musi być spójna.

Tematy projektów

Wybierz jeden z tematów i zarejestruj


Diagramy DFD

Należy zwrócić uwagę, że formalnie Analiza strukturalna jest metodą specyfikacji wymagań odnoszącą się do

Jednak perspektywa opisu jest inna niż w przypadku specyfikacji wymagań z użyciem UML (zwłaszcza przypadków użycia). Przypadek użycia definiuje zachowanie systemu traktowanego jako czarna skrzynka. Diagramy DFD definiują wymagane funkcje i ich wewnętrzną strukturę (spójną hierarchię funkcji).

Elementy składowe:

  1. Diagram kontekstowy: obiekty zewnętrzne (wejścia/wyjścia, interfejsy, terminatory) i proces opisujący system
  2. Diagram wstępny obejmujący: podstawowe procesy, magazyny danych i przepływy
  3. Kolejne diagramy powstałe w wyniku dekompozycji procesów (aż do osiągnięcia poziomu procesów atomowych)

Wskazówki i uwagi

Funkcje systemu IT a nie biznesu

Celem jest zbudowanie modelu systemu informatycznego wspierającego działalność firmy lub organizacji. W opisie nie powinny pojawiać się procesy wykonywane manualnie, np.: zaadresowanie przesyłki = wydruk etykiety i przyklejenie na paczkę. Wydruk jest funkcją systemu, przyklejenie etykiety już nie.

Diagram kontekstowy

Należy zastanowić się nad wejściami i wyjściami systemu. Kto go używa lub z nim współpracuje: użytkownik, inny system. Obiektami zewnętrznymi mogą być też urządzenia (np. drukarka)

Procesy przetwarzają dane

Numeracja procesów w hierarchii

Przepływy danych

Czym nie jest diagram DFD

Sposób konstrukcji

System projektów studenckich
   1.0 Zarządzanie tematami
     1.1 Dodaj temat
     1.2 Edytuje temat
     1.3 Usuń temat
   2.0 Zarządzanie grupami
     2.1 Utwórz grupę
     2.2 Edytuj grupę
       2.2.1 Dodaj osobę 
       2.2.2 Usuń osobę
       2.2.3 Zmień dane kontaktowe
       ...
     2.3 Usuń grupę
   3.0 Zarządzanie przydziałem tematów
   4.0 Wystawianie ocen

Oprogramowanie

Visio: Oprogramowanie i baza danych/Software → Diagram przepływu danych/Data Flow Diagram

Literatura

  1. Opis metody SART http://home.agh.edu.pl/~pszwed/se/sart/kss09.html - sekcja Przykład

Specyfikacja danych

Obejmuje dwie składowe:

  1. Diagram ERD (Entity Relationship Diagram) - najczęściej opisują dane w magazynach
  2. Specyfikację przepływających danych

Diagram ERD

Obiekty i relacje

Diagram ERD pokazuje obiekty (encje) oraz relacje pomiędzy nimi:

Atrybuty

Diagram ERD pokazuje również atrybuty encji

Uwagi

Relacje to trwałe powiązania

Na przykłady umieszczone w Diagramy ERD należy spojrzeć krytycznie. Sugerują one, że relacje są pewnego rodzaju czynnościami lub funkcjami systemu, np:

Relacje to nie czynności

Relacje nie są czynnościami. To są pewne powiązania występujące w modelu danych przechowywanych w systemie. Interesuje nas powiązanie:

Zauważmy, że w pierwszym przypadku jest to jakiś stan, który można zapisać i odczytać; w drugim nazwa sugeruje trwająca kilka minut czynność. Diagramy ERD nie opisują czynności, ale związki przechowywane w sposób trwały w systemie IT..

W Wikipedii jest przykład [Artysta]–<wykonuje>–[Utwór]. Przykład jest lepszy, nie sugeruje, że wykonuje teraz (Present Continuous: is performing), ale wykonuje wielokrotnie i jest z utworem trwale związany ( Simple Present: performs).

Encje reprezentują zbiory obiektów

Encja na diagramie ERD jest zbiorem obiektów. Nie ma sensu używać nazw typu BazaKsiążek, ListaKsiążek – po prostu Książka

Magazyn danych DFD powinien nazywać się tak samo, jak encja. :!:

Modelowanie

Podczas modelowania można użyć:

Diagram BD

Oprogramowanie

Słownik danych

Słownik danych ma obejmować definicje wszystkich przepływów. Przykłady są podane tu: Specyfikacja przepływów danych

Słownik danych (fragment)

users={@login+haslo}

login = *tekst do 32 znaków zwierajacy litery, cyfry i znak podkreślenia*

haslo = * tekst do 32 znaków*

login_we = *dowolny tekst*

haslo_we = * dowolny tekst*

rezultat=tak | nie * wartość logiczna *

Literatura

Diagramy ERD

http://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model
Specyfikacja przepływów danych

Specyfikacja procesów atomowych

Proces atomowy to proces, który nie podlega dalszej dekompozycji.

Specyfikacja procesów atomowych to specyfikacja ich funkcji P: input → output. Specyfikacje te muszą zachować spójność ze słownikiem danych. (Nazwy przepływów danych wejściowych i wyjściowych muszą pojawić się w specyfikacji.)

Uwaga: :!: specyfikacja:

Przykład

Specyfikacja z użyciem prewarunków i postwarunkó

Proces SPRAWDŹ dane logownia
INPUT: login_we, hasło_we, users (przepływ z magazynu)

OUTPUT: rezultat

1. PRE login_we jest pusty

    POST rezultat = nie

2. PRE login_we nie jest pusty i users zawiera rekord u taki, że u.login==login_we i u.haslo==haslo_we

    POST rezultat = tak

3. PRE login_we nie jest pusty i users zawiera rekord u taki, że u.login==login_we i u.haslo != haslo_we

    POST rezultat = nie

Do realizacji w projekcie

  1. Wybierz co najmniej 6 różnych procesów atomowych (ale nie procesy typu logowanie)
  2. Przygotuj 12 specyfikacji procesów (np.: 6 procesów x 2 typy specyfikacji) stosując:
    • pseudokod (Structured English)
    • prewarunki i postwarunki
    • diagramy flowchart
    • tablice decyzyjne

Literatura

Metody specyfikacji procesów atomowych są opisane w podręczniku Yourdona

Przed oddaniem proszę sprawdzić następujące elementy:

Oceny

Dostęp do ocen jest zabezpieczony hasłem