22
Projektowanie Wprowadzenie Czynno´ sci procesu projektowania Metody projektowania Projektowanie architektoniczne Projektowanie obiektowe 4.1 Wyklad 4 Projektowanie MIS-1-505-n In˙ zynieria oprogramowania Pa ´ zdziernik 2014 Kazimierz Michalik Akademia Górniczo-Hutnicza im. S. Staszica w Krakowie

Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.1

Wykład 4ProjektowanieMIS-1-505-n Inzynieria oprogramowaniaPazdziernik 2014

Kazimierz MichalikAkademia Górniczo-Hutnicza im. S. Staszica w Krakowie

Page 2: Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.2

Agenda

1 Wprowadzenie

2 Czynnosci procesu projektowania

3 Metody projektowania

4 Projektowanie architektoniczne

5 Projektowanie obiektowe

Page 3: Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.3

Implementacja

Page 4: Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.4

Implementacja = Projektowanie + Programowanie

Implementacja

= Projektowanie + Programowanie

Projekt to opis:

struktury oprogramowaniadanych w systemieinterfejsów miedzy komponentamiuzytych algorytmów

Page 5: Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.5

Projektant nie tworzy od razu koncowego projektu!

Projekt opracowuje sie iteracyjnie w czasieProjekt moze miec wiele róznych wersjiW miare upływu czasu projekt jest coraz bardziej formalnyi szczegółowyPowraca sie do juz opracowanych fragmentów w celu ichpoprawy

Sprzezenie zwrotne miedzy fazami projektowania i powtarzanieprac sa nieuniknione w kazdym procesie projektowania!

Page 6: Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.6

Wyrózniamy rózne rodzaje projektowania:

Projektowanie architektoniczne (Architektury systemówrozproszonych)Projektowanie obiektoweProjektowanie oprogramowania czasu rzeczywistegoProjektowanie z uzyciem wielokrotnymProjektowanie interfejsu uzytkownika

Page 7: Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.7

Czynnosci procesu projektowania:

Projektowanie architekturySpecyfikowanie abstrakcyjneProjektowanie interfejsówProjektowanie komponentówProjektowanie struktur danychProjektowanie algorytmów

Page 8: Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.8

Metoda ad hoc:

Nieformalny projektProjekt jest zmieniany w miare programowaniaNie ma formalnej kontroli zmianNie ma zarzadzania projektemPo zakonczeniu fazy implementacji projekt jest najczesciejniepoprawny i niekompletny

Page 9: Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.9

Metody strukturalne

Graficzne modele systemuDuza ilosc dokumentacji projektowejObejmuja modele przepływu danych, modelencja-zwiazek, model strukturalny, modele dziedziczenia,statycznych i dynamicznych zwiazków i inne.Przykładowe metody strukturalne:

Structured DesignStructured System AnalysisJackson System Development

Rózne dla projektowania obiektowego

Page 10: Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.10

Co to jest projektowanie architektoniczne?

Systemy sa podzielone na podsystemy, powiazanepoprzez interfejsy.

Definicja

Poczatkowa faza procesu projektowania, w której identyfikujesie podsystemy i ustala zrab sterowania oraz komunikacji toprojektowanie architektoniczne.

Produktem tej fazy jest opis architektury oprogramowania.

Page 11: Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.11

Zalety projektowania architektonicznego

Komunikacja z uczestnikami

Podstawa do dyskusji na bardzo róznych poziomach

Analiza systemu

Ujawnienie architektury we wczesnej fazie pozwala naprzeprowadzenie analizy pod katem krytycznych cech systemu

Uzycie wielokrotne w wielkiej skali

Architektura jest zwartym i łatwym do opanowania opisemorganizacji systemu i współpracy komponentów

Page 12: Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.12

Czynnosci projektowania architektonicznego

1 Strukturalizacja systemu2 Modelowanie sterowania3 Podział na moduły

Podsystem a moduł:

Podsystem : jego usługi nie zaleza od usług oferowanychprzez inne systemy; składa sie z modułów; majainterfejsy do komunikacji z innymi podsystemami

Moduł : komponent systemu; oferuje co najmniej jednausługe innym modułom; korzysta z innychmodułów; zwykle nie jest traktowany jakoniezalezny system

Page 13: Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.13

Model architektoniczny 4+1

Page 14: Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.14

Projektowanie obiektowe

Projektowanie obiektowe

jest to strategia projektowania, w której projektanci systemumysla w kategoriach „bytów”, a nie operacji albo funkcji

Działajacy system składa sie z oddziałujacych na siebieobiektów.Obiekty przechowuja swój lokalny stan i oferuja operacjena tym stanieObiekty ukrywaja informacje o reprezentacji stanu iograniczaja do niego dostep.

Page 15: Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.15

Projektowanie obiektowe

Jest czescia tworzenia obiektowego

w którym strategie obiektowe sa stosowane w czasie całegoprocesu tworzenia:

Analiza obiektowaProjektowanie obiektoweProgramowanie obiektowe

Page 16: Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.16

Projektowanie obiektowe: pierwsze piec zasad

S.O.L.I.D.

S – SRP – Single responsibility principleO – OCP – Open/closed principleL – LSP – Liskov substitution principleI – ISP – Interface segregation principle

D – DIP – Dependency inversion principle

Page 17: Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.17

SRP

Single responsibility principle

a class should have only a single responsibility (i.e. only onepotential change in the software’s specification should be ableto affect the specification of the class)

Zasada pojedynczej odpowiedzialnosci

Nigdy nie powinno byc wiecej niz jednego powodu domodyfikacji klasy.

Page 18: Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.18

OCP

Open/closed principle

“software entities . . . should be open for extension, but closedfor modification.”

Zasada otwarte-zamkniete

elementy systemu takie, jak klasy, moduły, funkcje itd. powinnybyc otwarte na rozszerzenie, ale zamkniete na modyfikacje

Page 19: Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.19

LSP

Liskov substitution principle

“objects in a program should be replaceable with instances oftheir subtypes without altering the correctness of that program.”

Zasada podstawienia Liskov

Funkcje które uzywaja wskazników lub referencji do klasbazowych, musza byc w stanie uzywac równiez obiektów klasdziedziczacych po klasach bazowych, bez dokładnejznajomosci tych obiektów.

Page 20: Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.20

ISP

Interface segregation principle

“many client-specific interfaces are better than onegeneral-purpose interface".

Zasada segregacji interfejsów

wiele interfejsów odpowiadajacych konkretnym potrzebom jestlepsze niz jeden ogólny interfejs do wszystkiego

Page 21: Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.21

DIP

Dependency inversion principle

one should “Depend upon Abstractions. Do not depend uponconcretions.”

Zasada odwrócenia zaleznosci

Zaleznosci powinny opierac sie na abstrakcjach, a nie na ichkonkretnych realizacjach.

Page 22: Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe 4.14 Projektowanie obiektowe Projektowanie obiektowe jest to strategia projektowania,

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.22

G.R.A.S.P.

GRASP

General Responsibility Assignment Software Patterns (orPrinciples)

ControllerCreatorHigh CohesionIndirectionInformation ExpertLow CouplingPolymorphismProtected VariationsPure Fabrication