尊敬的 微信汇率:1円 ≈ 0.046166 元 支付宝汇率:1円 ≈ 0.046257元 [退出登录]
SlideShare a Scribd company logo
Design Concepts and Principles
Instructor: Dr. Jerry Gao
Design Concepts and Principles
Jerry Gao, Ph.D. Jan. 1999
- Software design and software engineering
- Design process
- Design principles
- Design concepts
- Abstraction, refinement, modularity
- Software architecture
- Control hierarchy
- Structural partitioning
- Data structure
- Software procedure
- Information hiding
- Effective modular design
- Functional dependence, cohesion, coupling
- Design heuristics for effective modularity
- Design model
- Design documentation
Software Design and Software Engineering
Design -> The first step in the development phase for any engineered product.
It serves as the foundation for all software engineering and software
maintenance steps that follow.
The goal of a designer is to produce a model (or representation) of an entity
that will later be built.
Input of software design: Req. analysis models and specification doc.
Output of software design: Design models and design specification doc.
Design - translates the requirements into a completed design model for a
software product.
- provides the representations of software that can be assessed for
quality.
Figure 13.1
Software Design
A number of design methods can be used to produce software design:
- Data design: transforms the information domain model into data structures.
- Architecture design: defines the relationship among major structural elements
of the program.
- Interface design: describes how the software communicates with users.
- Procedure design: transforms structural elements of the program architecture
into a procedural description of software components.
The evolution of software design:
- Modular program construction[DEN73] and top-down refining methods[WIR71].
- Structured programming [DAH71, MIL72].
- Translation of data flow/data structure into a design definition.[JAC75][WAR74].
- Object-oriented approach [JAC92][GAM95].
Common features of software design methods:
- A mechanism for translation of an analysis model into a design representation
- A notation for representing functional components and their interfaces
- Heuristics for refinement and partitioning
- Guidelines for quality assessment
Design Process
Software design --> an iterative process through which requirements are
translated into a “blueprint” for constructing the software.
The design is represented at a high level of abstraction. As design iterations
occur, subsequent refinement leads to design representation at much lower
levels of abstraction.
Design quality is very important. Two methods are used to check the quality:
a) formal technical reviews, and b) design walkthroughs
McGlaughlin’s [McG91] three common features of a good design:
- The design must implement all of requirements (explicit/implicit)
- The design must be readable and understandable
- The design should provide a complete picture of the software in
the aspects of data, functions, and behaviors.
Design Quality
To evaluate a software design, a design quality criteria can be used.
Here is the guideline for a good design:
- A design should exhibit a hierarchical organization about software
- A design should be modular based on logical partition.
- A design contains both data and procedural abstractions.
- A design should leads to modules with independent functional features.
- A design should leads to simplified interfaces between modules.
- A design should be derived using a repeatable method
Software design process encourages good design through the application of
fundamental design principles, systematic methodology, and through reviews.
Design Principles
David [DAV95] suggests a set of principles for software design:
- The design process should not suffer from “tunnel vision”.
- The design should be traceable to the analysis model.
- The design should not reinvent the wheel.
- The design should “minimize the intellectual distance” between the
software and the problem in the real world.
- The design should exhibit uniformity and integration.
- The design should be structured to accommodate change.
- The design should be structured to degrade gently.
- Design is not coding.
- The design should be assessed for quality.
- The design should reviewed to minimize conceptual errors.
External quality factors: observed by users.
Internal quality factors: important to engineers
Design Concepts
- Abstraction:
Each step in the software engineering process is a refinement in the level of abstraction of
the software solution.
- Data abstractions: a named collection of data
- Procedural abstractions:
A named sequence of instructions in a specific function
- Control abstractions:
A program control mechanism without specifying internal details.
- Refinement: Refinement is actually a process of elaboration.
Stepwise refinement is a top-down design strategy proposed by Niklaus [WIR71].
The architecture of a program is developed by successively refining levels of
procedural detail.
The process of program refinement is analogous to the process of refinement
and partitioning that is used during requirements analysis. The major difference
is in the level of implementation detail, instead of the approach.
Abstraction and refinement are complementary concepts.
Abstraction enables a designer to specify procedure and data w/o details.
Refinement helps the designer to reveal low-level details.
Design Concept - Modularity
The concept of modularity has been espoused for almost four decades.
Software is divided into separately named and addressable components, called modules.
Meyer [MEY88] defines five criteria that enable us to evaluate a design method with respect
to its ability to define an effective modular system:
- Modular decomposability:
a design method provides a systematic mechanism for decomposing the problem
into sub-problems --> reduce the complexity and achieve the modularity
- Modular composability:
a design method enables existing design components to be assembled into a new
system.
- Modular understandability:
a module can be understood as a standalone unit it will be easier to build and
easier to change.
- Modular continuity:
small changes to the system requirements result in changes to individual
modules, rather than system-wide changes.
- Modular protection:
an aberrant condition occurs within a module and its effects are constrained
within the module.
Software Architecture
Software architecture is the hierarchical structure of program components and their
interactions.
Shaw and Garlan [SHA95a] describe a set of properties of architecture design:
- Structural properties:
The architecture design defines the system components and their interactions.
- Extra-functional properties:
The architecture design should address how the design architecture achieves
requirements for performance, capacity, reliability, adaptability, security.
- Families of related systems:
The architecture design should draw upon repeatable patterns in the design
of families of similar systems.
Figure 13.3.
Different architectural design methods: (Figure 13.3)
- Structural models: represent architecture as an organized collection of components.
- Framework models: increase the level of design abstraction by identifying repeatable
architecture design frameworks (patterns)
- Dynamic models: address the behavior aspects of the program architecture
- Process models: focus on the design of the business or technical process
- Functional models: can be used to represent the functional hierarchy of a system
Software Architecture
Fan-out
Fan-in
Control Hierarchy
Structural Partitioning
The program structure should be partitioned both horizontally and vertically. (Figure 13.4)
(1) Horizontal partitioning defines separate branches of the modular hierarchy for each
major program function.
Simplest way is to partition a system into:
input, data transformation (processing), and output
Advantages of horizontal partition:
- easy to test, maintain, and extend
- fewer side effects in change propagation or error propagation
Disadvantage: more data to be passed across module interfaces
--> complicate the overall control of program flow
(2) Vertical partitioning suggests the control and work should be distributed top-down in
program structure.
Advantages: good at dealing with changes:
- easy to maintain the changes
- reduce the change impact and and propagation
Effective Modular Design
Information hiding:
Modules should be specified and designed so that the internal details of
modules should be invisible or inaccessible to other modules.
Major benefits: reduce the change impacts in testing and maintenance
Functional independence:
Design modules based on independent functional features
Major benefits: effective modularity
Cohesion: a natural extension of the information hiding concept
a module may perform a number of tasks.
A cohesive module performs a single task in a procedure with little interactions with others.
Goal: to achieve high cohesion for modules in a system.
Different types of cohesion:
- coincidentally cohesive: a set of tasks related to each other loosely
- logical connection among processing elements ---> logically cohesive:
- data sharing among processing elements --> communication cohesion
-order among processing elements --> procedural cohesion
Effective Modular Design
Coupling: (Figure 13.8)
A measure of interconnection among modules in a program structure.
Coupling depends on the interface complexity between modules.
Goal: to strive for lowest possible coupling among modules.
Good coupling ---> reduce or avoid change impact and ripple effects.
---> reduce the cost in program changes, testing, maintenance
Types of coupling:
- data coupling: parameter passing or data interaction
- control coupling: share related control logical (for a control data)
- common coupling: common data sharing
- content coupling: module A use of data or control information
maintained in another module.

