SlideShare a Scribd company logo
1 of 36
Memoona Sami
Memoona.sami@faculty.muet.edu.pk
SOFTWARE DESIGN AND ARCHITECTURE
LECTURE 1-3
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
âť–Introduction
âť–Architecture Business Cycle
âť–Architectures Business Cycle and Software Processes
âť–Good and bad architectures
INTRODUCTION
âť–A software architecture is developed as the first step toward designing a system that has a
collection of desired properties.
âť–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.
âť–Architecture serves as an important communication, reasoning, analysis, and growth tool for
systems.
âť–In a nutshell, if you know the requirements for a system, you can build the architecture for it.
INTRODUCTION
âť–Where Do Architectures Come From?
âť–An architecture is the result of a set of business and technical decisions.
âť–There are many influences at work in its design, and the realization of these influences will
change depending on the environment in which the architecture is required to perform.
âť–Even with the same requirements, hardware, support software, and human resources available, an architect
designing a system today is likely to design a different system than might have been designed five years ago.
A SOFTWARE ARCHITECT?
Software Architecture Design
Team
Software
Architecture
Architecture
Realization
Application
STRUCTURE MATTERS
Dijkstra 1968:
◦ “…Correct arrangement of the structure of the software systems before programming…”
â—¦ Layered structure for easier development.
Parnas 1972:
◦ “… selected criteria for the decomposition of the system impact the structure of the programs and
several design principles must be followed to provide a good structure…”
â—¦ Examples: separation of concerns, hierarchical structures, program families (reuse).
EVOLUTION OF SOFTWARE SYSTEMS
âť–Software problems have changed in nature(algorithmic to general purpose applications)
âť–increased complexity to millions lines of code
âť–It has now become hard/impossible to develop system without architecture
Software Architecture Definitions
DEFINITIONS FROM THE CLASS…
âť–Basic artifact shown to the customers and made from the requirements.
âť–Breaking down of the system into components
âť–And describing the interrelations between the components
âť–A prototype of the system
âť–Identify the components of the system along with the interaction between them
âť–Its an abstraction of the system
SOFTWARE ARCHITECTURE- Booch
1991
“The logical and physical structure of a system, forged by all the strategic and tactical decisions
applied during development.”
Architecture is the high level structure of a system.
SOFTWARE ARCHITECTURE- IEEE
“Software architecture is the fundamental organization of a system, embodied in its
components, their relationships to each other and their environment, and the principles
governing its design and evolution.”
SOFTWARE ARCHITECTURE – BASS,
CLEMENTS, KAZMAN
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.
WHAT IS SOFTWARE DESIGN
âť–Software design is the process by which we create a specification of a software artifact, using
a set of primitive components and subject to constraints.
âť–The process of defining the architecture, components, interfaces, and other characteristics of a
system or component.
DIFFERENCE
âť–Software architecture deals with high level concepts without regard to any implementation
details. Software design on the other hand takes high level concepts and applies concrete
details so that software can be implemented.
âť–Every architectural work is a kind of design, but the reverse is not true
It's about addressing those architecturally significant requirements (the "what") that will
drive (and constrain) the "how" (the design).
What does SA address?
âť–Complexity of software systems increased
âť– Developing software: hundreds/ thousands person-years
âť– Many software systems: complex as skyscrapers
âť– Designing software
âť– Beyond algorithms/ data structures of the computation
âť– New kind of problem: overall system structure
âť–An important criteria for building complex software is: does it have a good SA, understood by
stakeholders and developers?
SA
âť–Provides a design plan of a system
âť– Blueprint
âť– Implies purpose
âť– Is an abstraction that helps in managing the complexity of a system
âť– Software architects are limited by
âť– Lack of standardized ways to represent architecture
âť– Lack of analysis methods to predict whether an architecture will result in an implementation that
meets the requirements
SA goal
âť–One should strive for a good architecture
âť– When system is implemented according to the architecture, it meets its requirements and resource
budget
âť– It is possible to implement system according to architecture
âť– Not good enough when
âť– Not explicit or not comprehensive or not consistent or not understandable
TERMINOLOGY
1. Architectural style/pattern:
âť–Defines element types and how they interact together with a set of constraints
âť–Sometimes defines a mapping of functionality to architectural elements
âť–An architectural style determines the vocabulary of components and connectors that can be used in
instances of that style, together with a set of constraints on how they can be combined. These can
include topological constraints on architectural descriptions (e.g., no cycles). Other constraints—say,
having to do with execution semantics—might also be part of the style definition
âť–E.g. Client Server Architectural Pattern.
The following table lists the major areas of focus and the corresponding architectural styles.
2. Reference/domain specific architecture:
âť–Defines element types and how they interact
âť–They apply to a particular domain
âť–They define how the domain functionality is mapped to architectural(software) elements.
TERMINOLOGY
3. Product line architecture:
âť–A software product line is a set of software-intensive systems that share a common, managed set of
features satisfying the specific needs of a particular market segment or mission and that are developed
from a common set of core assets in a prescribed way.
âť–Applies to a set of products within a company
âť–Defines element types, how they interact, how the product functionality is mapped to them
âť–May also define some of the instances of the architectural Elements. E.g., error-reporting components
would be common to many products of the product line
TERMINOLOGY
4. Software Architecture:
âť–Applies to one system
âť–Describes element types, how they interact, how the product functionality is mapped to them
âť–Describes the instances that exist in the system
âť–Level of specificity needed to design a system
TERMINOLOGY
QUESTION
âť–What do you think would happen if same requirements were given to two different architects
of different organizations?
Architecture Business Cycle
âť–Software architecture is a result of technical, business, and social influences. Its existence in
turn affects the technical, business, and social environments that subsequently influence future
architectures. We call this cycle of influences, from the environment to the architecture and
back to the environment, the ABC.
❖Organizational goals-> requirements->SA-> systems-> future new organizational goals-> …
âť– We begin building the ABC by identifying the influences to and from architectures.
âť–Architectures are influenced by:
â—¦ System Stakeholders
â—¦ Developing Organization
â—¦ Experience of Architects
â—¦ Technical Environment
Architecture Business Cycle
Architecture Business Cycle
âť–Architecture affects following factors
â—¦ Structure of the developing organization
â—¦ Goals of the developing organization
â—¦ Customer requirements for the next system
◦ Architect’s experience for subsequent systems
â—¦ Technical Environment
Architectures Business Cycle and
Software Processes
âť–Software process is the term given to the organization and management of software development
activities.
âť–What activities are involved in creating a software architecture, using that architecture to realize a design,
and then implementing or managing the evolution of a target system or application? These activities
include the following:
âť–Creating the business case for the system
âť–Understanding the requirements
âť–Creating or selecting the architecture
âť–Documenting and communicating the architecture
âť–Analyzing or evaluating the architecture
âť–Implementing the system based on the architecture
âť–Ensuring that the implementation conforms to the architecture
âť–As indicated in the structure of the ABC, architecture activities have comprehensive feedback
relationships with each other.
Good and Bad Architectures
âť–What Makes a "Good" Architecture?
âť–If it is true that, given the same technical requirements for a system, two different architects in different organizations
will produce different architectures, how can we determine if either one of them is the right one?
âť–There is no such thing as an inherently good or bad architecture. Architectures are either more or less fit for some
stated purpose.
âť–A distributed three-tier client-server architecture may be just the ticket for a large enterprise's financial management system but
completely wrong for an avionics application.
âť–An architecture carefully crafted to achieve high modifiability does not make sense for a throw-away prototype.
âť–We divide our observations into two clusters:
âť–process recommendations and
âť–product (or structural) recommendations.
Good and Bad Architectures
âť–Process Recommendations
âť–The architecture should be the product of a single architect or a small group of architects with an identified leader.
âť–The architect (or architecture team) should have the functional requirements for the system and an articulated,
prioritized list of quality attributes (such as security or modifiability) that the architecture is expected to satisfy.
âť–The architecture should be well documented, with at least one static view and one dynamic view, using an agreed-on
notation that all stakeholders can understand with a minimum of effort.
âť–The architecture should be circulated to the system's stakeholders, who should be actively involved in its review.
âť–The architecture should be analyzed for applicable quantitative measures (such as maximum throughput) and
formally evaluated for quality attributes before it is too late to make changes to it.
Good and Bad Architectures
âť–Process Recommendations
âť–The architecture should lend itself to incremental implementation via the creation of a "skeletal"
system in which the communication paths are exercised but which at first has minimal functionality.
This skeletal system can then be used to "grow" the system incrementally, easing the integration and
testing efforts.
âť–The architecture should result in a specific (and small) set of resource contention areas, the resolution
of which is clearly specified, circulated, and maintained.
Good and Bad Architectures
âť–Product Recommendations
âť–The architecture should feature well-defined modules whose functional responsibilities are allocated
on the principles of information hiding and separation of concerns.
âť–Each module should have a well-defined interface that encapsulates or "hides" changeable aspects
(such as implementation strategies and data structure choices) from other software that uses its
facilities. These interfaces should allow their respective development teams to work largely
independently of each other.
âť–Quality attributes should be achieved using well-known architectural tactics specific to each attribute.
âť–The architecture should never depend on a particular version of a commercial product or tool. If it
depends upon a particular commercial product, it should be structured such that changing to a
different product is straightforward and inexpensive.
Good and Bad Architectures
âť–Product Recommendations
âť–Modules that produce data should be separate from modules that consume data. This tends to increase modifiability
because changes are often confined to either the production or the consumption side of data. If new data is added,
both sides will have to change, but the separation allows for a staged (incremental) upgrade.
âť–For parallel-processing systems, the architecture should feature well-defined processes or tasks that do not
necessarily mirror the module decomposition structure.
âť–Every task or process should be written so that its assignment to a specific processor can be easily changed, perhaps
even at runtime.
âť–The architecture should feature a small number of simple interaction patterns. That is, the system should do the
same things in the same way throughout. This will aid in understandability, reduce development time, increase
reliability, and enhance modifiability. It will also show conceptual integrity in the architecture, which, while not
measurable, leads to smooth development.
Why is Software Architecture
important?
â–ŞArchitecture is the vehicle for stakeholder communication
â–ŞArchitecture manifests the earliest set of design decisions
â–Ş Constraints on implementation
â–Ş Dictates organizational structure
â–Ş Inhibits or enable quality attributes
â–ŞArchitecture is a transferable abstraction of a system
â–Ş Product lines share a common architecture
â–Ş Basis for training

