Obsah

IN-POS 6. Objektové metody návrhu systémů

Zadání

Vypracování

vzor (pattern)

Obecné řešení pro opakující se problém, tak aby jej bylo možné aplikovat v různém kontextu.

Podle knihy „Design Patterns: Elements of Reusable Object Oriented Software (1995)“ (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides).

3 kategorie:

Abstract Factory

Vytváření skupiny souvisejících objektů.

Builder

Postupné vytváření komplexních objektů.

Factory Method

Virtuální konstruktor.

Prototype

Instanciace objektů přes klonování „prototypu“.

Singleton

Tvorba maximálně jedné instance pro celý systém.

Adapter

Překlad rozhraní.

Bridge

Abstrakce pro spojení více implementací.

Composite

Tvorba rekurzivní hierarchie objektů.

Decorator

Transparentní rozšíření objektů.

Facade

Zjednodušení a agregace rozhraní komplexního subsystému.

Flaywight

Sdílení mnoha objektů.

Proxy

Aproximace objektů.

Chain of Responsibility

Delegování žádosti na zodpovědného poskytovatele.

Command

Realizace žádostí/příkazů.

Interpreter

Interpretr jazyka pro malé gramatiky.

Mediator

Koordinace komunikace mezi zúčastněnými.

Memento

Uchování a obnovení stavu.

Observer

Update několika objektů při změně „sledovaného“.

State

Objekty, jejichž chování závisí na stavu.

Strategy

Abstrakce pro volbu jednoho z více algoritmů.

Template Method

Algoritmus s několika kroky implementovanými v podtřídě.

Visitor

Operace aplikované na různorodé struktury objektů.

Analytické vzory

Existují i vzory využitelné při fázi analýzy. Seznam kategorií od M. Fowlera:

Softwarové architektury

Zásadní prvky:

Styly a vzory:

Architektonické vzory

Layers

  • Rozdělení funkcionality do vrstev dle míry abstrakce.
  • Vrstva:
    • poskytuje službu vrstvě nad ní
    • delegují pod-úkoly na vrstvu pod ní
  • Varianty
    • Relaxed Layered System – Lze využít všechny nižší vrstvy, ne jen sousední.
    • Layering Through Inheritance – Vrstvy se navzájem dědí. (Vrstva dědí vrstvu, od které požaduje funkcionalitu.
  • ➕ podpora standardizace ⇒ možná výměna vrstev
  • ➕ dobře definovaná struktura
  • ➖ nižší výkonost kvůli komunikační zátěži
  • ➖ duplikace kódu na hranicích vrstev

Layers (vrstvy) – organizace kódu
Tiers – místo nasazení vrstev

Pipes and Filters

Struktura pro procesy nad proudy dat.
  • pipes (roury) = spojení mezi filtry
  • pasivní filtr = „vytáhne“ data z filtru nebo mu jsou data poslána jiným elementem
  • aktivní filtr = aktivně vytahuje data z rour a posílá svůj výstup dál
  • data source = vstup do systému
  • data sink = výsledky celého procesu
  • ➕ netřeba mezilehlých souborů
  • ➕ flexibilita výměn filtrů, nebo přeuspořádání komponent
  • ➕ možnost znovuvyužití komponent
  • ➕ možnost prototypování
  • ➕ lze paralelizovat zpracování
  • ➖ sdílení stavu je drahé, nebo neefktivní
  • ➖ transformace dat do/z formátu rour může být náročné
  • ➖ zpráva chyb, výpadků

Blackboard

Více zdrojů se střídavě zapojuje do řešení problému.

Broker

image.slidesharecdn.com_sasession11-140914043516-phpapp01_95_software-architecture-session11-73-638.jpg

Model-View-Controller (MVC)

Model-View-Presenter (MVP)

Model-View-ViewModel

Rozhraní komponent

Komponentové systémy a modely

Signatury a omezující podmínky služeb, OCL

Požadavky na rozhraní:

Kontrakt

Dohoda mezi dvěma subjekty akceptující podmínky, na kterých je možné užívat práva.

OO kontrakt

OCL

Object Constraint Language

Využití:

Syntax

Invariants

syntax:
  context <classifier> 
  inv [<constraint name>]: 
  <Boolean OCL expression> 

Preconditions/Postconditions

syntax:
  context <classifier>::<operation> (<parameters>) 
  pre|post [<constraint name>]: 
  <Boolean OCL expression> 

IDL

WSDL

Web services Description Language
  • postaven nad XML
  • popisuje rozhraní pro Web Services
  • vzájemně převoditelné s IDL

Kvalitativní aspekty služeb (QoS)

SW požadavky:

Kvalitativní aspekty SW architektur:

Taktiky zlepšení:

Service Level Agreement (SLA)

Definuje společné pochopení pro služby, priority, zodpovědnosti, garance a záruky.

Objektové metody vývoje softwaru, RUP

viz: http://statnice.dqd.cz/mgr-szz:in-gra:21-gra#oo_modely

Zdroje