Seal of Good Local Governance (SGLG) 2024Final.pptx
unit 3 Design 1
1. Design process and Design quality
• Software design is an iterative process through
which requirements are translated into “Blue
prints” for constructing the software
• The design is represented at high level of
abstraction.
• Design can be directly traced to specific system
objective and more detailed data,behavioural
requirements
2. • There are three characters which server as a
guide for evaluation of good design.
The design should implement all explicit and implicit
requirements given by customer.
The design must readable, understandable for those who generate
a code, who tests the software.
The should provide a complete picture of software.
3. • Quality guidelines: in order to evaluate the
quality of design,there are guidelines.
• A design should exhibit an architecture (is been
created using recognizable architectural styles or patterns,
components that exhibit good design ,can be implemented in
a evolutionary fashion).
• A design should be modular.
• A design should contain distinct representation of
data,architecture,interfaces,components.
• A design should reduce the complexity of
connections between components and with external
environment.
4. • A design should be represented using a
notations that effectively communicates its
meaning.
• HP developed a set of software quality
attributes that has been given the acronym
FURPS
• Functionality is assessed by evaluating the
feature set and capabilities of the program
5. • Usability is assessed by considering human
factors.
• Reliability is evaluated by measuring the
frequency and severity of failure.
• Performance is measured by processing speed,
response time, resource consumption,
throughput and efficiency
• Supportability combines the ability to extend
the program.(Extensibility,adaptability,serviceablity)
6. • Design concepts
• A set of fundamental software design concepts
has evolved over the history of software
engineering.
• Abstraction
• Information hiding
• Functional independence
• Refactoring
• Modularity
• Refinement
• Design classes
7. • Abstraction
• The term abstract defines that, which show an
important information or data, going to do.
• At the highest level of abstraction a data is stated
in board terms.
• At lower level of abstraction a more detailed
description of data is provided.
• They are two types procedural abstraction and
data abstraction
8. • procedural abstraction
• It refers to a sequence of instructions that
have a specific and limited functions.
• Example: word open a door.(it having long
procedural steps)
• Data abstraction
• Is a collection of data that describes a data object
• Example: door
• Data abstraction for door having set of attributes
that describe the door (door type, swing direction,
opening mechanism etc.,)
9. • Modularity
• Software is divided into separately named and
addressable components.
• Some times called modules, that are integrated to
satisfy problem requirements.
• They are monolithic software's means large program
is composed to a single module
• Can not be easily grasped by a software engineers.
• Based on these problems to software's we are going
to modularity
10. • Information hiding
• The concept of modularity leads every software
designer to one question (i.e how do we
decompose a software to obtain the best
modules)
The principle of information hiding gives a
solution for above.
Modules be characterized by design decision that
hides from all others.
11. • Modules should be designed and specified, so
that the information contained with in a
module is inaccessible to other modules .
• Hiding like these we achieve high modularity
12. • Refactoring
• An important design activity suggested for
many agile methods
• Refactoring is a reorganization technique that
simplifies the design of a component with out
changing its functions or behavior.
13. • Functional Independence:
• The concept of functional independence is a
direct growth of modularity and concept of
abstraction and information hiding.
• Each functional independence is achieved by
developing modules with “single-minded”
• Software with effective modularity that is
independent modules is easier to develop
because function may be compartmentalized .
14. • Independent modules are easier to maintain
because secondary effects caused by design or
code modification are limited, error propagation
is reduced and reusable is possible.
• To summarize functional independence is a key to
good design.
• Independence is assessed by two criteria's:
Cohesion and Coupling
15. • Cohesion
• Cohesion states that the relative functional
strength of module
• Coupling
• Coupling states that the relative interdependence
among modules
16. • Refinement:
• Refinement is actually a process of elaboration
• We start with high level of abstraction.
• Refinement causes the designer to elaborate on
the original statements providing more and
more details.
• Abstraction and refinement are complementary
concepts
17. • Design Classes:
• Analysis model defines a complete set of
analysis classes
• Each analysis class describes some elements
•
• The level of abstraction of analysis class is
relatively high.
• As design model evolves the s/w team to
define set of design classes.
18. • 1. It refine the analysis classes to provide detail
design, that enable the classes to be implemented.
• 2.And create a new set of design classes to support
solutions.
They are five different of design classes:
User interface classes(defines, that are necessary for human computer
interaction(HCI)
Business domain classes(refinement of analysis classes ,classes identify
the attributes and services that are required to implement elements in
business domain
Process classes(implement lower level business abstraction,supports
to business domain classes)
Persistent classes(represents data store (like database)
19. • System classes(implement s/w management and control
functions that enables the sys to operate and communicate with in
and out of environment)
• They define four characteristics of a well formed
design class
• complete and sufficient: A design class must be
complete encapsulation of all attributes and
methods .
• Primitiveness: methods associated with design
class should be focused on one service for the
class.
20. • High cohesion: A design class has a small,
focused set of responsibilities and methods to
implement those responsibilities.
• Cohesion is maintained.
• Low coupling: design classes are collaborate
with another classes, however the colloration
should kept to an acceptable minimum.
• If design is high coupled it is difficult to
implement, to test, and to maintain over time.
23. • The design model can be viewed in two different
dimensions.
• The process dimension indicates the change of
design model as tasks are executed as part of
software process.
• The abstraction dimension represents the level of
details as each element of analysis model is
transformed into design
• Referring to figure the dashed line indicates
boundary between analysis and design models
24. • In some cases clear distinction is possible and
in other case it is not possible.
• The elements of design model uses many UML
diagrams .
• Data design elements:
• Data design sometimes refer as data architecting,
creates a model of data or information that is
represented at a high level of abstraction.
• The structure of data has always been an important
part of s/w design.
25. • Architectural design elements:
• The architectural design for software is equal to
floor plan of house.
• The floor plan depicts the overall layout of the
rooms, their size,shape,and relationship to
another.
• The floor plan gives us overall view of house.
• Architectural design elements give us overall view
of the software.
26. • Interface design elements:
• The interface design for software is equal to a set
of detailed drawings for doors,windows,and
external utilities of a house.
• They are three important interfaces
• user interface
• external interface
• internal interface
27.
28. • Component level design elements:
• The component level design for software is
equal to set of detailed drawing for each room
in a house(like wiring,plumbing,location of
switches…..)
29.
30. • Deployment level design elements:
• Deployment level design elements indicate
how software functionality and subsystems
will be allocated within the physical
computing environment.
31.
32. • Creating an architectural design:
• Design as define a multistep process in which
representation of data and structure.
• Software architecuture:the s/w architecture of
program or a system is the structure of the
system.Which comprise s/w components, externally
visible properties of those components and
relationship among them.
33. What is architecture ?
At most simplistic level, we consider the overall
shape of the system. but in reality architecture is
much more, various components are integrated
to form a whole.
The visual impact of the buliding,the way textures,
colors and materials are combined to create the
external and internal environment.
34. Rather architecture is not operational s/w, it is the
representation.
1)Analyze the effectiveness of the design
2)Consider the alternative architecture at some stages.
3)Reduce the risks associated with the construction.
Why is architecture important ?
1)Representation of s/w architecture are an enabler for
communication b/w all stakeholders who are interest in
development of system.
2)The architecture highlights have profound impact on software
engineering work.
3)Intellectually graspable model of how the system is structured and
how its components work together.
35. • Data Design:
• Data design action translates the data objects
defined in analysis model into data structures
at software component level.
• Data design at architectural level:
• Today business large are small are awash of data.
• For moderately sized business to have dozens of
databases and having hundreds of gigabytes of data.
36. • To solve theses challenge the IT business
community developed Data mining technique
also called knowledge discovery in
databases(KDD)
• With some factors these technique as become
difficult.
• An alternative solution called data warehouse
37. • Data design at the component level:
• Data design level focuses on representation of
data structures that are accessed by software
component. the Wassermann proposed set of
principles to specify and design data
structures.
38. 1)The systematic analysis principles applied to
functions and behavior and also applied to data.
2)All data structures and its operations should be
performed, should be identified.
3)A mechanism for defining the content of each data
object should be established and used to define
both data and the operations applied to it.(Class
diagram)
4)The representation of data structure should be
known to only to those modules. that make direct
use of data.
39. Data structure and operations that may be
applied to them should be developed
• A software design and programming language
should support specifications of data.
40. • Architectural styles and patterns:
• Data centered architecture
• Data-flow architecture
• Call and return architecture
• Object-oriented architecture
• Layered architecture.
41.
42.
43.
44.
45. Architectural Design:
As Architectural design begins, software development
must be put into context.
The design should define the external entities(other
sys,devices,peoples) that software interact.
These information generally gathered from analysis phase
and remaining information from requirement
engineering.
46. After completion of all the things, designer
specifies the structure of system by refining
software components that implement the
architecture.
This process is iteratively done.
47. • Representing the system in context:
• We noted that the system engineer must
model context.
• System context diagram accomplishes this
requirement by representing the flow of
information into and out of the system.
48.
49.
50. Defining Archetypes:
An archetype is a class or pattern that represents
core abstraction.
These is main part for design of an architecture for
the target system.
In general small set of archetypes is required to
design even complex systems.
The target system composed of these archetypes
51.
52. Node: represents the collection of input and
output elements of safehome home security
Eg:various sensors,variety of alarms etc.,,,
Detector: that encompasses all sensing
equipments that feeds information into it.
Indicator: representing the mechanism foe
indicating that alarm condition is
occurring(alarm siren, flashing lights, bell)
53. • Controller: depicts the mechanism that allows
the arming or disarming of a node
• Archetypes are abstract building blocks of an
architectural design