Software Architecture is a growing but still young discipline.
- Some common definitions of Software Architecture [Ref: Software Architecture in Practice, Second Edition by Len Bass; Paul Clements; Rick Kazman]:
- Architecture is high-level design
- Architecture is the overall structure of the system
- Architecture is the structure of the components of a program or system, their interrelationships, and the principles and guidelines governing their design and evolution over time
- Architecture is components and connectors
- Why is Software Architecture important?
- As Software Architecture provides a high level abstraction/view of the system/software, it helps the stakeholders in mutual understanding, negotiation, consensus, and communication of the system/software
- Software Architecture helps to play with the early design decisions and adjust before it’s too late to modify/change the design decisions. Early design decisions influence the total SDLC and are the most difficult to get correct. Mistakes in the early design decisions are hard to be recovered later.
- Once a successful software architecture is developed, the architecture can be re-used for other systems (similar).
- How software architecture and early design decisions affect the total SDLC?
- Using Software Architecture, you can define the constraints on software implementation
- Software Architecture can also determine the structure of the development and management groups
- Software architecture can enable/disable the quality requirements of the system/software. If you need a scalable system, your architecture should address/reflect this, and show/define how to achieve this, otherwise your system may end up being not scalable
- System qualities can be determined by studying the software architecture
- Software Architecture will help you to analyze the system and change, the change management becomes easy
- Software Architecture helps in more accurate cost and schedule estimates
- Architectural Structures and Views
- Module structures: Here the architecture is represented as modules. The modules are the implementation units
- Component-and-connector structures: Here the elements are the runtime components. Connector represents the interaction among the components.
- Allocation structures: Shows the relationship between the software elements and the elements in one or more external creation/execution environments.
- A Module based structure includes: Decomposition, Uses, Layered, Class, or generalization
- A Component-and-Connector structure includes: Process, or communicating processes, Concurrency, Shared data, or repository, Client-server
- An Allocation structure includes: Deployment, Implementation, and Work assignment
[Ref: Software Architecture in Practice, Second Edition by Len Bass; Paul Clements; Rick Kazman]:
From: http://sitestree.com/?p=5071
Categories:43
Tags:
Post Data:2011-02-15 04:38:23
Shop Online: <a href='https://www.ShopForSoul.com/' target='new' rel="noopener">https://www.ShopForSoul.com/</a>
(Big Data, Cloud, Security, Machine Learning): Courses: <a href='http://Training.SitesTree.com' target='new' rel="noopener"> http://Training.SitesTree.com</a>
In Bengali: <a href='http://Bangla.SaLearningSchool.com' target='new' rel="noopener">http://Bangla.SaLearningSchool.com</a>
<a href='http://SitesTree.com' target='new' rel="noopener">http://SitesTree.com</a>
8112223 Canada Inc./JustEtc: <a href='http://JustEtc.net' target='new' rel="noopener">http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning) </a>
Shop Online: <a href='https://www.ShopForSoul.com'> https://www.ShopForSoul.com/</a>
Medium: <a href='https://medium.com/@SayedAhmedCanada' target='new' rel="noopener"> https://medium.com/@SayedAhmedCanada </a>