Software Architecture, design Software Architecture, design

kettleproduceSoftware and s/w Development

Dec 2, 2013 (3 years and 6 months ago)

119 views

1
Software Architectuur, © Hans van Vliet, 2004
Software Architecture, designSoftware Architecture, design
Hans van Vliet
Vrije Universiteit, Amsterdam
email: hans@cs.vu.nl
2
Software Architectuur, © Hans van Vliet, 2004
TopicsTopics
n Architecture and software development cycle
n Some example views
3
Software Architectuur, © Hans van Vliet, 2004
Pre-architecture life cyclePre-architecture life cycle
requirements
agreement
quality
development
stakeholders
(few)
2
4
Software Architectuur, © Hans van Vliet, 2004
CharacteristicsCharacteristics
n Iteration mainly on functional requirements
n Few stakeholders involved
n No balancing of functional and quality
requirements
5
Software Architectuur, © Hans van Vliet, 2004
Architecture in the life cycleArchitecture in the life cycle
requirements
architecture
quality
agreement
stakeholders
(many)
development
6
Software Architectuur, © Hans van Vliet, 2004
CharacteristicsCharacteristics
n Iteration on both functional and quality
requirements
n Many stakeholders involved
n Balancing of functional and quality
requirements
3
7
Software Architectuur, © Hans van Vliet, 2004
Architecture Business Cycle -- ABCArchitecture Business Cycle -- ABC
Influences:
requirements
environment
experience
architecture
system
8
Software Architectuur, © Hans van Vliet, 2004
Architect’s influencesArchitect’s influences
n architecture is influenced by stakeholders:
– customers and end users affect requirements
– developing organization affects (quality) requirements
n technical environment
n experience of the architect
9
Software Architectuur, © Hans van Vliet, 2004
Architecture influencesArchitecture influences
n architecture affects structure of the developing
organization
n architecture affects goals of the developing
organization
n architecture affects requirements for the next system
n building a system affects architect’s experience
n some systems/architectures are really influential
4
10
Software Architectuur, © Hans van Vliet, 2004
Activity versus phaseActivity versus phase
Design Implementation
Integration
testing
Acceptance
testing
Integration
testing
Implementation
(& unit testing)
Design
Phase
Activity
4.7
6.9
49.2
43.4
70.3
34.1
26.1
15.9
10.3
25.8
6.9
6.4
11
Software Architectuur, © Hans van Vliet, 2004
Architecture design (Bosch)Architecture design (Bosch)
requirements
functionality-based
architectural design
architecture
QA-optimizing
solutions
estimate quality
attributes
architecture
transformation
OK
OK
12
Software Architectuur, © Hans van Vliet, 2004
Architecture Architecture vs vs other developmentother development
tasks (tasks (Hofmeister Hofmeister et al)et al)
Domain analysis
Requirements analysis
Risk analysis
Software
architecture
design
Hardware
architecture
design
Detailed design
coding
integration
testing
5
13
Software Architectuur, © Hans van Vliet, 2004
Software Product Line Software Product Line DevelomentDeveloment
(Clemens-Northrop)(Clemens-Northrop)
Domain understanding
Requirements
Architecture
Components
Make
Buy
Mine
Commission
feeds
drives
specifies
14
Software Architectuur, © Hans van Vliet, 2004
Architecture in the life cycleArchitecture in the life cycle
15
Software Architectuur, © Hans van Vliet, 2004
Architecture life cycle (Architecture life cycle (cnt’dcnt’d))
n Iterating with requirements engineering
n Emphasis on “architectural drivers”
n Attribute-Driven Design
6
16
Software Architectuur, © Hans van Vliet, 2004
Attribute-Driven DesignAttribute-Driven Design
n Choose module to decompose
n Refine this module:
– choose architectural drivers
– choose pattern that satisfies drivers
– apply pattern
n Repeat steps
17
Software Architectuur, © Hans van Vliet, 2004
Example ADD for JURISExample ADD for JURIS
n Top-level: usability  separate user interface
 Seeheim/three tier architecture
