The main scope or target of systematic architecture development is to provide a good understanding of architecture to be developed with reasoning (to give clear answers and argumentation), enable the better understanding where optimization (e.g. Use Case implementation options) can be done, and not last and least provide the platform independence with modularity giving a clear definitions and reasoning why divisioning between modules is done the way it’s done.
A good architecture is a “tool”, which will help and support engineering operations providing answers with reasoning (why, what, how) to the questions related to the system concerns, requirements, functionalities and objectives!
A Good Architecture Work Helps and Supports to...
- Prioritize given system requirements, functionalities and objectives for development purposes that system can be optimized according to “Key Requirements and Use Cases”
- Analyze requirements and enables to make tradeoffs among requirements of differing priority, if seen necessary
- Validate how given system requirements, functionalities and objectives are met providing answers with reasoning (why, what, how)
- Increase engineering development efficiency enabling flexible distribution/partitioning of the system
- Increase engineering efficiency by reusable system components
- Optimize system to the various platform/product variants
- Reduce the cost of modifications (maintenance)
- Study different implementation alternatives (variants) and evolution
- Reuse design documents, code and other system work products
- Reuse and integration with legacy and third-party software (frameworks, class libraries, legacy and third-party applications)