More Related Content

What's hot

Architecture business cycle
Architecture business cycleArchitecture business cycle
Architecture business cycleHimanshu
 
Software Engineering unit 2
Software Engineering unit 2Software Engineering unit 2
Software Engineering unit 2Abhimanyu Mishra
 
Software Risk Management
Software Risk ManagementSoftware Risk Management
Software Risk ManagementGunjan Patel
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelssaurabhshertukde
 
Software Engineering
Software EngineeringSoftware Engineering
Software EngineeringZahoorali Khan
 
Software engineering : Layered Architecture
Software engineering : Layered ArchitectureSoftware engineering : Layered Architecture
Software engineering : Layered ArchitectureMuhammed Afsal Villan
 
Software Engineering ppt
Software Engineering pptSoftware Engineering ppt
Software Engineering pptshruths2890
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsNoor Ul Hudda Memon
 
Lecture 2 introduction to Software Engineering 1
Lecture 2   introduction to Software Engineering 1Lecture 2   introduction to Software Engineering 1
Lecture 2 introduction to Software Engineering 1IIUI
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsNishu Rastogi
 
Aspect oriented architecture
Aspect oriented architecture Aspect oriented architecture
Aspect oriented architecture tigneb
 
Agile Methodology - Software Engineering
Agile Methodology - Software EngineeringAgile Methodology - Software Engineering
Agile Methodology - Software EngineeringPurvik Rana
 
