Modelowanie i Programowanie Obiektowe

Podobne dokumenty
Podstawy Programowania Obiektowego

Programowanie obiektowe - 1.

Programowanie obiektowe W1 Wprowadzenie. Dr hab. inż. Lucyna Leniowska, prof. UR Zakład Mechatroniki, Automatyki i Optoelektroniki

Programowanie obiektowe

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

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

Wykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów.

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

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

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

Język programowania. Andrzej Bobyk

Technologie i usługi internetowe cz. 2

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

Technologie obiektowe

Programowanie i projektowanie obiektowe

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

hierarchie klas i wielodziedziczenie

Wprowadzenie do systemów informacyjnych

Programowanie i projektowanie obiektowe

NAJLEPSZE STRATEGIE SKUTECZNYCH PROGRAMISTÓW. TECHNIKI PRACY Z KODEM KOD: NSKOD

Podstawy Języka Java

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

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

Programowanie obiektowe Wykład 1. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20

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

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

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

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

Materiały do zajęć VII

Faza analizy (modelowania) Faza projektowania

Charakterystyka oprogramowania obiektowego

Paweł Kurzawa, Delfina Kongo

Świat rzeczywisty i jego model

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Wprowadzenie do programowania aplikacji mobilnych

Historia modeli programowania

Podejście obiektowe - podstawowe pojęcia

Definiowanie własnych klas

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

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy

Wykład 9: Polimorfizm i klasy wirtualne

Programowanie MorphX Ax

Wzorce projektowe. dr inż. Marcin Pietroo

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


Rok akademicki: 2012/2013 Kod: ZIE s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

K_W04 K_W04 K_W04. Opis

Programowanie Obiektowe

Podstawy programowania. Wykład PASCAL. Wstęp do programowania obiektowego. dr Artur Bartoszewski - Podstawy programowania, sem.

Wykład 1 Inżynieria Oprogramowania

Programowanie obiektowe

Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania.

MODELOWANIE SYSTEMU INFORMATYCZNEGO WSPOMAGAJĄCEGO DZIAŁALNOŚĆ USŁUGOWĄ W ŚRODOWISKU OBIEKTOWO ZORIENTOWANYM.

Języki i paradygmaty programowania. I. Wprowadzenie

Programowanie w Javie nazwa przedmiotu SYLABUS A. Informacje ogólne

Style programowania - krótki przeglad

Programowanie obiektowe

Faza Określania Wymagań

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

Wzorce projektowe. dr inż. Marcin Pietroo

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

GUI - projektowanie interfejsów cz. II

Programowanie Obiektowe i C++

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

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

Programowanie obiektowe

Procesowa specyfikacja systemów IT

Programowanie obiektowe. Grzegorz Jabłoński Katedra Mikroelektroniki i Technik Informatycznych (K-25) Budynek B18

MODELOWANIE OBIEKTOWE

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

Programowanie obiektowe. Wprowadzenie

Wykład 7. Projektowanie kodu oprogramowania

UML w Visual Studio. Michał Ciećwierz

Programowanie współbieżne i rozproszone

Michał Adamczyk. Język UML

Projekt wykonania zadania informatycznego specyfikacja zadania

Fazy analizy (modelowania) oraz projektowania FAZA ANALIZY:

Każdy z nich posiada swoje parametry. W przypadku silnika może to być moc lub pojemność, w przypadku skrzyni biegów można mówić o skrzyni

Programowanie I. Wprowadzenie. Proces programowania

Podstawy Programowania Programowanie Obiektowe

Modelowanie danych, projektowanie systemu informatycznego

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

Podstawy programowania. Wprowadzenie

Zasady organizacji projektów informatycznych

Podstawy modelowania programów Kod przedmiotu

Programowanie obiektowe

Wykład 0 Informacje Podstawowe

Virtual Grid Resource Management System with Virtualization Technology

Paradygmaty programowania

Metodyki i techniki programowania

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Spis treści. Wprowadzenie 15

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

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

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Metodyki i techniki programowania

Transkrypt:

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 rozwiązywania problemów. Metodyka abstrahuje od merytorycznego kontekstu danego obszaru, a skupia się na metodach realizacji zadań. W odróżnieniu od metodologii, która się skupia na odpowiedzi na pytanie: Co należy robić? metodyka koncentruje się na poszukiwaniu odpowiedzi na pytanie: Jak to należy robić? Program to zbiór elementów zwanych obiektami Obiekty łączą stan (dane) i zachowanie (procedury, metody) Obiekty komunikują się ze sobą w celu wykonania określonych przez programistę zadań

Programowanie obiektowe, a rzeczywistość Arystoteles analizując otaczającą go rzeczywistość wprowadził pojęcie formy i materii Odrzucenie idei dualizmu platońskiego (materia i idea) Forma nadaje kształt materii, a nie jest bytem niezależnym Forma = Klasa Materia = Instancja = Obiekt Jest to najbardziej naturalny sposób rozumienia rzeczywistości - podstawową cechą mózgu ludzkiego jest klasyfikacja

Architektura programów komputerowych

Motywacje paradygmatu obiektowego Bardzo duża trudność implementacji złożonych systemów informatycznych Niska jakość kodu (niewydajny, niebezpieczny, niestabilny) Niezrozumiały kod (ang. spaghetti code) Ogromne kosztu utrzymania systemów informatycznych Wielokrotna implementacja tej samej funkcjonalności Krótki czas życia Słabość języków programowania Mały zbiór prostych predefiniowanych typów Rozwój aplikacji poprzez budowę i wykorzystanie typów

