what is software architecture.
after you defined your problem and get the right requirements, you need an overview of the whole system, so you want to define the main components and how they relate to each other.
you do this without considering detailed design of classes or any code implementation.
theses components could be distributed over several classes or one class in later design processes
How it differ from other design processes
Actually you have 5 different design level, architecture is the second in this process. and they are as follow
- Software design (or problem definition)
- Division into sub-systems/packages (architecture (or high level) design)
- Division into classes within packages (classes roles)
- Division into data and routines within classes (classes interface design)
- Internal routine design
you can summarize it in the next diagram
Typical components in design
As architecture concerned with big components, every software deigner have different perspectives of which components considered as High-Level and which can be just in the class design phase
however there are common components that many projects consider them as high-level related components like:
- business logic
- user interface design
- resource management
- security
- system scalability
- major areas to change
- error processing
this list can be a good start for any project components.
What to consider when start do architecture design
high-level architecture suited big projects that usually takes up to 6 months and more in construction.
the small and mid-sized project from 2-weeks to 5 months can skip this phase, and proceed to the class design process. as it can depend more on agile methods and UML diagrams to get quick overview of the whole system
as you can see architecture design has big impact on your project path. along with requirements, those two phases can decrease or decrease your project cost. so you must make sure you consider them before digging into code.
Salam,
M.Aleem

No comments:
Post a Comment