Programowanie obiektowe III rok EiT dr inż. Jerzy Kotowski Wykład I Co jeszcze mógłby wymyślić Einstein gdyby znał Aplety Javy VIII Dolnośląski Festiwal Nauki 16-23 IX.

Download Report

Transcript Programowanie obiektowe III rok EiT dr inż. Jerzy Kotowski Wykład I Co jeszcze mógłby wymyślić Einstein gdyby znał Aplety Javy VIII Dolnośląski Festiwal Nauki 16-23 IX.

Slide 1

Programowanie obiektowe
III rok EiT

dr inż. Jerzy Kotowski
Wykład I


Slide 2

Co jeszcze mógłby wymyślić
Einstein gdyby znał Aplety Javy

VIII Dolnośląski Festiwal Nauki
16-23 IX 2005


Slide 3

Java









Java to zorientowany obiektowo język programowania
Sun Microsystems.
Java zwiększa interaktywność stron WWW.
Użytkownicy mogą oddziaływać na zawartość stron WWW
za pomocą myszki, klawiatury oraz przycisków i pól
tekstowych.
Java potrafi wzbogacić multimedialną zawartość stron
WWW oferując płynne animacje, grafikę, dźwięk i wideo
Wszystkie te udogodnienia są możliwe dzięki krótkim
programom, które nazywane są apletami.
Aplety są zawarte w stronach WWW.
Aplety są ładowane poprzez sieć do komputera
użytkownika i tam wykonywane.


Slide 4

Historia
• 1990 - Bill Joy sugeruje SUNowi stworzenie
środowiska obiektowego na bazie C++,
• 1991 - W ramach projektu „Stealth” („Green”)
powstaje język OAK - „Object Application
Kernel” (James Gosling),
• 1995 - zmiana nazwy na JAVA ze względu na
zastrzeżenie nazwy OAK,
• 1996 - Pojawia się Netscape zgodny z Javą 1.0,
Sun propaguje darmowe środowisko JDK 1.0,
• 1999 - Java 2 Nowe oblicze Javy.


Slide 5

Albert Einstein
• Tegoroczna, VIII edycja DFN na Politechnice
Wrocławskiej odbywa się w Międzynarodowym
Roku Fizyki – nauki określanej często mianem
królowej nauk technicznych.
• Sto lat temu Albert Einstein opublikował w
Annalen der Physik pięć prac, które zmieniły
oblicze fizyki. Dotyczyły one





szczególnej teorii względności,
zjawiska fotoelektrycznego,
ruchów Browna,
rozmiarów liniowych cząsteczek.

• W tym roku przypada dziewięćdziesiąta
rocznica powstania ogólnej teorii względności
oraz pięćdziesiąta rocznica śmierci Alberta
Einsteina.

Albert Einstein
14.03.1879
18.05.1955


Slide 6

Generacje języków programowania
• W ciągu ponad 50 lat rozwoju języków programowania powstały ich
cztery generacje.
• Dla programów napisanych w językach pierwszej generacji
(FORTRAN 1, COBOL) charakterystyczny jest wspólny obszar danych
globalnych, do którego odwołują się podprogramy.
• W językach pierwszej generacji podczas tworzenia oprogramowania
możliwe było oddzielenie od siebie różnych danych, ale było to
oddzielenie logiczne, a nie programowe.
• Cała struktura danych była widoczna dla wszystkich podprogramów,
dlatego błąd w jednym z nich mógł mieć katastrofalny wpływ na cały
program.
• Przy modyfikacji dużego systemu zasadniczą trudnością było
utrzymanie spójności oprogramowania, które cechowało się wieloma
powiązaniami pomiędzy podprogramami i skomplikowanym
przekazywaniem sterowania.


Slide 7

Języki drugiej generacji
• Podstawami rozwoju drugiej generacji języków
byłą taka modyfikacja podprogramów, by mogły
one przekazywać między sobą parametry, być
zagnieżdżane i mieć zróżnicowany zakres
widoczności deklaracji stałych i zmiennych.
• Dzięki mechanizmowi przekazywania
parametrów podprogramy stały się procedurami.
• Wymienione własności języków drugiej generacji
spowodowały powstanie strukturalnych metod
projektowania oprogramowania.


Slide 8

Języki trzeciej generacji
• Charakterystyczną cechą języków trzeciej
generacji była modułowość.
• Moduł grupował dane i podprogramy mające ze
sobą związek logiczny.
• Wyodrębnienie modułów w procesie
dekompozycji funkcjonalnej pozwalało na
rozdzielenie pracy pomiędzy samodzielnych
programistów.
• Technologia ta umożliwiła utworzenie większych
zespołów projektowych i powstanie bardziej
złożonego oprogramowania.


