slide1
Download
Skip this Video
Download Presentation
PLAN

Loading in 2 Seconds...

play fullscreen
1 / 15

PLAN - PowerPoint PPT Presentation


  • 156 Views
  • Uploaded on

PLAN. Wstęp Idee programowania obiektowego Smalltalk (Alan Kay, Xerox, Palo Alto) dlaczego tak przykład języka w pełni obiektowego łatwość obiektowego projektowania i programowania duża biblioteka gotowych klas Elementy analizy i projektowania obiektowego

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'PLAN' - uma


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1
PLAN
  • Wstęp
    • Idee programowania obiektowego
  • Smalltalk (Alan Kay, Xerox, Palo Alto)
    • dlaczego tak
      • przykład języka w pełni obiektowego
      • łatwość obiektowego projektowania i programowania
      • duża biblioteka gotowych klas
  • Elementy analizy i projektowania obiektowego
  • C++ (Bjarne Stroustrup, Bell Laboratories, AT&T)
    • dlaczego tak
      • praktycznie i szeroko używany język obiektowy
    • wada
      • obiektowość “ginie” w składni i niskopoziomowości języka C
  • Inne języki obiektowe
      • Java, Eiffel, Objective C, ...
literatura
Literatura

1. Peter Coad, Jill Nicola, Programowanie Obiektowe, Prentice Hall 1992 (README 1993)

2. Peter Coad, Edward Yourdon, Analiza Obiektowa, Prentice Hall 1991 (README 1994)

3. Peter Coad, Edward Yourdon, Projektowanie Obiektowe, Prentice Hall 1991 (README 1994)

4. David A. Taylor, Technika obiektowa, Addison - Wesley, 1990 (Helion, 1994)

5. James Martin, James Odell, Podstawy metod obiektowych, Prentice Hall 1994 (WNT 1998)

6. R. Dumnicki, A. Kasprzyk, M.. Kozłowski, Analiza i projektowanie obiektowe, Helion 1998

7.Grady Booch, Object - Oriented Design with Applications, 1991

8. James Rumbaough i in., Object_Oriented Modelling and Design, 1991

9. Ian Graham, Object-Oriented Methods, 1994

10. Adele Goldberg, David Robson, Smalltalk-80, Addison-Wesley, 1989

11. Digitalk, Smalltalk/V for Windows, Digitalk Inc. 1992

12. Wilf LaLonde, John Pugh, Inside Smalltalk, Prentice Hall, 1990

slide3
13. Bjarne Stroustrup, Język C++, WNT, 1994

wiele innych książek o C++

14. Kernighan, Ritchie, Język ANSI C, WNT 1994

15. Lemay, Perkins, Java 1.1, Helion 1998

16. Jan Bielecki, Java po C++, 1996

17. Jan Bielecki, Java od podstaw, 1996

wiele innych książek o Javie

20. Gerald Massini, ..... Object Oriented Languages, Academic Press, 1991

historia
HISTORIA

Algol-60

Pascal

Simula-67

C

Loglan

Modula 2

Smalltalk

Ada

C++

inne języki hybrydowe

Java

Simula-67: lata 60-te

Smalltalk: lata 70-te, rozwój w latach 90-tych

Loglan: lata 70/80

Ada: początek lat 80

C++: początek lat 80-tych

Java: połowa lat 90-tych

popularność programowania obiektowego: lata 90

slide5
PROGRAM
  • Programowanie modularne:
      • Program = algorytmy + struktury danych
  • Programowanie obiektowe:
      • Program = zbiór obiektów komunikujących się
        • poprzez komunikaty
      • modelowanie systemu
      • jeden model może być użyty do wielu zadań

OBIEKT

atrybuty: zmienne określające

stan obiektu (ukryte)

akcje: operacje, jakie obiekt może

wykonywać na swoich

atrybutach

komunikat: polecenie wykonania akcji

i zwrócenia wyniku

atrybuty

akcje

k1

k5

k2

k6

k3

k4

slide6
Pascal
  • type prostokąt = record
      • x1, y1, x2, y2 : real
      • end;
  • var p, q : prostokąt;
  • funkction przecina (p, q : prostokąt):boolean;
    • ......
  • begin
    • ......
    • if przecina (p, q ) then .....

Programowanie obiektowe

P

przecina

przecina: Q

Q

przecina

... P przecina: Q ... Smalltalk

... P -> przecina (Q) C++

... P.przecina (Q) C++ lub Java

Nie wykonujemy operacji na atrybutach obiektów:

Każemy obiektom samym wykonywać akcje

stosy
Stosy
  • Klasa Stos:
    • jakaś impementacja stosu
    • operacje pop, push, topelem, empty

S - obiekt klasy Stos

pop

S := Stos new

S push: elem.

...

S. pop.

...

push : elem

klasy i obiekty
Klasy i obiekty
  • Klasa = wzorzec dla obiektów, typ obiektów
    • określa atrybuty (nazwy, rodzaj, typy) obiektów
    • i akcje, jakie są dopuszczalne w obiekcie tej klasy.

imię

nazwisko

adres

wypisz swoje dane

Człowiek

Jan

Nowak

Warszawa

Anna

Kwas

Toruń

Tomasz

Wnuk

Warszawa

wypisz swoje dane

Obiekt dowolnej

klasy

dziedziczenie
figura

wielokąt

okrąg

czworokąt

trójkąt

sześciokąt

prostokąt

równoległobok

kwadrat

Dziedziczenie

Nadklasa

Podklasa

Generalizacja

Specjalizacja

Podklasa jest pewną specjalizacja nadklasy

" kwadrat jest prostokątem"

"prostokąt jest figurą"