Software engineering
Software engineeringSoftware engineering
Software engineeringHitesh Mohapatra
 
Unit iii(part d - component level design)
Unit   iii(part d - component level design)Unit   iii(part d - component level design)
Unit iii(part d - component level design)BALAJI A
 
Evolutionary models
Evolutionary modelsEvolutionary models
Evolutionary modelsPihu Goel
 
Lecture 03 Software Risk Management
Lecture 03 Software Risk ManagementLecture 03 Software Risk Management
Lecture 03 Software Risk ManagementAchmad Solichin
 

What's hot (20)

Architecture business cycle
Architecture business cycleArchitecture business cycle
Architecture business cycle
 
Software Engineering unit 2
Software Engineering unit 2Software Engineering unit 2
Software Engineering unit 2
 
Software Risk Management
Software Risk ManagementSoftware Risk Management
Software Risk Management
 
Sdlc models
Sdlc modelsSdlc models
Sdlc models
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-models
 
Agile model
Agile modelAgile model
Agile model
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Software engineering : Layered Architecture
Software engineering : Layered ArchitectureSoftware engineering : Layered Architecture
Software engineering : Layered Architecture
 
Software Verification and Validation
Software Verification and Validation Software Verification and Validation
Software Verification and Validation
 
Software Engineering ppt
Software Engineering pptSoftware Engineering ppt
Software Engineering ppt
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-models
 
