CH-2 Software Engineering
CH-2 Software Engineering
BY
Prof. Shraddha Rokade
Software Requirements
Functional and non-functional requirements
Requirements are generally split into two types: Functional and Non-functional requirements.
Functional Requirements: These are the requirements that the end user specifically demands
as basic facilities that the system should offer. All these functionalities need to be necessarily
incorporated into the system as a part of the contract. These are represented or stated in the
form of input to be given to the system, the operation performed and the output expected.
They are basically the requirements stated by the user which one can see directly in the final
product.Example: Authentication of user whenever he/she logs into the system.
Non-functional requirements: These are basically the quality constraints that the system
must satisfy according to the project contract. The priority or extent to which these factors are
implemented varies from one project to other. They are also called non-behavioral
requirements.They basically deal with issues like:
Portability,Security,Maintainability,Reliability,Scalability,Performance,Reusability,Flexibility
.Example:The site should load in 3 seconds when the number of simultaneous users are >
10000
User requirements: These requirements describe what the end-user wants from the
software system. User requirements are usually expressed in natural language and are
typically gathered through interviews, surveys, or user feedback.
The output of requirements validation is the list of problems and agreed on actions of detected problems. The
lists of problems indicate the problem detected during the process of requirement validation. The list of
agreed action states the corrective action that should be taken to fix the detected problem.
➔ Requirements management is a set of activities that help the
project team to identify, control, and track requirements and
changes to requirements at any time as the project proceeds.
Like SCM, requirements management begins with
identification. Each requirement is assigned a unique identifier
that might take the form where requirement type takes on values
such as F = functional requirement, D = data requirement, B =
behavioral requirement, I = interface requirement, and P =
output requirement. Hence, a requirement identified as F09
indicates a functional requirement assigned requirement number
9.
Software Analysis:
Difference between Structured & Object Oriented analysis
Structured Analysis:
1. Actor
2. Use Case
3. Associations
Actor
Usually, actors are people involved with the system defined on the basis of their roles. An actor can be
anything such as human or another external system.
Use Case
The use case defines how actors use a system to accomplish a specific objective. The use cases are
generally introduced by the user to meet the objectives of the activities and variants involved in the
achievement of the goal.
Associations
Associations are another component of the basic model. It is used to define the associations among
actors and use cases they contribute in. This association is called communicates-association.
There are various components of the advanced model:
1. Subject
2. Use-Case Package
3. Generalizations
4. Dependencies
Subject
The subject component is used to represent the boundary of the system of interest.
Use-Case Package
we use directories or folders to organize the information on our hard-disk.
Generalizations
Generalizations mean the association between the actors in order to help re-use
of common properties.
Dependencies
Relationships
Generalization
Association
Multiplicity
Aggregation
Composition
Abstract Classes
A class diagram describing the sales order system is
Interaction diagrams
The interaction diagram portrays the interactions between distinct
entities present in the model.
Initial State – The starting state before an activity takes place is depicted using the
initial state.
Action Flow or Control flows – They are used to show the transition from one activity
state to another.
Decision node and Branching - When we need to make a decision before
deciding the flow of control, we use the decision node.
Join – Join nodes are used to support concurrent activities converging into one.
Time Event - We can have a scenario where an event takes some time to
complete.
Final State or End State – The state which the system reaches when a
particular process or activity ends is known as a Final State or End State.
State Chart diagram
A state diagram is used to represent the condition of the system or part of the
system at finite instances of time.
Initial state – We use a black filled circle represent the initial state of a System
or a class.
Transition – We use a solid arrow to represent the transition or change of
control from one state to another.
State – We use a rounded rectangle to represent a state.
Fork – We use a rounded solid rectangular bar to represent a Fork notation with
incoming arrow from the parent state and outgoing arrows towards the newly
created states.
Join – We use a rounded solid rectangular bar to represent a Join notation with
incoming arrows from the joining states and outgoing arrow towards the
common goal state.
Self transition – We use a solid arrow pointing back to the state itself to
represent a self transition.
Composite state – We use a rounded rectangle to represent a composite state
also.We represent a state with internal activities using a composite state.
Final state – We use a filled circle within a circle notation to represent the final
state in a state machine diagram.
Component Diagram - A component diagram is used to break down a large
object-oriented system into the smaller components, so as to make them more
manageable.
a) A component
b) A node
Deployment Diagram -The deployment diagram visualizes the physical
hardware on which the software will be deployed.
1. A component
2. An artifact
3. An interface
4. A node
Data Flow Diagrams -The flow of data of a system or a process is represented
by DFD. It also gives insight into the inputs and outputs of each entity and the
process itself.
Components of DFD
Process
Data Flow
Warehouse
Terminator
Symbols Used in DFD
● Square Box: A square box defines source or destination of the system. It
is also called entity. It is represented by rectangle.
● Arrow or Line: An arrow identifies the data flow i.e. it gives information
to the data that is in motion.
● Circle or bubble chart: It represents as a process that gives us
information. It is also called processing box.
● Open Rectangle: An open rectangle is a data store. In this data is store
either temporary or permanently.
Levels of DFD
DFD uses hierarchy to maintain transparency thus multi level DFD’s can be
created. Levels of DFD are as follows:
● 0-level DFD: It represents the entire system as a single bubble and provides
an overall picture of the system.
● 1-level DFD: It represents the main functions of the system and how they
interact with each other.
● 2-level DFD: It represents the processes within each function of the system
and how they interact with each other.