Thursday 7 November 2013

Why Software design and software architecture matters?

Why Software design and software architecture matters?


1. Maintainability, changeability, evolution and modifiablility, agility, software process, iterative and incremental development, support IID/Agile software development.


2. Extensibility and growth-path as the result of Modularity, support IID/Agile software development.


3. Testability, Unit testing, UI based testing, Functional testing, Automated testing, TDD, support IID/Agile software development.


4. Re usability of Software Design (attacks the essential complexity of software development), support IID/Agile software development.


5. Separation of concerns, Loose Coupling and High Cohesion, Modularity, support IID/Agile software development.


6. Crisp clear abstractions or simplicity, raising the level of abstraction ( deals with the accidental complexity of software development), visibility or vocabulary  for reasoning about the software design


7. Balanced distribution of responsibilities among the classes or objects


These seven factors are the main focus points of the Design Principles and Design Patterns. Software should be really soft to change, extend, reuse and then test, this the whole point of OO Design Principles and Patterns

No comments:

Post a Comment