Motywacje paradygmatu obiektowego Programowanie obiektowe zbliża programy do naszego sposobu postrzegania rzeczywistości Zmniejsza lukę reprezentacji Łatwiej zapanować nad kodem Łatwiej zrozumieć co ktoś inny miał na myśli... Łatwiejsza współpraca z innymi Łatwiejsze wyobrażenie problemu i jego reprezentacji

Motywacje paradygmatu obiektowego

Paradygmat proceduralny vs. obiektowy Proceduralny Świat modelowany jako algorytm Problemy = proces dekompozycji funkcjonalnej Dane mają znaczenie drugorzędne Program = zbiór procedur implemenujących algorytm Modułami architektury programów są procedury Hierarchia funkcji Model przepływu danych Obiektowy Świat modelowany jako zbiór obiektów Problem = hierarchia specyfikacji klas obiektów (abstrakcyjnych typów danych) Znaczenie algorytmów jest drugorzędne Program = zbiór klas implementujących operacje abstrakcyjnych typów danych Modułami architektury są obiekty Zbiór powiązanych, kooperujących obiektów Model przepływu danych

Co daje paradygmat obiektowy? W konstrukcji złożonych systemów pozwala tworzyć aplikacje o wyższej jakości: Niski koszt utrzymania Łatwa modyfikacja systemu Re-używalność Czytelniejszy kod

Dekompozycja

Utrzymanie kodu

Utrzymanie kodu

Klasyczne języki programowania

Klasyczne języki programowania

Historia podejścia obiektowego Simula 67, (Ole-Johana Dahla i Kristena Nygaarda z Norsk Regnesentral w Oslo) Symulacja statków każdy statek inne atrybuty Pogrupowanie statków na klasy obiektów definiujących dane i zachowanie pierwotna koncepcja programowania obiektowego (pojęcie klasy i jej egzemplarza Wyspecjalizowany język do symulacji procesów

Historia podejścia obiektowego Simula 67

Historia podejścia obiektowego Smalltalk, Alan Kay (Xerox PARC) Dopracowana koncepcja obiektowości Wprowadzenie dziedziczenia Stosowany w praktyce opracowany w Xerox Palo Alto Research Center Bazujący na języku Ada Wprowadził koncepcję klas generycznych Eiffel:

Historia podejścia obiektowego Smalltalk,

Historia podejścia obiektowego Eiffel,

Historia podejścia obiektowego C++: Programowanie obiektowe zyskało status techniki dominującej w połowie lat 80., głównie ze względu na wpływ C++, Obiektowe rozszerzenie ANSI C cechy obiektowe dodano do wielu języków programowania, w tym Ady, BASIC-a, Lisp-a, Pascala i innych. Java i C#: Składnia wzorowana na C++ Architektura SmallTalk-80 W C#: własności obiektów takie jak cechy i zdarzenia

Historia podejścia obiektowego C++: Java:

Historia podejścia obiektowego C#:

Języki obiektowe - praca

Języki obiektowe community / projekty

Popularność [Tiobe 2012]

Popularność [Tiobe 2012]

Indeks popularności [Tiobe 2012]

Podstawowe pojęcia paradygmatu obiektowego Obiekt: Elementarna jednostka programowa Charakteryzuje się: strukturą, stanem oraz zachowaniem Obiekt w sposób logiczny wiąże dane (zmienne) oraz operacje na nich (metody)

Podstawowe pojęcia paradygmatu obiektowego Komunikat: Uaktywnia procedury związane z obiektem Zawiera on: nazwę procedury oraz opcjonalne parametry Zbiór wszystkich rozumianych przez obiekt komunikatów to interfejs obiektu

Podstawowe pojęcia paradygmatu obiektowego Klasa: Specyfikacja i implementacja abstrakcyjnego typu danych Podstawowy moduł programu Obiekty to instancje klas Klasy definiują dane i metody obiektów

Założenia paradygmatu obiektowego Abstrakcja obiekt w systemie modeluje abstrakcyjnego wykonawcę Wykonuje on pracę, opisuje i zmienia swój stan oraz komunikuje się z innymi obiektami w systemie Ukrywa przy tym szczegóły implementacyjne określonych jego cech. Możliwość definiowania własnych typów danych Dynamiczne wiązanie: Wyszukiwanie metod w obiekcie dopiero podczas działania programu

Założenia paradygmatu obiektowego Enkapsulacja (hermetyzacja) ukrywanie implementacji Obiekt nie może zmieniać stanu innych obiektów w nieoczekiwany sposób. Zmiana stanu jest możliwa jedynie przez metody wewnętrzne obiektu. Dziedziczenie Tworzenie specjalizowanych obiektów na bazie bardziej ogólnych Klasy specjalizowane nie muszą definiować na nowo wspólnej z klasą generalizującą funkcjonalności Hierarchiczna struktura dziedziczenia

Założenia paradygmatu obiektowego Polimorfizm (wielopostaciowość) Referencje oraz kolekcje dotyczą różnych typów Wywołanie metody dla referencji powoduje zachowanie odpowiednie dla pełnego typu obiektu wywołanego Abstrahowanie w wyrażeniach od konkretnych typów Ułatwia pisanie aplikacji Większa czytelność kodu Wiązanie dynamiczne w czasie wykonania Wiązanie statyczne w czasie kompilacji