Wprowadzenie do systemów informacyjnych

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

Modelowanie i Programowanie Obiektowe

Technologie obiektowe

Podstawy Programowania Obiektowego

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Język programowania. Andrzej Bobyk

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

Programowanie obiektowe - 1.

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Technologie i usługi internetowe cz. 2

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

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

Programowanie obiektowe

Programowanie obiektowe

Paweł Kurzawa, Delfina Kongo

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:

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

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

Programowanie obiektowe

Fazy analizy (modelowania) oraz projektowania FAZA ANALIZY:

Programowanie obiektowe

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

Enkapsulacja, dziedziczenie, polimorfizm

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

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Wykład 1 Inżynieria Oprogramowania


Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce rozszerzeń

Dokumentacja do API Javy.

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

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

Oracle PL/SQL. Paweł Rajba.

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

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

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

TEMAT : KLASY DZIEDZICZENIE

Podstawy projektowania systemów komputerowych

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

UML w Visual Studio. Michał Ciećwierz

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

Podstawy Programowania 2

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE.

Diagramy klas. dr Jarosław Skaruz

Podstawy programowania III WYKŁAD 4

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2015

Programowanie obiektowe

Wprowadzenie do programowania aplikacji mobilnych

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Projektowanie logiki aplikacji

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY

Modelowanie obiektowe

Charakterystyka oprogramowania obiektowego

Programowanie Obiektowe i C++

Wzorce projektowe i refaktoryzacja

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Projektowanie obiektowe Wzorce projektowe

Faza analizy (modelowania) Faza projektowania

1. Mapowanie diagramu klas na model relacyjny.

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

Modelowanie diagramów klas w języku UML. Łukasz Gorzel @stud.umk.pl 7 marca 2014

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

Podstawy Języka Java

Wypożyczalnia VIDEO. Technologie obiektowe

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

Dziedziczenie. Tomasz Borzyszkowski

Ustalanie dostępu do plików - Windows XP Home/Professional

Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017

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

Wzorce projektowe. dr inż. Marcin Pietroo

Podstawy Programowania Programowanie Obiektowe

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Wzorce projektowe. dr inż. Marcin Pietroo

Aplikacje w środowisku VBA. Visual Basic for Aplications

Zagadnienia Semestr IV Inżynieria Oprogramowania WSZiB

PHP 5 język obiektowy

Wykład 9: Polimorfizm i klasy wirtualne

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

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

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

Analiza i projektowanie aplikacji Java

Programowanie obiektowe

MODELOWANIE PRZEPŁYWU DANYCH

Relacyjne, a obiektowe bazy danych. Bazy rozproszone

Wprowadzenie dosystemów informacyjnych

.NET Klasy, obiekty. ciąg dalszy

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

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Kurs WWW. Paweł Rajba.

Klasy abstrakcyjne, interfejsy i polimorfizm

Rysunek 1: Przykłady graficznej prezentacji klas.

Transkrypt:

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. Obiektowość jest konsekwencją kryzysu oprogramowania: kosztów związanych z oprogramowaniem, jego zawodnością i trudną do opanowania złożonością. Obiektowość przenika wszelkie fazy projektowania, narzędzia i interfejsy. Obiektowość dopracowała się własnej kolekcji pojęć i narzędzi. Obiektowość jest wciąż jeszcze na początku swojej drogi i musi walczyć z konserwą i spuścizną poprzednich ideologii. UEK w Krakowie Ryszard Tadeusiewicz 1 Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram przepływu kosztów w metodzie ABC Widok kierunku konsumpcji kosztów Potem, stosownie do potrzeb, tworzy się kolejne modele Zasoby Ile dana rzecz kosztuje? Widok kierunku przepływu procesów Przypisanie kosztów zasobów Nośniki kosztów zasobów Procesy Działania Mierniki efektywności Przypisanie kosztów działań Nośniki kosztów działań Obiekty kosztowe Dlaczego dana rzecz kosztuje? Podejmowanie lepszych decyzji System informacyjny składa się z wielu elementów o zróżnicowanych zadaniach Na szczęście moduły, z jakich składa system w ujęciu obiektowym mają powtarzalną strukturę Dane Aplikacje (klasy) Graficzny interfejs użytkownika 1

