Designing software applications Lection 2 Documenting software architectures



































- Slides: 35
Designing software applications Lection 2 Documenting software architectures
Software architecture documentation • What to document? • How to document?
Software architecture View • Unit of architecture documentation • Constists of parts: – Main presentation – Catalog of elements and their relations – Context information (diagram)
4+1 Design View approach • • • Scenarios view Physical view Process view Logical view Component view
View and beyond approach • Unit of architecture documentation • Constists of parts: – Main presentation – Catalog of elements and their relations – Contex Diagram
Architectural view: main presentation • Digram • Table
Architectural view: main presentation • Digram • Table
Architectural view: main presentation
Architectural view: Catalog of elements • Server is a physical node. DBMS and Message. Server components are deployed on this node. • Client is a physical node for client app (client component) deployment. • Windows Server 2008 is an execution environment for DBMS and Web server.
Architectural view: Catalog of elements • Internet Information Services is a web server which acts as an execution environment for the messages exchange server. • Windows 7 is en execution enviroment for the client application.
Architectural view: Catalog of relations • Server physical node – Client physiscal node, 1 -*
Architectural view • Module views • Component-and-connector views • Allocation views
Architectural views: Module views • how a system’s source code is decomposed into units, • what kinds of assumptions each unit can make about services provided by other units • how those units are aggregated into larger ensembles.
Module views: Elements • Modules • Sub. Modules
Module views: Relations • Is part of (module-submodule). • Depends on (dependency).
Module views: Relations • Construction – How is source code mapped to modules and consequently to files and directories.
Module views: Relations • Analysis – How are the functional requirements of a system supported by module responsibilities?
Module views: Relations • Communication. – A module view can be used for explaination of the system’s functionality to someone not familiar with it. – A module view can be used for explaination of the structure of the code base to a new developer • provide a top-down presentation of the system’s • responsibilities and therefore can guide the
Module views: Notations • Informal • Formal
Module views: Informal notations • Modules are represented as boxes • Relations are different types of lines
Module views: Informal notations UI Services Domain. Model
Module views: formal notations • UML Package Diagram
Module styles • Decomposition style • Uses style • generalization style, used to indicate specialization relations • among modules • Layered style • Aspects style • Data model style
Decomposition style • Module • Sub. Module
Decomposition style
Uses style • how do modules depend on each other? • How to plan development taking in account dependencies? • How do changes affect other modules?
Uses style UI Domain Model Services UI 0 0 0 Domain Model 1 0 1 Services 1 0 0
Uses style
Aspects styles • Crosscutting functionality – Logging – Security – Data validation
Aspects styles • Implementation of crosscutting functionality – Inheritance – Aspects
Layered style • Crosscutting functionality – Logging – Security – Data validation
Aspects styles: Notation • UML class diagramm with stereotype „Aspect”
Data & Domain Model style • UML class diagramm with stereotype „Aspect”
TASK • Internet Information Services is a web server which acts as an execution environment for the messages exchange server. • Windows 7 - среда исполнения для компонента Text. Echange. App.
TASK • Application type. Justify your decision (60 words). • Module decomposition and uses view. At least 5 modules, UML Package diagram notation. • Elements and their descriptions catalog 1. Weather and wind map app/ Piano app 2. Voice-over-IP application / Client exchange broker app 3. Floor scheme builder / bus timetable