Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe...

Post on 02-Apr-2021

8 views 0 download

Transcript of Projektowanie Wykład 4 · 2014. 10. 30. · Projektowanie architektoniczne Projektowanie obiektowe...

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

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

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.3

Implementacja

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

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!

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

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.7

Czynnosci procesu projektowania:

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

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

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

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.

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

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

Projektowanie

Wprowadzenie

Czynnosci procesuprojektowania

Metody projektowania

Projektowaniearchitektoniczne

Projektowanieobiektowe

4.13

Model architektoniczny 4+1

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.

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

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

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.

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

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.

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

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.

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