Design Process 1111111
Design Process 1111111
Design Process 1111111
Process
Software Design Process
• The design phase of software development deals with transforming
the customer requirements as described in the SRS documents into a
form implementable using a programming language.
• The software design process can be divided into the following three
levels of phases of design:
• 1. Interface Design
• 2. Architectural Design
• 3. Detailed Design
Interface Design
• The first stage in any software design process is to develop an
understanding of the relationships between the software that is being
designed and its external environment.
• Setting the system boundaries helps you decide what features are
implemented in the system being designed and what features are in other
associated systems.
This helps designers identify objects in the system and gives them an understanding of
what the system is intended to do.
• The major components that make up the system and their interactions,
and then may organize the components.
• 1. Abstraction
• 2. Architecture
• 3. Patterns
• 4. Modularity
• 5. Information hiding
• 6. Functional independence
• 7. Refinement
• 8. Refactoring
• 9. Design classes
• 1. Abstraction
• A solution is stated in large terms using the language of the problem
environment at the highest level abstraction.
• 2. Architecture
• The complete structure of the software is known as software
architecture.
• 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.
• 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:
• A hierarchy is established by decomposing a statement of function in a
stepwise manner till the programming language statement are
reached.
• 8. Refactoring:
• Refactoring is the process of changing the software system in a way
that it does not change the external behaviour of the code still
improves its internal structure.
• 9. Design classes :
• The model of software is defined as a set of design classes.
Design model
• Design modeling provides a variety of different views of the system.
• It is mainly classified into four
• categories – Data design, architectural design, interface design, and
component-level design.
1)Data design:
• It represents the data objects and their interrelationship in an entity-
relationship diagram.
• Entity-relationship consists of information required for each entity or data
objects as well as it shows the relationship between these objects.
2)Architectural design:
• It defines the relationship between major structural elements of the
software.
• It is expressed as a block diagram defining an overview of the system
structure – features of the components and how these components
communicate with each other to share data.
3)User Interfaces design:
• It represents how the Software communicates with the user i.e. the
behavior of the system.
4)Component level design:
• It transforms the structural elements of the software architecture into
a procedural description of software components.
Pattern based software design
• A design pattern provides a general reusable solution for the common
problems that occur in software design.
• Attractive
• Simple to use
• Responsive in short time
• Clear to understand
• Consistent on all interface screens
• There are two types of User Interface:
• 2. Behavior Diagrams –
• Capture dynamic aspects or behavior of the system. Behavior diagrams
include:
• I)Use Case Diagrams
• II)State Diagrams
• III)Activity Diagrams
• IV)Interaction Diagrams.
Rumbaugh Methodology (OMT)
• The Rumbaugh methodology also known as OMT (Object Modeling Technique) is
an approach used to develop manageable object-oriented systems and host
object oriented programming.
• The purpose is to allow for class attributes, methods, inheritance, and association
to be easily expressed. OMT is used in the real world for software modeling and
designing.
• According to Rumbaugh, there are several main reasons to utilize this modeling
approach. One is to simulate entities before constructing them and another is to
make communication with customers easier. Additionally, it help to reduce
complexity through visualization.
• OMT consists of four stages(Phases):
• Analysis: Assigns an object, dynamic and functional model to the
design.
•
Systems Design: Outlines the basic systems structure of the
program
•
Object Design: Classifies objects and determines operations and
data structures. Inheritance and different associations are also
checked.
•
Implementation: Conveys design through code.
Booch Methodology
• Booch’s methodology focuses on object-oriented analysis and design
and consists of five activities: conceptualization, analysis, design,
evolution, and maintenance.
• Conceptualization: Establish requirements taking into account the
perspective of the customer
• Analysis: Develop a model by defining object classes, their
attributes, methods, and inheritance. Include associations, the
dynamic part of a model.
• Design: Develop a structure/architecture where logical and physical
details are discussed.
• Evolution: As it relates to the implementation
• Maintainance: Maintainance following the delivery of the product
Jacobson Methodology (OOSE)
• CASE tools are set of software application programs, which are used
to automate SDLC activities. CASE tools are used by software project
managers, analysts and engineers to develop software system.
Components of CASE Tools
• CASE tools can be broadly divided into the following parts based on
their use at a particular SDLC stage:
• Project Management Tools:These tools are used for project planning, cost
and effort estimation, project scheduling and resource planning.
• Design Tools:These tools help software designers to design the block structure of
the software, which may further be broken down in smaller modules using
refinement techniques.
• Change Control Tools:They deal with changes made to the software after its
baseline is fixed or when the software is first released.
• Web Development Tools:These tools used to designing web pages with all allied
elements like forms, text, script, graphic and so on. Web tools also provide live
preview of what is being developed and how will it look after completion.