You are on page 1of 36

DESIGN

CONCEPTS
AGENDA
▸ SOFTWARE DESIGN (INTRODUCTION) ▸ DESIGN MODELS

▸ REQUIREMENTS MODEL INTO THE DESIGN ▹ DATA DESIGN ELEMENTS


MODEL ▹ ARCHITECTURAL DESIGN ELEMENTS
▸ SOFTWARE QUALITY GUIDELINESS ▹ INTERFACE DESIGN ELEMENT
▸ SOFTWARE QUALITY ATTRIBUTES ▹ COMPONENT LEVEL DESIGN ELEMENT
▸ DESIGN CONCEPTS ▸ COMPONENT AND DEPLOYMENT
DIAGRAMS
2
SOFTWARE DESIGN
▸ Software design encompasses ,

the set of principles ,

concepts,

practices,

that lead to the development of a high-quality system or product.

3
WHAT IS THE GOAL OF DESIGN

▸ The goal of design is to produce a model or


representation that exhibits

▹ firmness

▹ Commodity

▹ delight

4
Translating the requirements model into the design model
▸ McGlaughlin suggests three characteristics that serve as a
guide for the evaluation of a good design:

▹ The design must implement all of the explicit


requirements contained in the requirements model,
and it must accommodate all of the implicit
requirements desired by stakeholders.

▹ The design must be a readable, understandable


guide for those who generate code and for those who
test and subsequently support the software.

6
▸ The design should provide a complete picture of the
software, addressing the data, functional, and behavioral
domains from an implementation perspective.

7
SOFTWARE QUALITY GUIDELINES

8
SOFTWARE QUALITY GUIDELINES
▸ A design should exhibit an architecture that

▹ 1) has been created using recognizable architectural styles or patterns,

▹ 2) is composed of components that exhibit good design characteristics

▹ 3) can be implemented in an evolutionary fashion , thereby facilitating implementation and


testing.

▸ A design should be modular; that is, the software should be logically partitioned into elements or
subsystems.

▸ A design should contain distinct representations of data, architecture, interfaces, and components.

9
SOFTWARE QUALITY GUIDELINES
▸ A design should lead to data structures that are appropriate for the classes to be
implemented and are drawn from recognizable data patterns

▸ A design should lead to interfaces that reduce the complexity of connections between
components and with the external environment.

▸ A design should be derived using a repeatable method that is driven by information


obtained during software requirements analysis.

10
SOFTWARE QUALITY ATTRIBUTES

11
SOFTWARE QUALITY ATTRIBUTES
▸ Functionality is assessed by evaluating the feature set and capabilities of the program, the
generality of the functions that are delivered, and the security of the overall system.

▸ Usability is assessed by considering human factors, overall aesthetics, consistency, and


documentation.

▸ Reliability is evaluated by measuring the frequency and severity of failure, the accuracy of
output results, the mean-time-to-failure (MTTF), the ability to recover from failure, and the
predictability of the program.

▸ Performance is measured by considering processing speed, response time, resource


consumption, throughput, and efficiency.

12
SOFTWARE QUALITY ATTRIBUTES

▸ Supportability : This category focuses on the ease of maintenance and support for the software
product. Supportability includes factors such as the availability of technical support, the ease of
installing and updating the software, and the ease of modifying or customizing the software.

13
DESIGN CONCEPTS

14
DESIGN CONCEPTS
▸ ABSTRACTION
▹ Abstraction simply means to hide the details to reduce the complexity & increase efficiency and
quality.

▹ Different levels of abstraction are necessary & must be applied at each stage of design process so
errors that are present can be removed efficiently.

▹ Procedural abstraction

▹ Data abstraction

▸ ARCHITECTURE
▹ It is the structure or organization of program components , the manner in which these components
interact and the structure of data that are used by the components

15
DESIGN CONCEPTS
▸ PATTERN
▹ The pattern simply means a repeated form of design in which the shape is repeated several times to
form a pattern.

▹ The pattern in the design process means the repetition of a solution to a common recurring problem
with a certain context

▸ Modularity
▹ Modularity simply mean to divide the system or project into smaller parts to reduce the complexity of
the system or project.

▹ In the same way , modularity in design means to subdivided a system into smaller parts so that test part
can be created independently & then designing & construction will be easy

16
DESIGN CONCEPTS

▸ Hence always select as medium module based on project cost & complexity

17
DESIGN CONCEPTS
▸ INFORMATION HIDING
▹ Information hiding simply means to hide the information so that it cannot be accessed by unwanted

party.

▸ FUNCTIONAL INDEPENDENT

▹ As a project has multiple functions/methods they all should be independent to each other.

▹ Hence designing, coding , testing will be easy , fast & efficient

