Classic Movies and Books

Learn Software Development

All about the processes involved in software development

Search this site
Google
 

Need for software architecture design

Filed Under Techniques, Design, Architecture, Terms, Prototyping, Development, Process, Model, Software | Posted on September 23, 2007




Why do you need to do the complex and time consuming process of architecture design ? Are the benefits worth it ?

Poorly designed architecture affects an application throughout its lifetime and can result in inestimable costs. Large systems architecture was developed as a way to handle systems too large for one person to conceive of, let alone design. Systems of this size are rapidly becoming the norm, so architectural approaches and architects are increasingly needed to solve the problems of large systems. In addition, software architecture, when done right, enables the software system to be robust and scalable.
Because architecture appears early in a product‘s lifetime, getting it right sets the stage for everything to come œ development, integration, testing, and modification.
Software architecture comprises the earliest design decisions for a system and, consequently, they underlie subsequent decisions and are the most difficult to modify.

Software architecture contributes to competitive advantage in two primary ways:
* it provides the technology platform that supports the product characteristics and development processes which differentiate a business from its competitors
* it helps address system complexity by breaking it down into a design that can be easily understood and sets the base for further detailed design

Additionally, the benefits of having architectural guidelines or a product line architecture in place before the project’s inception are threefold:
* First, the architectures serve as a guideline for planning and scheduling projects. Having some basic services defined and in place (for example, a single-sign-on service) makes building new services a lot faster.
* Second, the architectural guidelines provide a framework for discussing possibilities such as open interfaces (APIs), mobile usage, and open source components or software. The architecture gives your company a better foundation for proceeding with development.
* And third, the architecture serves as a framework for discussion with subcontractors. Having set architectural guidelines makes their offers similar and easier to manage and compare.

Overall, some of the benefits of having a good architectural plan during the development process are:
1. Before project starts
- Having an enterprise architecture provides a good starting point to approach projects, saving time and effort
- Planning for projects is easier
- A past history of use in architecture in projects leads to a much faster ramp-up of projecting and estimation
2. When project starts
- Helps in the project requirements finalization through encouraging prototypes
- Increases the potential for component reuse and implementing best practices
- Encourages much better communication between the stakeholders
3. At the design phase
- Provides a solid foundation for the design process
- Serves as a manual for design decisions
4. During the code development process
- Ensures that people writing the code are conversant with how their code fits in the system
- Enables simultaneous implementation of different parts of the system
- Serves to enable quick changes by minimizing alterations and impact on the system
5. For testing
- Enables the testing team to prepare the test bed, test data and plan properly
- Enables testers to understand the workflows inside the system in a much better way


Leave a Reply