Principles of software architecture

Preview:

DESCRIPTION

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.

Citation preview

© 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

Recommended