SlideShare a Scribd company logo
Ms. Memoona Sami
Memoona.sami@faculty.muet.edu.pk
SOFTWARE DESIGN AND ARCHITECTURE
LECTURE 4,5
Disclaimer: The contents of this
presentation have been taken from
multiple sources, i.e. Books,
Research articles, Thesis
publications, and websites.
The material used in this presentation i.e., pictures/graphs/text, etc. is solely
intended for educational/teaching purpose, offered free of cost to the students for
use under special circumstances of Online Education due to COVID-19 Lockdown
situation and may include copyrighted material - the use of which may not have
been specifically authorised by Copyright Owners. It’s application constitutes Fair
Use of any such copyrighted material as provided in globally accepted law of many
countries. The contents of presentations are intended only for the attendees of the
class being conducted by the presenter.
Fair Use Notice
Outlines
Software Architectures
A-7E Avionics System: A Case Study in Utilizing Architectural Structures
Relationship to the Architectural Business life-cycle
Requirements and Qualities and Architectural Approach
The World Wide Web: A Case Study
Relationship to the Architectural Business life-cycle
Requirements and Qualities and Architectural Approach
Software Architectures
Architectural structures can be divided into three groups, depending on the broad nature of the elements
they show.
Module structures
Here the elements are modules, which are units of implementation.
There is less emphasis on how the resulting software manifests itself at runtime.
Module structures allow us to answer questions such as
What is the primary functional responsibility assigned to each module?
What other software does it actually use?
What modules are related to other modules by generalization or specialization (i.e., inheritance)
relationships?
Software Architectures
Component-and-connector structures
Here the elements are runtime components (which are the principal units of computation) and
connectors (which are the communication vehicles among components).
Component-and-connector structures help answer questions such as
What are the major executing components and how do they interact?
What are the major shared data stores?
Which parts of the system are replicated?
How does data progress through the system?
What parts of the system can run in parallel? How can the system's structure change as it executes?
Software Architectures
Allocation structures
Allocation structures show the relationship between the software elements and the elements in one
or more external environments in which the software is created and executed.
They answer questions such as
What processor does each software element execute on?
In what files is each element stored during development, testing, and system building?
What is the assignment of software elements to development teams?
Software Architectures
Software Architectures
Module-based structures
Decomposition.
The units are modules related to each other by the "is a submodule of " relation, showing how larger
modules are decomposed into smaller ones recursively until they are small enough to be easily
understood.
Modules in this structure represent a common starting point for design, as the architect enumerates
what the units of software will have to do and assigns each item to a module for subsequent (more
detailed) design and eventual implementation.
The decomposition structure provides a large part of the system's modifiability, by ensuring that likely
changes fall within the purview of at most a few small modules.
Software Architectures
Module-based structures
Uses
The units of this important but overlooked structure are also modules, or (in circumstances where a
finer grain is warranted) procedures or resources on the interfaces of modules.
The units are related by the uses relation.
One unit uses another if the correctness of the first requires the presence of a correct version (as
opposed to a stub) of the second.
The uses structure is used to engineer systems that can be easily extended to add functionality or
from which useful functional subsets can be easily extracted.
The ability to easily subset a working system allows for incremental development.
Software Architectures
Module-based structures
Layered
A system of layers, in which a layer is a coherent set of related functionality.
In a strictly layered structure, layer n may only use the services of layer n– 1.
Layers are often designed as abstractions (virtual machines) that hide implementation specifics below
from the layers above, engendering portability.
Software Architectures
Module-based structures
Class, or generalization
The module units in this structure are called classes.
The relation is "inherits-from" or "is-an-instance-of."
This view supports reasoning about collections of similar behaviour or capability (i.e., the classes that
other classes inherit from) and parameterized differences which are captured by subclassing.
The class structure allows us to reason about re-use and the incremental addition of functionality.
Software Architectures
Component-and-Connector
Process, or communicating processes
Deals with the dynamic aspects of a running system.
The units here are processes or threads that are connected with each other by communication,
synchronization, and/or exclusion operations.
The relation in this (and in all component-and-connector structures) is attachment, showing how the
components and connectors are hooked together.
The process structure is important in helping to engineer a system's execution performance and
availability.
Software Architectures
Component-and-Connector
Concurrency
This component-and-connector structure allows the architect to determine opportunities for
parallelism and the locations where resource contention may occur.
The units are components and the connectors are "logical threads."
A logical thread is a sequence of computation that can be allocated to a separate physical thread later
in the design process.
The concurrency structure is used early in design to identify the requirements for managing the issues
associated with concurrent execution.
Software Architectures
Component-and-Connector
Shared data, or repository
This structure comprises components and connectors that create, store, and access persistent data.
If the system is in fact structured around one or more shared data repositories, this structure is a
good one to illuminate.
It shows how data is produced and consumed by runtime software elements, and it can be used to
ensure good performance and data integrity.
Software Architectures
Component-and-Connector
Client-server
If the system is built as a group of cooperating clients and servers
The components are the clients and servers, and the connectors are protocols and messages they
share to carry out the system's work.
This is useful for separation of concerns (supporting modifiability), for physical distribution, and for
load balancing (supporting runtime performance).
Software Architectures
Allocation
Deployment
The deployment structure shows how software is assigned to hardware-processing and
communication elements.
The elements are software (usually a process from a component-and-connector view), hardware
entities (processors), and communication pathways.
Relations are "allocated-to," showing on which physical units the software elements reside, and
"migrates-to," if the allocation is dynamic.
This view allows an engineer to reason about performance, data integrity, availability, and security. It
is of particular interest in distributed or parallel systems.
Software Architectures
Allocation
Implementation
This structure shows how software elements (usually modules) are mapped to the file structure(s) in
the system's development, integration, or configuration control environments.
This is critical for the management of development activities and build processes.
Software Architectures
Allocation
Work assignment
This structure assigns responsibility for implementing and integrating the modules to the appropriate
development teams.
Having a work assignment structure as part of the architecture makes it clear that the decision about
who does the work has architectural as well as management implications.
The architect will know the expertise required on each team.
Also, on large multi-sourced distributed development projects, the work assignment structure is the
means for calling out units of functional commonality and assigning them to a single team, rather
than having them implemented by everyone who needs them.
Software Architectures
WHICH STRUCTURES TO CHOOSE?
Which ones should an architect work on? Which ones should the architect document? Surely not all of
them.
There is no shortage of advice. In 1995, Philippe Kruchten [Kruchten 95] published a very influential
paper in which he described the concept of architecture comprising separate structures and advised
concentrating on four to validate that the structures were not in conflict with each other and together
did in fact describe a system meeting its requirements. This is known as 4+1 approach (4 view points + 1
redundant view point).
Software Architectures
WHICH STRUCTURES TO CHOOSE?
Kruchten's four views follow:
Logical. The elements are "key abstractions," which are manifested in the object-oriented world as
objects or object classes. This is a module view.
Process. This view addresses concurrency and distribution of functionality. It is a component-and-
connector view.
Development. This view shows the organization of software modules, libraries, subsystems, and units
of development. It is an allocation view, mapping software to the development environment.
Physical. This view maps other elements onto processing and communication nodes and is also an
allocation view (which others call the deployment view).
A-7E Avionics System: A Case Study in
Utilizing Architectural Structures
The system was constructed beginning in 1977 for the naval aviators who flew the A-7E aircraft
and was paid for by the U.S. Navy.
The developing organization was the software engineering group at the U.S. Naval Research
Laboratory.
The developers were creating the software to test their belief that certain software
engineering strategies (in this case, information hiding and cooperating sequential processes)
were appropriate for high-performance embedded real-time systems.
The architects included one of the authors of this book and one of the leaders in the
development of software engineering principles, but the architects had little experience in the
avionics domain, although they did have access to other avionics systems and to experts in
avionics. There was no compiler available for the target platform.
A-7E Avionics System: A Case Study in
Utilizing Architectural Structures
Requirements and Qualities
A-7E Corsair II is a single-seat, carrier-based attack aircraft used by the U.S. Navy throughout the 1960s,
1970s, and 1980s. An earlier version, the A-7C, was among the very first production aircraft in the world
to be equipped with an onboard computer to help the pilot with navigation and "weapon delivery“.
In broad terms, the A-7E software is responsible for reading sensors and updating cockpit displays that
help the pilot drop weapons on a target.
The A-7E software does not actually fly the aircraft, as more modern avionics systems do.
A-7E Avionics System: A Case Study in
Utilizing Architectural Structures
Requirements and Qualities
The qualities that the software system was expected to have included real-time performance and
modifiability for expected changes.
Specifically, the performance requirements were stated in terms of updates per second of the A7-E's
displays and weapon delivery calculations.
The modifiability requirements dealt with making changes to the weaponry, the platform, the
symbology on the display, and the addition of new input through the keypad.
A-7E Avionics System: A Case Study in
Utilizing Architectural Structures
Architecture for the A-7E Avionics System
The architecture for the A-7E avionics system is centered around three architectural structures
Decomposition, a structure of modules
The unit of the decomposition structure is, of course, the module. A module may be thought of as defining a group of procedures,
some public and some private, plus a set of private data structures. The relation among modules in the decomposition structure is
"is-a-submodule-of" or "shares-a-secret-with."
Uses, a structure of modules
The decomposition structure carries no information about runtime execution of the software; you might make an educated guess
as to how two procedures in different modules interact at runtime, but this information is not in fact in the module decomposition.
Rather, the uses structure supplies the authoritative picture of how the software interacts.
Process, a structure of components and connectors
The software was implemented as a set of cooperating sequential processes that synchronize with each other to cooperatively use
shared resources.
A-7E Avionics System: A Case Study in
Utilizing Architectural Structures
Relationship to ABC
The World Wide Web: A Case Study in
Utilizing Architectural Structures
Show the elements of the ABC, applied to the WWW initial proposal approved by CERN
management, along with the suitable software architecture for it.
Requirements and Qualities
The system was intended to promote interaction among CERN researchers (the end users) within the
constraints of a heterogeneous and distributed computing environment.
The customer was CERN management, and the developing organization was a lone CERN researcher. The
business case made by Berners-Lee was that the proposed system would increase communication among
CERN staff.
The technical environment was familiar to those in the research community, for which the Internet had been a
mainstay since its introduction in the early 1970s and hypertext systems with hypertext conferences held
regularly to bring researchers together.
The World Wide Web, as conceived and initially implemented at CERN, had several desirable qualities. It was
portable, able to interoperate with other types of computers running the same software, and was scalable and
extensible. The business goals of promoting interaction and allowing heterogeneous computing led to the
quality goals of remote access, interoperability, extensibility, and scalability.
The World Wide Web: A Case Study in
Utilizing Architectural Structures
Relationship to ABC
Software Architectures
Read
What Software Architecture Is and What It Isn't