Lecture 2 introduction to Software Engineering 1
Lecture 2   introduction to Software Engineering 1Lecture 2   introduction to Software Engineering 1
Lecture 2 introduction to Software Engineering 1
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process Models
 
System Engineering Unit 2
System Engineering Unit 2System Engineering Unit 2
System Engineering Unit 2
 
Aspect oriented architecture
Aspect oriented architecture Aspect oriented architecture
Aspect oriented architecture
 
Agile Methodology - Software Engineering
Agile Methodology - Software EngineeringAgile Methodology - Software Engineering
Agile Methodology - Software Engineering
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Unit iii(part d - component level design)
Unit   iii(part d - component level design)Unit   iii(part d - component level design)
Unit iii(part d - component level design)
 
Evolutionary models
Evolutionary modelsEvolutionary models
Evolutionary models
 
Lecture 03 Software Risk Management
Lecture 03 Software Risk ManagementLecture 03 Software Risk Management
Lecture 03 Software Risk Management
 

Similar to Sda 1

software architecture
software architecturesoftware architecture
software architectureManidheer Babu
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part iBisrat Girma
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notesSudarshan Dhondaley
 
Architecture Design
Architecture DesignArchitecture Design
Architecture DesignSaqib Raza
 
Software architecture simplified
Software architecture simplifiedSoftware architecture simplified
Software architecture simplifiedPrasad Chitta
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for BegginersChinh Ngo Nguyen
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfAkilaGamage2
 
Lab Software Architecture (in spanish)
Lab Software Architecture (in spanish)Lab Software Architecture (in spanish)
Lab Software Architecture (in spanish)Fáber D. Giraldo
 
Kelis king - introduction to s.e.
Kelis king -  introduction to s.e.Kelis king -  introduction to s.e.
Kelis king - introduction to s.e.KelisKing
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxKarthigaiSelviS3
 
Software Engineering-Unit 4 "Architectural Design" by Adi.pdf
Software Engineering-Unit 4 "Architectural Design" by Adi.pdfSoftware Engineering-Unit 4 "Architectural Design" by Adi.pdf
Software Engineering-Unit 4 "Architectural Design" by Adi.pdfProf. Dr. K. Adisesha
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptxtaxegap762
 
Software engineering lecture notes
Software engineering   lecture notesSoftware engineering   lecture notes
Software engineering lecture notesAmmar Shafiq
 
Unit 1 importance ofsoftengg_b.tech iii year
Unit 1  importance ofsoftengg_b.tech iii yearUnit 1  importance ofsoftengg_b.tech iii year
Unit 1 importance ofsoftengg_b.tech iii yearPreeti Mishra
 
Unit 1 introduction tosoftengg_mba tech ii year
Unit 1  introduction tosoftengg_mba tech ii yearUnit 1  introduction tosoftengg_mba tech ii year
Unit 1 introduction tosoftengg_mba tech ii yearPreeti Mishra
 

Similar to Sda 1 (20)

SA_UNIT_1.pptx
SA_UNIT_1.pptxSA_UNIT_1.pptx
SA_UNIT_1.pptx
 
software architecture
software architecturesoftware architecture
software architecture
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part i
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
 
Architecture Design
Architecture DesignArchitecture Design
Architecture Design
 
Software architecture simplified
Software architecture simplifiedSoftware architecture simplified
Software architecture simplified
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for Begginers
 
