13 Architectural Design
-
Upload
erik-kaliev -
Category
Documents
-
view
217 -
download
0
Transcript of 13 Architectural Design
7/31/2019 13 Architectural Design
http://slidepdf.com/reader/full/13-architectural-design 1/19
Architectural Design
Lecture-7
1Software Engineering
7/31/2019 13 Architectural Design
http://slidepdf.com/reader/full/13-architectural-design 2/19
Overview
Announcements, Review
Creating an Architectural Design
2Software Engineering
7/31/2019 13 Architectural Design
http://slidepdf.com/reader/full/13-architectural-design 3/19
Announcements, Review
DD-1 assignment
- (due next week before labs)
Design patterns
- lab tasks
3Software Engineering
7/31/2019 13 Architectural Design
http://slidepdf.com/reader/full/13-architectural-design 4/19
Review
Software Design- Translating Analysis model into Design model
- Characteristics of Good Design
- Measuring Design Quality (FTR, FURPS)
- Design Concepts (abstraction, patterns, modularity, etc.)
- Design Model
4Software Engineering
7/31/2019 13 Architectural Design
http://slidepdf.com/reader/full/13-architectural-design 5/19
Architectural Design
What is it?
Who does it?
Why is it important?
5Software Engineering
7/31/2019 13 Architectural Design
http://slidepdf.com/reader/full/13-architectural-design 6/19
Software Architecture
Software architecture must model the structure of asystem and the manner in which data and proceduralcomponents collaborate with one another.
Benefits?
Software components (OO class to DB)
Architectural Model (Gestalt view)
“The architecture of a system is a comprehensive framework that describes its form and structure – its
components and how they fit together .”
Jerrold Grochow
6Software Engineering
7/31/2019 13 Architectural Design
http://slidepdf.com/reader/full/13-architectural-design 7/19
Data Design
Architectural level- Files and databases
- Data mining techniques (KDD)
- Data warehouses
Component level-
Data structures- Data design principles
7Software Engineering
7/31/2019 13 Architectural Design
http://slidepdf.com/reader/full/13-architectural-design 8/19
What principles are applicable to
data design?
1. Systematic analysis
2. All data structures and operations should beidentified
3. Stepwise refinement
4. Limited access/knowledge of data structure
5. Library
6. Software design and PL support for abstractdata types
8Software Engineering
7/31/2019 13 Architectural Design
http://slidepdf.com/reader/full/13-architectural-design 9/19
Architectural Styles and Patterns
Style- Transformation imposed on the design of an entire system
- To establish a structure for all components of the system
- Sets of components and connectors, and constraints
Pattern- Scope is less broad (one aspect of architecture)
-
Describes how software will handle some aspect of its functionalityat the infrastructure level (e.g. concurrency)
- Address specific behavioral issues (e.g. how a real-time applicationhandles synchronization or interrupts)
9Software Engineering
7/31/2019 13 Architectural Design
http://slidepdf.com/reader/full/13-architectural-design 10/19
10Software Engineering
7/31/2019 13 Architectural Design
http://slidepdf.com/reader/full/13-architectural-design 11/19
Architectural Styles
11Software Engineering
7/31/2019 13 Architectural Design
http://slidepdf.com/reader/full/13-architectural-design 12/19
Architectural Styles (cont)
Data-centered architecture
Data-flow
Call and return
Object-oriented
Layered
12Software Engineering
7/31/2019 13 Architectural Design
http://slidepdf.com/reader/full/13-architectural-design 13/19
Architectural Patterns
A software architecture may have a numberof architectural patterns that address issuessuch as
- Concurrency (OS, task scheduler),
- Persistence (DBMS, app level),
- And distribution (broker pattern, e.g. CORBA).
13Software Engineering
7/31/2019 13 Architectural Design
http://slidepdf.com/reader/full/13-architectural-design 14/19
Organization and Refinement
Define a set of design criteria
How to assess an architectural style?
Control- How is it managed?
- Any control hierarchy?
- Role of components?
Data- How is it communicated between components?
- Flow is continuous or sporadic?
- Mode of data transfer?
14Software Engineering
7/31/2019 13 Architectural Design
http://slidepdf.com/reader/full/13-architectural-design 15/19
Architectural Context
Represents how the software interacts withentities external to its boundaries
- Superordinate systems
- Subordinate
- Peer-level
- actors
15Software Engineering
7/31/2019 13 Architectural Design
http://slidepdf.com/reader/full/13-architectural-design 16/19
Architectural Context Diagram
16Software Engineering
7/31/2019 13 Architectural Design
http://slidepdf.com/reader/full/13-architectural-design 17/19
In-class Exercise
Draw an ACD for your team project.
Software Engineering 17
7/31/2019 13 Architectural Design
http://slidepdf.com/reader/full/13-architectural-design 18/19
Refining the Architecture into
Components Begins with the classes from analysis model
If a conventional (non-OO) approach is chosen,can be derived from data flow model
Infrastructure domain (e.g. memory mgnt,communication, db, and task mgnt components)
“The structure of a software system provides the ecology in which
code is born, matures, and dies. A well-designed habitat allows for
the successful evolution of all the components in a software
system.”
R. Pattis
18Software Engineering
7/31/2019 13 Architectural Design
http://slidepdf.com/reader/full/13-architectural-design 19/19
Software Tools
Architectural Design tools model the overallsoftware structure by representingcomponent interfaces, dependencies and
relationships, and interactions.
- Adalon (www.synthis.com) – for Web-based components
- ObjectiF (www.microtool.com) – UML-based design tool for
component-based architectures (e.g. Coldfusion, J2EE, Fusebox)
- Rational Rose (www.rational.com)
19Software Engineering