Projektowanie logiki aplikacji

Podobne dokumenty
Analiza i projektowanie aplikacji Java

Modelowanie klas i obiektów. Jarosław Kuchta Projektowanie Aplikacji Internetowych

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

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie architektury systemu. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie interakcji. Jarosław Kuchta

Projektowanie architektury systemu internetowego

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

Diagramy interakcji. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

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

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych

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

Świat rzeczywisty i jego model

Projektowanie warstwy danych

Projektowanie struktury danych

Modelowanie danych, projektowanie systemu informatycznego

UML w Visual Studio. Michał Ciećwierz

1 Projektowanie systemu informatycznego

Modelowanie aktywności. Jarosław Kuchta Programowanie Współbieżne

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

Rysunek 1: Przykłady graficznej prezentacji klas.

Diagramy stanów i aktywności. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie IU -nawigacja

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Modelowanie danych. Model związków-encji

Diagramy klas. dr Jarosław Skaruz

Technologie obiektowe

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

1. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI

problem w określonym kontekście siły istotę jego rozwiązania

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty

Programowanie obiektowe

Podstawy projektowania systemów komputerowych

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

Diagramy klas. WYKŁAD Piotr Ciskowski

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie IU wejście/wyjście

Podstawy inżynierii oprogramowania

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

Programowanie obiektowe

Inżynieria oprogramowania. Część 5: UML Diagramy klas

Szablony dokumentów projektowych dla metodyk klasycznych

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

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

PRZEWODNIK PO PRZEDMIOCIE

Projektowanie interfejsu użytkownika. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Modelowanie systemów w architekturze J2EE z wykorzystaniem notacji UML

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

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

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Wykład I. Wprowadzenie do baz danych

Wykład 1 Inżynieria Oprogramowania

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

Podrozdziały te powinny zawierać informacje istotne z punktu widzenia przyjętego celu pracy

Język UML w modelowaniu systemów informatycznych

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

PODSTAWOWE ZASADY PROGRAMOWANIA OBIEKTOWEGO NA BAZIE PAKIETU ROOT

KATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH

Programowanie obiektowe

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

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

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Projektowanie interfejsu użytkownika (1) Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Paweł Kurzawa, Delfina Kongo

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

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

Inżynieria Oprogramowania Jarosław Kuchta. Projektowanie interfejsu użytkownika (zasady ogólne)

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Analiza i projektowanie obiektowe 2016/2017. Wykład 8: Przypisywanie obiektom odpowiedzialności (2)

Zagadnienia Semestr IV Inżynieria Oprogramowania WSZiB

Wprowadzenie do programowania aplikacji mobilnych

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

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

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

Techniki modelowania programów Kod przedmiotu

Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design

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

WPROWADZENIE DO UML-a

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Projektowanie obiektowe Wzorce projektowe. Gang of Four Strukturalne wzorce projektowe (Wzorce interfejsów)

Modelowanie obiektowe - Ćw. 3.

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

Projektowanie oprogramowania

Modelowanie i Programowanie Obiektowe

PODSTAWY BAZ DANYCH. 5. Modelowanie danych. 2009/ Notatki do wykładu "Podstawy baz danych"

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

MiASI. Modelowanie analityczne. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

Modelowanie obiektowe

Programowanie obiektowe

Technologia programowania

Kierunek: Informatyka rev rev jrn Niestacjonarny 1 / 5

Wzorce projektowe. dr inż. Marcin Pietroo

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Kierunek: Informatyka rev rev jrn Stacjonarny 1 / 6

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Podstawy programowania III WYKŁAD 4

Bazy danych i usługi sieciowe

Transkrypt:

Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie logiki aplikacji

Zagadnienia Rozproszone przetwarzanie obiektowe (DOC) Model klas w projektowaniu logiki aplikacji Klasy encyjne a klasy zarządzające Miejsce usług w logice aplikacji Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 2

Rozproszone przetwarzanie obiektowe (Distributed Object Computing) Stosuje się: gdy logika jest podzielona na kilka fizycznie odległych komputerów gdy wykorzystuje się model obiektowy przetwarzania gdy obiekty przesyła się przez sieć Trzeba zapewnić: spójność definicji klas po obu stronach kanału komunikacji jednoznaczną i spójną tożsamość obiektów Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 3