n Lower-level, within user interface: security 
authenticate users
n Lower-level, within data layer: availability 
active redundancy
18
Software Architectuur, © Hans van Vliet, 2004
Design for change versus managingDesign for change versus managing
assumptionsassumptions
System
environment
changes happen here
explicit assumptions
implicit assumptions
variability
maintenance problems
7
19
Software Architectuur, © Hans van Vliet, 2004
TopicsTopics
n Architecture and software development cycle
n Some example views
Software Architectuur, © Hans van Vliet, 2004
Data Manager
• Manages Data
• No data integrity
• No knowledge of other components
Data Manager
• Manages Data
• No data integrity
• No knowledge of other components
MySQL
MySQL
File
File
Business Logic
• Implements Client, Server architecture
• Data integrity / business rules
• Knowledge of Data Manager
• Programming control
• Transforms BL
data to DM and
vice versa
Business Logic
• Implements Client, Server architecture
• Data integrity / business rules
• Knowledge of Data Manager
• Programming control
• Transforms BL
data to DM and
vice versa
Server
Server
Client
Client
Messaging
User interface
• Builds UI
• Data integrity
• Authorization
• Knows Business logic
•Transforms BL data to
UI and vice versa
User interface
• Builds UI
• Data integrity
• Authorization
• Knows Business logic
•Transforms BL data to
UI and vice versa
BL
Fleet
Passport
Client
Reservations
Price
UI
Fleet
Passport
Client
Reservations
Price
DM
Fleet
Passport
Client
Reservations
Price
Methods
Implements
Control
Control
Architecture
Car
Rental
21
Software Architectuur, © Hans van Vliet, 2004
DevelopmentDevelopment View View
Client
Client
Manager
(BL)
Client GUI
Server
Server
Manager
(BL)
Data
Manager
Request
Response
Database
N : 1
Module
Deelsysteem
Uitbreidbaarheid
n = onbegrensd
N : 1
Interactierichting
Dataopslag
8
22
Software Architectuur, © Hans van Vliet, 2004
23
Software Architectuur, © Hans van Vliet, 2004
ViewpointViewpoint
24
Software Architectuur, © Hans van Vliet, 2004
ModuleModule
start up
DM DB
BL DB
Local DB
«interface»
Client
«interface»
Server
DMServer : DMServer
DMManager : DMManager
CRSManager
Primary presentation of the Module View
Controller
Initialize
Client logs into
the system
Client request via
the controller
Controller sends the
request to the
CRSServer
CRSServer
communicate with
the CRSManager
The server sends
response via the
controller
The controller sends
response to the client
CRSServer
sends request to
the CRSManager
Requested data is
checked in the DB
Response is sent to
the CRSManager
DMManager send
data to CRSManager
The daily data is loaded on the
interface of the client from the
DM DB
The data is
afterwards passed
to the DMManager
Validation and
update of data
9
25
Software Architectuur, © Hans van Vliet, 2004
Extensionality:
++ Add users
++ Data Integrity
+/- Smart car selection
+ Database
+ Add finance module
-- Different UI
-- Change data car, etc
Costs:
+ 3 year costs
+ 1 year costs
+ Development
+ Implementation
+ Maintenance
++ Infrastructure
ROI:
++ Productivity
+ Car occupancy
++ User skills
+ Invoicing
+ Time to market
+/- Fault tolerance
Continuity:
+ Maintainability
+/- Implementation
- Data integrity
- Risk
- Contingency
+ User acceptance
WHAT IF:IMPROVED DATA INTEGRITY
Light first version
- 1 - 3 users
- Focus on UI
- Focus on structure
- Minimal business rules
- Minimal data management
- Platform independent
- Minimal impact infrastructure
Three components
- Data Manager
- Business Logic
- User Interface
Physical
- Java and Java UI
- Flat file storage
- Current infrastructure
- Stand Alone
- Client Server edition
Business
Requirements
Proposed
Architecture
Impact
ROI:
- First year 100%
- Three years 500%
Start basic
- Facilitate changes
- Facilitate growth
Time to Market
- Within 6 months
In house
- Development
- Maintenance
26
Software Architectuur, © Hans van Vliet, 2004
Extensionality:
++ Add users
+/- Smart car selection
+ Add finance module
-- Different UI
-- Change data car, etc
Costs:
+ 3 year costs
- 1 year costs
+/- Development
+/- Implementation
+ Maintenance
+/- Infrastructure
ROI:
++ Productivity
+ Car occupancy
++ User skills
+ Invoicing
+ Time to market
+ Fault tolerance
Continuity:
+ Maintainability
+/- Implementation
++ Data integrity
- Risk
+ Contingency
+ User acceptance
WHAT IF:IMPROVED DATA INTEGRITY
First version
- 1 - 3 users
- Focus on UI
- Focus on structure
- Solid business rules
- Extended data management
- Platform independent
- Medium impact infrastructure
Three components
- Data Manager
- Business Logic
- User Interface
Physical
- Java and Java UI
- Database
- Enhanced infrastructure
- Stand Alone
- Client Server edition
Business
Requirements
Proposed
Architecture
Impact
ROI:
- First year 50%
- Three years 500%
Start basic
- Facilitate changes
- Facilitate growth
Time to Market
- Within 7 months
In house
- Development
- Maintenance
27
Software Architectuur, © Hans van Vliet, 2004
Layer viewLayer view
Car Rental System
UI (View)
BL (Controller)
DAT Files
MySQL
DM (Model)
add
delete
update
search
Event
= flow of data
= depends upon