- Architectural perspective addresses the overall shape of the application
- Project perspective addresses the construction of the application
- The staged delivery perspective addresses the release of the application
- Highest level breakdown of a system into parts
- Decisions that are hard to change
- Architectural stage involves important decisions
- Design stage involves detailed plans for writing the application
- Implementation stage involves writing code
The author talks about design patterns and how they help at architecture level. The author then talks about three methods of coding a large project:
- Breadth-First: In this method, the entire skeleton of the application is built without any details. The author enlists following advantages and disadvantages of the approach:
- This method ensures that everything in architecture is covered.
- It demonstrates overall flow of application early in coding cycle.
- Looking at the skeleton, customer's expectation for schedule may become unrealistic.
- A team of developers are difficult to manage in this approach.
- Depth-First: In this approach, one part of the application is completely developed before moving on to anything else. The author enlists following advantages and disadvantages for the approach:
- The developer can focus on just one piece of code for its issues.
- A team of developers can work on separate components.
- Architecture will not be tested till late in the development cycle.
- The complete application flow cannot be determined till the end of the development.
- Mixed Models: The author suggests to take a mixed approach since most products have some UI component which can be developed using breadth-first approach and the rest of the components can be developed using depth-first approach.
- The Beta-Test approach: This is used by Microsoft where there are several targets like
- Alpha
- Beta 1
- Beta 2
- Release Candidate
- Release
- The XP approach: This involves making a series of small releases with high quality bar. Releases are spaced close to one another with very small functionality added above the previous release.
No comments:
Post a Comment