The Architecture Design Concept of Software Engineering

Posted : January 26, 2010 by Michael, Category: Architects, software

As a software developer the similarities between how we build and develop the software and how architects design buildings has always struck me. In this blog, I’d like to talk about how the architecture design concept of software engineering.

What is Software Architecture?

The software architecture is a structure which comprises of different elements, the external visible properties of these elements and relationships among them. It’s the organization process of defining a solution that meets all of the technical and operational requirements. It involves a series of decisions on a wide range of factors such as quality, performance, maintainability and overall success of the application.

Why is Architecture Important?

Like a complex building structure, software must have a solid foundation. Failing to consider key scenarios, design for common problems or to predict the long term consequence of a key decision can put the development work at risk. Poor architecture can make the software unstable, produce more bugs during coding phase and it is hard to support development for future business requirements.

The architecture design is an important phase of the whole development process; full consideration of user requirements, business goal and system ability, it draws a blueprint for the later work. At this stage, you should outline all the key scenarios in great details and identify all the possible pros and cons of each software attribute.

We should consider high level concerns instead of implementation details when designing architecture:

• How will the user be using the application?
• How the features of the application will benefit the user?
• How can the application be designed to be maintainable to meet the development schedule?

To understand the user requirements is the key to good architecture design, the software is just a service product which offers convenience and efficiency, all the design should be based on the consideration of those two factors.

The Goals of Architecture

An ideal architecture should be a perfect conversion between business requirements and technique requirements by understanding user cases and then defining a clear and neat way to implement those requirements by programming the software.

A good design is sufficiently flexible to be able to handle all of the user case studies and scenarios, both functional and quality requirements, efficient in implementation details.

The Principles of Architecture Design

Design the architecture with evolution in mind so that it will be able to adapt to requirements that are not fully known at the start of the design process, do not try to over engineer the architecture, and make assumptions that you can’t verify.

Instead you should keep your options open for future changes, identify the foundational parts of the architecture that represent the greatest risk if you get them wrong.

Key Architecture Principles

• Building software for change instead of building to last. There are always new requirements and feedbacks.
• Identifying critical decisions. Identify the areas where mistakes and further changes are most often made, getting these key engineering decisions right the first time so the design is more flexible.

Start with a base-line architecture to create the big picture, and then evolve the details and iteratively test and improve the architecture. Do not try to get every tiny detail right on the first attempt, get the big decision right first, and then focus on the details.

Post to Twitter Tweet This Post



Comments (1)


[...] more from the original source: IES » » The Architecture Design Concept of Software Engineering Connect and [...]

Leave a reply

You must be logged in to post a comment.

Copyright © 2009 Integrated Environmental Solutions Limited. All rights reserved