Slide 9

Języki czwartej generacji 4GL
• Języki czwartej generacji, zwane językami obiektowymi (np. C++),
zmieniają podejście do zagadnienia struktur danych.
• Języki obiektowe rozszerzają pojęcie struktury danych o nowy
element zwany obiektem (dokładniej typem obiektowym).
• Typ obiektowy zawiera zarówno dane, jak i algorytmy posługujące
się tymi danymi.
• Algorytmy te są często zapisywane w postaci funkcji i procedur, które
łącznie określane są jako metody obiektu (funkcje składowe).
• Obiekt, jako pojedynczy element programu, może być przypisywany i
stosowany jak każdy inny typ danych.
• W językach obiektowych moduły zawierają kolekcje obiektów, a nie
podprogramów jak to miało miejsce w językach starszych generacji.
• Struktura programów napisanych przy wykorzystaniu języków
obiektowych jest podobna do grafu.
• Fakt ten zmienia w sposób zasadniczy reguły analizy i projektowania
oprogramowania.


Slide 10

Programowanie obiektowe

• Programowanie obiektowe jest metodą
tworzenia oprogramowania, w której
programy są organizowane jako kolekcje
obiektów.
• C++, Java są językami programowania
obiektowego.


Slide 11

Podejście obiektowe
Object Oriented Approach - OOA
• Podejście obiektowe modeluje sposób w jaki ludzie
rozumieją i przetwarzają rzeczywistość. Przy pomocy
tego podejścia ludzie tworzą coś dla ludzi.
• Zasadnicza część podstaw teoretycznych podejścia
obiektowego składa się z idei dotyczących podstaw
ludzkiego myślenia. Korzeni podejścia obiektowego
należy szukać w psychologii i w naukach do niej
pokrewnych.
• Modelowanie sposobu w jaki ludzie rozumieją i
przetwarzają rzeczywistość wymaga zrozumienia:
– czym są przyswajane przez ludzi pojęcia
– dlaczego są istotne
– jak ich używamy i jak je przekazujemy.


Slide 12

Dokumentowanie pojęć
• Jeżeli posiedliśmy jakieś pojęcie, to oznacza, że
możemy się im posługiwać .
• Formalizacja dowolnego pojęcia wymaga
utworzenia testu do jego identyfikacji.
• Intensja - pełna definicja pojęcia i testu, czy
pojęcie odnosi się do badanego obiektu czy nie.
• Ekstensja - zbiór wszystkich obiektów do których
stosuje się dane pojęcie.
• Trójka pojęciowa: symboliczna reprezentacja +
intensja + ekstensja.


Slide 13

Trójka pojęciowa
Symbol pojęcia

Intensja
Definicja
Pomysł
Wytłumaczenie pojęcia

Ekstensja
Zbiór egzemplarzy

• Obiekt jest to egzemplarz pojęcia.
• Instrument muzyczny jest to dowolne urządzenie zdolne
do wydawania melodyjnych i harmonijnych dźwięków.
• Fortepian jest instrumentem muzycznym.


Slide 14

Zastosowania podejścia obiektowego
• Zarządzanie projektami





Metoda Martina
PRINCE
LFA
Prezentacja zamierzeń – składanie wniosków

• Relacyjne bazy danych
– OMG, UML

• Projektowanie oprogramowania
– Praca zespołowa
– CASE Computer Aided Software Engineering


Slide 15

Kontakt
• dr inż. Jerzy Kotowski
– Janiszewskiego 11/17, 219 C-3
– (+48 71) 320 3852
[email protected]


Slide 16

Literatura
• James Martin, James J. Odell
Podstawy metod obiektowych
WNT 1997

• Jerzy Grębosz
Symfonia C++
Oficyna Kallimach 1999
Wydawnictwo Edition 2000

• Jerzy Grębosz
Pasja C++
Wydawnictwo Edition 2000


Slide 17

Program wykładu
• Źródła podejścia obiektowego
• Podstawy metody PRINCE (PRojects In Controlled
Environment)
• Podstawy metody LFA (Logical Framework
Approach, składanie wniosków o grant)
• Język C++ (gadżety języka, polimorfizm, klasy,
dziedziczenie) bez Pasji C++ (pojemniki, wyjątki,
szablony, przestrzenie nazw, etc.)

• Przykład problemu (być może symulacja sieci
wodociągowej)
• Podstawy języka JAVA
• Klasówka