Database design concepts info1408 Lecture 8 Worked example of E:R Modelling.
Lecture 18 design concepts (3)
-
Upload
sakhawat-jameel-tanoli -
Category
Software
-
view
101 -
download
2
Transcript of Lecture 18 design concepts (3)
![Page 2: Lecture 18 design concepts (3)](https://reader030.fdocuments.net/reader030/viewer/2022020208/55a684b61a28ab2b498b4852/html5/thumbnails/2.jpg)
Agenda
Design Concepts Design Pattern Separation of Concern Modularity Information Hiding Functional Independence Aspects Refactoring OO Design Concepts
![Page 3: Lecture 18 design concepts (3)](https://reader030.fdocuments.net/reader030/viewer/2022020208/55a684b61a28ab2b498b4852/html5/thumbnails/3.jpg)
Design Pattern
“Software Design Pattern is a solution to a recurring design problem.”
Design patterns have four essential elements: Pattern Name Problem Solution Consequences
![Page 4: Lecture 18 design concepts (3)](https://reader030.fdocuments.net/reader030/viewer/2022020208/55a684b61a28ab2b498b4852/html5/thumbnails/4.jpg)
Separation of Concerns
Any complex problem can be more easily handled if it is subdivided into pieces
A concern is a feature or behavior that is specified as part of the requirements model for the software!
Concern Separation makes a problem more manageable i.e. Less effort and time to solve.!
![Page 5: Lecture 18 design concepts (3)](https://reader030.fdocuments.net/reader030/viewer/2022020208/55a684b61a28ab2b498b4852/html5/thumbnails/5.jpg)
Separation of Concerns
Separation of concerns is manifested in other related design concepts: modularity, aspects, functional independence, and refinement.
![Page 6: Lecture 18 design concepts (3)](https://reader030.fdocuments.net/reader030/viewer/2022020208/55a684b61a28ab2b498b4852/html5/thumbnails/6.jpg)
Modularity
Modularity is the most common manifestation of separation of concerns.
Software is divided into separately named and addressable components
Sometimes called modules, that are integrated to satisfy problem requirements.
![Page 7: Lecture 18 design concepts (3)](https://reader030.fdocuments.net/reader030/viewer/2022020208/55a684b61a28ab2b498b4852/html5/thumbnails/7.jpg)
Modularity
Monolithic software (i.e., a large program composed of a single module) cannot be easily grasped by a software engineer.
Modularity leads to “divide and conquer” strategy. – it is easier to solve a complex problem when you break into a manageable pieces.
![Page 8: Lecture 18 design concepts (3)](https://reader030.fdocuments.net/reader030/viewer/2022020208/55a684b61a28ab2b498b4852/html5/thumbnails/8.jpg)
Modularity
Refer figure that state that effort (cost) to develop an individual software module does decrease if total number of modules increase.
However as the no. of modules grows, the effort (cost) associated with integrating the modules also grows.
![Page 9: Lecture 18 design concepts (3)](https://reader030.fdocuments.net/reader030/viewer/2022020208/55a684b61a28ab2b498b4852/html5/thumbnails/9.jpg)
Modularity vs. Software Cost
![Page 10: Lecture 18 design concepts (3)](https://reader030.fdocuments.net/reader030/viewer/2022020208/55a684b61a28ab2b498b4852/html5/thumbnails/10.jpg)
Modularity vs. Software Cost
![Page 11: Lecture 18 design concepts (3)](https://reader030.fdocuments.net/reader030/viewer/2022020208/55a684b61a28ab2b498b4852/html5/thumbnails/11.jpg)
Information Hiding
Modules should be specified and designed so that information (algorithm and data) contained within a module is in-accessible to other modules that have no need for such information.
The intent of information hiding is to hide the details of data structure and procedural processing behind a module interface.
![Page 12: Lecture 18 design concepts (3)](https://reader030.fdocuments.net/reader030/viewer/2022020208/55a684b61a28ab2b498b4852/html5/thumbnails/12.jpg)
Information Hiding
![Page 13: Lecture 18 design concepts (3)](https://reader030.fdocuments.net/reader030/viewer/2022020208/55a684b61a28ab2b498b4852/html5/thumbnails/13.jpg)
Information Hiding
It gives benefits when modifications are required during testing and maintenance because data and procedure are hiding from other parts of software, un-intentional errors introduced during modification are less.
![Page 14: Lecture 18 design concepts (3)](https://reader030.fdocuments.net/reader030/viewer/2022020208/55a684b61a28ab2b498b4852/html5/thumbnails/14.jpg)
Why Information Hiding
![Page 15: Lecture 18 design concepts (3)](https://reader030.fdocuments.net/reader030/viewer/2022020208/55a684b61a28ab2b498b4852/html5/thumbnails/15.jpg)
Functional Independence
![Page 16: Lecture 18 design concepts (3)](https://reader030.fdocuments.net/reader030/viewer/2022020208/55a684b61a28ab2b498b4852/html5/thumbnails/16.jpg)
Aspects
![Page 17: Lecture 18 design concepts (3)](https://reader030.fdocuments.net/reader030/viewer/2022020208/55a684b61a28ab2b498b4852/html5/thumbnails/17.jpg)
Aspects – Example
![Page 18: Lecture 18 design concepts (3)](https://reader030.fdocuments.net/reader030/viewer/2022020208/55a684b61a28ab2b498b4852/html5/thumbnails/18.jpg)
Refactoring
![Page 19: Lecture 18 design concepts (3)](https://reader030.fdocuments.net/reader030/viewer/2022020208/55a684b61a28ab2b498b4852/html5/thumbnails/19.jpg)
OO – Design Concepts
![Page 20: Lecture 18 design concepts (3)](https://reader030.fdocuments.net/reader030/viewer/2022020208/55a684b61a28ab2b498b4852/html5/thumbnails/20.jpg)
The End
Thanks for listening Questions would be appreciated.