1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be...
-
Upload
roy-hunter -
Category
Documents
-
view
212 -
download
0
Transcript of 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be...
![Page 1: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/1.jpg)
1
Software Design
Lecture 09
![Page 2: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/2.jpg)
2
What’s Design
•It’s a representation of something that is to be built.
•i.e. design implementation
![Page 3: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/3.jpg)
3
Example Designs in Real Life
•Blue Prints for a building architecture- manifests in the actual building
•A Plan for conducting a workshop- Workshop is executed as per plan
•Course Syllabus- Course is taught to cover the syllabus
![Page 4: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/4.jpg)
4
Design in Software Engineering
•Process Design-Design for the process of carrying out
software development.
•Product Design- Design of the product to be built
![Page 5: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/5.jpg)
5
Examples of Process Design
•Methodology Selection•Project Planning/ Execution Plans•Process & Documentation Standards•Resource allocation charts•Quality and Reliability methods
![Page 6: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/6.jpg)
6
What is covered in Product Design?
•Product Architecture
•Subsystems, Interconnections
•Modules, Packages and Libraries
•Components and Classes
![Page 7: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/7.jpg)
7
What is covered in Product Design?
•Files and Executable Binaries
•Functions, Data Structures and Algorithms
•Tables
•Interfaces
![Page 8: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/8.jpg)
8
What is covered in Product Design?
•Concurrency, Parallelism and Distribution
•Networking, Security Architecture…..
![Page 9: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/9.jpg)
9
From Analysis to Design• Analysis produces analysis model
such as– Entity Relationship Model– Dataflow Model– Use Case Model
Design models are built from the analysis models
Design Models then easily map to actual implementation of the software
![Page 10: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/10.jpg)
10
Factors to be considered in design
•Does it meet the functional specification first of all? Is it complete?
•How close is the design to the problem domain
•Is it best possible design from performance point of view within given constraints?
![Page 11: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/11.jpg)
11
Factors to be considered in design
•Is the analysis model traceable into the corresponding design model? Is the seamlessness?
•Is there reuse?
•Is it well-structured?
![Page 12: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/12.jpg)
12
Factors to be considered in design
•Is it evolvable ?
•Is it well documented?– No dark matter in software
•Has it been reviewed?
![Page 13: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/13.jpg)
13
Process of ComplexSystem Design
•Decomposition (Partitioning)– Split the system into many components– Separation of concerns
Composition (coupling)– Connect the components and let them
collaborate to achieve the system’s overall functionality.
![Page 14: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/14.jpg)
14
Top-Down Vs. Bottom-upApproach
•Start from Higher levels and decompose downwards identifying connections / collaborations at every stage.
•Start from lower modules and then compose them upwards.
•Or even Iterate upwards and downwards for refinements
![Page 15: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/15.jpg)
15
Decomposition•Separate the concerns through modular decomposition
•Structured Decomposition– Hierarchical Structures
• Part Whole hierarchy• Inheritance hierarchy• Instance of hierarchy• Focus of attention hierarchy (Zoom)
![Page 16: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/16.jpg)
16
Composition / Interconnections•How do modules correspond with each other?– What’s the best way?– How good is a given modular
decomposition
•Different ways of interconnecting– E.g. Peer to peer, Client Server,
Specialization, Generalization, aggregation, messaging, signals….
![Page 17: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/17.jpg)
17
Basic Principles to be applied during design
•Abstraction
•Encapsulation
•Refinement
•Communication
![Page 18: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/18.jpg)
18
Abstraction•An external view of a given system
•To understand the lower level system through abstraction that is easy to comprehend
•To manipulate a system/operate on a system through an obj interface
![Page 19: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/19.jpg)
19
Example Abstraction
•Types and Variables•Functions•Classes and Objects•Files and Processes•Control Constructs•Packages
![Page 20: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/20.jpg)
20
Describing Abstractions
•Abstract Data types•Interfaces•Exceptions•Messaging Protocols•Contracts •Preconditions and Post conditions
![Page 21: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/21.jpg)
21
Encapsulation
•Hiding Lower Layers– Security– Enforces abstraction
•Examples: Local state within local scope, invisible variables, private member functions
![Page 22: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/22.jpg)
22
Refinement
•Iterative refinement of a given concept should be easy to achieve without much redo work
•E.g. A Software Process with revisitable design phase
![Page 23: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/23.jpg)
23
Refinement•Inheritance and Refinement
•Open-Close Principles for components– Implementation is open to refinement– Interface is closed
e.g. Next version of a component may b refined w.r.t. implementation, or specialized through inheritance.
![Page 24: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/24.jpg)
24
Refinement•Another application of refinement is in zooming (macroscopic Vs. Microscopic model)
•The microscopic model is a refined model
•E.g. State diagrams cam be zoomed to blow up a sate into a separate state diagram
![Page 25: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/25.jpg)
25
Refinement
•Generic description to specific description– Different from inheritance
•Example: Template class or Generic Packages
![Page 26: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/26.jpg)
26
Refinement and Change Process•Change processes are provided to carry out refinements
•Examples– Inheritance mechanism– Encapsulation and separate compilation
enables refinement of implementation – UML support for hierarchical state
diagrams for microscopic refinements
![Page 27: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/27.jpg)
27
Communication
•Different kinds of interconnection– Also called connectors– For the components to collaborate and
solve a common problem of the system
•Interclass connectors (pointers, references), inter-process connectors (sockets, proxies), inter-machine connectors (TCP/IP, Internet)
![Page 28: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/28.jpg)
28
Other kinds of communication
•Shared memories/black boards•Synchronization
– Message Queues– Monitors– Signals and actions
•Filters and Pipes
![Page 29: 1 Software Design Lecture 09. 2 What’s Design It’s a representation of something that is to be built. i.e. design implementation.](https://reader035.fdocuments.us/reader035/viewer/2022070413/5697bfeb1a28abf838cb7c62/html5/thumbnails/29.jpg)
29
Summary
•What’s Design?•Some example designs•Analysis is to be converted into design•Factors to be considered during design•Top-Down Process of design •Basic Principles to be applied during design