Tuesday, 19 February 2013

Architecture (or High-level) design, shaping your project path


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
  1. Software design (or problem definition)
  2. Division into sub-systems/packages (architecture (or high level) design)
  3. Division into classes within packages  (classes roles)
  4. Division into data and routines within classes (classes interface design)
  5. 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