More Related Content

What's hot

Formal approaches to software architecture design thesis presentation
Formal approaches to software architecture design   thesis presentationFormal approaches to software architecture design   thesis presentation
Formal approaches to software architecture design thesis presentation
Nacha Chondamrongkul
 
Bank managment system
Bank managment systemBank managment system
Bank managment system
Deepam Aggarwal
 
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
bashcode
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
Prabhat gangwar
 
System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)
Animesh Chaturvedi
 
Unit 1
Unit 1Unit 1
24 dssa and_product_lines
24 dssa and_product_lines24 dssa and_product_lines
24 dssa and_product_linesMajong DevJfu
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
farazimlak
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
Preeti Mishra
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3
SIMONTHOMAS S
 
Software architecture
Software architectureSoftware architecture
Software architecture
Udayna
 
Software Engineering
Software Engineering Software Engineering
Software Engineering
JayaKamal
 
Unit v -Construction and Evaluation
Unit v -Construction and EvaluationUnit v -Construction and Evaluation
Unit v -Construction and Evaluation
Dhivyaa C.R
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for Begginers
Chinh Ngo Nguyen
 
EC8791 Requirement-Specifications-Quality assurance techniques
EC8791 Requirement-Specifications-Quality assurance techniquesEC8791 Requirement-Specifications-Quality assurance techniques
EC8791 Requirement-Specifications-Quality assurance techniques
RajalakshmiSermadurai
 
