• Design engineeringdescribes the set of principals, concepts, and practices
that lead to the development of a high- quality system or product.
What is Design:
• Design creates a representation or model of the software.
• It is the place where creativity rules, customer’s requirements, business
needs, and technical considerations all come together in the formulation of
a product or a system.
Why is it Important:
• The design can be assessed for quality and improved before code is
generated, tests are conducted, and end – users become involved.
• Design is the place where software quality is established.
3.
DESIGN PROCESS ANDDESIGN QUALITY
Design Process:
• Software design is an iterative process through which requirements are
translated into a “blueprint” for constructing the software.
Characteristics of Good Design:
• The good design should implement all the requirements specified by the
customer.
• The design should be simple, so that the software can be understood easily
by the developer, testers and customers.
• The design should provide complete picture of the software.
4.
Software Quality Guidelines:
•The design should be created using architectural styles and patterns.
• Each component of design should be a good design characteristics.
• The implementation of design should be evolutionary.
• In design the data,architecture,interface and components should be clearly
represented.
• The design should be modular.
• The data structures should be appropriately chosen for the design of specific
problem.
• The components should be used in the design so that functional
independency can be achieved.
• Using the information obtained in software requirement analysis the design
should be created.
• Every design of the software system should convey its meaning
appropriately and effectively.
5.
Quality Attributes:
The designquality attributes are named as 'FURPS‘
• Functionality:
It evaluates the feature set and capabilities of the program.
• Usability:
the usability can be assessed by knowing the usefulness of the system.
• Reliability:
It is evaluated by measuring parameters like frequency and security of failure,
output result accuracy.
• Performance:
it is a measure that represents the response of the time.
• Supportability:
It combines the ability to extend the program, adaptability, serviceability. These
three term defines the maintainability.
6.
Design Concepts
• Thesoftware design concepts provides a framework for implementing the
right software.
1. Abstraction
2. Architecture
3. Patterns
4. Modularity
5. Information hiding
6. Functional independence
7. Refinement
8. Refactoring
9. Design classes
7.
Design Classes
• Designclasses are defined as the classes that describe some elements of
problem domain, in which the problem is viewed from user’s point of
view.
The goal of design classes is:
• To refine the analysis classes by providing the detail design. Using detailed
design further implementation is carried out.
• To create new set of classes for implementing the core requirements of the
software.
8.
There are fivedifferent types of design classes:
• User interface classes:
The user interface class defines all the interactions with the
system. The user interface classes is basically a visual representation.
• Business domain classes:
These classes identify the attributes and services that are needed
to implement some elements of business.
• Process classes:
Process class is used business domain. it define process required
by business domain.
• Persistent classes:
These classes represents the data store such as databases which
will be retained as it is even after the execution of the software.
• System classes:
These classes are responsible for software management and
control function that are used for system operation.
9.
Characteristic of DesignedClasses:
• Complete and sufficient
• Primitiveness
• High cohesion
• Low-coupling
10.
Design Model
• Thedesign model is based on the analysis and architectural requirements
of the system.
• It represents the application components and determines their appropriate
placement and use within the overall architecture.
• Design models are divided by 5 types there are
1. Data design elements
2. Architectural design elements
3. Interface design elements
4. Component level diagram elements
5. Deployment level design elements
11.
1. Data DesignElements
• The data design element produced a model of data that represent a high
level of abstraction.
• The structure of data is the most important part of the software design.
2. Architectural Design Elements
• The architecture design elements provides us overall view of the system.
The architecture model is derived from following sources:
• The information about the application domain to built the software.
• Requirement model elements like data flow diagram or analysis classes,
relationship and collaboration between them.
• The architectural style and pattern as per availability.
12.
3. Interface DesignElements
• The interface design elements represents the detailed design of the
software system.
• They communicate between the components defined as part of
architecture.
Following are the important elements of the interface design:
1. The user interface
2. The external interface
3. The internal interface
4. Component Level Design Elements
• The component level design is more detailed design of the software system
along with the specifications.
• The component level design elements describes the internal details of the
component.
5. Deployment Level Design Elements
• The deployment level design element shows the software functionality and
subsystem that allocated in the physical computing environment which
support the software.