software engineering - cs.uh.edursingh/documents/software_engineering/5-design.… · software...
TRANSCRIPT
![Page 1: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/1.jpg)
Software Engineering
Dr. Raj Singh
![Page 2: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/2.jpg)
![Page 3: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/3.jpg)
Encompasses the set of principles, concepts, and practices that lead to the development of a high quality system or product
Design principles establish and overriding philosophy that guides the designer as the work is performed
Design concepts must be understood before the mechanics of design practice are applied
Software design practices change continuously as new methods, better analysis, and broader understanding evolve.
3
![Page 4: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/4.jpg)
User Interface design defines how software elements, hardware elements, and end-users communicate
Architectural design defines relationships among the major software structural elements
Component-level designtransforms structural elements into procedural descriptions of software components
Data/Class design transforms analysis classes into implementation classes and data structures
4
![Page 5: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/5.jpg)
Analysis Model
use-cases - text use-case diagrams activity diagrams swim lane diagrams
data flow diagrams control-flow diagrams processing narratives
f l ow- or i ented e l ements
behav i or a le l ements
c l a ss- ba sede l ements
sc ena r i o- ba sede l ements
class diagrams analysis packages CRC models collaboration diagrams
state diagrams sequence diagrams
D a t a / Cla ss D e s ign
Arc h i t e c t u ra l D e s ign
In t e rfa c e D e s ign
Com pone n t - L e v e l D e s ign
Design Model
5
![Page 6: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/6.jpg)
A good design leads to good quality product
The design must implement all of the explicit and implicit
requirements contained in the requirements analysis model
The design should be
Easy to understand and follow.Provide a complete picture of the software to
be implemented.Flexible, scalable, modular, uniform,
maintainable.
6
![Page 7: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/7.jpg)
Abstraction•data, procedure, control
Architecture•the overall structure of the software
Patterns•”conveys the essence” of a proven design solution
Separation of concerns•any complex problem can be more easily handled if it is subdivided into pieces
Modularity•compartmentalization of data and function
Information hiding•controlled interfaces
Functional independence•single-minded function and low coupling
Refinement•elaboration of detail for all abstractions
Aspects•a mechanism for understanding how global requirements affect design
Refactoring•a reorganization technique that simplifies the design
7
![Page 8: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/8.jpg)
Design classesEntity, boundary, and
controller classes
Inheritanceall responsibilities of
a superclass is immediately inherited
by all subclasses
Messagesstimulate some
behavior to occur in the receiving object
Polymorphisma characteristic that greatly reduces the
effort required to extend the design
8
![Page 9: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/9.jpg)
DataData model à data structures, database
architecture
ArchitecturalApplication domain,
classes, relationships, collaborations,
behaviors, patterns
InterfaceUser interface (UI), components, other systems, devices,
networks
ComponentAPIs, business and
service logic
DeploymentContinuous
integration and deployement
9
![Page 10: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/10.jpg)
![Page 11: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/11.jpg)
A graphical representation of the software to be built
An enabler for communication between all stakeholders involved in the software development
Stakeholders can use as a basis for mutual understanding and negotiation
Facilitates early design decisions
11
![Page 12: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/12.jpg)
target system: Security Function
usesuses peershomeowner
Safehome Product
Internet-based system
surveillance function
sensors
control panel
sensors
uses
12
![Page 13: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/13.jpg)
Economy The best software is uncluttered easy to understand.
VisibilityArchitectural decisions and the reasons for them should be obvious.
Spacing No hidden dependencies.
Symmetry System is consistent and balanced in its attributes.
Emergence Emergent, self-organized behavior and control.
Documentation Document all decisions as they are made.
13
![Page 14: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/14.jpg)
Assess the ability to meet the quality requirements
Identify potential risks
Economical in terms of effort and resources
Often make use of experience-based reviews, prototype evaluation, and scenario reviews, and checklists
14
![Page 15: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/15.jpg)
To avoid rework, user stories are used to create and evolve an architectural model (walking skeleton) before coding
Hybrid models which allow software architects contributing users stories to the evolving storyboard
Well run agile projects include delivery of work products during each sprint
Reviewing code emerging from the sprint can be a useful form of architectural review
15
![Page 16: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/16.jpg)
![Page 17: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/17.jpg)
OO viewa component contains a set of
collaborating classes
Conventional view a component contains processing
logic, data structures, and an interface
17
![Page 18: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/18.jpg)
SRP - The Single Responsibility Principle
A class should have one, and only one, reason to change.
OCP - The Open Closed Principle
You should be able to extend a classes behavior, without modifying it.
LSP - The Liskov Substitution Principle
Derived classes must be substitutable for their base classes.
DIP - The Dependency Inversion Principle
Depend on abstractions, not on concretions.
ISP - The Interface Segregation Principle
Make fine grained interfaces that are client specific
18
![Page 19: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/19.jpg)
ComponentsSimple and easy to
understand
InterfacesProvide important information about
communication and collaboration
DependenciesModel dependencies
from left to right
InheritanceModel inheritance
from bottom (derived classes) to top (base
classes)
ReusabilityDesign reusable
components
19
![Page 20: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/20.jpg)
Adaptable Adapt itself efficiently and fast to changed circumstances
Consistency Same output for given input every time.
Extensibility Easy to extend components
Fast Faster development
Modularity Small easy to use modules
Simple Low complexity
Stability Tested and stable
20
![Page 21: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/21.jpg)
![Page 22: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/22.jpg)
Easy to use?
Easy to understand?
Easy to learn?
22
![Page 23: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/23.jpg)
Lack of consistency
Too much memorization
No guidance or help
No context sensitivity
Poor response time
Complexity
Not easy to use
23
![Page 24: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/24.jpg)
Place the user in control
Reduce the user’s memory load
Make the interface consistent
24
![Page 25: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/25.jpg)
User model — a profile of all end users of the system
Design model — a design realization of the user model
Mental model — the user’s mental image of what the interface is
Implementation model — the interface look and feel
25
![Page 26: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/26.jpg)
Understand the end-users who will interact with the system
the tasks they must perform to do their work
the content that is presented as part of the interface
the environment in which these tasks will be conducted
26
![Page 27: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/27.jpg)
Who will be using the software?
How they will use?
Where they will use?
Training
Documentation
Help and support
27
![Page 28: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/28.jpg)
Define interface objects and actions (operations)
Define events (user actions)
Depict each interface state (look and feel)
Use consistent theme
28
![Page 29: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/29.jpg)
Response time
Help facilities
Error handling
Menu and command labeling
Application accessibility
Internationalization
29
![Page 30: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/30.jpg)
Usability I can do it on my own and understand
Accessibility Interface is accessible to all intended users
Anticipation What user will do next?
CommunicationKeep user informed, meaningful messages, where they are?
Consistency Consistent look and feel (e.g., color, shape, layout)
Efficiency The design should optimize the user’s work efficiency
30
![Page 31: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/31.jpg)
Don’t Don’t be afraid of white space
Emphasize Emphasize content
Organize Organize layout elements from top-left to bottom right
GroupGroup navigation, content, and function geographically within the page
Don’t extend Don’t extend your real estate with the scrolling bar
Consider Consider resolution, window size, and device user will use
31
![Page 32: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/32.jpg)
32
![Page 33: Software Engineering - cs.uh.edursingh/documents/software_engineering/5-Design.… · Software Engineering Dr. Raj Singh. Encompasses the set of principles, concepts, and practices](https://reader030.vdocuments.net/reader030/viewer/2022040121/5eacdc496dd39f73476c199c/html5/thumbnails/33.jpg)
§ Roger Pressman, Software Engineering: A Practitioner's Approach, 8th edition, McGraw Hill, ISBN 0078022126
33