The architecture alone cannot decide the quality of a software system!
Venky Karukuri
#softwarearchitect #securityevangelist #teacher #author #investor #fitness #arenapolo
Keep in mind the main objective of the system you are architecting/developing, and you can skew the system design to satisfy this requirement for a more extended period.
For example,?
If your system requires high performance, then you need to pay attention to how elements behave over time, how they use resources, and the frequency and volume of inter-element communication.
If modifiability is essential, you must carefully consider how elements are assigned responsibilities so that changes only affect a small number of those elements. (Ideally, each change would affect only one element.)
If your system must be highly secure, then you must manage and protect inter-element communication and control which elements are allowed to access which information; specialized features (such as an authorization mechanism) may also need to be introduced into the architecture.
If you believe that scalability will be important to the success of your application, you need to localize the use of resources to facilitate the introduction of?higher-capacity replacements, and you should avoid hardcoding resource limits.
领英推荐
If your projects need the ability to deliver incremental subsets of the system, you must carefully manage inter-component usage.
It is necessary to restrict inter-element coupling if you wish to reuse elements from your system in other systems so that when you extract an element, it does not come out with too many attachments to its current environment.
The software architecture plays an essential role in achieving the desired quality of a system but is not enough to guarantee it.?
Poor decisions in subsequent stages of development can erase the advantages of an excellent architectural design.?
It's often joked that the architecture brings potential success, and implementation undermines it.?
System quality is determined by choices made at every life cycle step, from architectural design to coding. Therefore, it isn't solely defined by an architectural blueprint.
Architecture is necessary, but it is not sufficient to ensure quality. Design, implementation, and deployment must be considered to achieve quality attributes. A quality attribute is not entirely dependent on design, nor is it entirely dependent on implementation or deployment. To achieve satisfactory results, both the big picture (architecture) and the details (implementation) need to be correct.