"okrąg jest figurą"

"równoległobok jest wielokątem"

slide10
Metody obiektowe

Modelowanie dziedziny problemu poprzez znalezienie jej

najważniejszych komponentów - obiektów, ich własności, zachowania

i wzajemnej współpracy.

Obiekt

Abstrakcja czegoś z dziedziny problemu, odzwierciedlająca zdolności

systemu do przechowywania informacji o tym, interakcji z tym czymś;

kapsułka z wartościami atrybutów i wyłącznie na nich działającymi

operacjami.

Obiekt ma tożsamość

Klasa

Zbiór obiektów , które mają takie same właściwości (atrybuty) i

zachowanie (metody).

Wzorzec dla obiektów.

Typ obiektów.

Wykonując model dziedziny problemu (świata rzeczywistego)

posługujemy się klasami, jako pojęciem “meta” w stosunku do obiektu.

Abstrakcja

Uproszczony opis (specyfikacja) obiektu ignorujący te jego aspekty,

które nie są ważne z punktu widzenia bieżącego celu.

Hermetyzacja

Proces ukrywania tych elementów abstrakcji (obiektu), które

implementują jego strukturę i zachowanie; hermetyzacja służy do

rozdzielenia interfejsu widocznego z zewnątrz od wewnętrznych

sekretów realizacji.

Dziedziczenie

Relacja między klasami mówiąca o tynm, że dana klasa (podklasa)

współdzieli strukturę i zachowanie zdefiniowane w jednej lub wielu

klasach (nadklasach). Podklasa najczęściej jest specjalizacją swojej

nadklasy poprzez doprecyzowanie lub rozszerzenie odziedziczonej

sytuktury i zachowania.

B jest podklasą A B “jest rodzajem” A

jako oprogramowania
Jakość Oprogramowania
  • Poprawność (correctness)

program ma robić dokładnie (i poprawnie) to, co zostało zdefiniowane w specyfikacji

  • Odporność (robustness)

program ma zachowywać się sensownie w każdej (nawet nieprzewidzianej) sytuacji

  • Modyfikowalność i rozszerzalność

program musi być łatwo dostosowywalny do zmian w specyfikacji

  • Możliwość wielokrotnego użycia elementów projektu i programu (reusability)

typowe fragmenty programu muszą dać się łatwo użyć w innych programach lub w tym samym programie

  • Kompatybilność
  • Efektywność
  • Przenaszalność
jak osi gn cele jako ci oprogramowania
Jak osiągnąć cele jakości oprogramowania?
  • Modularność, programowanie strulturalne, wielokrotny użytek procedur
    • Pascal, Modula 2, C
  • Wielokrotny użytek całych struktur danych, ochrona danych
    • Modula 2
  • Wielokrotny użytek struktutur danych i obiektów, hermetyzacja (encapsulation) poprzez klasy i dziedziczenie
    • języki obiektowe

Użycie metodologii obiektowej (od analizy, poprzez projekt do programu):

    • przyspiesza proces tworzenia systemu poprzez wielokrotne użycie elementów
    • ułatwia modyfikowalność i rozszerzalność
    • pozwala szybko stworzyć prototyp
slide13
??

narysuj

lista wierzchołków

narysuj

ile wierzchołków

środek

ile wierzchołków

środek

promień

narysuj

figura

  • klasa abstrakcyjna - nie
  • może być obiektów dokładnie
    • tej klasy

wielokąt

  • nowy atrybut - lista wierzchołków
  • przedefiniowuje operację narysuj
  • nowa operacja -
  • ile wierzchołków

kwadrat

  • dziedziczy listę wierzchołków
  • dziedziczy operację narysuj
  • przedefiniowuje ile wierzchołków
  • nowa operacja - środek

okrąg

  • nowe atrybuty - środek i promień
  • przedefiniowuje operację narysuj

Polimorfizm: możliwość różnych realizacji w różnych klasach

operacji tak samo nazwanej

wykonywana jest

odpowiedznia operacja

narysuj,

w zależności od

klasy obiektu

?

narysuj

slide14
Realizacja polimorfizmu

Odbieranie komunikatu

Hierarchia dziedziczenia klas

klasa A

kierunek

wyszukiwania

metody

(operacji)

klasa B

klasa C

klasa D

klasa E

  • Na zmiennej x przechowywany jest obiekt klasy E.
  • komunikat
      • x akcja
  • powoduje wyszukiwanie metody akcja kolejno w klasach E, C, A
  • i wykonanie pierwszej znalezionej metody (jeśli jej nie ma,
  • to błąd)
  • Na zmiennej x jest obiekt klasy Kwadrat:
    • x narysuj wykonanie metody z klasy Wielokąt
  • Na zmiennej x jest obiekt klasy Okrąg:
    • x narysuj wykonanie metody z klasy Okrąg
charakteryzacja programowania obiektowego
Charakteryzacja programowania obiektowego
  • Programowanie z obiektami

Obiekty jako typy danych, ukrywające swój stan, ale potrafiące wykonywać na nim operacje.

  • Programowanie przez symulację

Programujemy aplikacje używając symulacji lub animacji. Obiekty modelują świat rzeczywisty. To jest styl nazywany programowaniem przez personifikację.

  • Obliczenia przeprowadzane poprzez przesyłanie komunikatów

Działanie obiektu w odpowiedzi na komunikat są określone przez metody.

  • Użycie polimorfizmu (wirtualizacja)

komunikaty są różnie interpretowane, zależnie od odbiorcy.

  • Dziedziczenie

nowe klasy są definiowane jako specjalizacje klas już istniejących.

  • Używanie bogatej biblioteki klas “wielokrotnego użytku”
ad