Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
27 views10 pages

Presentation 1

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1/ 10

Software Design Basics

Software Design Levels


 Software design yields three levels of results:
• Architectural Design - The architectural design is the highest abstract
version of the system. It identifies the software as a system with many
components interacting with each other. At this level, the designers get the
idea of proposed solution domain.
• High-level Design- The high-level design breaks the ‘single entity-multiple
component’ concept of architectural design into less-abstracted view of sub-
systems and modules and depicts their interaction with each other. High-
level design focuses on how the system along with all of its components can
be implemented in forms of modules. It recognizes modular structure of each
sub-system and their relation and interaction among each other.
• Detailed Design- Detailed design deals with the implementation part of what
is seen as a system and its sub-systems in the previous two designs. It is
more detailed towards modules and their implementations. It defines logical
structure of each module and their interfaces to communicate with other
modules.
Software quality guidelines
• A design is generated using the recognizable architectural styles and
compose a good design characteristic of components and it is
implemented in evolutionary manner for testing.
• A design of the software must be modular i.e the software must be
logically partitioned into elements.
• In design, the representation of data , architecture, interface and
components should be distinct.
• A design must carry appropriate data structure and recognizable data
patterns.
• Design components must show the independent functional
characteristic.
• A design creates an interface that reduce the complexity of
connections between the components.
• A design must be derived using the repeatable method.
• The notations should be use in design which can effectively
communicates its meaning.
Design concepts
• 1. Abstraction solution is stated in large terms using the language of the problem
environment at the highest level abstraction.
• The lower level of abstraction provides a more detail description of the solution.
• A sequence of instruction that contain a specific and limited function refers in a
procedural abstraction.
• A collection of data that describes a data object is a data abstraction.
• 2. Architecture The complete structure of the software is known as software
architecture.
• Structure provides conceptual integrity for a system in a number of ways.
• The architecture is the structure of program modules where they interact with each
other in a specialized way.
• The components use the structure of data.
• The aim of the software design is to obtain an architectural framework of a system.
• The more detailed design activities are conducted from the framework.
• 3. Patterns
A design pattern describes a design structure and that structure solves a particular
design problem in a specified content.

4. Modularity A software is separately divided into name and addressable


components. Sometime they are called as modules which integrate to satisfy the
problem requirements.
• Modularity is the single attribute of a software that permits a program to be
managed easily.
• 5. Information hiding
Modules must be specified and designed so that the information like algorithm and
data presented in a module is not accessible for other modules not requiring that
information.

6. Functional independence The functional independence is the concept of


separation and related to the concept of modularity, abstraction and information
hiding.
• The functional independence is accessed using two criteria i.e Cohesion and
coupling.
• 7. Refinement is a top-down design approach.
• It is a process of elaboration.
• A program is established for refining levels of procedural details.
• A hierarchy is established by decomposing a statement of  function in a
stepwise manner till the programming language statement are reached.
• 8. Refactoring It is a reorganization technique which simplifies the design of
components without changing its function behavior.
• Refactoring is the process of changing the software system in a way that it
does not change the external behavior of the code still improves its internal
structure.
• 9. Design classes The model of software is defined as a set of design classes.
• Every class describes the elements of problem domain and that focus on
features of the problem which are user visible.
What Is a Design Model?
 
 Design model in software engineering is an object-based
picture or pictures that represent the use cases for a
system. Or to put it another way, it's the means to describe
a system's implementation and source code in a
diagrammatic fashion. This type of representation has a
couple of advantages. First, it's a simpler representation
than words alone. Second, a group of people can look at
these simple diagrams and quickly get the general idea
behind a system. In the end, it boils down to the old adage,
''a picture is worth a thousand words.''
• Following are the types of design elements:

1. Data design elements The data design element produced a model of data that represent a
high level of abstraction.
• This model is then more refined into more implementation specific representation which is
processed by the computer based system.
• 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 architectural design element is generally represented as a set of interconnected subsystem
that are derived from analysis packages in the requirement model.
• 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.
• 3. Interface design elements The interface design elements for software represents the
information flow within it and out of the 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 to the other systems, networks etc.
3. The internal interface between various components.

4. Component level diagram elementsThe component level design for software


is similar to the set of detailed specification of each room in a house.
• The component level design for the software completely describes the internal
details of the each software component.
• The processing of data structure occurs in a component and an interface which
allows all the component operations.
• In a context of object-oriented software engineering, a component shown in a UML
diagram.
• The UML diagram is used to represent the processing logic.

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.
•Following figure shows  three computing environment as shown. These are the
personal computer, the CPI server and the Control panel.

You might also like