Date post: | 09-Apr-2018 |
Category: |
Documents |
Upload: | sonali-panigrahi |
View: | 219 times |
Download: | 0 times |
of 30
8/7/2019 Software Architecture1
1/30
Software Architecture
8/7/2019 Software Architecture1
2/30
Engineering
Software Engineering
Systematic Study of software
Architect
Software Architecture
8/7/2019 Software Architecture1
3/30
INTRODUCTION
Architecture Business Cycle (ABC)
Software Engineer- Build system based on
Technical Requirements.
ARCHITECTURE CRUCIAL part ofDESIGN
8/7/2019 Software Architecture1
4/30
Software Architecture - Structure of
large software system
Implementation
Algorithms
Data Representation
Behavior and Interaction
S/W Architecture Fist step towarddesigning a system that has a
collection properties.
8/7/2019 Software Architecture1
5/30
Software Architecture is a Structure or Structure of thesystem
8/7/2019 Software Architecture1
6/30
8/7/2019 Software Architecture1
7/30
Why is learning knowledgeabout architecture important?
A software architecture is the
development product that gives thehighest return on investment withrespect to quality, schedule, and cost.
8/7/2019 Software Architecture1
8/30
Main contents
Introduction
Architecture Styles and Case Studies
Quality Architectural Patterns
Design Patterns
Designing and Documenting SoftwareArchitecture
8/7/2019 Software Architecture1
9/30
The Architecture Business Cycle Where Do Architectures Come
From?
Software Processes and theArchitecture Business Cycle
What Makes a "Good" Architecture?
8/7/2019 Software Architecture1
10/30
Software Architecture:
Definition The software architecture of a program or
computing system is the structure orstructures of the system, which comprisesoftware elements, the externally visibleproperties of those elements, and therelationships among them.
The architectural view of a system isabstract, distilling awaydetails ofimplementation, algorithm, and datarepresentation and concentrating on thebehavior and interaction of "black box"elements.
8/7/2019 Software Architecture1
11/30
Where Do Architectures Come
From?
An architecture is the result of a set
of business and technical decisions.
8/7/2019 Software Architecture1
12/30
Influences on thearchitecture
Architecture
System
Customersand End User
DevelopingOrganization
TechnicalEnvironment
ArchitectsExperience
Requirements
(Qualities)
Architects Influences
Architect
8/7/2019 Software Architecture1
13/30
8/7/2019 Software Architecture1
14/30
Architectures Are Influenced ByThe
Developing Organization
immediate business
long-term business
organizational structure
8/7/2019 Software Architecture1
15/30
Influenced ByThe Background And
Experience OfThe Architects experience
architect's education and training,
exposure to successful architecturalpatterns,
exposure to systems that haveworked particularly poorly orparticularly well.
8/7/2019 Software Architecture1
16/30
Architectures Are Influenced By
The Technical Environment
It includes standard industry
practices or software engineeringtechniques prevalent in the architect'sprofessional community.
8/7/2019 Software Architecture1
17/30
Ramifications ofInfluences on an
Architecture architects need to know and
understand the nature, source, and
priority ofconstraints
on the projectas early as possible
they must identify and activelyengage the stakeholders to solicit
their needs and expectations.
8/7/2019 Software Architecture1
18/30
Architecture Business Cycle
Architecture
System
Customersand End User
DevelopingOrganization
TechnicalEnvironment
ArchitectsExperience
Requirements
(Qualities)Architect
8/7/2019 Software Architecture1
19/30
The architecture affects the structureof the developing organization
architecture prescribes the units of
software that are the basis for thedevelopment project's structure.
8/7/2019 Software Architecture1
20/30
The architecture can affect the goalsof the developing organization
Successful system
8/7/2019 Software Architecture1
21/30
Process( Activities, Actions)
Recommendation
8/7/2019 Software Architecture1
22/30
The architecture can affect customer
requirements for the next system
Giving the customer the opportunity
to receive a system (based on thesame architecture) in a more reliable,timely, and economicalmanner thanif the subsequent system were to be
built from scratch.
8/7/2019 Software Architecture1
23/30
The process of system building willaffect the architect's experience
Successful or failed system
8/7/2019 Software Architecture1
24/30
A few systems will influence and actually change the softwareengineering culture
Technical environment in whichsystem builders operate and learn.
E.g. First relational databases, J2EE
8/7/2019 Software Architecture1
25/30
Architecture-Based Process Steps Create the business case for the system
Understand the requirements
Create or select the architecture
Represent and communicate thearchitecture
Analyze or evaluate the architecture
Implement the system based on the
architecture Ensure the implementation conforms to the
architecture
8/7/2019 Software Architecture1
26/30
What makes a Good Architecture ?
Same Requirements- 2 companies- DifferentArchitecture ---- Which is Good?
Fit for Some stated Purpose
Ex: C/S Architecture Financial mgmt. SystemNot for Avionics System
Should not be a Throw away Prototype
Thumb Rules:1. Process Recommendation2. Product Recommmendation
8/7/2019 Software Architecture1
27/30
Architecture Process (Activities)
Guidelines(Recomm..)Architecture from-
Single architect or small group withidentified leader
must have system technical requirementsand prioritized qualitative properties
must be well-documented (static andDynamic views) based on notation that all
can understand Architecture should be actively reviewed by
all stakeholders
8/7/2019 Software Architecture1
28/30
Architecture Process (Activities)
Guidelines(Recomm..) should be analyzed for maximum throughput
Should be of type incremental implementation,
useskeletalsystem can helps togrow
should result in specific resourcerestriction/allocation models (memory,bandwidth, time)
8/7/2019 Software Architecture1
29/30
Architecture Product (Structural)Guidelines(Recomm..)
Architecture should be -
Well-defined functional modules and well-defined interfaces
Quality attributes should be achieved usingwell-known architectural tactics specific to eachattribute
Never depend on a particular version of acommercial product or tool; make change
straightforward and inexpensive Module that produce data should be separate
from modules that consumes data
8/7/2019 Software Architecture1
30/30
Architecture Product (Structural)
Guidelines(Recomm..)
Parallel processing: well-defined processes andtasks that may not mirror module structure
Process or task assignment to processors mustbe easily changed, even at run-time
Consistently use a small number of simpleinteraction patterns