Designing software applications Lection 3 Documenting software architectures
Aspects styles Crosscutting functionality / crosscutting concerns Logging Security Data validation
Aspects styles Implementation of crosscutting functionality Inheritance Attribute-oriented programming
Layered style Crosscutting functionality Logging Security Data validation
Aspects styles: Notation UML class diagramm with stereotype „Aspect”
Dependency injection Software design pattern implementing Inversion of Control principle
Inversion of Dependency Traditionally high-level modules consume (depend on) low-level modules
Inversion of Dependency High level modules should not depend on low level modules. They should depend on abstraction (interfaces)
Dependency Injection Class library Dependency container Configuration XML Runtime
Component views Software component is a unit of deployment or an executable unit Notations: UML Component Diagram notation Box&line informal notation
Component views P2P style Data flow style Client-server style Multi-tier style
Allocation views Connection between your software and external environment
Allocation views Deployment view Task assignment vie Deployment diagram Task assignment vie
TASK 3 Requirements: 5 DBMSs, 8 interfaces + Sources list Part 1. Create a list of interfaces and database management systems (software components) implementing them. Find out what interface is mostly used by DBMSs (best compatibility) Requirements: 5 DBMSs, 8 interfaces + Sources list DBMS Interfaces
TASK 3 Create your own notation for component diagram (at least 4 component types). Relations – dependency arrow and dependcy-interface arrow. Create your diagram for mentined below software system using your notation (at least 5 components, 4 component types). Weather and wind map / Voice-over-IP Bus timetable / Client exchange broker app