Transcript Document

An Automated Approach
to Robust Software Design
Using Architectural Styles
and Patterns
By Muzzammil Imam
1
Agenda
• Motivation
• Related Work
• Approach/Contributions
• Comparisons
• Case Study & Demo
• Conclusions/Results
2
Motivation
• Software architectures significantly impact software
project Success. [SHAW,1]
• Creating architectures is one of the most complex
activities during software development [GARLAN,2]
• “ Software architecting is a key factor in reducing cost,
improving quality, timely delivery against schedule, and
delivery against requirements.” [Peter Eeles, Senior IT
Architect, IBM]
• Surprisingly Architecture design is still derived
on Architects intuition and experience and
there is no methodological or systematic
support to guide that process effectively.
3
Related Work
• Architectural Styles and Pattern comparison
• Pairwise Comparison and Priority Vectors
• Weighted Super Matrix
• Analytic network process (ANP)
4
Approach / Contributions
• Realization of Optimization Problem
• Use of Genetic Algorithms for Optimization
• Use of Weighted Sum Method for prioritization
• Automating the selection of Architectural Patterns
• Automating the selection of Architectural Styles (Mixing)
5
Design Process
6
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Architectural Patterns
A total of 56 Architectural patterns are identified !
Usability
Security Maintainability Efficiency
Reliability
Layers
0
1
2
-1
1
MVC
2
0
-1
-1
0
PAC
1
0
2
-2
0
Reflection
0
0
2
-1
-2
Broker
1
1
1
0
0
7
Architectural Styles
There are more than 30 known Architectural styles !
Aggregation
Persistence
Streaming
Pipe &
Filter
-1
0
2
-1
1
0
ClientServer
2
2
-1
2
2
0
Blackboard
2
2
-1
0
-1
0
Layered
1
0
-1
-1
-1
1
Event-based
2
0
-1
Caching
1
Distribution
2
Secure
Communication
0
8
Case studies
• Meeting Scheduling System
Recommended: PAC, MVC Pattern?
Blackboard, Client-Server Style?
Dismissed: Layered Style?
• Cruise Control System
Recommended: Layers Pattern?
Event-based Style?
Dismissed: Layered Style?
9
Demo
10
Results
Recommended
Experts
ArchOPT
Style
Pattern
Style
Pattern
Meeting System
CS , BB
PAC,MVC
CS
PAC
Cruise Control System
Event
Layers
Event
Layers
Dismissed
Experts
ArchOPT
Style
Pattern
Style
Pattern
Meeting System
LS
Reflection
LS
Reflection
Cruise Control System
PF
Reflection
LS
Reflection
11
Conclusion
• Much work to be done!
• Similar tools would make great impact on the quality of 577
projects in particular and software projects in general.
• Genetic Algorithm show promising results by exceeding the
expectations in some cases.
12
References
1. SHAW M., CLEMENTS P.: ‘The golden age of software architecture’, IEEE Softw.,
2006, 23, (2), pp. 31 –39
2. GARLAN D.: ‘Software architecture: a roadmap’, in F I N K E L S T E I N A . ( E D . ) :
‘The future of software engineering’ (ACM Press, 2000), pp. 91–101
3.
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
4. Systematic selection of software architecture styles - IEEE
5. Leveraging Architecture Patterns to Satisfy Quality Attributes
http://www.cs.rug.nl/~paris/papers/ECSA07.pdf
6. http://www.users.muohio.edu/burgeje/SHARK_WangBurgeRevised.pdf
7. http://people.eecs.ku.edu/~saiedian/Teaching/Sp11/818/Lectures/compar
ing-arch.pdf
8. http://arxiv.org/ftp/arxiv/papers/1005/1005.4271.pdf
9. http://thesai.org/Downloads/Volume2No2/Paper%2017An%20Architectural%20Decision%20Tool%20Based%20on%20%20%20Sce
narios%20and%20Nonfunctional%20Requirements.pdf
13
Thank You!
14