Model klas w analizie i w projektowaniu W analizie: Uzupełnienie i uszczegółowienie Modeluje świat rzeczywisty Potrzebny do zrozumienia dziedziny zastosowania Zwykle pojedynczy diagram klas Zawiera najważniejsze klasy, właściwości, relacje Nie zawiera klas kontenerowych Właściwości nie muszą mieć określonych typów Można stosować dziedziczenie wielokrotne Można stosować asocjacje wielostronne Nie określa się widoczności cech, wszystkie są publiczne Raczej nie definiuje się operacji lub tylko uogólnione operacje Raczej nie określa się parametrów operacji W projektowaniu: Modeluje klasy programowe Potrzebny do zaplanowania struktury logicznej kodu Jeden lub kilka diagramów klas Zawiera wszystkie ważne klasy, właściwości, relacje Zawiera klasy kontenerowe Właściwości muszą mieć określone typy Nie stosuje się dziedziczenia wielokrotnego, lecz interfejsy Raczej nie stosuje się asocjacji wielostronnych Określa się widoczność cech jako publiczne, prywatne, chronione Definiuje się operacje, zwłaszcza w projekcie warstwy usługowej Koniecznie określa się parametry operacji Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 4

Przykład uzupełnienie struktury klas Model analityczny Model projektowy specjalizacja Dokument generalizacja Dokument Dokument księgowy Dokument magazynowy Faktura VAT Wydanie Towaru Faktura VAT Faktura Korygująca Wydanie Towaru Zwrot Towaru Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 5

Klasy encyjne (model biznesowy) Model biznesowy klas opisuje klasy pochodzące z analizy dziedziny problemu. Klasy analityczne stają się klasami encyjnymi reprezentują pojęcia (byty, czyli encje) obiekty, na których operuje aplikacja. Klasy encyjne muszą być identyfikowane niezależnie od ich właściwości biznesowych (np. wewnętrzny identyfikator faktury niezależny od numeru faktury w ewidencji). Klasy encyjne muszą być serializowalne (identyczne instancje w różnych pniach aplikacji). Klasy encyjne mają właściwości odpowiadające właściwościom obiektów ze świata rzeczywistego, ale muszą też mieć właściwość identyfikującą (identyfikator liczbowy), która jest sztucznie dodana. Klasa encyjna może mieć operacje przetwarzające właściwości (np. Nazwisko_i_imię = Nazwisko + " " + Imię), ale każdy obiekt klasy encyjnej ma dostęp tylko do własnych właściwości (nie ma dostępu do właściwości innych obiektów). Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 6

Klasy zarządzające Klasa encyjna nie może mieć operacji wymagających dostępu do innych obiektów (np. jak nadać unikatowy numer faktury nie mając dostępu do numerów wszystkich faktur). Potrzebne są klasy osobne zarządzające (menedżery), z których każda zarządza obiektami pewnej klasy encyjnej mając dostęp do całego zbioru obiektów tej klasy i opcjonalnie do zbiorów obiektów innych klas. W klasie zarządzającej deklaruje się operacje stereotypu «new» i «delete». Należy też deklarować operacje zmiany, jeśli zmiana wykracza poza tylko jeden obiekt encyjny. Klasa zarządzająca może deklarować złożone operacje, które wymagają zmiany wielu obiektów i współdziałania wielu klas zarządzających ze sobą. Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 7

Miejsce usług w logice aplikacji W przypadku aplikacji wielowarstwowej część operacji z klas zarządzających deklaruje się jako usługi (zwłaszcza usługi webowe). Usługa webowa składa się z interfejsu, w którym zadeklarowane są operacje udostępniane przez klasę zarządzającą i klasy implementującej ten interfejs. Usługa webowa umożliwia tworzenie różnych aplikacji (o różnej logice) wykorzystujących wspólny, bazowy zbiór operacji na encjach. Klasa zarządzająca może wprost implementować operacje usługowe zadeklarowane w interfejsie. Innym rozwiązaniem jest zadeklarowanie osobnej klasy usługowej implementującej operacje usługowe przy wykorzystaniu kilku klas zarządzających. Encje, interfejsy i klasy usługowe wydziela się do osobnej, niższej warstwy, a w warstwie logiki aplikacji pozostawia się tylko klasy właściwe dla danej, konkretnej aplikacji. Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 8

Literatura Dennis A., Wixom B.H., Tegarden D.: Systems Analysis & Design. An Object-Oriented Approach with UML, John Wiley and Sons, USA, 2002 Bass L., Clements P., Kazman R.: Architektura oprogramowania w praktyce, WNT, Warszawa, 2006 Hofmeister C., Nord R., Soni D.: Tworzenie architektury oprogramowania, WNT, Warszawa, 2006 Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 9