Survey of software architecture V0.0
See book: http://www.aosabook.org/en/index.html
[Complete this form for on particular chapter of Brown/Wilson book]
[Do not copy the parts in square brackets]
[Some parts of this form may be difficult to compete]
[Total length 5 pages or less, plus one page for appendix]
[Complete all parts. Mark as INC (incomplete) if need be]
Name of system: [Give name of system, that is, book chapter, e.g. Asterisk]
Reviewer: [Give your name]
Date: [Date of writing survey]
Author of software: [Who did the initial design and/or implementation?]
Author of book chapter: [From Brown/Wilson book, e.g., Russell Bryant]
Five star rating of book chapter: [Choose one rating:
1 ***** Very valuable. Easy to follow
2 **** Good to read. Reasonably clear
3 *** Some good ideas. Reasonably clear
4 ** Some good ideas but not that easy to follow
5 * Not easy to follow]
Purpose of system: [About ½ page]
Basic metrics
KLOC: [Count comments & blank lines]
Project start-up: [When was project initiated?]
Number of major releases: [How many]
Number of developers: [Average]
Size of user community or number of installations:
Major stakeholders:
Use of concurrency: [If used, how used?]
Implementation language: [or languages]
Supporting software: [System relies extensively on what software?]
High level architecture
Diagram of software architecture
[At most one page]
[Box and arrow or wall of bricks. Clarify meaning of any arrows or box shapes]
High level scenarios
[One or two of these. Base on architecture diagram. Show large scale action of system.]
[Describe the flow]
Data structures or algorithms [Any that are important to the overall architecture]
Control flow and/or data key to the architecture if any
Architectural style: [Style or styles. What styles used in the software? How used?]
Major evolutionary changes: [If any. How has architecture changed over time?]
Performance bottlenecks: [What if any potential choke points?]
Real time: [Parts of system critical for fast enough response?]
Notation for architecture: [What notation(s) or what kind of diagram(s), if any, were used in describing or designing the software architecture]
Methodology: [What if any methodology was used in development, such as agile, clean room, RUP, spiral, waterfall, scrum, or “not clear”; see http://en.wikipedia.org/wiki/Software_architecture ]
Appendix:
Kruchten’s eight context attributes applied to Brown/Wilson systems
Kruchten attributes described in his slides 17-24 of
https://files.me.com/philippe.kruchten/sbz0ma
Also in: https://files.me.com/philippe.kruchten/1q00nw
[For each attribute, give a ranking, e.g., M for Medium.
[See Kruchten slide 27]
[Use “NA” for “not applicable. Use “UnK” for “Unknown”]
[Do not copy the parts in square brackets]
1. Size: [S=10KOC, M=100KLOC, L=1MLOC, XL=10MLOC]
2. Criticality: [Lo=e.g., game, Med=e.g., company critical, Hi=e.g. safely critical, XHi=disaster critical]
3. Age of system: [S=1yr, M=5yr, L=10yr, XL=20yr]
4. Rate of change: [Lo, Med, Hi]
5. Business model: [Commercial, bespoke, in-house, open source]
6. Stable architecture: [Lo=stable architecture, Med, Hi=major ongoing change]
7. Team distribution: [Lo=all in walking distance, Med=Occasional physical meetings, Hi=Meet only electronically, VH=Diff times zones or diff natural languages]
8. Governance: [Lo=Small intimate team, Med=Distinct design/testing groups, Hi=Distinct separate management and design teams, XHi=Formalized such as working to standards or precise specs]