10 solution architecture concepts
10 solution architecture concepts10 solution architecture concepts
10 solution architecture concepts
Paul Preiss
 
Software Engineering
Software Engineering Software Engineering
Software Engineering
JayaKamal
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patternsHimanshu
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
Henry Muccini
 

What's hot (20)

Formal approaches to software architecture design thesis presentation
Formal approaches to software architecture design   thesis presentationFormal approaches to software architecture design   thesis presentation
Formal approaches to software architecture design thesis presentation
 
Bank managment system
Bank managment systemBank managment system
Bank managment system
 
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)
 
Unit 1
Unit 1Unit 1
Unit 1
 
software architecture
software architecturesoftware architecture
software architecture
 
24 dssa and_product_lines
24 dssa and_product_lines24 dssa and_product_lines
24 dssa and_product_lines
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Software Engineering
Software Engineering Software Engineering
Software Engineering
 
Unit v -Construction and Evaluation
Unit v -Construction and EvaluationUnit v -Construction and Evaluation
Unit v -Construction and Evaluation
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for Begginers
 
EC8791 Requirement-Specifications-Quality assurance techniques
EC8791 Requirement-Specifications-Quality assurance techniquesEC8791 Requirement-Specifications-Quality assurance techniques
EC8791 Requirement-Specifications-Quality assurance techniques
 
