Softwaretechnologie, © Prof. Uwe Aßmann Technische Universität Dresden, Fakultät Informatik1
46 Soft w ar ear chitek tur mit dem Quas ar -Ar chitek tur stil
Prof. Dr. U. Aßmann Technische Universität Dresden Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie http://st.inf.tu-dresden.de Version 11-0.1, 10.07.11
O pt io na le s Ma te ria l
Prof. U. Aßmann, Softwaretechnologie2Tei l I V - O bj ekt or ient ier ter E nt w ur f (O bj ect -O rient ed D esi gn, O O D )
1)Einführung in die objektorientierte Softwarearchitektur 1)Modularität und Geheimnisprinzip 2)Entwurfsmuster für Modularität 3)BCD-Architekturstil (3-tier architectures) 2)Verfeinerung des Entwurfsmodells zum Implementierungsmodell (Anreicherung von Klassendiagrammen) 1)Verfeinerung von Operationen 2)Verfeinerung von Assoziationen 3)Verfeinerung von Vererbung 3)Verfeinerung von Lebenszyklen 1)Verfeinerung von verschiedenen Steuerungsmaschinen 2)Querschneidende Verfeinerung mit Chicken Fattening 4)Objektorientierte Rahmenwerke (frameworks) 5)Softwarearchitektur mit dem Quasar-ArchitekturstilProf. U. Aßmann, Softwaretechnologie
S ekundär e Li ter at ur
►Johannes Siedersleben (ed.). Quasar: Die sd&m Standardarchitektur http://www.openquasar.de ►Johannes Siedersleben. Moderne Softwarearchitektur. Umsichtig planen, robust bauen mit Quasar. dpunkt-Verlag, 2004. Prof. U. Aßmann, SoftwaretechnologieQ uasar
►An architectural style of SD&M, the leading German software house for individual software Software categories (blood groups) Component orientation A-TI-I architectural style Component-oriented development process ►Bisher kannten wir 2 Aspekte von Software, Architektur und Anwendung. Jetzt unterscheiden wir zusätzlichTechnikProf. U. Aßmann, Softwaretechnologie5
S of tw ar e B loo d G rou ps (B lu tgr upp en ) (So ftw are ka te go rie n na ch W ie de rve rw en db arke it)
►0: independent of application and technology JDK collections, C++ STL, GNU regexp ►A: application- or domain-related. Stems from domain model. Client, Customer, ... ►T: technology-oriented APIs, independent of application, but not of technology JDBC, CORBA CosNaming ►AT: depending on application and technology To be avoided: hard to maintain, to reuse, to evolve ►R: for representation changes of business objects into external representations and back Serialization, deserialization, encryption, decryption, packing, unpacking Transporting an object from one language's representation to anothers (e.g., Java to Cobol) 0-Software0-Software►USES relationships: T-SoftwareT-Software
AT-SoftwareAT-Software A-SoftwareA-Software
R-SoftwareR-Software Prof. U. Aßmann, Softwaretechnologie6
A rchi tect ur al C om ponent s
►0-interfaces contain only technical types (strings, collections etc) well reusable ►A-interfaces contain domain types (account, bill,..) A-components live in the Application-Logic and the Database tier Hard to reuse ►T-interfaces provide techical APIs Necessary everywhere ►R-interfaces contain both, because they change representation Are necessary in the middleware and data layer Special kind of A Can often be generated from specifications, hence not reusable, but re- generatable XML tools, e.g., XMI (model interchange) OMG MOF tools (Model-driven development)Prof. U. Aßmann, Softwaretechnologie
Zw eck der B lut gr uppen
►Zweck der Blutgruppen ist es, Anwendung und Technik möglichst wei voneinander zu trennen, um sie getrennt besser wiederverwenden zu können.S ie d er sle b en 's Blu tg ru p p en -Ge se tz: Je d e S ch n it ts te lle , Kla ss e, u n d Ko m p o n en te g eh ö rt g en au zu e in er S o ft wa re ka te g o rie .
S ie d er sle b en 's Blu tg ru p p en -Ge se tz: Je d e S ch n it ts te lle , Kla ss e, u n d Ko m p o n en te g eh ö rt g en au zu e in er S o ft wa re ka te g o rie .
Prof. U. Aßmann, SoftwaretechnologieWi eder ver w endbar kei t der B lut gr uppen
►Die Wiederverwendbarkeit der Gruppen nimmt von 0 nach AT hin ab. Technisch orientierte Komponenten sind leichter wiederzuverwenden Anwendungsspezifische schwerer. Problemfall AT ►Die Blutgruppen durchziehen alle Schichten der BCED-Architektur Auf jeder Ebene gibt es Technik, Applikation, Repräsentation 0-Software0-SoftwareT-SoftwareT-SoftwareAT-SoftwareAT-Software A-SoftwareA-Software
R-SoftwareR-Software
-- + + + -
--
Prof. U. Aßmann, Softwaretechnologie9
B lut gr uppen- G eset ze
►Der Aufruf von A-Komponenten aus T-Komponenten heraus ist gefährlich Die azyklische USES- Beziehung von A nach T wird zerstört Es entsteht AT-Software ►Blutgruppen-Kalkül: A+0 = A T+0 = T A + T = AT0 A T R 0 0 A T R A A AT T T R R
►Aufruftabelle:
S ie d er sle b en 's A T- Ge se tz: M is ch en v o n A u n d T f ü h rt im m er zu s eh r s ch le ch t wie d er ve rwe n d b ar er S o ft wa re .
S ie d er sle b en 's A T- Ge se tz: M is ch en v o n A u n d T f ü h rt im m er zu s eh r s ch le ch t wie d er ve rwe n d b ar er S o ft wa re .
Prof. U. Aßmann, Softwaretechnologie10W as haben w ir gel er nt ?
►Jenseits der Begriffe Architektur/Anwendung und BCED kann man die Softwarekomponenten in Blutgruppen einteilen (A, T, 0, R, AT) ►Vermeide das Vermischen von bestimmten Gruppen (A und T), denn AT-Software ist schlecht wiederverwendbar ►Sortiere alle Pakete/Komponenten in der BCED-Architektur nach Blutgruppen und vermeide Vermischung!Prof. U. Aßmann, Softwaretechnologie