Chapter1
Chapter1Chapter1
Chapter1
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdf
 
Lab Software Architecture (in spanish)
Lab Software Architecture (in spanish)Lab Software Architecture (in spanish)
Lab Software Architecture (in spanish)
 
Kelis king - introduction to s.e.
Kelis king -  introduction to s.e.Kelis king -  introduction to s.e.
Kelis king - introduction to s.e.
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
 
What is Software Architecture?
What is Software Architecture?What is Software Architecture?
What is Software Architecture?
 
software engineering
software engineeringsoftware engineering
software engineering
 
Software Engineering-Unit 4 "Architectural Design" by Adi.pdf
Software Engineering-Unit 4 "Architectural Design" by Adi.pdfSoftware Engineering-Unit 4 "Architectural Design" by Adi.pdf
Software Engineering-Unit 4 "Architectural Design" by Adi.pdf
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptx
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Software engineering lecture notes
Software engineering   lecture notesSoftware engineering   lecture notes
Software engineering lecture notes
 
Unit 1 importance ofsoftengg_b.tech iii year
Unit 1  importance ofsoftengg_b.tech iii yearUnit 1  importance ofsoftengg_b.tech iii year
Unit 1 importance ofsoftengg_b.tech iii year
 
Unit 1 introduction tosoftengg_mba tech ii year
Unit 1  introduction tosoftengg_mba tech ii yearUnit 1  introduction tosoftengg_mba tech ii year
Unit 1 introduction tosoftengg_mba tech ii year
 

More from AmberMughal5

More from AmberMughal5 (8)

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 4
Sda   4Sda   4
Sda 4
 
Sda 3
Sda   3Sda   3
Sda 3
 
Sda 2
Sda   2Sda   2
Sda 2
 
Sa03 tactics
Sa03 tacticsSa03 tactics
Sa03 tactics
 

Recently uploaded

Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxKartikeyaDwivedi3
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...Chandu841456
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleAlluxio, Inc.
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)Dr SOUNDIRARAJ N
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...121011101441
 
8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitterShivangiSharma879191
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx959SahilShah
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfme23b1001
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvLewisJB
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 

Recently uploaded (20)

Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptx
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at Scale
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...
 
8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdf
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvv
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Serviceyoung call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 