10 solution architecture concepts
10 solution architecture concepts10 solution architecture concepts
10 solution architecture concepts
 
Software Engineering
Software Engineering Software Engineering
Software Engineering
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 

Similar to Sda 2

chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptxchapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
MahmoudZidan53
 
Lecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.docLecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.doc
esrabilgic2
 
Software_Archi-1.ppt
Software_Archi-1.pptSoftware_Archi-1.ppt
Software_Archi-1.ppt
FaizaZulkifal
 
software engineering Architecture and design Unit 3.pptx
software engineering Architecture and design Unit 3.pptxsoftware engineering Architecture and design Unit 3.pptx
software engineering Architecture and design Unit 3.pptx
SomnathMule5
 
Lecture 6 se
Lecture 6 seLecture 6 se
Lecture 6 se
Tribhuvan University
 
Class notes
Class notesClass notes
Software architecture
Software architectureSoftware architecture
Software architecture
nazn
 
Se lec6
Se lec6Se lec6
Se lec6
Huda Alameen
 
Architectural design
Architectural designArchitectural design
Architectural design
Huda Alameen
 
Software Architecture
Software Architecture Software Architecture
Software Architecture
ssuser9d62d6
 
Software requirement specification Unit 3.pptx
Software requirement specification Unit 3.pptxSoftware requirement specification Unit 3.pptx
Software requirement specification Unit 3.pptx
SomnathMule5
 
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
do_2013
 
Software-Architecture_Course-Notes.pdf
Software-Architecture_Course-Notes.pdfSoftware-Architecture_Course-Notes.pdf
Software-Architecture_Course-Notes.pdf
do_2013
 
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
do_2013
 
Object oriented analysis and design unit- iv
Object oriented analysis and design unit- ivObject oriented analysis and design unit- iv
Object oriented analysis and design unit- iv
Shri Shankaracharya College, Bhilai,Junwani
 
Design patterns
Design patternsDesign patterns
Design patterns
Binu Bhasuran
 
chapter-1 Software Design.pptx
chapter-1 Software Design.pptxchapter-1 Software Design.pptx
chapter-1 Software Design.pptx
haroon451422
 
Ch6.ppt
Ch6.pptCh6.ppt
Ch6.ppt
UrviKhatri3
 
Architectural design of software
Architectural  design of softwareArchitectural  design of software
Architectural design of software
Tawhidur Rahman Bhuiyan
 

Similar to Sda 2 (20)

10.1.1.107.2618
10.1.1.107.261810.1.1.107.2618
10.1.1.107.2618
 
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptxchapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
 
Lecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.docLecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.doc
 
Software_Archi-1.ppt
Software_Archi-1.pptSoftware_Archi-1.ppt
Software_Archi-1.ppt
 
software engineering Architecture and design Unit 3.pptx
software engineering Architecture and design Unit 3.pptxsoftware engineering Architecture and design Unit 3.pptx
software engineering Architecture and design Unit 3.pptx
 
Lecture 6 se
Lecture 6 seLecture 6 se
Lecture 6 se
 
Class notes
Class notesClass notes
Class notes
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Se lec6
Se lec6Se lec6
Se lec6
 
Architectural design
Architectural designArchitectural design
Architectural design
 
Software Architecture
Software Architecture Software Architecture
Software Architecture
 
Software requirement specification Unit 3.pptx
Software requirement specification Unit 3.pptxSoftware requirement specification Unit 3.pptx
Software requirement specification Unit 3.pptx
 
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
 
Software-Architecture_Course-Notes.pdf
Software-Architecture_Course-Notes.pdfSoftware-Architecture_Course-Notes.pdf
Software-Architecture_Course-Notes.pdf
 
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
 
Object oriented analysis and design unit- iv
Object oriented analysis and design unit- ivObject oriented analysis and design unit- iv
Object oriented analysis and design unit- iv
 