More Related Content

Similar to design-concept.ppt

Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
Rupesh Vaishnav
 
A software design creates meaningful engineering representation
A software design creates meaningful engineering representationA software design creates meaningful engineering representation
A software design creates meaningful engineering representation
Ramandeep Singh
 
Unit 5 design engineering ssad
Unit 5 design engineering ssadUnit 5 design engineering ssad
Unit 5 design engineering ssad
Preeti Mishra
 
DESIGN CONCEPTS
DESIGN CONCEPTSDESIGN CONCEPTS
DESIGN CONCEPTS
VigneshSridhar17
 
Software design
Software designSoftware design
Software design
Benazir Fathima
 
Software Engineering Unit 3 Key Concepts and Practices
Software Engineering Unit 3 Key Concepts and PracticesSoftware Engineering Unit 3 Key Concepts and Practices
Software Engineering Unit 3 Key Concepts and Practices
chessclubniet
 
Design engineering
Design engineeringDesign engineering
Design engineering
Vikram Dahiya
 
Design engineering
Design engineeringDesign engineering
Design engineering
Vikram Dahiya
 
Software engineering
Software engineeringSoftware engineering
Software engineering
Stella526835
 
06 fse design
06 fse design06 fse design
06 fse design
Mohesh Chandran
 
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
KarthigaiSelviS3
 
UNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPTUNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPT
malathijanapati1
 
software design: design fundamentals.pptx
software design: design fundamentals.pptxsoftware design: design fundamentals.pptx
software design: design fundamentals.pptx
Dr.Shweta
 
CHAPTER12.ppt
CHAPTER12.pptCHAPTER12.ppt
CHAPTER12.ppt
CharenReposposa
 
Design concepts in concepts of engineering design
Design concepts in concepts of engineering designDesign concepts in concepts of engineering design
Design concepts in concepts of engineering design
SureshvSuri1
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
puttipavan23022023
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniques
nimmik4u
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptx
taxegap762
 
Unit i software design principles 9
Unit i software design principles 9Unit i software design principles 9
Unit i software design principles 9
kiruthikamurugesan2628
 
Software Design and Modularity
Software Design and ModularitySoftware Design and Modularity
Software Design and Modularity
Danyal Ahmad
 

Similar to design-concept.ppt (20)

Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
 
A software design creates meaningful engineering representation
A software design creates meaningful engineering representationA software design creates meaningful engineering representation
A software design creates meaningful engineering representation
 
Unit 5 design engineering ssad
Unit 5 design engineering ssadUnit 5 design engineering ssad
Unit 5 design engineering ssad
 
DESIGN CONCEPTS
DESIGN CONCEPTSDESIGN CONCEPTS
DESIGN CONCEPTS
 
Software design
Software designSoftware design
Software design
 
Software Engineering Unit 3 Key Concepts and Practices
Software Engineering Unit 3 Key Concepts and PracticesSoftware Engineering Unit 3 Key Concepts and Practices
Software Engineering Unit 3 Key Concepts and Practices
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
06 fse design
06 fse design06 fse design
06 fse design
 
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
 
UNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPTUNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPT
 
software design: design fundamentals.pptx
software design: design fundamentals.pptxsoftware design: design fundamentals.pptx
software design: design fundamentals.pptx
 
CHAPTER12.ppt
CHAPTER12.pptCHAPTER12.ppt
CHAPTER12.ppt
 
Design concepts in concepts of engineering design
Design concepts in concepts of engineering designDesign concepts in concepts of engineering design
Design concepts in concepts of engineering design
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniques
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptx
 
Unit i software design principles 9
Unit i software design principles 9Unit i software design principles 9
Unit i software design principles 9
 
Software Design and Modularity
Software Design and ModularitySoftware Design and Modularity
Software Design and Modularity
 

Recently uploaded

Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
IJCNCJournal
 
🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...
🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...
🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...
dulbh kashyap
 
INTRODUCTION TO ARTIFICIAL INTELLIGENCE BASIC
INTRODUCTION TO ARTIFICIAL INTELLIGENCE BASICINTRODUCTION TO ARTIFICIAL INTELLIGENCE BASIC
INTRODUCTION TO ARTIFICIAL INTELLIGENCE BASIC
GOKULKANNANMMECLECTC
 
FUNDAMENTALS OF MECHANICAL ENGINEERING.pdf
FUNDAMENTALS OF MECHANICAL ENGINEERING.pdfFUNDAMENTALS OF MECHANICAL ENGINEERING.pdf
FUNDAMENTALS OF MECHANICAL ENGINEERING.pdf
EMERSON EDUARDO RODRIGUES
 
Data Communication and Computer Networks Management System Project Report.pdf
Data Communication and Computer Networks Management System Project Report.pdfData Communication and Computer Networks Management System Project Report.pdf
Data Communication and Computer Networks Management System Project Report.pdf
Kamal Acharya
 