Orientację w tej złożonej materii ułatwia fakt, że większość systemów informacyjnych ma obecnie strukturę warstwową W dodatku każdy nowoczesny system zawiera zarówno składniki wewnętrzne (zintegrowane z jądrem systemu) oraz składniki zewnętrzne (satelitarne) Dzięki temu współczesne systemy informacyjne odznaczają się dużą elastycznością, co oznacza, że można do nich w każdej chwili dołączać nowe komponenty. Jednak przyłączania każdego nowego urządzenia do systemu wymaga wykonania szeregu zabiegów w jego różnych warstwach, co jest kłopotliwe, chociaż na ogół odbywa się automatycznie. W ten sposób zawsze wiadomo co jest czym, chociaż w pełni skonfigurowany system informacyjny zawiera bardzo wiele składników o różnym przeznaczeniu Konkrety przykład systemu budowanego obiektowo Źródła danych i związane z nimi zasoby 2

3

Ogólna ideologia obiektowa jest przez różnych autorów różnie realizowana praktycznie (także w sensie reprezentacji graficznej) Podstawowe pojęcia metodologii obiektowej: Obiekt (ang.: Object) jest podstawowym pojęciem w podejściu obiektowym. Obiekt reprezentuję sobą konkretny pojedynczy byt. Obiekt jest charakteryzowany poprzez: identyfikator (nazwę), stan (wartości atrybutów obiektu) oraz zachowanie (operacje obiektu). Zachowanie może zmieniać stan obiektu, od którego pochodzi i/lub stany innych obiektów. Klasa (ang.: Class) reprezentuje zbiór obiektów, które dzielą strukturę i wspólne zachowanie. W projektowaniu obiektowym kluczowym pojęciem jest klasa Takie zamknięcie danych w pancerzu skojarzonych z nimi metod nazywa się enkapsulacją Cechą charakterystyczną koncepcji klasy jest ukrycie danych przed obiektami zewnętrznymi. Obiekty zewnętrzne mają dostęp wyłącznie do funkcji (nazywanych też metodami) za pomocą których mogą zlecać wykonanie określonych operacji na danych 4

Przykład obiektu Dzięki temu można zmienić tradycyjny układ systemu, w którym wiele programów korzysta z wielu danych Sprawdź stan Nalicz procent Wpłać Wypłać Numer: 123-4321 Stan konta: 34567 PLN Właściciel: Jan Kowalski Upoważniony:... Podpis:... Porównaj podpis Zlikwiduj konto W takim systemie każdy z obiektów może być programowany przez oddzielnego programistę i nie ma potrzeby uzgadniania w zespole projektowym wewnętrznych rozwiązań poszczególnych obiektów Obiekt KONTO Upoważnij Podaj osoby upoważnione Na nowy układ, w którym programy i dane są zblokowane razem Sposoby dzielenia danych pomiędzy programy w klasycznych (nie obiektowych) metodach projektowania (1) Sposoby dzielenia danych pomiędzy programy w klasycznych (nie obiektowych) metodach projektowania (2) Kilka podprogramów używa tych samych danych Dane lokalne w podprogramach Sposoby dzielenia danych pomiędzy programy w klasycznych (nie obiektowych) metodach projektowania (3) Sposoby dzielenia danych pomiędzy programy w klasycznych (nie obiektowych) metodach projektowania (4) Podprogram mający własne dane korzysta jednak z danych współdzielonych w pliku Podprogramy mające własne lokalne dane korzystają ze wspólnej bazy danych 5

Przy metodzie obiektowej cały system można budować zestawiając powtarzalne obiekty i klasy w stosowych konfiguracjach na poszczególnych poziomach hierarchii systemu. Klasa a obiekt Operacje i atrybuty są definiowane jednorazowo (w klasie). O obiektach, które należą do danej klasy, mówi się, że są instancjami tej klasy. Instancje te zawierają określone własne (czasem nawet określane jako prywatne ) wartości atrybutów klasy. Współdzielą one natomiast operacje klasy. Zachowanie tych instancji jest więc jednolite. Klasa i jej instancje Enkapsulacja Enkapsulacja jest techniką, w której dane są przechowywane w obiektach razem z operacjami, jakie można na nich wykonać. W dodatku dane są zazwyczaj chronione wewnątrz kapsuły utworzonej z operacji, co oznacza, że dowolny obiekt zewnętrzny może wywołać działanie określonej operacji, natomiast nie może bezpośrednio zmienić (ani nawet odczytać) żadnej wewnętrznej danej. Jedynym sposobem dotarcia do danych ukrytych wewnątrz obiektu jest użycie operacji należącej do powłoki kapsuły, która na żądanie wykona stosowną operację na danych. Eliminuje to ryzyko niepoprawnego użycia danych obiektu, ponieważ operują na nich zawsze wyłącznie autoryzowane własne operacje tegoż obiektu. Przykład obiektu Na podstawie abstrakcyjnej definicji klasy można wygenerować konkretne obiekty 6