Design patterns
Design patternsDesign patterns
Design patterns
 
chapter-1 Software Design.pptx
chapter-1 Software Design.pptxchapter-1 Software Design.pptx
chapter-1 Software Design.pptx
 
Ch6.ppt
Ch6.pptCh6.ppt
Ch6.ppt
 
Architectural design of software
Architectural  design of softwareArchitectural  design of software
Architectural design of software
 

More from AmberMughal5

Sda 9
Sda   9Sda   9
Sda 8
Sda   8Sda   8
Sda 7
Sda   7Sda   7
Sda 6
Sda   6Sda   6
Sda 3
Sda   3Sda   3
Sa03 tactics
Sa03 tacticsSa03 tactics
Sa03 tactics
AmberMughal5
 

More from AmberMughal5 (6)

Sda 9
Sda   9Sda   9
Sda 9
 
Sda 8
Sda   8Sda   8
Sda 8
 
Sda 7
Sda   7Sda   7
Sda 7
 
Sda 6
Sda   6Sda   6
Sda 6
 
Sda 3
Sda   3Sda   3
Sda 3
 
Sa03 tactics
Sa03 tacticsSa03 tactics
Sa03 tactics
 

Recently uploaded

AP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specificAP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specific
BrazilAccount1
 
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdfGoverning Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
WENKENLI1
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
MdTanvirMahtab2
 
Runway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptxRunway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptx
SupreethSP4
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
Robbie Edward Sayers
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
Pratik Pawar
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
fxintegritypublishin
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
Kerry Sado
 
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
zwunae
 
ethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.pptethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.ppt
Jayaprasanna4
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
JoytuBarua2
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
bakpo1
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwood
seandesed
 
Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
TeeVichai
 
CME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional ElectiveCME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional Elective
karthi keyan
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
gerogepatton
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Teleport Manpower Consultant
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
obonagu
 
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang,  ICLR 2024, MLILAB, KAIST AI.pdfJ.Yang,  ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
MLILAB
 

Recently uploaded (20)

AP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specificAP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specific
 
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdfGoverning Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
 
Runway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptxRunway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptx
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
 
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
 
ethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.pptethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.ppt
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwood
 
Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
 
CME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional ElectiveCME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional Elective
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
 
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang,  ICLR 2024, MLILAB, KAIST AI.pdfJ.Yang,  ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
 

