0% found this document useful (0 votes)
137 views30 pages

Software Architecture1

This document discusses software architecture and provides guidelines for creating good architecture. It defines software architecture and explains that architecture is influenced by requirements, stakeholders, the developing organization, architects' experience, and the technical environment. The architecture business cycle shows how architecture affects and is affected by these factors. The document provides recommendations for the architecture process, including documenting and reviewing the architecture, and guidelines for architectural products, such as having well-defined modules and interfaces.

Uploaded by

Sonali Panigrahi
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
137 views30 pages

Software Architecture1

This document discusses software architecture and provides guidelines for creating good architecture. It defines software architecture and explains that architecture is influenced by requirements, stakeholders, the developing organization, architects' experience, and the technical environment. The architecture business cycle shows how architecture affects and is affected by these factors. The document provides recommendations for the architecture process, including documenting and reviewing the architecture, and guidelines for architectural products, such as having well-defined modules and interfaces.

Uploaded by

Sonali Panigrahi
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 30

Software Architecture

Engineering

Software Engineering

Systematic Study of software

Architect

Software Architecture
INTRODUCTION

 Architecture Business Cycle (ABC)

Software Engineer- Build system based on


Technical Requirements.

ARCHITECTURE – CRUCIAL part of DESIGN


Software Architecture - Structure of
large software system

 Implementation
 Algorithms
 Data Representation
 Behavior and Interaction

S/W Architecture – Fist step toward


designing a system that has a collection
properties.
Software Architecture – is a Structure or Structure of the

system
Why is learning knowledge
about architecture important?

 A software architecture is the


development product that gives the
highest return on investment with
respect to quality, schedule, and cost.
Main contents
 Introduction
 Architecture Styles and Case Studies
 Quality
 Architectural Patterns
 Design Patterns
 Designing and Documenting Software
Architecture
The Architecture Business Cycle 
 Where Do Architectures Come
From?    
 Software Processes and the
Architecture Business Cycle 
 What Makes a "Good" Architecture?
Software Architecture:
Definition
 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.
 The architectural view of a system is
abstract, distilling away details of
implementation, algorithm, and data
representation and concentrating on the
behavior and interaction of "black box"
elements.
Where Do Architectures Come
From?

 An architecture is the result of a set


of business and technical decisions.
Influences on the
architecture
Architect’s Influences
Customers
and End User
Requirements
(Qualities)
Developing Architect Architecture
Organization

Technical System
Environment

Architect’s
Experience
Architectures Are Influenced By
System Stakeholders
System Properties like:

 Performance, Reliability,
 Availability, Platform compatibility,
 Memory utilization, Network usage,
 Security, Modifiability,
 Usability and Interoperability with
other systems
Architectures Are Influenced By The
Developing Organization

 immediate business
 long-term business
 organizational structure
Influenced By The Background And
Experience Of The Architects
 experience
 architect's education and training,
exposure to successful architectural
patterns,
 exposure to systems that have
worked particularly poorly or
particularly well.
Architectures Are Influenced By The
Technical Environment

 It includes standard industry


practices or software engineering
techniques prevalent in the architect's
professional community.
Ramifications of Influences on an
Architecture
 architects need to know and
understand the nature, source, and
priority of constraints on the project
as early as possible
 they must identify and actively
engage the stakeholders to solicit
their needs and expectations.
Architecture Business Cycle

Customers
and End User
Requirements
(Qualities)
Developing Architect Architecture
Organization

Technical System
Environment

Architect’s
Experience
The architecture affects the structure
of the developing organization

 architecture prescribes the units of


software that are the basis for the
development project's structure.
The architecture can affect the goals
of the developing organization

 Successful system
Process( Activities, Actions)
Recommendation
The architecture can affect customer
requirements for the next system

 Giving the customer the opportunity


to receive a system (based on the
same architecture) in a more reliable,
timely, and economical manner than
if the subsequent system were to be
built from scratch.
The process of system building will
affect the architect's experience

 Successful or failed system


A few systems will influence and actually change the software
engineering culture

 Technical environment in which


system builders operate and learn.
 E.g. First relational databases, J2EE
Architecture-Based Process Steps
 Create the business case for the system
 Understand the requirements
 Create or select the architecture
 Represent and communicate the
architecture
 Analyze or evaluate the architecture
 Implement the system based on the
architecture
 Ensure the implementation conforms to the
architecture
What makes a Good Architecture ?

Same Requirements- 2 companies- Different


Architecture ---- Which is Good?
Fit for Some stated Purpose

Ex: C/S Architecture – Financial mgmt. System


Not for Avionics System

Should not be a ‘Throw away Prototype’

Thumb Rules:
1. Process Recommendation
2. Product Recommmendation
Architecture Process (Activities)
Guidelines(Recomm..)
Architecture from-
 Single architect or small group with
identified leader
 must have system technical requirements
and prioritized qualitative properties
 must be well-documented (static and
Dynamic views) based on notation that all
can understand
 Architecture should be actively reviewed by
all stakeholders
Architecture Process (Activities)
Guidelines(Recomm..)
 should be analyzed for maximum throughput

 Should be of type incremental implementation,


use ‘skeletal’ system can helps to ‘grow’

 should result in specific resource


restriction/allocation models (memory,
bandwidth, time)
Architecture Product (Structural)
Guidelines(Recomm..)

Architecture should be -
 Well-defined functional modules and well-
defined interfaces
 Quality attributes should be achieved using
well-known architectural tactics specific to each
attribute
 Never depend on a particular version of a
commercial product or tool; make change
straightforward and inexpensive
 Module that produce data should be separate
from modules that consumes data
Architecture Product (Structural)
Guidelines(Recomm..)

 Parallel processing: well-defined processes and


tasks that may not mirror module structure

 Process or task assignment to processors must


be easily changed, even at run-time

 Consistently use a small number of simple


interaction patterns

You might also like