MODULE 5 BIOLOGY FOR ENGINEERS TRENDS IN BIO ENGINEERING.pptx
MODULE 5 BIOLOGY FOR ENGINEERS TRENDS IN BIO ENGINEERING.pptxMODULE 5 BIOLOGY FOR ENGINEERS TRENDS IN BIO ENGINEERING.pptx
MODULE 5 BIOLOGY FOR ENGINEERS TRENDS IN BIO ENGINEERING.pptx
NaveenNaveen726446
 
🔥Young College Call Girls Chandigarh 💯Call Us 🔝 7737669865 🔝💃Independent Chan...
🔥Young College Call Girls Chandigarh 💯Call Us 🔝 7737669865 🔝💃Independent Chan...🔥Young College Call Girls Chandigarh 💯Call Us 🔝 7737669865 🔝💃Independent Chan...
🔥Young College Call Girls Chandigarh 💯Call Us 🔝 7737669865 🔝💃Independent Chan...
sonamrawat5631
 
🔥 Hyderabad Call Girls  👉 9352988975 👫 High Profile Call Girls Whatsapp Numbe...
🔥 Hyderabad Call Girls  👉 9352988975 👫 High Profile Call Girls Whatsapp Numbe...🔥 Hyderabad Call Girls  👉 9352988975 👫 High Profile Call Girls Whatsapp Numbe...
🔥 Hyderabad Call Girls  👉 9352988975 👫 High Profile Call Girls Whatsapp Numbe...
aarusi sexy model
 
SELENIUM CONF -PALLAVI SHARMA - 2024.pdf
SELENIUM CONF -PALLAVI SHARMA - 2024.pdfSELENIUM CONF -PALLAVI SHARMA - 2024.pdf
SELENIUM CONF -PALLAVI SHARMA - 2024.pdf
Pallavi Sharma
 
Literature review for prompt engineering of ChatGPT.pptx
Literature review for prompt engineering of ChatGPT.pptxLiterature review for prompt engineering of ChatGPT.pptx
Literature review for prompt engineering of ChatGPT.pptx
LokerXu2
 
BBOC407 Module 1.pptx Biology for Engineers
BBOC407  Module 1.pptx Biology for EngineersBBOC407  Module 1.pptx Biology for Engineers
BBOC407 Module 1.pptx Biology for Engineers
sathishkumars808912
 
paper relate Chozhavendhan et al. 2020.pdf
paper relate Chozhavendhan et al. 2020.pdfpaper relate Chozhavendhan et al. 2020.pdf
paper relate Chozhavendhan et al. 2020.pdf
ShurooqTaib
 
The Differences between Schedule 40 PVC Conduit Pipe and Schedule 80 PVC Conduit
The Differences between Schedule 40 PVC Conduit Pipe and Schedule 80 PVC ConduitThe Differences between Schedule 40 PVC Conduit Pipe and Schedule 80 PVC Conduit
The Differences between Schedule 40 PVC Conduit Pipe and Schedule 80 PVC Conduit
Guangdong Ctube Industry Co., Ltd.
 
Covid Management System Project Report.pdf
Covid Management System Project Report.pdfCovid Management System Project Report.pdf
Covid Management System Project Report.pdf
Kamal Acharya
 
❣Unsatisfied Bhabhi Call Girls Surat 💯Call Us 🔝 7014168258 🔝💃Independent Sura...
❣Unsatisfied Bhabhi Call Girls Surat 💯Call Us 🔝 7014168258 🔝💃Independent Sura...❣Unsatisfied Bhabhi Call Girls Surat 💯Call Us 🔝 7014168258 🔝💃Independent Sura...
❣Unsatisfied Bhabhi Call Girls Surat 💯Call Us 🔝 7014168258 🔝💃Independent Sura...
hotchicksescort
 
Intuit CRAFT demonstration presentation for sde
Intuit CRAFT demonstration presentation for sdeIntuit CRAFT demonstration presentation for sde
Intuit CRAFT demonstration presentation for sde
ShivangMishra54
 
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call GirlCall Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
sapna sharmap11
 
