Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design
|
|
- Błażej Kulesza
- 7 lat temu
- Przeglądów:
Transkrypt
1 Projektowanie Zorientowane na Dziedzinę ang. Domain Driven Design
2 2 Projektowanie Stan posiadania Przypadki użycia Model dziedziny Operacje systemowe Kontrakty dla operacji systemowych Problemy do rozwiązania Zakres odpowiedzialności poszczególnych klas? Współdziałanie (kooperacja) obiektów w celu realizacji warunków zapisanych w kontrakcie
3 3 Domain Driven Design (DDD) Domain Driven Design jest koncepcją / stylem analizy i projektowania systemów informatycznych, w której kluczową rolę odgrywa model dziedziny Autorem DDD jest Eric Evans (Domain-Driven Design: Tackling Complexity in the Heart of Software, 2003) W literaturze polskiej funkcjonują następujące tłumaczenia terminu DDD: Projektowanie Zorientowane na Dziedzinę Projektowanie Sterowane Modelem/Dziedziną Koncepcja DDD to zbiór podstawowych zasad, wzorców oraz sprawdzonych praktyk ułatwiających projektowanie systemu Systemy projektowane zgodnie z duchem DDD mają strukturę warstwową
4 Klasyczny model aplikacji Warstwa prezentacji Warstwa aplikacji Warstwa logiki biznesowej Warstwa Infrastruktury Warstwa prezentacji odpowiada za interpretację i wykonywanie poleceń użytkownika oraz prezentację danych Warstwa aplikacji kieruje wykonanie zadań do odpowiednich obiektów warstwy logiki biznesowej oraz koordynuje wykonywanie zadań (orkiestracja) Warstwy logiki biznesowej tutaj ma miejsce właściwa realizacja zadań, dla których system został stworzony Warstwa infrastruktury służy do zapisywania danych i stanu systemu 4
5 5 Podstawowe elementy składowe Encja (ang. Entity) Wartość (ang. Value Object) Serwis (ang. Service) Agregat (ang. Aggregate) Repozytorium (ang. Repository) Fabryka (ang. Factory)
6 Charakterystyka obiektu Tożsamość coś co powoduje, że obiekt jest odróżnialny od innych obiektów Stan zbiór wartości wszystkich cech (atrybutów) obiektu oraz powiązań między obiektami Zachowanie zbiór wszystkich usług, jakie obiekt potrafi wykonać na rzecz innych obiektów 6
7 Entity vs. Value object przykłady Entity obiekt klasy Osoba może zmienić wartość atrybutów (np. kolor włosów, waga, wiek), ale nadal jest postrzegany jako ta sama osoba o jego tożsamości nie decydują wartości atrybutów Value object obiekt klasy Punkt po zmianie wartości dowolnego atrybutu (np. współrzędna X, współrzędna Y) jest postrzegany jako inny obiekt o jego tożsamości decydują wartości atrybutów 7
8 8 Entity Object vs. Value Object Entity Tożsamość jest niezależna od stanu obiektu Obiekt może zmienić stan i nadal jest postrzegany jako ten sam obiekt Przykłady: Osoba, Rachunek (bankowy), Produkt (w sklepie) Value Object Tożsamość obiektu stanowi jego stan Obiekt po zmianie stanu jest postrzegany już jako inny obiekt Przykłady: Punkt (współrzędne X i Y), Adres, Pieniądz, Data
9 9 Value object Value object są niezmienne (ang. immutable) raz utworzony nie może być zmieniony Można je przekazywać jako argumenty metod bez obawy o skutki uboczne (nie mogą być zmienione) W odróżnieniu od starszych braci, czyli DTO (ang. Data Transfer Object) zawierają nie tylko atrybuty ale również metody (np. do walidacji)
10 10 Entity i Value Object przykłady Entity Wydarzenie Osoba Uczestnictwo Value Object Alarm Adres
11 Identyfikatory (1) Tożsamość obiektu najłatwiej stworzyć przy pomocy unikalnych identyfikatorów Jako identyfikator można wykorzystać dowolny atrybut o unikalnych wartościach, np. PESEL, nr rejestracyjny Obiekty typu Value nie muszą posiadać identyfikatorów, ponieważ ich tożsamość jest związana z stanem zmiana stanu to zmiana tożsamości, w efekcie oznacza to 11 nowy obiekt
12 Identyfikatory (2) Każdy obiekt typu Entity powinien posiadać identyfikator, niezmienny przez cały cykl życia obiektu Identyfikator obiektów typu Entity pozwala na ustalenie tożsamości obiektów o identycznych wartościach atrybutów (np. dwie osoby o identycznych danych) Identyfikator obiektów typu Entity pozwala na ochronę tożsamości obiekt po zmianie swojego stanu jest rozpoznawany jako ten sam obiekt 12
13 13 Agregat Agregat to podzbiór elementów modelu, który stanowi spójną całość w ramach której spełniane są warunki integralności danych W każdym agregacie istnieje dokładnie jeden element zwany korzeniem i pozostałe elementami zwane elementami wewnętrznymi korzeń agregatu agregat element wewnętrzny
14 14 Agregat hermetyzacja Korzeń agregatu jest dostępny dla świata zewnętrznego, tzn. obiekty spoza agregatu mogą się do niego bezpośrednio odwoływać Obiekty wewnętrzne nie są bezpośrednio dostępne dla świata zewnętrznego Obiekty wewnętrzne mogą się jednak odwoływać do innych korzeni agregatów Dostęp do obiektów wewnętrznych jest możliwy tylko poprzez korzeń agregatu Agregaty nie mogą współdzielić elementów wewnętrznych dany element (obiekt) może być częścią tylko jednego agregatu Każdy obiekt wewnętrzny musi być powiązany bezpośrednio lub pośrednio z korzeniem
15 15 Agregat - korzyści Agregat ułatwia zarządzanie cyklem życia obiektów agregaty są zapisywane, odtwarzane i usuwane jako całość, co sprzyja utrzymaniu integralności danych Agregat chroni swoje obiekty wewnętrzne żaden obiekt ze świata zewnętrznego nie może wykonać operacji na obiektach wewnętrznych agregatu inaczej niż za pośrednictwem korzenia, dzięki temu istnieje możliwość kontroli działań wykonywanych na obiektach wewnętrznych, co również sprzyja utrzymaniu integralności danych Agregat upraszcza model systemu system może być traktowany jako zbiór agregatów i związków pomiędzy nimi. Z reguły agregatów jest mniej niż klas, liczba związków pomiędzy nimi również
16 16 Identyfikacja agregatów Jeżeli obiekty klasy A mogą występować samodzielnie (tj. bez związku z innymi obiektami), to obiekty klasy A powinny być korzeniami agregatu Jeżeli obiekty klasy B posiadają powiązania tylko z obiektami klasy A, które to są korzeniami agregatu i ponadto obiekty klasy B nie występują samodzielnie (bez powiązania z jakimś obiektem klasy A), to obiekty klasy B powinny wchodzić w skład agregatu zbudowanego wokół obiektów klasy A Jeśli w pewnej grupie obiektów usunięcie jednego z nich oznacza, że pozostałe tracą rację bytu, wówczas grupa tych obiektów jest kandydatem na agregat (reguła kaskadowego usuwania) Kandydatem na agregat są klasy powiązane przy pomocy kompozycji
17 17 Agregat - przykład Klasy Wydarzenie i Osoba są jedynymi klasami, których obiekty mogą występować samodzielnie Obiekty klas Wydarzenie i Osoba są korzeniami agregatów korzeń Obiekty klasy Alarm mogą być powiązane tylko z obiektami klasy Wydarzenie, nie mogą też pojawić się samodzielnie obiekty klasy Alarm są elementami wewnętrznymi w agregacie Wydarzenie agregat Obiekty klasy Adres mogą być powiązane tylko z obiektami klasy Osoba, nie mogą też pojawić się samodzielnie obiekty klasy Adres są elementami wewnętrznymi w agregacie Osoba korzeń Obiekty klasy Uczestnictwo bez związków z obiektami klas Osoba i Wydarzenie nic nie znaczą, powinny być zarządzane przez jeden z wcześniej zidentyfikowanych agregatów obiekty klasy Uczestnictwo będą elementami wewnętrznymi w agregacie Wydarzenie
18 18 Dostęp do obiektów biznesowych (1) Jeśli klient chce wykonać pewną operację na jednym z obiektów biznesowych, to możliwe są następujące scenariusze: Jeśli obiekt biznesowy nie istnieje, klient tworzy taki obiekt i wykonuje na nim operację Jeśli obiekt biznesowy istnieje, klient uzyskuje dostęp do interesującego obiektu i wykonuje na nim operację Scenariusz 1 nie stwarza większych problemów w realizacji, pod warunkiem jednak że klient posiada kompletne dane potrzebne do utworzenia obiektu biznesowego Scenariusz 2 może stanowić problem, w sytuacji dużej liczby obiektów biznesowych Rozwiązanie dla scenariusza 2 polegające na przechowywaniu wszystkich obiektów biznesowych przez klienta zwiększa niestety liczbę powiązań pomiędzy warstwami i tym samym poziom zależności miedzy warstwami
19 19 Dostęp do obiektów biznesowych (2) W wielu systemach informatycznych wymaga się zapisywania stanu systemu w bazie danych po wykonaniu ciągu operacji systemowych i odtworzenia tegoż stanu w przypadku awarii lub w chwili uruchomienia systemu od nowa W wielu systemach informatycznych liczba obiektów biznesowych jest na tyle duża, że nie jest możliwe ich jednoczesne przetwarzanie w pamięci operacyjnej potrzebna jest baza danych, w której te obiekty są przechowywane i udostępnianie na żądanie Wszystkie powyższe problemy mogą być efektywnie rozwiązane poprzez wprowadzenie repozytoriów obiektów biznesowych
20 20 Repozytorium Wzorzec repozytorium umożliwia dostęp do puli obiektów biznesowych ukrywając przed klientem wszelkie mechanizmy dostępu do bazy danych Z punktu widzenia klienta repozytorium może być traktowane jako kolekcja obiektów biznesowych Repozytorium udostępnia swoim klientom operacje zapisu, odczytu, aktualizacji, usuwania oraz wyszukiwania obiektów biznesowych Koncepcja DDD zaleca utworzenie jednego repozytorium dla każdego agregatu
21 21 Repozytorium - przykład Repozytorium wydarzeń obsługuje agregat Wydarzenie. Repozytorium będzie zawierać takie metody jak: ZnajdzWydarzenie() ZapiszWydarzenie() UsunWydarzenie() warstwa logiki biznesowej warstwa infrastruktury Repozytorium osób obsługuje agregat Osoba. Repozytorium będzie zawierać takie metody jak: ZnajdzOsobe() ZapiszOsobe() UsunOsobe()
22 22 Serwis W myśl koncepcji DDD serwisy to specjalizowane klasy przeznaczone do wykonywania operacji biznesowych, których nie można przypisać do jednego obiektu biznesowego W szerszym znaczeniu serwisem jest również klasa odpowiedzialna za koordynacje działań związanych z wykonywaniem operacji systemowych w ramach jednego przypadku użycia Serwisy nie posiadają wewnętrznego stanu zwykle tworzone są na potrzeby konkretnego zadania i po jego wykonaniu są usuwane Serwis jest obiektem rozpoczynającym obsługę operacji systemowej Serwisy mogą występować w warstwie aplikacji (koordynacja działań, orkiestracja) lub też w warstwie logiki biznesowej (przekształcanie jednego agregatu w inny, np. wygenerowanie zestawienia, raportu, pliku pdf, lub też po to by nie przeciążać klasy biznesowej)
23 23 Serwis przykład Serwis Wydarzeń odpowiada za zarządzanie wykonywaniem operacji systemowych związanych wydarzeniami, np.: UtworzWydarzenie() DodajAlarm() DodajUczestnika() Serwis Osób odpowiada za zarządzanie wykonywaniem operacji systemowych związanych osobami, np. : UtworzOsobe() UsunOsobe() warstwa aplikacji warstwa logiki biznesowej warstwa infrastruktury
24 24 Operacja systemowa - DodajUczestnika() Operacja: DodajUczestnika(idWydarzenie, idosoba) Przypadki użycia: UC3 Dodaj uczestnika Warunki początkowe: Istnieje instancja w klasy Wydarzenie o identyfikatorze idwydarzenie Istnieje instancja o klasy Osoba o identyfikatorze idosoba Warunki końcowe: Utworzono instancje u klasy Uczestnictwo Atrybutowi u.status przypisano wartość Niepotwierdzone Utworzono powiązanie pomiędzy u i w Utworzono powiązanie pomiędzy u i o
25 Projektowanie interakcji wg DDD Operacja systemowa trafia do jednego z serwisów Do zadań serwisu należy pobranie z repozytorium obiektu biznesowego, którego dotyczy operacja oraz delegowanie wykonania operacji do tego obiektu Jeśli operacja nie może być przypisana do jednego obiektu biznesowego, wówczas serwis wykonuje wszystkie czynności wymagane przez operacje 25
26 26 Diagram sekwencji dla operacji systemowej DodajUczestnika() Serwis Wydarzeń znajduje obiekt Wydarzenie w Repozytorium Wydarzeń oraz obiekt Osoba w Repozytorium Osób Komunikat systemowy DodajUczestnika() jest odbierany przez obiekt Serwis Wydarzeń Wydarzenie tworzy obiekt klasy Uczestnik i dodaje go do swojej listy (DodajUczestnika) Serwis Wydarzeń deleguje wykonanie operacji dodania uczestnika do obiektu Wydarzenie przekazując mu obiekt Osoba
27 27 Model projektowy diagram klas (po aktualizacji) Nowe atrybuty Nowe związki Nowe metody
28 28 Literatura Eric Evans: Domain-Driven Design: Tackling Complexity in the Heart of Software Tim McCarthy:.Net Domain Driven Design with C#
Techniki projektowania wzorce projektowe
Techniki projektowania wzorce projektowe 2 Przykład: Kasa fiskalna Opis dziedziny problemu System jest przeznaczony do obsługi procesu sprzedaży. Podstawowa funkcjonalność systemu obejmuje takie czynności
Bardziej szczegółowoWarstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.
Warstwa integracji wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. 1. Ukrycie logiki dostępu do danych w osobnej warstwie 2. Oddzielenie mechanizmów trwałości od modelu obiektowego Pięciowarstwowy
Bardziej szczegółowoKomputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl
Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki
Bardziej szczegółowoINFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Modelowanie danych. Model związków-encji
Modelowanie danych. Model związków-encji Plan wykładu Wprowadzenie do modelowania i projektowania kartograficznych systemów informatycznych Model związków-encji encje atrybuty encji związki pomiędzy encjami
Bardziej szczegółowoPodstawy programowania III WYKŁAD 4
Podstawy programowania III WYKŁAD 4 Jan Kazimirski 1 Podstawy UML-a 2 UML UML Unified Modeling Language formalny język modelowania systemu informatycznego. Aktualna wersja 2.3 Stosuje paradygmat obiektowy.
Bardziej szczegółowoŚwiat rzeczywisty i jego model
2 Świat rzeczywisty i jego model Świat rzeczywisty (dziedzina problemu) Świat obiektów (model dziedziny) Dom Samochód Osoba Modelowanie 3 Byty i obiekty Byt - element świata rzeczywistego (dziedziny problemu),
Bardziej szczegółowoTemat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych
PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych
Bardziej szczegółowoWypożyczalnia VIDEO. Technologie obiektowe
Wypożyczalnia VIDEO Jest to program do obsługi wypożyczalni i wypożyczeń klientów. Głównym zadaniem programu jest zarządzanie wypożyczeniami i drukowanie potwierdzenia wypożyczenia oraz naliczenie punktów
Bardziej szczegółowoPojęcie bazy danych. Funkcje i możliwości.
Pojęcie bazy danych. Funkcje i możliwości. Pojęcie bazy danych Baza danych to: zbiór informacji zapisanych według ściśle określonych reguł, w strukturach odpowiadających założonemu modelowi danych, zbiór
Bardziej szczegółowoProjektowanie logiki aplikacji
Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie logiki aplikacji Zagadnienia Rozproszone przetwarzanie obiektowe (DOC) Model klas w projektowaniu logiki aplikacji Klasy encyjne a klasy
Bardziej szczegółowoProblemy niezawodnego przetwarzania w systemach zorientowanych na usługi
Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi Jerzy Brzeziński, Anna Kobusińska, Dariusz Wawrzyniak Instytut Informatyki Politechnika Poznańska Plan prezentacji 1 Architektura
Bardziej szczegółowoKATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH
KATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH Przygotował: mgr inż. Radosław Adamus Wprowadzenie: W procesie definiowania wymagań dla systemu tworzyliśmy Model Przypadków
Bardziej szczegółowoDiagramu 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 związków encji (ERD) 1 Projektowanie bazy danych za pomocą narzędzi CASE Materiał pochodzi ze strony : http://jjakiela.prz.edu.pl/labs.htm Diagramu Związków Encji - CELE Zrozumienie struktury
Bardziej szczegółowoProjektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD
Projektowanie systemów informatycznych Roman Simiński roman.siminski@us.edu.pl siminskionline.pl Modelowanie danych Diagramy ERD Modelowanie danych dlaczego? Od biznesowego gadania do magazynu na biznesowe
Bardziej szczegółowoDiagramy klas. WYKŁAD Piotr Ciskowski
Diagramy klas WYKŁAD Piotr Ciskowski przedstawienie statyki systemu graficzne przedstawienie statycznych, deklaratywnych elementów dziedziny przedmiotowej oraz związków między nimi obiekty byt, egzemplarz
Bardziej szczegółowoAnaliza i projektowanie obiektowe 2016/2017. Wykład 8: Przypisywanie obiektom odpowiedzialności (2)
Analiza i projektowanie obiektowe 2016/2017 Wykład 8: Przypisywanie obiektom odpowiedzialności (2) Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Wzorce
Bardziej szczegółowoWprowadzenie do systemów informacyjnych
Uwagi ogólne: Wprowadzenie do systemów informacyjnych Projektowanie obiektowe Obiektowość jest nową ideologią, która zmienia myślenie realizatorów SI z zorientowanego na maszynę na zorientowane na człowieka.
Bardziej szczegółowoDiagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym
Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym konceptualnym modelem danych jest tzw. model związków encji (ERM
Bardziej szczegółowoProjektowanie Systemów Informacyjnych
Projektowanie Systemów Informacyjnych Wykład II Encje, Związki, Diagramy związków encji, Opracowano na podstawie: Podstawowy Wykład z Systemów Baz Danych, J.D.Ullman, J.Widom Copyrights by Arkadiusz Rzucidło
Bardziej szczegółowoProjektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce rozszerzeń
Projektowanie obiektowe Wzorce projektowe Gang of Four Wzorce rozszerzeń 1 Roadmap Decorator Iterator Visitor 2 Wzorce rozszerzeń Mają na celu uczynić proces rozszerzania kodu bardziej czytelnym, prostym
Bardziej szczegółowoProjektowanie obiektowe Wzorce projektowe
Projektowanie obiektowe Wzorce projektowe Gang of Four Kreacyjne wzorce projektowe (wzorce konstrukcyjne) 1 Roadmap Memento Factory Method Abstract Factory Prototype Builder 2 Wzorce konstrukcyjne wzorce
Bardziej szczegółowoLK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika
LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika Prowadzący: Dr inż. Jacek Habel Instytut Technologii Maszyn i Automatyzacji Produkcji Zakład Projektowania Procesów
Bardziej szczegółowoWOJSKOWA AKADEMIA TECHNICZNA
WOJSKOWA AKADEMIA TECHNICZNA LABORATORIUM ANALIZA I MODELOWANIE SYSTEMÓW INFORMATYCZNYCH Stopień, imię i nazwisko prowadzącego Stopień, imię i nazwisko słuchacza Grupa szkoleniowa mgr inż. Łukasz Laszko
Bardziej szczegółowoINFRA. System Connector. Opis systemu
INFRA System Connector Opis systemu Spis treści Opis składników systemu... 3 Bezpieczeństwo systemu... 4 Bezpieczeństwo komunikacji... 4 Zabezpieczenie dostępu do serwisów... 4 Autoryzacja użytkowników...
Bardziej szczegółowoSystemy informatyczne. Modelowanie danych systemów informatycznych
Modelowanie danych systemów informatycznych Diagramy związków encji Entity-Relationship Diagrams Modelowanie danych diagramy związków encji ERD (ang. Entity-Relationship Diagrams) diagramy związków encji
Bardziej szczegółowoWykład 1 Inżynieria Oprogramowania
Wykład 1 Inżynieria Oprogramowania Wstęp do inżynierii oprogramowania. Cykle rozwoju oprogramowaniaiteracyjno-rozwojowy cykl oprogramowania Autor: Zofia Kruczkiewicz System Informacyjny =Techniczny SI
Bardziej szczegółowoRysunek 1: Przykłady graficznej prezentacji klas.
4 DIAGRAMY KLAS. 4 Diagramy klas. 4.1 Wprowadzenie. Diagram klas - w ujednoliconym języku modelowania jest to statyczny diagram strukturalny, przedstawiający strukturę systemu w modelach obiektowych przez
Bardziej szczegółowoProjektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych
Projektowanie architektury systemu rozproszonego Jarosław Kuchta Zagadnienia Typy architektury systemu Rozproszone przetwarzanie obiektowe Problemy globalizacji Problemy ochrony Projektowanie architektury
Bardziej szczegółowoBazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.
Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Bazy danych Wykład 3: Model związków encji. dr inż. Magdalena Krakowiak makrakowiak@wi.zut.edu.pl Co to jest model związków encji? Model związków
Bardziej szczegółowoWykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych
Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych dr inż. Adam Iwaniak Infrastruktura Danych Przestrzennych w Polsce i Europie Seminarium, AR Wrocław
Bardziej szczegółowoProjekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie
Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie informatycznej. Zadaniem systemu jest rejestracja i przechowywanie
Bardziej szczegółowoAutor: Joanna Karwowska
Autor: Joanna Karwowska W bazie danych przechowujemy tylko niektóre informacje o świecie rzeczywistym. Wybór właściwych wycinków rzeczywistości i dotyczących ich danych jest bardzo istotny od niego zależy
Bardziej szczegółowoProjektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce odpowiedzialności
Projektowanie obiektowe Wzorce projektowe Gang of Four Wzorce odpowiedzialności 1 Roadmap Singleton Observer Mediator Proxy Flyweight 2 Wzorce odpowiedzialności Udostępniają techniki centralizacji, delegowania
Bardziej szczegółowoTworzenie wersji demonstracyjnych enova365 na potrzeby prezentacji u Klienta
Tworzenie wersji demonstracyjnych enova365 na potrzeby prezentacji u Klienta str. 1 Spis treści 1. Instalacja wersji demonstracyjnej enova365 standard... 3 2. Zakładanie dodatkowej bazy demonstracyjnej...
Bardziej szczegółowoBazy danych 2. Wykład 1
Bazy danych 2 Wykład 1 Sprawy organizacyjne Materiały i listy zadań zamieszczane będą na stronie www.math.uni.opole.pl/~ajasi E-mail: standardowy ajasi@math.uni.opole.pl Sprawy organizacyjne Program wykładu
Bardziej szczegółowoZagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)
Zagadnienia (1/3) Rola modelu systemu w procesie analizy wymagań (inżynierii wymagań) Prezentacja różnego rodzaju informacji o systemie w zależności od rodzaju modelu. Budowanie pełnego obrazu systemu
Bardziej szczegółowoOmówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka
1 Omówienie wzorców wykorzystywanych w Prism 5.0 Dominika Różycka Czym jest wzorzec projektowy? 2 3 Wzorzec projektowy 1. Uniwersalne i sprawdzone w praktyce rozwiązanie często pojawiających się, powtarzalnych
Bardziej szczegółowoWprowadzenie do programowania aplikacji mobilnych
Wprowadzenie do programowania aplikacji mobilnych dr Przemysław Juszczuk dr Przemysław Juszczuk Trochę historii Idea wzorców projektowych wywodzi się jeszcze z wczesnych lat osiemdziesiątych ubiegłego
Bardziej szczegółowoPaweł Kurzawa, Delfina Kongo
Paweł Kurzawa, Delfina Kongo Pierwsze prace nad standaryzacją Obiektowych baz danych zaczęły się w roku 1991. Stworzona została grupa do prac nad standardem, została ona nazwana Object Database Management
Bardziej szczegółowoModelowanie przypadków użycia. Jarosław Kuchta Projektowanie Aplikacji Internetowych
Modelowanie przypadków użycia Jarosław Kuchta Podstawowe pojęcia Przypadek użycia jest formalnym środkiem dla przedstawienia funkcjonalności systemu informatycznego z punktu widzenia jego użytkowników.
Bardziej szczegółowoZagadnienia związane z jakością danych w kontekście obsługi klienta masowego
Zagadnienia związane z jakością danych w kontekście obsługi klienta masowego Michał Słoniewicz Departament Jakości Danych Warszawa, 11 października 2010 r. Kto korzysta z naszych produktów i usług? BANKI
Bardziej szczegółowoPODSTAWY BAZ DANYCH. 5. Modelowanie danych. 2009/ Notatki do wykładu "Podstawy baz danych"
PODSTAWY BAZ DANYCH 5. Modelowanie danych 1 Etapy tworzenia systemu informatycznego Etapy tworzenia systemu informatycznego - (według CASE*Method) (CASE Computer Aided Systems Engineering ) Analiza wymagań
Bardziej szczegółowoProjektowanie obiektowe oprogramowania Wykład 5 wzorce strukturalne Wiktor Zychla 2016
Projektowanie obiektowe oprogramowania Wykład 5 wzorce strukturalne Wiktor Zychla 2016 1 Wzorce strukturalne 1.1 Facade Motto: uproszczony interfejs dla podsystemu z wieloma interfejsami class SmtpFacade
Bardziej szczegółowoSzczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych
Szczególne problemy projektowania aplikacji Jarosław Kuchta Miejsce projektowania w cyklu wytwarzania aplikacji SWS Analiza systemowa Analiza statyczna Analiza funkcjonalna Analiza dynamiczna Analiza behawioralna
Bardziej szczegółowoJava Persistence API - zagadnienia zaawansowane
Program szkolenia: Java Persistence API - zagadnienia zaawansowane Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Java Persistence API - zagadnienia zaawansowane Java-EE-jpa-pro
Bardziej szczegółowoModelowanie danych, projektowanie systemu informatycznego
Modelowanie danych, projektowanie systemu informatycznego Modelowanie odwzorowanie rzeczywistych obiektów świata rzeczywistego w systemie informatycznym Modele - konceptualne reprezentacja obiektów w uniwersalnym
Bardziej szczegółowoproblem w określonym kontekście siły istotę jego rozwiązania
Wzorzec projektowy Christopher Alexander: Wzorzec to sprawdzona koncepcja, która opisuje problem powtarzający się wielokrotnie w określonym kontekście, działające na niego siły, oraz podaje istotę jego
Bardziej szczegółowoAnaliza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32
Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:
Bardziej szczegółowoGrupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)
Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia) WERSJA WSTĘPNA, BRAK PRZYKŁADOWYCH PYTAŃ DLA NIEKTÓRYCH PRZEDMIOTÓW Należy wybrać trzy dowolne
Bardziej szczegółowoWzorce projektowe warstwy danych
POLITECHNIKA GDAŃSKA WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI Katedra Architektury Systemów Komputerowych Jarosław Kuchta Instrukcja do laboratorium z przedmiotu Projektowanie Aplikacji Internetowych
Bardziej szczegółowoWprowadzenie. Dariusz Wawrzyniak 1
Dariusz Wawrzyniak Politechnika Poznańska Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5) 60-965 Poznań Dariusz.Wawrzyniak@cs.put.poznan.pl Dariusz.Wawrzyniak@put.edu.pl www.cs.put.poznan.pl/dwawrzyniak
Bardziej szczegółowoSpis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7
I Wprowadzenie (wersja 0906) Kurs OPC S7 Spis treści Dzień 1 I-3 O czym będziemy mówić? I-4 Typowe sytuacje I-5 Klasyczne podejście do komunikacji z urządzeniami automatyki I-6 Cechy podejścia dedykowanego
Bardziej szczegółowoZofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1
Charakterystyka oprogramowania obiektowego 1. Definicja systemu informatycznego 2. Model procesu wytwarzania oprogramowania - model cyklu życia oprogramowania 3. Wymagania 4. Problemy z podejściem nieobiektowym
Bardziej szczegółowoBaza danych sql. 1. Wprowadzenie
Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z edytora graficznego struktury bazy danych, który
Bardziej szczegółowoNowoczesne aplikacje mobilne i ich rola w podnoszeniu jakości danych
Nowoczesne aplikacje mobilne i ich rola w podnoszeniu jakości danych www.ascen.pl 1 Agenda O firmie Zarządzanie jakością danych Aplikacje mobilne i ich rola w zarządzaniu jakością danych 2 O firmie Data
Bardziej szczegółowoBazy danych w sterowaniu
Bazy danych w sterowaniu systemy transakcyjne sterowanie dostępem współbieżnym Stan spójny bazy danych zgodność z możliwym stanem reprezentowanego fragmentu świata rzeczywistego; spełnione są wszystkie
Bardziej szczegółowoDeduplikacja danych. Zarządzanie jakością danych podstawowych
Deduplikacja danych Zarządzanie jakością danych podstawowych normalizacja i standaryzacja adresów standaryzacja i walidacja identyfikatorów podstawowa standaryzacja nazw firm deduplikacja danych Deduplication
Bardziej szczegółowoModelowanie i analiza systemów informatycznych Spis treści
Modelowanie i analiza systemów informatycznych Spis treści Modelowanie i analiza systemów informatycznych...1 Ćwiczenia 1...2 Wiadomości podstawowe:...2 Ćwiczenia...8 Ćwiczenia 1 Wiadomości podstawowe:
Bardziej szczegółowoKurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)
Spis treści Dzień 1 I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501) I-3 O czym będziemy mówić? I-4 Typowe sytuacje I-5 Klasyczne podejście do komunikacji z urządzeniami
Bardziej szczegółowoWykład II Encja, atrybuty, klucze Związki encji. Opracowano na podstawie: Podstawowy Wykład z Systemów Baz Danych, J.D.Ullman, J.
Bazy Danych Wykład II Encja, atrybuty, klucze Związki encji Opracowano na podstawie: Podstawowy Wykład z Systemów Baz Danych, J.D.Ullman, J.Widom Copyrights by Arkadiusz Rzucidło 1 Encja Byt pojęciowy
Bardziej szczegółowoNajczęściej stosowanym systemem obiegu dokumentów elektronicznych jest poczta elektroniczna. Dokumenty przesyłamy sobie jako załączniki do listów.
1 2 Najczęściej stosowanym systemem obiegu dokumentów elektronicznych jest poczta elektroniczna. Dokumenty przesyłamy sobie jako załączniki do listów. Jednak taka praktyka powoduje problemy w sytuacji,
Bardziej szczegółowoModelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014
Modelowanie diagramów klas w języku UML Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Czym jest UML - Unified Modeling Language - Rodzina języków modelowania graficznego - Powstanie na przełomie lat 80
Bardziej szczegółowoJęzyk UML w modelowaniu systemów informatycznych
Język UML w modelowaniu systemów informatycznych dr hab. Bożena Woźna-Szcześniak Akademia im. Jan Długosza bwozna@gmail.com Wykład 3 Diagramy przypadków użycia Diagramy przypadków użycia (ang. use case)
Bardziej szczegółowoWzorce projektowe. dr inż. Marcin Pietroo
Wzorce projektowe dr inż. Marcin Pietroo Wzorce projektowe Wzorzec projektowy (ang. design pattern) w inżynierii oprogramowania, rozwiązanie często pojawiających się, powtarzalnych problemów projektowych.
Bardziej szczegółowoSprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów
Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów przeznaczonych do wykonania w komputerze (ang. software).
Bardziej szczegółowoWykład 2. Relacyjny model danych
Wykład 2 Relacyjny model danych Wymagania stawiane modelowi danych Unikanie nadmiarowości danych (redundancji) jedna informacja powinna być wpisana do bazy danych tylko jeden raz Problem powtarzających
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 13 Marcin Młotkowski 27 maja 2015 Plan wykładu Trwałość obiektów 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 2 / 29 Trwałość (persistence) Definicja Cecha
Bardziej szczegółowoBudowanie aplikacji biznesowych przy użyciu. Presentation Foundation i wzorca MVVM
Budowanie aplikacji biznesowych przy użyciu Windows Presentation Foundation i wzorca MVVM Raffaele Garofalo Przekład: Jakub Niedźwiedź APN Promise Warszawa 2011 Spis treści Wstęp................................................................
Bardziej szczegółowoProgram szkolenia: Wprowadzenie do Domain Driven Design dla biznesu (część 0)
Program szkolenia: Wprowadzenie do Domain Driven Design dla biznesu (część 0) Informacje: Nazwa: Wprowadzenie do Domain Driven Design dla biznesu (część 0) Kod: Kategoria: Grupa docelowa: Czas trwania:
Bardziej szczegółowoTECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek
TECHNOLOGIE OBIEKTOWE WYKŁAD 2 Anna Mroczek 2 Diagram czynności Czym jest diagram czynności? 3 Diagram czynności (tak jak to definiuje język UML), stanowi graficzną reprezentację przepływu kontroli. 4
Bardziej szczegółowoSystemy GIS Systemy baz danych
Systemy GIS Systemy baz danych Wykład nr 5 System baz danych Skomputeryzowany system przechowywania danych/informacji zorganizowanych w pliki Użytkownik ma do dyspozycji narzędzia do wykonywania różnych
Bardziej szczegółowoDiagram wdrożenia. Rys. 5.1 Diagram wdrożenia.
Diagram wdrożenia Zaprojektowana przez nas aplikacja bazuje na architekturze client-server. W tej architekturze w komunikacji aplikacji klienckiej z bazą danych pośredniczy serwer aplikacji, który udostępnia
Bardziej szczegółowoDiagramy związków encji. Laboratorium. Akademia Morska w Gdyni
Akademia Morska w Gdyni Gdynia 2004 1. Podstawowe definicje Baza danych to uporządkowany zbiór danych umożliwiający łatwe przeszukiwanie i aktualizację. System zarządzania bazą danych (DBMS) to oprogramowanie
Bardziej szczegółowoInformacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4
Utrwalanie danych zastosowanie obiektowego modelu danych warstwy biznesowej do generowania schematu relacyjnej bazy danych Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4 1. Relacyjne
Bardziej szczegółowoProjektowanie baz danych za pomocą narzędzi CASE
Projektowanie baz danych za pomocą narzędzi CASE Metody tworzenia systemów informatycznych w tym, także rozbudowanych baz danych są komputerowo wspomagane przez narzędzia CASE (ang. Computer Aided Software
Bardziej szczegółowoWzorce projektowe. dr inż. Marcin Pietroo
Wzorce projektowe dr inż. Marcin Pietroo Adapter - strukturalny wzorzec projektowy, którego celem jest umożliwienie współpracy dwóm klasom o niekompatybilnych interfejsach - adapter przekształca interfejs
Bardziej szczegółowoZagadnienia projektowania aplikacji J2EE
211 Zagadnienia projektowania aplikacji J2EE Maciej Zakrzewicz Maciej.Zakrzewicz@cs.put.poznan.pl http://www.cs.put.poznan.pl/mzakrzewicz/ Plan rozdziału 212 Wstęp Techniki projektowe: Wprowadzenie modułu
Bardziej szczegółowoSzukanie wspólnej wartości (korzyści) w klastrze
Szukanie wspólnej wartości (korzyści) w klastrze Struktura klastrowa M. Porter - klastry to geograficzne koncentracje wzajemnie powiązanych przedsiębiorstw, wyspecjalizowanych dostawców (w tym dostawców
Bardziej szczegółowodr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1
dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 Cel wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działanie systemu operacyjnego
Bardziej szczegółowoProjektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34
Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34 Projektowanie oprogramowania cd. 2/34 Modelowanie CRC Modelowanie CRC (class-responsibility-collaborator) Metoda identyfikowania poszczególnych
Bardziej szczegółowoAnaliza i projektowanie obiektowe 2017/2018. Wykład 3: Model wiedzy dziedzinowej
Analiza i projektowanie obiektowe 2017/2018 Wykład 3: Model wiedzy dziedzinowej Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Model wiedzy dziedzinowej
Bardziej szczegółowoPrzykładowa implementacja
Wzorce projektowe, cz. 10 Facade Fasada służy do ujednolicenia dostępu do złożonego systemu poprzez udostępnienie uproszczonego i uporządkowanego interfejsu programistycznego. Fasada zwykle implementowana
Bardziej szczegółowo030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła
030 PROJEKTOWANIE BAZ DANYCH Prof. dr hab. Marek Wisła Elementy procesu projektowania bazy danych Badanie zależności funkcyjnych Normalizacja Projektowanie bazy danych Model ER, diagramy ERD Encje, atrybuty,
Bardziej szczegółowoSystemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.
Systemy rozproszone Wg Wikipedii: System rozproszony to zbiór niezależnych urządzeń (komputerów) połączonych w jedną, spójną logicznie całość. Połączenie najczęściej realizowane jest przez sieć komputerową..
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Laboratorium 11 - przegląd wybranych wzorców mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 24 maja 2017 1 / 38 mgr inż. Krzysztof Szwarc Programowanie obiektowe Wzorce
Bardziej szczegółowoWin Admin Replikator Instrukcja Obsługi
Win Admin Replikator Instrukcja Obsługi Monitoring Kopie danych (backup) E-mail Harmonogram lokalne i zewnętrzne repozytorium Logi Pamięć Procesor HDD Administracja sprzętem i oprogramowaniem (automatyzacja
Bardziej szczegółowoProjektowanie bazy danych przykład
Projektowanie bazy danych przykład Pierwszą fazą tworzenia projektu bazy danych jest postawienie definicji celu, założeń wstępnych i określenie podstawowych funkcji aplikacji. Każda baza danych jest projektowana
Bardziej szczegółowoOracle Designer. Oracle Designer jest jednym z głównych komponentów pakietu Oracle Developer Suite. Oracle Designer wspiera :
Oracle Designer Oracle Designer jest jednym z głównych komponentów pakietu Oracle Developer Suite. Oracle Designer wspiera : - modelowanie procesów biznesowych - analizę systemu informatycznego - projektowanie
Bardziej szczegółowoPodstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
Bardziej szczegółowoProjektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017
Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017 1 Wzorce podstawowe 1.1 Interface vs Abstract class class InterfaceAbstractClass
Bardziej szczegółowoWPROWADZENIE DO BAZ DANYCH
WPROWADZENIE DO BAZ DANYCH Pojęcie danych i baz danych Dane to wszystkie informacje jakie przechowujemy, aby w każdej chwili mieć do nich dostęp. Baza danych (data base) to uporządkowany zbiór danych z
Bardziej szczegółowoWidoki zagnieżdżone, layout. 1. Wprowadzenie Repozytoria danych
Widoki zagnieżdżone, layout 1. Wprowadzenie Repozytoria danych Identyczne operacje na danych często się powtarzają np. pobierz książkę. Jeśli zapytanie realizowane jest za każdym razem w metodzie kontrolera
Bardziej szczegółowoFederacja Bibliotek Cyfrowych w sieci PIONIER
Federacja Bibliotek Cyfrowych w sieci PIONIER Dostęp p do otwartych bibliotek cyfrowych i repozytoriów Agnieszka Lewandowska, Cezary Mazurek, Marcin Werla {jagna,mazurek,mwerla}@man.poznan.pl Historia
Bardziej szczegółowoRozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC.
1 Moduł OPC Moduł OPC pozwala na komunikację z serwerami OPC pracującymi w oparciu o model DA (Data Access). Dzięki niemu można odczytać stan obiektów OPC (zmiennych zdefiniowanych w programie PLC), a
Bardziej szczegółowoModelowanie i Programowanie Obiektowe
Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do
Bardziej szczegółowoBazy danych i usługi sieciowe
Bazy danych i usługi sieciowe Modelowanie związków encji Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) BDiUS w. II Jesień 2014 1 / 28 Modelowanie Modelowanie polega na odwzorowaniu
Bardziej szczegółowoWprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera
Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Definicja systemu operacyjnego (1) Miejsce,
Bardziej szczegółowoAdobe Sign. Podręcznik przechowywania danych Adobe Systems Incorporated. All rights reserved. Ostatnia aktualizacja: 13 marca 2017 r.
Podręcznik przechowywania danych 2017 Adobe Systems Incorporated. All rights reserved. Ostatnia aktualizacja: 13 marca 2017 r. Spis treści Przechowywanie danych omówienie... 3 Konfiguracja przechowywania
Bardziej szczegółowoReceptury - niezbędnik projektanta i architekta
Program szkolenia: Receptury - niezbędnik projektanta i architekta Informacje ogólne Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Receptury - niezbędnik projektanta i architekta Craft-Receptury
Bardziej szczegółowo