Unit 2 Software Engineering-1
Unit 2 Software Engineering-1
Unit 2 Software Engineering-1
Design models.
minimizing complexity
anticipating change
constructing for verification
reuse
standards in construction.
The first four concepts apply to design as well as to construction. The following sections define these concepts and
describe how they apply to construction.
Release
Installation and activation
Deactivation
Uninstallation
Update
Built-in update
Version tracking
2.
2.1 Requirements Engineering Tasks:
Requirement engineering consists of seven different tasks as follow:
i)Inception
Inception is a task where the requirement engineering asks a set of questions to establish a software
process.
ii)Elicitation
Elicitation means to find the requirements from anybody.
iii)Elaboration
In this task, the information taken from user during inception and elaboration and are expanded and
refined in elaboration.
iv)Negotiation
In negotiation task, a software engineer decides the how will the project be achieved with limited
business resources.
v)Specification
In this task, the requirement engineer constructs a final work product.
vi)Validation
The work product is built as an output of the requirement engineering and that is accessed for the
quality through a validation step.
vii)Requirement management
It is a set of activities that help the project team to identify, control and track the requirements and
changes can be made to the requirements at any time of the ongoing project.
Data Dictionary: It is a repository that consists of description of all data objects used or
produced by software. ...
Entity Relationship Diagram (ERD): ...
Data Flow Diagram (DFD): ...
State Transition Diagram: ...
Process Specification: ...
Control Specification: ...
Data Object Description:
Functionalities of OOA:
The core activities in OOA are given bellow:
o Find the objects
o Organize the objects by creating object model diagram
o Explain how the objects communicates with each others
o Set the characteristic or behavior of the objects
o Set the internal of the objects
Advantages Disadvantages
Focuses on data rather than the procedures as Functionality is restricted within objects. This
in Structured Analysis. may pose a problem for systems which are
intrinsically procedural or computational in
nature.
The principles of encapsulation and data hiding It cannot identify which objects would generate
help the developer to develop systems that an optimal system design.
cannot be tampered by other parts of the
system.
The principles of encapsulation and data hiding The object-oriented models do not easily show
help the developer to develop systems that the communications between the objects in the
cannot be tampered by other parts of the system.
system.
It allows effective management of software All the interfaces between the objects cannot be
complexity by the virtue of modularity. represented in a single diagram.
1. Process :
The circle represents the process. An activity that changes or transforms data flows. Since they transform incoming data
to outgoing data, all processes must have inputs and outputs on a DFD.
2. Data Flow :
The labeled arrows indicate incoming and outgoing data flow. Movement of data between external entities, processes
and data stores is represented with an arrow symbol, which indicates the direction of flow.
3. Data Store :
The rectangle represents an external entity. A data store does not generate any operations but simply holds data for
later access.
4. External Entity :
In Data Flow Diagrams external entities produce and consume data that flows between the entity and the
system being diagrammed.
OBJECTIVES
Understand the rules and style guidelines for sequence and communication diagrams and behavioral
state machines
Understand the processes used to create sequence and communication diagrams, behavioral state
machines, and CRUDE matrices
Be able to create sequence and communication diagrams, behavioral state machines, and CRUDE
matrices
Understand the relationship between the behavioral models and the structural and functional models
4.
4.1 Design approaches of software & preparation of design model using Design
concepts:
Software Design is the process to transform the user requirements into some suitable form, which
helps the programmer in software coding and implementation. During the software design phase, the
design document is produced, based on the customer requirements as documented in the SRS
document. Hence the aim of this phase is to transform the SRS document into the design document.
The following items are designed and documented during the design phase:
Different modules required.
Control relationships among modules.
Interface among different modules.
Data structure among the different modules.
Algorithms required to implement among the individual modules.
Objectives of Software Design:
1. Correctness:
A good design should be correct i.e. it should correctly implement all the functionalities of the system.
2. Efficiency:
A good software design should address the resources, time and cost optimization issues.
3. Understandability:
A good design should be easily understandable, for which it should be modular and all the modules are
arranged in layers.
4. Completeness:
The design should have all the components like data structures, modules, and external interfaces, etc.
5. Maintainability:
A good software design should be easily amenable to change whenever a change request is made from
the customer side.
Software Design Concepts:
Concepts are defined as a principal idea or invention that comes in our mind or in thought to
understand something. The software design concept simply means the idea or principle behind the
design. It describes how you plan to solve the problem of designing software, the logic, or thinking
behind how you will design software. It allows the software engineer to create the model of the
system or software or product that is to be developed or built. The software design concept provides
a supporting and essential structure or model for developing the right software. There are many
concepts of software design and some of them are given below:
A 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 is 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 is 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.'
2 Structural Patterns
These design patterns concern class and object composition. Concept of inheritance is used
to compose interfaces and define ways to compose objects to obtain new functionalities.
3 Behavioral Patterns
These design patterns are specifically concerned with communication between objects.
4 J2EE Patterns
These design patterns are specifically concerned with the presentation tier. These patterns
are identified by Sun Java Center.