Update 40 models( Solar Cell ) in SPICE PARK(JUL2024)
Update 40 models( Solar Cell ) in SPICE PARK(JUL2024)Update 40 models( Solar Cell ) in SPICE PARK(JUL2024)
Update 40 models( Solar Cell ) in SPICE PARK(JUL2024)
Tsuyoshi Horigome
 
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
DharmaBanothu
 
Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...
Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...
Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...
shourabjaat424
 

Recently uploaded (20)

Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
 
🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...
🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...
🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...
 
INTRODUCTION TO ARTIFICIAL INTELLIGENCE BASIC
INTRODUCTION TO ARTIFICIAL INTELLIGENCE BASICINTRODUCTION TO ARTIFICIAL INTELLIGENCE BASIC
INTRODUCTION TO ARTIFICIAL INTELLIGENCE BASIC
 
FUNDAMENTALS OF MECHANICAL ENGINEERING.pdf
FUNDAMENTALS OF MECHANICAL ENGINEERING.pdfFUNDAMENTALS OF MECHANICAL ENGINEERING.pdf
FUNDAMENTALS OF MECHANICAL ENGINEERING.pdf
 
Data Communication and Computer Networks Management System Project Report.pdf
Data Communication and Computer Networks Management System Project Report.pdfData Communication and Computer Networks Management System Project Report.pdf
Data Communication and Computer Networks Management System Project Report.pdf
 
MODULE 5 BIOLOGY FOR ENGINEERS TRENDS IN BIO ENGINEERING.pptx
MODULE 5 BIOLOGY FOR ENGINEERS TRENDS IN BIO ENGINEERING.pptxMODULE 5 BIOLOGY FOR ENGINEERS TRENDS IN BIO ENGINEERING.pptx
MODULE 5 BIOLOGY FOR ENGINEERS TRENDS IN BIO ENGINEERING.pptx
 
🔥Young College Call Girls Chandigarh 💯Call Us 🔝 7737669865 🔝💃Independent Chan...
🔥Young College Call Girls Chandigarh 💯Call Us 🔝 7737669865 🔝💃Independent Chan...🔥Young College Call Girls Chandigarh 💯Call Us 🔝 7737669865 🔝💃Independent Chan...
🔥Young College Call Girls Chandigarh 💯Call Us 🔝 7737669865 🔝💃Independent Chan...
 
🔥 Hyderabad Call Girls  👉 9352988975 👫 High Profile Call Girls Whatsapp Numbe...
🔥 Hyderabad Call Girls  👉 9352988975 👫 High Profile Call Girls Whatsapp Numbe...🔥 Hyderabad Call Girls  👉 9352988975 👫 High Profile Call Girls Whatsapp Numbe...
🔥 Hyderabad Call Girls  👉 9352988975 👫 High Profile Call Girls Whatsapp Numbe...
 
SELENIUM CONF -PALLAVI SHARMA - 2024.pdf
SELENIUM CONF -PALLAVI SHARMA - 2024.pdfSELENIUM CONF -PALLAVI SHARMA - 2024.pdf
SELENIUM CONF -PALLAVI SHARMA - 2024.pdf
 
Literature review for prompt engineering of ChatGPT.pptx
Literature review for prompt engineering of ChatGPT.pptxLiterature review for prompt engineering of ChatGPT.pptx
Literature review for prompt engineering of ChatGPT.pptx
 
BBOC407 Module 1.pptx Biology for Engineers
BBOC407  Module 1.pptx Biology for EngineersBBOC407  Module 1.pptx Biology for Engineers
BBOC407 Module 1.pptx Biology for Engineers
 
paper relate Chozhavendhan et al. 2020.pdf
paper relate Chozhavendhan et al. 2020.pdfpaper relate Chozhavendhan et al. 2020.pdf
paper relate Chozhavendhan et al. 2020.pdf
 
The Differences between Schedule 40 PVC Conduit Pipe and Schedule 80 PVC Conduit
The Differences between Schedule 40 PVC Conduit Pipe and Schedule 80 PVC ConduitThe Differences between Schedule 40 PVC Conduit Pipe and Schedule 80 PVC Conduit
The Differences between Schedule 40 PVC Conduit Pipe and Schedule 80 PVC Conduit
 
Covid Management System Project Report.pdf
Covid Management System Project Report.pdfCovid Management System Project Report.pdf
Covid Management System Project Report.pdf
 
