Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34



Podobne dokumenty
Inżynieria Programowania - Projektowanie architektoniczne

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

Inżynieria oprogramowania

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:

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

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

NIFIED M L ODELLING ANGUAGE. Diagramy czynności

KARTA PRZEDMIOTU. 1) Nazwa przedmiotu: INŻYNIERIA SYSTEMÓW I ANALIZA SYSTEMOWA. 2) Kod przedmiotu: ROZ-L3-20

UML cz. III. UML cz. III 1/36

UML cz. II. UML cz. II 1/38

Czujniki obiektowe Sterowniki przemysłowe

Egzamin / zaliczenie na ocenę*

Wykład I. Wprowadzenie do baz danych

ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski

Spis treúci. 1. Wprowadzenie... 13

UML w Visual Studio. Michał Ciećwierz

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Zasady organizacji projektów informatycznych

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

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

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

Pojęcie bazy danych. Funkcje i możliwości.

Podstawy programowania III WYKŁAD 4

Modelowanie i analiza systemów informatycznych

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

Wykład 3 Wymagania. MIS n Inżynieria oprogramowania Październik Kazimierz Michalik Akademia Górniczo-Hutnicza im. S. Staszica w Krakowie

E-1IZ s2. Informatyka II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

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

Informatyka II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) kierunkowy (podstawowy / kierunkowy / inny HES)

Bazy danych 2. Wykład 1

Inżynieria oprogramowania