▸ REFINEMENT

▹ Refinement simply means to find impurities if present & increases the quality

▹ Refinement is very necessary to find out any bugs/errors if present optimization is also done here

18
DESIGN CONCEPTS
▸ SEPARATION OF CONCERN

▹ It is a design concept that suggests that any complex problem can be more easily handled if it is
subdivided into pieces that can each be solved and/or optimized independently.

▹ A concern is a feature or behavior that is specified as part of the requirements model for the software

▸ ASPECTS

▹ As requirements analysis occurs, a set of “concerns” is uncovered. These concerns include


“requirements, use cases, features, data structures , quality-of-service issues, variants, intellectual
property boundaries, collaborations, patterns and contracts”.

▹ An aspect is a representation of a crosscutting concern.

▹ A crosscutting concern is some characteristic of the system that applies across many different
requirements. 19
DESIGN CONCEPTS
▸ REFACTORING
▹ Refactoring simply mean to reconstruct something in such a way that it does not affect the behavior or
any other features.

▹ Refactoring in software design means to reconstruct the design to reduce complexity & to make it
simple without affecting the behavior or its functions

▸ DESIGN CLASSES

▹ System classes, process class, persistent class, user interface class & business domain classes are
referred as design classes

20
DESIGN CONCEPTS
▸ User interface classes define all abstractions that are necessary for human computer interaction
(HCI)

▸ Business domain classes are often refinements of the analysis classes

▸ Process classes implement lower-level business abstractions required to fully manage the
business domain classes.

▸ Persistent classes represent data stores (e.g., a database) that will persist beyond the execution of
the software

▸ System classes implement software management and control functions that enable the system to
operate and communicate within its computing environment and with the outside world.

21
CHARACTERISTICS OF A WELL-FORMED DESIGN
CLASS

▸ Complete and sufficient

▸ Primitiveness

▸ High cohesion

▸ Low coupling

22
DESIGN MODEL

23
DESIGN MODEL

▸ The design model can be viewed in two different dimensions.

▸ Process dimension indicates the evolution of the design model as design tasks are executed as
part of the software process.

▸ Abstraction dimension represents the level of detail as each element of the analysis model is
transformed into a design equivalent and then refined iteratively

24
DATA DESIGN ELEMENTS

▸ Data design creates a model of data and/or information that is represented at a high level of
abstraction.

▸ The structure of data has always been an important part of software design

▸ There are three levels

▹ Component level

▹ Application level

▹ Business level

25
ARCHITECTURAL DESIGN ELEMENTS
▸ The architecture design for software is the equivalent to the floor plan of a house . The floor
plan depicts the overall layout of the rooms; their size , shape, and relationship to one another;
and the doors and windows that allow movement into and out of the rooms.

▸ The architectural model is derived from three sources:

▹ Information about the application to be built

▹ Specific requirements

▹ Availability of styles & patterns

26
INTERFACE DESIGN ELEMENTS
▸ The interface design elements for software depict information flows into and out of the system
and how it is communicated among the components defined as part of the architecture.

▸ There are three important elements of interface design:

▹ Ui

▹ External interfaces to other systems, devices, networks, or other producers or consumers of


information

▹ Internal interfaces between various design components

27
COMPONENT LEVEL DESIGN ELEMENTS

▸ The component level design for software fully describes the internal
detail of each software component.

▸ Example : rooms in house

28
COMPONENT DIAGRAM
▸ Component diagrams are used to visualize the organization of system components and
the dependency relationships between them. They provide a high-level view of the
components within a system.

▸ The components can be a software component such as a database or user interface; or


a hardware component such as a circuit, microchip or device; or a business unit such
as supplier, payroll or shipping.

29
COMPONENT DIAGRAM

30
DEPLOYMENT LEVEL DESIGN ELEMENTS

▸ Deployment-level design elements indicate how software functionality and


subsystems will be allocated within the physical computing environment that will
support the software

31
DEPLOYMENT DIAGRAM

▸ Deployment diagrams are typically used to visualize the physical hardware and
software of a system.

▸ Deployment diagram helps you to understand how the system will be physically
deployed on the hardware.

32
SUMMARIZE

▸ In this presentation ,
▹ Software design
▹ Quality software’s guidelines
▹ Quality software’s attributes

33
SUMMARIZE

▸ Design concepts ▹ Refinement

▹ Abstraction ▹ Refactoring

▹ Architecture ▹ Separation of concerns

▹ Pattern ▹ Aspects

▹ Modularity ▹ Design classes

▹ Information hiding
▹ Functional independent

34
SUMMARIZE

▸ Design model
▹ Data design element
▹ Architecture design element
▹ Interface design element
▹ Component level design element

35
THANK YOU

36

You might also like