Software Architecture
A software architecture describes its major components, the relationship between the components and how they interact with each other. Software Architecture constitutes a relatively small model for how a system is structured and how its elements work together across transferrable systems. The earliest designs about a system is actually manifested with the help of a software architecture.
Software architecture explains the structure of a system while masking the implementation details. While software architecture focuses on how the elements and components within a system interact with one other, software design delves deeper into the implementation details of the system. Design concerns include the selection of data structures and algorithms, or the implementation details of individual components.
These earliest designs in the software architecture are difficult to get standardized as there may be frequent changes when designing and is also very difficult to change during the later part of development process. After designing the software architecture, the whole system can be decomposed into various modules or segments. Only by decomposing the whole system architecture: one can come up with the plan, number of units or resources needed, time, schedule, budget for the development of the whole system.
Software design includes all the major activities that aid in the transformation from software requirement specification to software implementation:
- Software requirements specification: This document describes the expected behavior of the system in the form of functional and non-functional requirements. These requirements should be clear, actionable, measurable, and traceable to business requirements. Requirements should also define how the software should interact with humans, hardware, and other systems.
- High-level design: The high-level design breaks the system’s architectural design into a less-abstracted view of sub-systems and modules and depicts their interaction with each other. This high-level design perspective focuses on how the system, along with all its components, implements in the form of modules. It recognizes the modular structure of each sub-system and their interaction among one another.
- Detailed design: Detailed design involves the implementation of what is visible as a system and its sub-systems in a high-level design. This activity is more detailed towards modules and their implementations. It defines a logical structure of each module and their interfaces to communicate with other modules.
Some organization find faults in their software applications as they fail to integrate the software architecture during the development and implementation process.
No comments:
Post a Comment