UML (Unified Modeling Language jest to sposób formalnego opisu modeli reprezentujących projekty informatyczne.

Wykład 1 Inżynieria Oprogramowania

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013

Język UML w modelowaniu systemów informatycznych

Język UML w modelowaniu systemów informatycznych

Wytwórstwo oprogramowania. michał możdżonek

Wymiar poziomy: oś na której umieszczono instancje klasyfikatorów biorące udział w interakcji.

E-I2SG-2010-s1. Informatyka II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

INŻYNIERIA OPROGRAMOWANIA. laboratorium

Specyfikowanie wymagań przypadki użycia

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

WPROWADZENIE DO UML-a

Podstawy modelowania programów Kod przedmiotu

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Wykład 7. Projektowanie kodu oprogramowania

KARTA MODUŁU KSZTAŁCENIA

Spis treúci. Księgarnia PWN: Robert A. Maksimchuk, Eric J. Naiburg - UML dla zwykłych śmiertelników. Wstęp Podziękowania...

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

Grupy pytań na egzamin inżynierski na kierunku Informatyka

Modelowanie i analiza systemów informatycznych

Diagramy klas. dr Jarosław Skaruz

Podstawy inżynierii oprogramowania

TECHNOLOGIE OBIEKTOWE. Wykład 3

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Grupa treści kształcenia, w ramach której przedmiot jest realizowany Przedmiot kierunkowy

KARTA PRZEDMIOTU 1,5 1,5

Technologia informacyjna (IT - Information Technology) dziedzina wiedzy obejmująca:

Źródło: S. Wrycza, B. Marcinkowski, K. Wyrzykowski Język UML 2.0 w modelowaniu systemów informatycznych Helion DIAGRAMY INTERAKCJI

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Rysunek 1: Przykłady graficznej prezentacji klas.

Projektowanie logiki aplikacji

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Zakres wykładu. Podstawy InŜynierii Oprogramowania

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Michał Adamczyk. Język UML

Modelowanie procesów współbieżnych

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

Wykorzystanie standardów serii ISO oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1

Inżynieria oprogramowania - opis przedmiotu

Zalety projektowania obiektowego

Modelowanie. Wykład 1: Wprowadzenie do Modelowania i języka UML. Anna Kulig

PRZEWODNIK PO PRZEDMIOCIE

Systemy Wbudowane. Założenia i cele przedmiotu: Określenie przedmiotów wprowadzających wraz z wymaganiami wstępnymi: Opis form zajęć

Projekt systemu informatycznego

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Spis treści Wstęp 1. Wprowadzenie 2. Zarządzanie ryzykiem systemów informacyjnych

Modelowanie obiektowe - Ćw. 3.

Bazy Danych. Modele danych. Krzysztof Regulski WIMiIP, KISiM,

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.

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

Oprogramowanie o wysokiej jakości to oprogramowanie spełniające następujące kryteria:

Diagramy czynności Na podstawie UML 2.0 Tutorial

Diagramy czynności. Widok logiczny. Widok fizyczny

Faza Określania Wymagań

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

PRZEWODNIK PO PRZEDMIOCIE

EXSO-CORE - specyfikacja

ZARZĄDZANIE WYMAGANIAMI ARCHITEKTONICZNYMI

Idea Bezpiecznej Maszyny w prostym podejściu. użyj Safety Evaluation Tool. Safety Integrated.

Zaliczenie przedmiotu:

Diagramy stanów tworzenie modeli analizy i projektowania Na podstawie UML 2.0 Tutorial

Jarosław Kuchta. Projektowanie Aplikacji Internetowych. Wprowadzenie

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1

Procesowa specyfikacja systemów IT

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Laboratorium 5 - Projektowanie programów zorientowanych obiektowo. Indywidualny projekt programistyczny

Transkrypt:

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Projektowanie oprogramowania cd. 2/34 Modelowanie CRC Modelowanie CRC (class-responsibility-collaborator) Metoda identyfikowania poszczególnych klas i definiowania ich odpowiedzialności Kryteria wyboru obiektów: przechowywane informacje potrzebne usługi więcej niż jeden atrybut wspólne atrybuty wspólne operacje najważniejsze wymagania

Projektowanie oprogramowania cd. 3/34 Modelowanie CRC Cechy klasy: materialność inkluzywność sekwencyjność trwałość integralność

Projektowanie oprogramowania cd. 4/34 Modelowanie CRC Przydzielanie klasom odpowiedzialności: Inteligencja systemu powinna być równomiernie rozmieszczona. Odpowiedzialności należy opisywać jak najbardziej ogólnie. Zachowanie związane z danymi należy wiązać z tą klasą, w której te dane się znajdują. Informacje o pojedynczych bytach należy umieszczać w jednej klasie, a nie rozdzielać między klasy. Jeżeli to możliwe warto rozdzielić odpowiedzialności między klasy.

Projektowanie oprogramowania cd. 5/34 Modelowanie CRC Kooperacje kooperacje to związki między klasami typu: jest-częścią wie-o zależy-od

Projektowanie oprogramowania cd. 6/34 Model obiekt-związek związek to zależność między klasami w systemach obiektowych najczęściej związki skierowane związki można ustalić, analizując wyrażenia oznaczające czynności w opisie działania systemu i w opisach przypadków użycia

Projektowanie oprogramowania cd. 7/34 Model obiekt-związek Tworzenie modelu obiekt-związek Na podstawie kart CRC naszkicować sieć kooperacji obiektów Sięgając ponownie do kart CRC, przydzielić nazwy związkom na podstawie odpowiedzialności i kooperacji Na obu końcach każdego nazwanego związku należy zaznaczyć jego liczebność

Projektowanie oprogramowania cd. 8/34 Model obiekt-związek Rysunek: Model obiekt-związek

Projektowanie oprogramowania cd. 9/34 Model zachowania obiektów Przygotowanie zrozumienie przypadków użycia identyfikacja zdarzeń sterujących przebiegiem interakcji i zrozumienie związków tych zdarzeń z poszczególnymi obiektami przygotowanie diagramu sekwencji dla przypadku użycia sporządzić diagram przejść pomiędzy stanami dla systemu sprawdzić poprawność przygotowanego diagramu

Projektowanie oprogramowania cd. 10/34 Zagadnienia związane z projektowaniem Kryteria projektowania: łatwość dekompozycji łatwość składania łatwość zrozumienia ciągłość ochrona

Projektowanie oprogramowania cd. 11/34 Czynności wspólne dla procesów projektowania architektonicznego Czynności wspólne: Strukturalizacja systemu Modelowanie sterowania Podział na moduły Podsystem a moduł podsystem system na własnych prawach moduł komponent systemu, który nie może być traktowany jako osobny system

Projektowanie oprogramowania cd. 12/34 Zakres modeli architektonicznych Opracowywane modele architektoniczne mogą obejmować: Statyczny model strukturalny Model dynamiczny procesu Model interfejsów Model związków

Projektowanie oprogramowania cd. 13/34 Czynniki mające wpływ na architekturę systemu Styl i struktura mogą zależeć od: Efektywność Zabezpieczenie Bezpieczeństwo Dostępność Zdatność do pielęgnacji

Projektowanie oprogramowania cd. 14/34 Typowe przykłady architektury Model repozytorium Model klient-serwer Model wielowarstwowy Modele sterowania: sterowanie scentralizowane sterowanie sterowane zdarzeniami

Projektowanie oprogramowania cd. 15/34 Strukturalizacja systemu Rysunek: Diagram blokowy systemu sterującego robotem

Projektowanie oprogramowania cd. 16/34 Model repozytorium Sposoby wymiany informacji między podsystemami Wszystkie współdzielone dane znajdują się w centralnej bazie danych repozytorium Każdy podsystem prowadzi własną bazę danych wymiana danych przez przesyłanie komunikatów.

Projektowanie oprogramowania cd. 17/34 Model repozytorium Cechy współdzielonego repozytorium: Efektywny sposób współdzielenia dużych ilości danych. Twórcy podsystemów muszą uzgodnić model danych repozytorium. Podsystemy tworzące dane nie muszą zajmować się przetwarzaniem danych. Ewolucja systemu może być trudna z uwagi na ustalony format danych.

Projektowanie oprogramowania cd. 18/34 Model repozytorium Cechy współdzielonego repozytorium: Czynności takie jak tworzenie kopii zapasowej, sterowanie zabezpieczeniami i dostępem oraz odtwarzanie po awarii są scentralizowane. Różne podsystemy mogą mieć odmienne wymagania stawiane zabezpieczeniom oraz strategii odtwarzania i kopiom zapasowym. Model współdzielenia jest widoczny przez schemat repozytorium. Może być trudno rozproszyć repozytorium na kilka maszyn.

Projektowanie oprogramowania cd. 19/34 Model repozytorium Rysunek: Architektura zintegrowanego zestawu narzędzi CASE

Projektowanie oprogramowania cd. 20/34 Model klient-serwer Główne komponenty: Zbiór samodzielnych serwerów oferujących usługi innym systemom. Zbiór klientów, korzystających z usług oferowanych przez serwery. Sieć, która daje klientom dostęp do tych usług.

Projektowanie oprogramowania cd. 21/34 Model klient-serwer Rysunek: Architektura systemu biblioteki filmów i zdjęć

Projektowanie oprogramowania cd. 22/34 Model maszyny abstrakcyjnej Rysunek: Model maszyny abstrakcyjnej systemu zarządzania wersjami

Projektowanie oprogramowania cd. 23/34 Modele sterowania Sterowanie scentralizowane Jeden podsystem całościowo odpowiedzialny za sterowanie, który uruchamia i zatrzymuje inne podsystemy. Sterowanie zdarzeniowe Informacja o zdarzeniu nie jest wbudowana w podsystem, ale każdy system może reagować na zdarzenia zachodzące na zewnątrz.

Projektowanie oprogramowania cd. 24/34 Sterowanie scentralizowane Klasy sterowania scentralizowanego: Model wywołanie-powrót model wywoływania podprogramów Model menedżera wykorzystywany w programach współbieżnych

Projektowanie oprogramowania cd. 25/34 Model wywołanie-powrót Rysunek: Model sterowania wywołanie-powrót

Projektowanie oprogramowania cd. 26/34 Model menedżera Rysunek: Scentralizowany model sterowania dla systemu czasu rzeczywistego

Projektowanie oprogramowania cd. 27/34 Systemy sterowane zdarzeniami Modele sterowania zdarzeniowego: Model rozgłaszania Modele z przerwaniami

Projektowanie oprogramowania cd. 28/34 Model rozgłaszania Rysunek: Model sterowania z wybiórczym rozgłaszaniem

Projektowanie oprogramowania cd. 29/34 Modele z przerwaniami Rysunek: Model sterowania z przerwaniami

Projektowanie oprogramowania cd. 30/34 Poprawność projektu Poprawny projekt jest: kompletny niesprzeczny spójny zgodny z regułami składniowymi notacji

Projektowanie oprogramowania cd. 31/34 Przykłady poprawności Cechy poprawności diagramu klas: acykliczność związków generalizacji-specjalizacji opcjonalność cyklicznych związków klas i związków agregacji brak klas nie powiązanych z innymi umieszczenie w specyfikacji metod informacji o danych wejściowych i wyjściowych

Projektowanie oprogramowania cd. 32/34 Przykłady poprawności Cechy poprawności diagramu interakcji: istnienie metod wywoływanych przez komunikaty w klasach, do których wysyłane są te komunikaty umieszczenie w specyfikacji metod, które te komunikaty wysyłają informacji o tym fakcie Cechy poprawności diagramu stanów: brak stanów, do których nie ma możliwości przejścia brak stanów, z których nie ma możliwości wyjścia jednoznaczność przejść ze stanów pod wpływem poszczególnych zdarzeń

Projektowanie oprogramowania cd. 33/34 Jakość projektu Kryteria decydujące o jakości projektu spójność stopień powiązania składowych przejrzystość

Projektowanie oprogramowania cd. 34/34 W wykładzie wykorzystano materiały Jaszkiewicz A.: Inżynieria oprogramowania, Helion, Gliwice 1997, Pressman R. S.: Praktyczne podejście do inżynierii oprogramowania, WNT, Warszawa 2004, Sommerville I.: Inżynieria oprogramowania, WNT, Warszawa 2003