Sda 2

  • 1. Ms. Memoona Sami Memoona.sami@faculty.muet.edu.pk SOFTWARE DESIGN AND ARCHITECTURE LECTURE 4,5 Disclaimer: The contents of this presentation have been taken from multiple sources, i.e. Books, Research articles, Thesis publications, and websites.
  • 2. The material used in this presentation i.e., pictures/graphs/text, etc. is solely intended for educational/teaching purpose, offered free of cost to the students for use under special circumstances of Online Education due to COVID-19 Lockdown situation and may include copyrighted material - the use of which may not have been specifically authorised by Copyright Owners. It’s application constitutes Fair Use of any such copyrighted material as provided in globally accepted law of many countries. The contents of presentations are intended only for the attendees of the class being conducted by the presenter. Fair Use Notice
  • 3. Outlines Software Architectures A-7E Avionics System: A Case Study in Utilizing Architectural Structures Relationship to the Architectural Business life-cycle Requirements and Qualities and Architectural Approach The World Wide Web: A Case Study Relationship to the Architectural Business life-cycle Requirements and Qualities and Architectural Approach
  • 4. Software Architectures Architectural structures can be divided into three groups, depending on the broad nature of the elements they show. Module structures Here the elements are modules, which are units of implementation. There is less emphasis on how the resulting software manifests itself at runtime. Module structures allow us to answer questions such as What is the primary functional responsibility assigned to each module? What other software does it actually use? What modules are related to other modules by generalization or specialization (i.e., inheritance) relationships?
  • 5. Software Architectures Component-and-connector structures Here the elements are runtime components (which are the principal units of computation) and connectors (which are the communication vehicles among components). Component-and-connector structures help answer questions such as What are the major executing components and how do they interact? What are the major shared data stores? Which parts of the system are replicated? How does data progress through the system? What parts of the system can run in parallel? How can the system's structure change as it executes?
  • 6. Software Architectures Allocation structures Allocation structures show the relationship between the software elements and the elements in one or more external environments in which the software is created and executed. They answer questions such as What processor does each software element execute on? In what files is each element stored during development, testing, and system building? What is the assignment of software elements to development teams?
  • 8. Software Architectures Module-based structures Decomposition. The units are modules related to each other by the "is a submodule of " relation, showing how larger modules are decomposed into smaller ones recursively until they are small enough to be easily understood. Modules in this structure represent a common starting point for design, as the architect enumerates what the units of software will have to do and assigns each item to a module for subsequent (more detailed) design and eventual implementation. The decomposition structure provides a large part of the system's modifiability, by ensuring that likely changes fall within the purview of at most a few small modules.
  • 9. Software Architectures Module-based structures Uses The units of this important but overlooked structure are also modules, or (in circumstances where a finer grain is warranted) procedures or resources on the interfaces of modules. The units are related by the uses relation. One unit uses another if the correctness of the first requires the presence of a correct version (as opposed to a stub) of the second. The uses structure is used to engineer systems that can be easily extended to add functionality or from which useful functional subsets can be easily extracted. The ability to easily subset a working system allows for incremental development.
  • 10. Software Architectures Module-based structures Layered A system of layers, in which a layer is a coherent set of related functionality. In a strictly layered structure, layer n may only use the services of layer n– 1. Layers are often designed as abstractions (virtual machines) that hide implementation specifics below from the layers above, engendering portability.
  • 11. Software Architectures Module-based structures Class, or generalization The module units in this structure are called classes. The relation is "inherits-from" or "is-an-instance-of." This view supports reasoning about collections of similar behaviour or capability (i.e., the classes that other classes inherit from) and parameterized differences which are captured by subclassing. The class structure allows us to reason about re-use and the incremental addition of functionality.
  • 12. Software Architectures Component-and-Connector Process, or communicating processes Deals with the dynamic aspects of a running system. The units here are processes or threads that are connected with each other by communication, synchronization, and/or exclusion operations. The relation in this (and in all component-and-connector structures) is attachment, showing how the components and connectors are hooked together. The process structure is important in helping to engineer a system's execution performance and availability.
  • 13. Software Architectures Component-and-Connector Concurrency This component-and-connector structure allows the architect to determine opportunities for parallelism and the locations where resource contention may occur. The units are components and the connectors are "logical threads." A logical thread is a sequence of computation that can be allocated to a separate physical thread later in the design process. The concurrency structure is used early in design to identify the requirements for managing the issues associated with concurrent execution.
  • 14. Software Architectures Component-and-Connector Shared data, or repository This structure comprises components and connectors that create, store, and access persistent data. If the system is in fact structured around one or more shared data repositories, this structure is a good one to illuminate. It shows how data is produced and consumed by runtime software elements, and it can be used to ensure good performance and data integrity.
  • 15. Software Architectures Component-and-Connector Client-server If the system is built as a group of cooperating clients and servers The components are the clients and servers, and the connectors are protocols and messages they share to carry out the system's work. This is useful for separation of concerns (supporting modifiability), for physical distribution, and for load balancing (supporting runtime performance).
  • 16. Software Architectures Allocation Deployment The deployment structure shows how software is assigned to hardware-processing and communication elements. The elements are software (usually a process from a component-and-connector view), hardware entities (processors), and communication pathways. Relations are "allocated-to," showing on which physical units the software elements reside, and "migrates-to," if the allocation is dynamic. This view allows an engineer to reason about performance, data integrity, availability, and security. It is of particular interest in distributed or parallel systems.
  • 17. Software Architectures Allocation Implementation This structure shows how software elements (usually modules) are mapped to the file structure(s) in the system's development, integration, or configuration control environments. This is critical for the management of development activities and build processes.
  • 18. Software Architectures Allocation Work assignment This structure assigns responsibility for implementing and integrating the modules to the appropriate development teams. Having a work assignment structure as part of the architecture makes it clear that the decision about who does the work has architectural as well as management implications. The architect will know the expertise required on each team. Also, on large multi-sourced distributed development projects, the work assignment structure is the means for calling out units of functional commonality and assigning them to a single team, rather than having them implemented by everyone who needs them.
  • 19.
  • 20. Software Architectures WHICH STRUCTURES TO CHOOSE? Which ones should an architect work on? Which ones should the architect document? Surely not all of them. There is no shortage of advice. In 1995, Philippe Kruchten [Kruchten 95] published a very influential paper in which he described the concept of architecture comprising separate structures and advised concentrating on four to validate that the structures were not in conflict with each other and together did in fact describe a system meeting its requirements. This is known as 4+1 approach (4 view points + 1 redundant view point).
  • 21. Software Architectures WHICH STRUCTURES TO CHOOSE? Kruchten's four views follow: Logical. The elements are "key abstractions," which are manifested in the object-oriented world as objects or object classes. This is a module view. Process. This view addresses concurrency and distribution of functionality. It is a component-and- connector view. Development. This view shows the organization of software modules, libraries, subsystems, and units of development. It is an allocation view, mapping software to the development environment. Physical. This view maps other elements onto processing and communication nodes and is also an allocation view (which others call the deployment view).
  • 22. A-7E Avionics System: A Case Study in Utilizing Architectural Structures The system was constructed beginning in 1977 for the naval aviators who flew the A-7E aircraft and was paid for by the U.S. Navy. The developing organization was the software engineering group at the U.S. Naval Research Laboratory. The developers were creating the software to test their belief that certain software engineering strategies (in this case, information hiding and cooperating sequential processes) were appropriate for high-performance embedded real-time systems. The architects included one of the authors of this book and one of the leaders in the development of software engineering principles, but the architects had little experience in the avionics domain, although they did have access to other avionics systems and to experts in avionics. There was no compiler available for the target platform.
  • 23. A-7E Avionics System: A Case Study in Utilizing Architectural Structures Requirements and Qualities A-7E Corsair II is a single-seat, carrier-based attack aircraft used by the U.S. Navy throughout the 1960s, 1970s, and 1980s. An earlier version, the A-7C, was among the very first production aircraft in the world to be equipped with an onboard computer to help the pilot with navigation and "weapon delivery“. In broad terms, the A-7E software is responsible for reading sensors and updating cockpit displays that help the pilot drop weapons on a target. The A-7E software does not actually fly the aircraft, as more modern avionics systems do.
  • 24. A-7E Avionics System: A Case Study in Utilizing Architectural Structures Requirements and Qualities The qualities that the software system was expected to have included real-time performance and modifiability for expected changes. Specifically, the performance requirements were stated in terms of updates per second of the A7-E's displays and weapon delivery calculations. The modifiability requirements dealt with making changes to the weaponry, the platform, the symbology on the display, and the addition of new input through the keypad.
  • 25. A-7E Avionics System: A Case Study in Utilizing Architectural Structures Architecture for the A-7E Avionics System The architecture for the A-7E avionics system is centered around three architectural structures Decomposition, a structure of modules The unit of the decomposition structure is, of course, the module. A module may be thought of as defining a group of procedures, some public and some private, plus a set of private data structures. The relation among modules in the decomposition structure is "is-a-submodule-of" or "shares-a-secret-with." Uses, a structure of modules The decomposition structure carries no information about runtime execution of the software; you might make an educated guess as to how two procedures in different modules interact at runtime, but this information is not in fact in the module decomposition. Rather, the uses structure supplies the authoritative picture of how the software interacts. Process, a structure of components and connectors The software was implemented as a set of cooperating sequential processes that synchronize with each other to cooperatively use shared resources.
  • 26. A-7E Avionics System: A Case Study in Utilizing Architectural Structures Relationship to ABC
  • 27. The World Wide Web: A Case Study in Utilizing Architectural Structures Show the elements of the ABC, applied to the WWW initial proposal approved by CERN management, along with the suitable software architecture for it. Requirements and Qualities The system was intended to promote interaction among CERN researchers (the end users) within the constraints of a heterogeneous and distributed computing environment. The customer was CERN management, and the developing organization was a lone CERN researcher. The business case made by Berners-Lee was that the proposed system would increase communication among CERN staff. The technical environment was familiar to those in the research community, for which the Internet had been a mainstay since its introduction in the early 1970s and hypertext systems with hypertext conferences held regularly to bring researchers together. The World Wide Web, as conceived and initially implemented at CERN, had several desirable qualities. It was portable, able to interoperate with other types of computers running the same software, and was scalable and extensible. The business goals of promoting interaction and allowing heterogeneous computing led to the quality goals of remote access, interoperability, extensibility, and scalability.
  • 28. The World Wide Web: A Case Study in Utilizing Architectural Structures Relationship to ABC
  • 29. Software Architectures Read What Software Architecture Is and What It Isn't