Top Banner
© Quovantis Technologies Pvt. Ltd. Principles of Software Architecture
13

Principles of software architecture

Jun 24, 2015

Download

Software

Quovantis

This presentation describes all the attributes one needs to consider before architecting and designing a solution. It goes over all the perspectives an architect has to take like Reliability, Flexibility, Maintainability etc. of a solution before putting the functional architecture in place.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Principles of software architecture

© Quovantis Technologies Pvt. Ltd.

Principles of Software Architecture

Page 2: 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

Page 3: Principles of software architecture

© Quovantis Technologies Pvt. Ltd.

Perspectives

Solution Architecture

Business/

Trends

IT Needs

Requirements

3

Page 4: Principles of software architecture

© Quovantis Technologies Pvt. Ltd.

Solution Architecture Strategy

Understand

Requirements

Suggest Technology Stack

Create Application Architectur

e

Create Developm

ent Guidelines

Develop &

Stabilize

4

Page 5: Principles of software architecture

© Quovantis Technologies Pvt. Ltd.

Architectural Attributes

Maintainability

Performance

Scalability

Reliability

Security

Flexibility

5

Page 6: Principles of software architecture

© Quovantis Technologies Pvt. Ltd.

Maintainability

ModularizationSingle Responsibility PrincipleOpen-Closed PrincipleDependency Inversion Principle

6

“The aptitude of a system to undergo repair and evolution.”

Page 7: Principles of software architecture

© Quovantis Technologies Pvt. Ltd.

Performance

Caching – W3Asynchronous BehaviorCoarse Grained InterfacesData PartitioningData Structure and Algorithm DesignMinimize ReflectionEfficient Resource Management

7

“The responsiveness of the system”

Page 8: Principles of software architecture

© Quovantis Technologies Pvt. Ltd.

Scalability

LayeringLoose CouplingStateless DesignData PartitioningOut of Process Caching/Replicated Cache

8

“The ability to maintain performance while system demand increases”

Page 9: Principles of software architecture

© Quovantis Technologies Pvt. Ltd.

Reliability

ClusteringRobustnessServer MonitoringGeographical Monitoring

9

“The ability of the system to keep operating over time”

Page 10: Principles of software architecture

© Quovantis Technologies Pvt. Ltd.

Security

10

Secure CommunicationsAuthenticationAuthorizationInput ValidationAuditingThreat Modeling

STRIDEDREAD

“The system’s ability to resist unauthorized attempts at usage”

Page 11: Principles of software architecture

© 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”

Page 12: Principles of software architecture

© Quovantis Technologies Pvt. Ltd.

Trade-Offs

12

Page 13: Principles of software architecture

© Quovantis Technologies Pvt. Ltd.

Thank you!

Presented By

Tarun Kohli

http://www.quovantis.comhttp://blogs.quovantis.com