+ All Categories
Home > Technology > Software architecture simplified

Software architecture simplified

Date post: 28-Nov-2014
Category:
Upload: prasad-chitta
View: 1,530 times
Download: 0 times
Share this document with a friend
Description:
 
20
Software Architecture Simplified By Prasad Chitta Techno Functional Consultant
Transcript
Page 1: Software architecture simplified

Software Architecture Simplified

By Prasad Chitta

Techno Functional Consultant

Page 2: Software architecture simplified

Agenda

Section1 - Foundation

Section2 - Styles

Section3 - Standards

Page 3: Software architecture simplified

Software Architecture Foundation

• What is “software architecture”– What is Software?– What is Architecture?

• Why “Software Architecture” > software + architecture?

• How “Software Architecture” contrasts and compares with “Building Architecture”

Page 4: Software architecture simplified

Software, Architecture

• Software = that acquires, processes or presents “data” – Data = observed fact – Appears as system, application, component, platform,

module etc., • Architecture = key decisions related to building

something NEW– Vitruvius defines three principles - firmitas, utilitas,

venustas (durability, utility, beauty)– Chiefly describes “structure of components” and their

“inter-relationships”

Page 5: Software architecture simplified

Software Architecture defined• Architecture is the fundamental organization of a system embodied in its

components, their relationships to each other, and to the environment, and the principles guiding its design and evolution. [IEEE 1471]– A system is a collection of components organized to accomplish a specific function

or set of functions. The term system encompasses individual applications, systems in the traditional sense, subsystems, systems of systems, product lines, product families, whole enterprises, and other aggregations of interest. A system exists to fulfill one or more missions in its environment. [IEEE 1471] • A mission is a use or operation for which a system is intended by one or more stakeholders

to meet some set of objectives. [IEEE 1471]– A stakeholder is an individual, team, or organization (or classes thereof) with interests in, or concerns

relative to, a system. [IEEE 1471]

– The environment, or context, determines the setting and circumstances of developmental, operational, political, and other influences upon that system. [IEEE 1471]

Page 6: Software architecture simplified

Software vs. BuildingsSoftware Architecture Building Architecture

Even after realization software is still invisible!

After realization building is visible

Durability means capability to adopt the change

Durability means capability to withstand the change

Software is dynamic and involves behavior Buildings are static (no behavior!)

Aesthetics of software architecture appear in non functional attributes of the software

Aesthetics of a building as well are non-functional

Goal is to achieve the purpose / function of the software in most elegant manner

Same here…

Multiple viewpoints from different stakeholders

Same here…

Page 7: Software architecture simplified

Viewpoints

Software

Application (modules)

Business process (logical /

functional)

Information flow (data)

Deployment (physical)

A “Software Architecture” describes static and dynamic aspects of a system from multiple view points for a common understanding between all the stakeholders involved.

Page 8: Software architecture simplified

Agenda

Section1 - Foundation

Section2 - Styles

Section3 - Standards

Page 9: Software architecture simplified

Architectural Styles – a list• Software is all about “data” and its

“processing”• Data flow Styles include

– Batch Sequential– Pipes and filters

• Data Centered Styles– Repository– Blackboard

• Virtual Machine– Interpreter– Rule based

• Call & Return– Main & Sub program– Object oriented– Layered

• Independent Components– Event Driven– Communicating processes– Messaging Systems

• Publish Subscribe style– Peer to peer

– Service oriented– Shared nothing – Etc.,

• Combining these basic styles, heterogeneous and hierarchical architectural styles can be derived

Page 10: Software architecture simplified

Scenarios for Creating Architecture

• Descriptive Architecture– “As is”– Most of the times, a system exists, but the

architecture is not available in a usable format. • Prescriptive Architecture– “To be”– A reference model is taken and style applied to

create a reference architecture, then a software architecture and a system architecture are derived from it.

Page 11: Software architecture simplified

But, Why?

• Non functional Properties visible at runtime

Performance

• Overall System security and compliance

Security

• Other properties like portability, flexibility, testability etc.,

Portability

Creating an architecture considers the “quality attributes” beyond functionality and usability. For the defined properties, different styles provide proven and predictable results.

Page 12: Software architecture simplified

Good Architecture

• Focus on significant decisions • Balances the conflicting stakeholder needs• Optimizes available resources • Considers scenarios from multiple view points

• And most importantly – evolves with the environment!

Page 13: Software architecture simplified

Agenda

Section1 - Foundation

Section2 - Styles

Section3 - Standards

Page 14: Software architecture simplified

Standards, Frameworks, Methodologies, …

• Now we know, Software Architects produce “models” from multiple viewpoints of a software considering various functional and non-functional properties of the system.

• They use some well known styles, patterns which have proven solutions for the common problems within the domain of software solutions

• The overall process adds value to either building a new software or modifying an existing software within an enterprise.

• That means, multiple stakeholders need to understand the

architecture consistently across the globe in larger organizations / enterprise.

Page 15: Software architecture simplified

List of Standards

• ISO 1471• TOGAF• DoDAF• Etc.,

• Standards are good they give consistency of notation • Standards can be “open” or “closed i.e, proprietary” • Standards sometimes hinder the “creativity”

Page 16: Software architecture simplified

Framework, methodology

• A framework provides skeletal structure for developing, documenting and visualizing the architecture like templates etc.,

• Architecture development methodologies give directives to build the architectures or review the architectures by providing the checklists etc.,

Page 17: Software architecture simplified

Agenda

Section1 - Foundation

Section2 - Styles

Section3 - Standards

Page 18: Software architecture simplified

Human Aspects

• Practicing software architecture is just not a science or engineering! It is an ART as well.

• Soft skills like interpersonal skills are very important for an Architect

• Software Architecture influences and influenced by the organization structure

• Sometimes it becomes political as well….

Page 19: Software architecture simplified

Case Studies

• Developing an elastic enterprise architecture for a green field pensions provider on a pay per policy model

• As is and To be architecture for a de-merger of metering business from a gas utility organization

Page 20: Software architecture simplified

Thank YouReach Me on: http://www.linkedin.com/in/prasadchittaBlog: http://technofunctionalconsulting.blogspot.com

Software Architecture is the art and science of realizing optimal information processing within the given context.

It is a challenging career option….


Recommended