Mając dobrą definicję klasy można wygenerować z niej dowolnie dużo obiektów W tradycyjnym podejściu głównym aktorem działającym w systemie jest program zarządzający, który aktywizuje poszczególne programy i dane W podejściu obiektowym wszystkie obiekty mogą być aktywne równocześnie, a każdy z nich wykonuje swoją część zadania Obiekty Obiekty są od siebie izolowane, ale porozumiewają się poprzez komunikaty Komunikaty wiążą kolekcję klas i obiektów w jeden system Komunikat może zlecać wykonanie jakiejś czynności na danych zawartych wewnątrz obiektu. Komunikat odbiera wtedy jedna z metod powłoki i realizuje wymaganą czynność Za pomocą komunikatu można nakazać sprawdzenie wartości jakiejś danej. System metod i komunikatów używanych w podejściu obiektowym pozwala uniknąć wielokrotnego oprogramowywania tych samych czynności Wynik sprawdzenia jest także odsyłany w formie komunikatu. 7

Komunikaty mogą być prawidłowe, lub nie! Czynność nakazana komunikatem może być wykonalna lub nie Wpłać Wypłać Wypłać 1000 PLN Sprawdź stan Porównaj podpis Numer: 123-4321 Stan konta: 34567 PLN Właściciel: Jan Kowalski Upoważniony:... OK, wypłaciłem Nalicz procent Podpis: Zlikwiduj konto Upoważnij Podaj osoby upoważnione Graj Cccco proszę...? Przykładowa współpraca między obiektami Podejście obiektowe musi być stosowane konsekwentnie Zbudowane w sposób tradycyjny elementy systemu nie będą dobrze współpracować ze składnikami zbudowanymi w technice obiektowej Możliwa jest budowa oprogramowania pośredniczącego pomiędzy elementami obiektowymi i tradycyjnymi Poprawna droga polega na stosowaniu podejścia obiektowego we wszystkich składnikach projektowanego systemu Nie jest to jednak rozwiązanie wygodne ani eleganckie 8

Z jednej klasy można też wygenerować dalsze klasy Przykład przejścia od obiektu ogólnego do obiektów szczegółowych klasa ogólna: komórka Klasy potomne dziedziczą część właściwości klasy macierzystej Klasy potomne przejmują atrybuty zdefiniowane w klasie macierzystej W ten sposób powstaje hierarchia klas i podklas, bardzo ułatwiająca operowanie złożonymi obiektami Osoba Imię: String Nazwisko: String Adres: String Pracownik Właściciel Staż_pracy: Integer Udział_w_zysku: Integer Ten mechanizm nosi nazwę: dziedziczenie W każdej chwili można także dodać nową podklasę Atrybuty dotyczące obiektów wszystkich podklas wygodnie jest umieszczać w definicji klasy nadrzędnej Tak tego robić nie należy! 9

Niekiedy klasa może powstać jako potomek kilku klas i z każdej klasy macierzystej może dziedziczyć pewne elementy Przykład: Brygadzista jako klasa dziedzicząca po określonej podklasie klasy Robotnik oraz po klasie Nadzorca Czasem może to powodować problemy związane z niejednoznacznością Taki sam komunikat kierowany do różnych obiektów może wywołać różne działania To się nazywa polimorfizm Polimorfizm Polimorfizm jest techniką, w której ukrywa się szczegóły implementacji we wspólnym interfejsie. Polimorfizm upraszcza komunikację pomiędzy obiektami. Analiza i projektowanie systemów informacyjnych Projektowanie obiektowe UEK w Krakowie Ryszard Tadeusiewicz 60 10