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 MessageServer 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 SubModules
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 learning process. For a system whose implementation is already in place, module views, if kept up to date, are very helpful, as they explain the structure of the code base to a new developer on the team—much more effective than providing the URL to the version management system repository and asking him or her to browse the source files and read the code. Thus, up-to-date module views are very useful during system maintenance.
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 DomainModel
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 SubModule
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 1
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 - среда исполнения для компонента TextEchangeApp.
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 Weather and wind map app/ Piano app Voice-over-IP application / Client exchange broker app Floor scheme builder / bus timetable