❣Unsatisfied Bhabhi Call Girls Surat 💯Call Us 🔝 7014168258 🔝💃Independent Sura...
❣Unsatisfied Bhabhi Call Girls Surat 💯Call Us 🔝 7014168258 🔝💃Independent Sura...❣Unsatisfied Bhabhi Call Girls Surat 💯Call Us 🔝 7014168258 🔝💃Independent Sura...
❣Unsatisfied Bhabhi Call Girls Surat 💯Call Us 🔝 7014168258 🔝💃Independent Sura...
 
Intuit CRAFT demonstration presentation for sde
Intuit CRAFT demonstration presentation for sdeIntuit CRAFT demonstration presentation for sde
Intuit CRAFT demonstration presentation for sde
 
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call GirlCall Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
 
Update 40 models( Solar Cell ) in SPICE PARK(JUL2024)
Update 40 models( Solar Cell ) in SPICE PARK(JUL2024)Update 40 models( Solar Cell ) in SPICE PARK(JUL2024)
Update 40 models( Solar Cell ) in SPICE PARK(JUL2024)
 
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
 
Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...
Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...
Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...
 

design-concept.ppt

  • 1. Design Concepts and Principles Instructor: Dr. Jerry Gao
  • 2. Design Concepts and Principles Jerry Gao, Ph.D. Jan. 1999 - Software design and software engineering - Design process - Design principles - Design concepts - Abstraction, refinement, modularity - Software architecture - Control hierarchy - Structural partitioning - Data structure - Software procedure - Information hiding - Effective modular design - Functional dependence, cohesion, coupling - Design heuristics for effective modularity - Design model - Design documentation
  • 3. Software Design and Software Engineering Design -> The first step in the development phase for any engineered product. It serves as the foundation for all software engineering and software maintenance steps that follow. The goal of a designer is to produce a model (or representation) of an entity that will later be built. Input of software design: Req. analysis models and specification doc. Output of software design: Design models and design specification doc. Design - translates the requirements into a completed design model for a software product. - provides the representations of software that can be assessed for quality. Figure 13.1
  • 4. Software Design A number of design methods can be used to produce software design: - Data design: transforms the information domain model into data structures. - Architecture design: defines the relationship among major structural elements of the program. - Interface design: describes how the software communicates with users. - Procedure design: transforms structural elements of the program architecture into a procedural description of software components. The evolution of software design: - Modular program construction[DEN73] and top-down refining methods[WIR71]. - Structured programming [DAH71, MIL72]. - Translation of data flow/data structure into a design definition.[JAC75][WAR74]. - Object-oriented approach [JAC92][GAM95]. Common features of software design methods: - A mechanism for translation of an analysis model into a design representation - A notation for representing functional components and their interfaces - Heuristics for refinement and partitioning - Guidelines for quality assessment
  • 5. Design Process Software design --> an iterative process through which requirements are translated into a “blueprint” for constructing the software. The design is represented at a high level of abstraction. As design iterations occur, subsequent refinement leads to design representation at much lower levels of abstraction. Design quality is very important. Two methods are used to check the quality: a) formal technical reviews, and b) design walkthroughs McGlaughlin’s [McG91] three common features of a good design: - The design must implement all of requirements (explicit/implicit) - The design must be readable and understandable - The design should provide a complete picture of the software in the aspects of data, functions, and behaviors.
  • 6. Design Quality To evaluate a software design, a design quality criteria can be used. Here is the guideline for a good design: - A design should exhibit a hierarchical organization about software - A design should be modular based on logical partition. - A design contains both data and procedural abstractions. - A design should leads to modules with independent functional features. - A design should leads to simplified interfaces between modules. - A design should be derived using a repeatable method Software design process encourages good design through the application of fundamental design principles, systematic methodology, and through reviews.
  • 7. Design Principles David [DAV95] suggests a set of principles for software design: - The design process should not suffer from “tunnel vision”. - The design should be traceable to the analysis model. - The design should not reinvent the wheel. - The design should “minimize the intellectual distance” between the software and the problem in the real world. - The design should exhibit uniformity and integration. - The design should be structured to accommodate change. - The design should be structured to degrade gently. - Design is not coding. - The design should be assessed for quality. - The design should reviewed to minimize conceptual errors. External quality factors: observed by users. Internal quality factors: important to engineers
  • 8. Design Concepts - Abstraction: Each step in the software engineering process is a refinement in the level of abstraction of the software solution. - Data abstractions: a named collection of data - Procedural abstractions: A named sequence of instructions in a specific function - Control abstractions: A program control mechanism without specifying internal details. - Refinement: Refinement is actually a process of elaboration. Stepwise refinement is a top-down design strategy proposed by Niklaus [WIR71]. The architecture of a program is developed by successively refining levels of procedural detail. The process of program refinement is analogous to the process of refinement and partitioning that is used during requirements analysis. The major difference is in the level of implementation detail, instead of the approach. Abstraction and refinement are complementary concepts. Abstraction enables a designer to specify procedure and data w/o details. Refinement helps the designer to reveal low-level details.
  • 9. Design Concept - Modularity The concept of modularity has been espoused for almost four decades. Software is divided into separately named and addressable components, called modules. Meyer [MEY88] defines five criteria that enable us to evaluate a design method with respect to its ability to define an effective modular system: - Modular decomposability: a design method provides a systematic mechanism for decomposing the problem into sub-problems --> reduce the complexity and achieve the modularity - Modular composability: a design method enables existing design components to be assembled into a new system. - Modular understandability: a module can be understood as a standalone unit it will be easier to build and easier to change. - Modular continuity: small changes to the system requirements result in changes to individual modules, rather than system-wide changes. - Modular protection: an aberrant condition occurs within a module and its effects are constrained within the module.
  • 10. Software Architecture Software architecture is the hierarchical structure of program components and their interactions. Shaw and Garlan [SHA95a] describe a set of properties of architecture design: - Structural properties: The architecture design defines the system components and their interactions. - Extra-functional properties: The architecture design should address how the design architecture achieves requirements for performance, capacity, reliability, adaptability, security. - Families of related systems: The architecture design should draw upon repeatable patterns in the design of families of similar systems. Figure 13.3.
  • 11. Different architectural design methods: (Figure 13.3) - Structural models: represent architecture as an organized collection of components. - Framework models: increase the level of design abstraction by identifying repeatable architecture design frameworks (patterns) - Dynamic models: address the behavior aspects of the program architecture - Process models: focus on the design of the business or technical process - Functional models: can be used to represent the functional hierarchy of a system Software Architecture Fan-out Fan-in Control Hierarchy
  • 12. Structural Partitioning The program structure should be partitioned both horizontally and vertically. (Figure 13.4) (1) Horizontal partitioning defines separate branches of the modular hierarchy for each major program function. Simplest way is to partition a system into: input, data transformation (processing), and output Advantages of horizontal partition: - easy to test, maintain, and extend - fewer side effects in change propagation or error propagation Disadvantage: more data to be passed across module interfaces --> complicate the overall control of program flow (2) Vertical partitioning suggests the control and work should be distributed top-down in program structure. Advantages: good at dealing with changes: - easy to maintain the changes - reduce the change impact and and propagation
  • 13. Effective Modular Design Information hiding: Modules should be specified and designed so that the internal details of modules should be invisible or inaccessible to other modules. Major benefits: reduce the change impacts in testing and maintenance Functional independence: Design modules based on independent functional features Major benefits: effective modularity Cohesion: a natural extension of the information hiding concept a module may perform a number of tasks. A cohesive module performs a single task in a procedure with little interactions with others. Goal: to achieve high cohesion for modules in a system. Different types of cohesion: - coincidentally cohesive: a set of tasks related to each other loosely - logical connection among processing elements ---> logically cohesive: - data sharing among processing elements --> communication cohesion -order among processing elements --> procedural cohesion
  • 14. Effective Modular Design Coupling: (Figure 13.8) A measure of interconnection among modules in a program structure. Coupling depends on the interface complexity between modules. Goal: to strive for lowest possible coupling among modules. Good coupling ---> reduce or avoid change impact and ripple effects. ---> reduce the cost in program changes, testing, maintenance Types of coupling: - data coupling: parameter passing or data interaction - control coupling: share related control logical (for a control data) - common coupling: common data sharing - content coupling: module A use of data or control information maintained in another module.
  翻译: