Title: Software Architecture
1Software Architecture
2??
- ??
- ??????
- ??
- ??
- ??
- ???????????
- ??????
- ?????
- (????????????)
3No silver bullet Frederick P. Brooks, Jr.
4There Is Nothing New Under the SUN.
Ecclesiastes 19-14
5??
- Architecture???????
- ( Design Pattern????????)
- ??Grady Booch???PPT
6Architecting a dog house
Can be built by one person Requires Minimal
modeling Simple process Simple tools
7Architecting a house
Built most efficiently and timely by a
team Requires Modeling Well-defined
process Power tools
8Modeling a house
9Architecting a high rise
10Early architecture
Progress - Limited knowledge of theory
11Modern architecture
Progress - Advances in materials - Advances
in analysis
Scale - 5 times the span of the Pantheon - 3
times the height of Cheops
12Forces in civil architecture
Kinds of loads - Dead loads - Live loads -
Dynamic loads
Avoiding failure - Safety factors -
Redundancy - Equilibrium
Any time you depart from established practice,
make ten times the effort, ten times the
investigation. Especially on a very large
project. - LeMessuier
13Dimensions of software complexity
Walker Royce
Higher technical complexity - Embedded,
real-time, distributed, fault-tolerant - Custom,
unprecedented, architecture reengineering - High
performance
Higher management complexity - Large scale -
Contractual - Many stake holders - Projects
Lower management complexity - Small scale -
Informal - Single stakeholder - Products
Lower technical complexity - Mostly 4GL, or
component-based - Application reengineering -
Interactive performance
14Forces in Software
Functionality
Cost
Compatibility
The challenge over the next 20 years will not be
speed or cost or performance it will be a
question of complexity. Bill Raduchel, Chief
Strategy Officer, Sun Microsystems
Our enemy is complexity, and its our goal to
kill it. Jan Baan
15The domain of architecting
Wojtek Kozaczynski
The why
The what
System Features
Architecture Qualities
Satisfies
Architecture
S/W Requirements
Constrain
Architecture Representation
System Quality Attributes
Technology
Produces
Defines
The how
The who
Follows
Architect
Process
Skills
Defines role
Organization
Stakeholders
16?????????
- The software architecture of a program or
computing system is the structure or structures
of the system, which comprise software elements,
the externally visible properties of those
elements, and the relationships among them. - -- Software Architecture in Practice
17????
- SA??????
- SA?rationale, constrains
- ??,??
- ????,????,????
- ?????????????
- ?
18??????
- ???????????
- 60??? ????
- 90???
- 90????
- 2000??
19????????
- ??????
- ??????????
- ??????
- ?????,?????,??/??,??????,????,???? ??
- (?????????)
- ?????????????
20????????????
- ????
- ???
- ?????
- ???
- ????
- ???????????,????
21????????????
- ????
- ??????(??,??)
- ???????????????
- ??????
- ????,????,????,????
22????????
- ??????????????????????????????????
- ??????????????
- Performance, Security, Availability,
Functionality, Usability - ???????
- Modifiability, Portability, Reusability,
Testability
23???????????????
- ???????
- ??????conformance
- ?????
- ??????(??7080)
- ????????????
- ????????
- ???????
24????
25??????,??????
26??????????
- ??????
- 41????
- ???????? (ADLs)
27??????
- ????????,????????,?????????????
- ?????,??
- ????(??????)
- ??????,?????(??,??)
- ????,????,?????
- ???(Hierarchical Decomposition),???
28(No Transcript)
29(No Transcript)
3041????
(Development View)
Scenarios
(Physical View)
31????(Logical View)
- ???????????
- ??(?),
- ??(??,??,????)
- ????????
32(No Transcript)
33????(Process View)
- ?? ?? ?????????
- ???????????????????????????????
34(??????)
35????(Implementation View)
- ???????????,????
- ?????????????????????????????????
36(No Transcript)
37????(Deployment View)
- ??????(Physical View)
- ?????????
- ??????????????????????
38(No Transcript)
39????(Use Case View)
- ??????????????(1)
- ?????
- ???????,??????????????????????
- ?????????,???????????
- ???????????
40(No Transcript)
41??????????
- Software Architecture in Practice ?????
- Module
- Decomposition, Uses/Layered, Class/generalization
- Component-and-Connector
- Processes, Concurrency, Shared data,
Client-Server - Allocation
- Deployment, Implementation, Work assignment
42?????
- ?????????????
- ?????????
- ???? ???? ????
- ???? ???? ????
- ???
43????????
- ?????,?????????????,????(?)???????????
- ????ADL?????CC??????
- ??ACME
- Component, Connector, Port, Role, System,
Representation, Rep-Map
44(No Transcript)
45(No Transcript)
46(No Transcript)
47????????
- ???????????
- ????????
- ????
- ??
- ??????
- ????
48??????????(Booch)
- ???? (????,???)
- ????????????
- ??????
- ?????,?,????
- ????????
- ????????
- ?????????
- ??????
- ????
???
????
????
????
????
49?????????????
- ?????????????????????
- ?????????????????????????
- ?????????????,???????
- Clements??????????????(Quality Attribute
Scenarios)????
50??????
51???
52????????
53???? ??????
54????? Undo
55????
56??????
- ???????????????,?????????????Forces?????????
- ????????
- ????? ???
- ????????????
- ???????????
57??,??,??
58?????
- ???(fault)??? ?? ??????
- ??
59??????
60????
- Software Architecture in Practice
?????????????????????????????
61??
- ????????????(????)???(???????)?????
- ?????,?????
62What is a Design Pattern?
- Christopher Alexander
- "Each pattern describes a problem which occurs
over and over again in our environment, and then
describes the core of the solution to that
problem, in such a way that you can use this
solution a million times over, without ever doing
it the same way twice"Ā - ?????????????
63??
- ?????
- Eric Gamma, John Vlissides, Richard Helm, Ralph
Johnson, Design Patterns Elements of ,
Addison-Wesley 1995. (GoF patterns) - Frank Buschmann, Regine Meunier, Hans Rohnert,
Peter Sornmerlad, Michael Stal, Pattern Oriented
Software Architecture VOL1 A System of Patterns.
VOL2 Patterns for Concurrent and Networked
Objects Wiley
64????
- Gang of Four???
- Creational, Structural, Behavioral
- POSA
- Architectural pattern, Design pattern, Idioms
65????
66?????
- ?????????????
- McIlroy 1969??????????????????
- 35???,????????????,???????
- ???????????????
- ?????????????????
67?????
- ???????????????
- ?????? T
- IBM?Thinkpad????? X T
- ???????????????????
- ?????
- A software product line (SPL) is a set of
software-intensive systems that share a common,
managed set of features satisfying the specific
needs of a particular market segment or mission
and that are developed from a common set of core
assets in a prescribed way.
68?????
- ?????????
- ??
- ????
- ??(?????)
- ?????(??????,?????)
- ??
- ??,??
- ??,??,??
- ????
- ??(????)
- ??
69?????
- ??(Scoping)
- ???????????
- ?????
- ??????
- ?????????????
- ???????????
- ???? (?)??? ???
- ????????????
70????????
71??
- ??????
- ???????????????????
- ???????,???????
- ????????????
- ???????????
- Scientific reasoning is nothing but the result
of starting from ordinary observations and
continuing with simple deductions -- only very
patiently and stubbornly
72????
- Mary Shaw, David Garlan. Software Architecture
Perspectives on an Emerging Discipline - LenĀ Bass, PaulĀ Clements, RickĀ Kazmand. Software
Architecture in Practice, Second Edition - Philippe Kruchten, The 41 View Model of
Architecture, IEEE Software, 12 (6), November
1995, IEEE. - Martin Fowler, David Rice, Matthew Foemmel,
Edward Hieatt, Robert Mee, Randy Stafford,
Patterns of Enterprise Application Architecture
73??! QA