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]