Sda 1

  • 1. Memoona Sami Memoona.sami@faculty.muet.edu.pk SOFTWARE DESIGN AND ARCHITECTURE LECTURE 1-3 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 âť–Introduction âť–Architecture Business Cycle âť–Architectures Business Cycle and Software Processes âť–Good and bad architectures
  • 4. INTRODUCTION âť–A software architecture is developed as the first step toward designing a system that has a collection of desired properties. âť–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. âť–Architecture serves as an important communication, reasoning, analysis, and growth tool for systems. âť–In a nutshell, if you know the requirements for a system, you can build the architecture for it.
  • 5. INTRODUCTION âť–Where Do Architectures Come From? âť–An architecture is the result of a set of business and technical decisions. âť–There are many influences at work in its design, and the realization of these influences will change depending on the environment in which the architecture is required to perform. âť–Even with the same requirements, hardware, support software, and human resources available, an architect designing a system today is likely to design a different system than might have been designed five years ago.
  • 6. A SOFTWARE ARCHITECT? Software Architecture Design Team Software Architecture Architecture Realization Application
  • 7. STRUCTURE MATTERS Dijkstra 1968: â—¦ “…Correct arrangement of the structure of the software systems before programming…” â—¦ Layered structure for easier development. Parnas 1972: â—¦ “… selected criteria for the decomposition of the system impact the structure of the programs and several design principles must be followed to provide a good structure…” â—¦ Examples: separation of concerns, hierarchical structures, program families (reuse).
  • 8. EVOLUTION OF SOFTWARE SYSTEMS âť–Software problems have changed in nature(algorithmic to general purpose applications) âť–increased complexity to millions lines of code âť–It has now become hard/impossible to develop system without architecture
  • 10. DEFINITIONS FROM THE CLASS… âť–Basic artifact shown to the customers and made from the requirements. âť–Breaking down of the system into components âť–And describing the interrelations between the components âť–A prototype of the system âť–Identify the components of the system along with the interaction between them âť–Its an abstraction of the system
  • 11. SOFTWARE ARCHITECTURE- Booch 1991 “The logical and physical structure of a system, forged by all the strategic and tactical decisions applied during development.” Architecture is the high level structure of a system.
  • 12. SOFTWARE ARCHITECTURE- IEEE “Software architecture is the fundamental organization of a system, embodied in its components, their relationships to each other and their environment, and the principles governing its design and evolution.”
  • 13. SOFTWARE ARCHITECTURE – BASS, CLEMENTS, KAZMAN 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.
  • 14. WHAT IS SOFTWARE DESIGN âť–Software design is the process by which we create a specification of a software artifact, using a set of primitive components and subject to constraints. âť–The process of defining the architecture, components, interfaces, and other characteristics of a system or component.
  • 15. DIFFERENCE âť–Software architecture deals with high level concepts without regard to any implementation details. Software design on the other hand takes high level concepts and applies concrete details so that software can be implemented. âť–Every architectural work is a kind of design, but the reverse is not true
  • 16. It's about addressing those architecturally significant requirements (the "what") that will drive (and constrain) the "how" (the design).
  • 17. What does SA address? âť–Complexity of software systems increased âť– Developing software: hundreds/ thousands person-years âť– Many software systems: complex as skyscrapers âť– Designing software âť– Beyond algorithms/ data structures of the computation âť– New kind of problem: overall system structure âť–An important criteria for building complex software is: does it have a good SA, understood by stakeholders and developers?
  • 18. SA âť–Provides a design plan of a system âť– Blueprint âť– Implies purpose âť– Is an abstraction that helps in managing the complexity of a system âť– Software architects are limited by âť– Lack of standardized ways to represent architecture âť– Lack of analysis methods to predict whether an architecture will result in an implementation that meets the requirements
  • 19. SA goal âť–One should strive for a good architecture âť– When system is implemented according to the architecture, it meets its requirements and resource budget âť– It is possible to implement system according to architecture âť– Not good enough when âť– Not explicit or not comprehensive or not consistent or not understandable
  • 20. TERMINOLOGY 1. Architectural style/pattern: âť–Defines element types and how they interact together with a set of constraints âť–Sometimes defines a mapping of functionality to architectural elements âť–An architectural style determines the vocabulary of components and connectors that can be used in instances of that style, together with a set of constraints on how they can be combined. These can include topological constraints on architectural descriptions (e.g., no cycles). Other constraints—say, having to do with execution semantics—might also be part of the style definition âť–E.g. Client Server Architectural Pattern.
  • 21. The following table lists the major areas of focus and the corresponding architectural styles.
  • 22. 2. Reference/domain specific architecture: âť–Defines element types and how they interact âť–They apply to a particular domain âť–They define how the domain functionality is mapped to architectural(software) elements. TERMINOLOGY
  • 23. 3. Product line architecture: âť–A software product line is a set of software-intensive systems that share a common, managed set of features satisfying the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way. âť–Applies to a set of products within a company âť–Defines element types, how they interact, how the product functionality is mapped to them âť–May also define some of the instances of the architectural Elements. E.g., error-reporting components would be common to many products of the product line TERMINOLOGY
  • 24. 4. Software Architecture: âť–Applies to one system âť–Describes element types, how they interact, how the product functionality is mapped to them âť–Describes the instances that exist in the system âť–Level of specificity needed to design a system TERMINOLOGY
  • 25.
  • 26. QUESTION âť–What do you think would happen if same requirements were given to two different architects of different organizations?
  • 27. Architecture Business Cycle âť–Software architecture is a result of technical, business, and social influences. Its existence in turn affects the technical, business, and social environments that subsequently influence future architectures. We call this cycle of influences, from the environment to the architecture and back to the environment, the ABC. âť–Organizational goals-> requirements->SA-> systems-> future new organizational goals-> … âť– We begin building the ABC by identifying the influences to and from architectures. âť–Architectures are influenced by: â—¦ System Stakeholders â—¦ Developing Organization â—¦ Experience of Architects â—¦ Technical Environment
  • 29. Architecture Business Cycle âť–Architecture affects following factors â—¦ Structure of the developing organization â—¦ Goals of the developing organization â—¦ Customer requirements for the next system â—¦ Architect’s experience for subsequent systems â—¦ Technical Environment
  • 30. Architectures Business Cycle and Software Processes âť–Software process is the term given to the organization and management of software development activities. âť–What activities are involved in creating a software architecture, using that architecture to realize a design, and then implementing or managing the evolution of a target system or application? These activities include the following: âť–Creating the business case for the system âť–Understanding the requirements âť–Creating or selecting the architecture âť–Documenting and communicating the architecture âť–Analyzing or evaluating the architecture âť–Implementing the system based on the architecture âť–Ensuring that the implementation conforms to the architecture âť–As indicated in the structure of the ABC, architecture activities have comprehensive feedback relationships with each other.
  • 31. Good and Bad Architectures âť–What Makes a "Good" Architecture? âť–If it is true that, given the same technical requirements for a system, two different architects in different organizations will produce different architectures, how can we determine if either one of them is the right one? âť–There is no such thing as an inherently good or bad architecture. Architectures are either more or less fit for some stated purpose. âť–A distributed three-tier client-server architecture may be just the ticket for a large enterprise's financial management system but completely wrong for an avionics application. âť–An architecture carefully crafted to achieve high modifiability does not make sense for a throw-away prototype. âť–We divide our observations into two clusters: âť–process recommendations and âť–product (or structural) recommendations.
  • 32. Good and Bad Architectures âť–Process Recommendations âť–The architecture should be the product of a single architect or a small group of architects with an identified leader. âť–The architect (or architecture team) should have the functional requirements for the system and an articulated, prioritized list of quality attributes (such as security or modifiability) that the architecture is expected to satisfy. âť–The architecture should be well documented, with at least one static view and one dynamic view, using an agreed-on notation that all stakeholders can understand with a minimum of effort. âť–The architecture should be circulated to the system's stakeholders, who should be actively involved in its review. âť–The architecture should be analyzed for applicable quantitative measures (such as maximum throughput) and formally evaluated for quality attributes before it is too late to make changes to it.
  • 33. Good and Bad Architectures âť–Process Recommendations âť–The architecture should lend itself to incremental implementation via the creation of a "skeletal" system in which the communication paths are exercised but which at first has minimal functionality. This skeletal system can then be used to "grow" the system incrementally, easing the integration and testing efforts. âť–The architecture should result in a specific (and small) set of resource contention areas, the resolution of which is clearly specified, circulated, and maintained.
  • 34. Good and Bad Architectures âť–Product Recommendations âť–The architecture should feature well-defined modules whose functional responsibilities are allocated on the principles of information hiding and separation of concerns. âť–Each module should have a well-defined interface that encapsulates or "hides" changeable aspects (such as implementation strategies and data structure choices) from other software that uses its facilities. These interfaces should allow their respective development teams to work largely independently of each other. âť–Quality attributes should be achieved using well-known architectural tactics specific to each attribute. âť–The architecture should never depend on a particular version of a commercial product or tool. If it depends upon a particular commercial product, it should be structured such that changing to a different product is straightforward and inexpensive.
  • 35. Good and Bad Architectures âť–Product Recommendations âť–Modules that produce data should be separate from modules that consume data. This tends to increase modifiability because changes are often confined to either the production or the consumption side of data. If new data is added, both sides will have to change, but the separation allows for a staged (incremental) upgrade. âť–For parallel-processing systems, the architecture should feature well-defined processes or tasks that do not necessarily mirror the module decomposition structure. âť–Every task or process should be written so that its assignment to a specific processor can be easily changed, perhaps even at runtime. âť–The architecture should feature a small number of simple interaction patterns. That is, the system should do the same things in the same way throughout. This will aid in understandability, reduce development time, increase reliability, and enhance modifiability. It will also show conceptual integrity in the architecture, which, while not measurable, leads to smooth development.
  • 36. Why is Software Architecture important? â–ŞArchitecture is the vehicle for stakeholder communication â–ŞArchitecture manifests the earliest set of design decisions â–Ş Constraints on implementation â–Ş Dictates organizational structure â–Ş Inhibits or enable quality attributes â–ŞArchitecture is a transferable abstraction of a system â–Ş Product lines share a common architecture â–Ş Basis for training