Luc - 3-4
Luc - 3-4
requirements solutions
client,
architect developers
users
visualises prescribes
stakeholders
requirements quality
(few)
agreement
development
stakeholders
requirements quality
(few)
agreement
architecture
implementation
stakeholders
(many)
requirements quality
architecture
agreement
development
statement
procedure
module
(design) pattern
architecture
▪ module structure
▪ conceptual, or logical structure
▪ process, or coordination structure
▪ physical structure
▪ uses structure
▪ calls structure
▪ data flow
▪ control flow
▪ class structure
▪ Architecture is conceptual.
▪ Architecture Design
▪ Understand problem
▪ Solve it
▪ Evaluate solution
synthesis architecture
context
backlog evaluation
evaluation
requirements
results
assets
architecture
ideas synthesis
backlog evaluation
constraints
eval results
sign.reqs
Design Problem
problem space
sub- sub-
problem problem
(or issue) (or issue)
Decision =
best option Decision
Desig
space
Design Design Design
option option n option
option
Decision =
Alternative Alternative best option
solutions solutions
Programmed in C++
no separate
monolithic user interface
layer
fat-client client in a
separate flexibility
client-server user interface
client layer
style
thin-client
layered MVC
no separate
monolithic user interface
layer
▪ Architectural styles
▪ Architecture asssessment
▪ Role of the software architect
▪ Client ?
▪ User ?
▪ A small sample …
▪ Different representations
Mission
Architecture
Stakeho lder Description Rational e
Library
Viewpoin t Model
▪ Architect
▪ Requirements engineer
▪ Designer (also of other systems)
▪ Implementor
▪ Tester, integrator
▪ Maintainer
▪ Manager
▪ Quality assurance people
▪ Viewpoint name
▪ Stakeholders addressed
▪ Concerns addressed
▪ Language, modeling techniques
End-user Programmers
Functionality Software management
Implementation
Logical
Viewpoint
Viewpoint
Scenarios
Process Deployment
Viewpoint Viewpoint
▪ Module views
▪ Module is unit of implementation
▪ Decomposition, uses, layered, class
▪ Component and connector (C & C) views
▪ These are runtime elements
▪ Process (communication), concurrency, shared data (repository),
client-server
▪ Allocation views
▪ Relationship between software elements and environment
▪ Work assignment, deployment, implementation
▪ Architectural styles
▪ Architecture asssessment
▪ Role of the software architect
▪ Examples:
▪ main program with subroutines
▪ data abstraction
▪ implicit invocation
▪ pipes and filters
▪ repository (blackboard)
▪ layers of abstraction
Client
Client
Shared
Data
Client
Layer2
Layer1
Controller View
n n
Model
is a popular architectural pattern used in software development,
especially in web applications. It separates the application into
three interconnected components: Model, View, and Controller
problem: separation of UI from application is desirable due to
expected UI adaptations
context: interactive applications with a flexible UI