© Quovantis Technologies Pvt. Ltd.
Principles of Software Architecture
© Quovantis Technologies Pvt. Ltd.
What is Architecture? The software
architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.
2
© Quovantis Technologies Pvt. Ltd.
Perspectives
Solution Architecture
Business/
Trends
IT Needs
Requirements
3
© Quovantis Technologies Pvt. Ltd.
Solution Architecture Strategy
Understand
Requirements
Suggest Technology Stack
Create Application Architectur
e
Create Developm
ent Guidelines
Develop &
Stabilize
4
© Quovantis Technologies Pvt. Ltd.
Architectural Attributes
Maintainability
Performance
Scalability
Reliability
Security
Flexibility
5
© Quovantis Technologies Pvt. Ltd.
Maintainability
ModularizationSingle Responsibility PrincipleOpen-Closed PrincipleDependency Inversion Principle
6
“The aptitude of a system to undergo repair and evolution.”
© Quovantis Technologies Pvt. Ltd.
Performance
Caching – W3Asynchronous BehaviorCoarse Grained InterfacesData PartitioningData Structure and Algorithm DesignMinimize ReflectionEfficient Resource Management
7
“The responsiveness of the system”
© Quovantis Technologies Pvt. Ltd.
Scalability
LayeringLoose CouplingStateless DesignData PartitioningOut of Process Caching/Replicated Cache
8
“The ability to maintain performance while system demand increases”
© Quovantis Technologies Pvt. Ltd.
Reliability
ClusteringRobustnessServer MonitoringGeographical Monitoring
9
“The ability of the system to keep operating over time”
© Quovantis Technologies Pvt. Ltd.
Security
10
Secure CommunicationsAuthenticationAuthorizationInput ValidationAuditingThreat Modeling
STRIDEDREAD
“The system’s ability to resist unauthorized attempts at usage”
© Quovantis Technologies Pvt. Ltd.
Flexibility
LayeringLoose CouplingSingle Responsibility PrincipleOpen-Closed PrincipleCode To InterfaceInterface Segregation Principle
11
“The ease with which a system can be modified for use in applications or environments other than those for which it was specifically designed”
© Quovantis Technologies Pvt. Ltd.
Trade-Offs
12
© Quovantis Technologies Pvt. Ltd.
Thank you!
Presented By
Tarun Kohli
http://www.quovantis.comhttp://blogs.quovantis.com