Unit-02 SEPM
Unit-02 SEPM
• Examples -
• Search option given to user to search from various invoices.
• User should be able to mail any report to management.
• Users can be divided into groups and groups can be given separate
rights.
• Should comply business rules and administrative functions.
• Software is developed keeping downward compatibility intact.
Non-Functional Requirements
Requirements, which are not related to functional aspect of software, fall into this
category. They are implicit or expected characteristics of software, which users make
assumption of.
Non-functional requirements include –
Security
Logging
Storage
Configuration
Performance
Cost
Interoperability
Flexibility
Disaster recovery
Accessibility
• Requirement Engineering
• The process to gather the software requirements from client, analyze and
document them is known as requirement engineering.
• It is a group technique
• It is intended to generate lots of new ideas hence providing a
platform to share views
• A highly trained facilitator is required to handle group bias
and group conflicts.
• Every idea is documented so that everyone can see it.
• Finally, a document is prepared which consists of the list of
requirements and their priority if possible.
• Domain Analysis
• Every software falls into some domain category. The expert people in the domain
can be a great help to analyze general and specific requirements.
• Prototyping
• Prototyping is building user interface without adding detail functionality for user to
interpret the features of intended software product. It helps giving better idea of
requirements. If there is no software installed at client’s end for developer’s
reference and the client is not aware of its own requirements, the developer
creates a prototype based on initially mentioned requirements. The prototype is
shown to the client and the feedback is noted. The client feedback serves as an
input for requirement gathering.
• Observation
• Team of experts visit the client’s organization or workplace. They observe the
actual working of the existing installed systems. They observe the workflow at
client’s end and how execution problems are dealt. The team itself draws some
conclusions which aid to form requirements expected from the software.
Analysis Modeling for Function Oriented and object Oriented
software development
• Control Specification:
It stores additional information about the control aspects of the software. It is
used to indicate how the software behaves when an event occurs and which
processes are invoked due to the occurrence of the event. It also provides the
details of the processes which are executed to manage events.
• Data dictionary
Data Flow Diagram
• A Data Flow Diagram (DFD) is a traditional visual representation of
the information flows within a system. A neat and clear DFD can
depict the right amount of the system requirement graphically. It
can be manual, automated, or a combination of both.
• It shows how data enters and leaves the system, what changes the
information, and where data is stored.
• The objective of a DFD is to show the scope and boundaries of a
system as a whole. It may be used as a communication tool
between a system analyst and any person who plays a part in the
order that acts as a starting point for redesigning a system. The DFD
is also called as a data flow graph or bubble chart.
• 0-level DFD:
It is also known as a context diagram. It’s designed to be an abstraction view,
showing the system as a single process with its relationship to external entities. It
represents the entire system as a single bubble with input and output data
indicated by incoming/outgoing arrows.
• 1-level DFD:
In 1-level DFD, the context diagram is decomposed into multiple
bubbles/processes. In this level, we highlight the main functions of the system and
breakdown the high-level process of 0-level DFD into subprocesses.
• 2-level DFD:
2-level DFD goes one step deeper into parts of 1-level DFD. It can be used to plan
or record the specific/necessary detail about the system’s functioning.
•
Object Oriented s/w development
• We know that the Object-Oriented Modelling (OOM) technique visualizes
things in an application by using models organized around objects. Any
software development approach goes through the following stages −
• Analysis,
• Design, and
• Implementation.
• Phases in Object-Oriented Software Development
• The major phases of software development using object–oriented methodology are object-
oriented analysis, object-oriented design, and object-oriented implementation.
• Object–Oriented Analysis
• In this stage, the problem is formulated, user requirements are identified, and then a model is built
based upon real–world objects. The analysis produces models on how the desired system should
function and how it must be developed. The models do not include any implementation details so
that it can be understood and examined by any non–technical application expert.
• Object–Oriented Design
• Object-oriented design includes two main stages, namely, system design and object design.
• System Design
• In this stage, the complete architecture of the desired system is designed. The system is conceived
as a set of interacting subsystems that in turn is composed of a hierarchy of interacting objects,
grouped into classes. System design is done according to both the system analysis model and the
proposed system architecture. Here, the emphasis is on the objects comprising the system rather
than the processes in the system.
• Object–Oriented Implementation and Testing
• In this stage, the design model developed in the object design is translated into code in an
appropriate programming language or software tool. The databases are created and the
specific hardware requirements are ascertained. Once the code is in shape, it is tested using
specialized techniques to identify and remove the errors in the code.
• Object Design
• In this phase, a design model is developed based on both the models developed in the system analysis phase and the
architecture designed in the system design phase. All the classes required are identified. The designer decides whether −
• new classes are to be created from scratch,
• any existing classes can be used in their original form, or
• new classes should be inherited from the existing classes.
• The associations between the identified classes are established and the hierarchies of classes are identified. Besides, the
developer designs the internal details of the classes and their associations, i.e., the data structure for each attribute and the
algorithms for the operations.
Data Dictionaries in Software Engineering
Notations Meaning
The Notations used within the data dictionary are given in the table below as follows.
• In the requirements validation process, we perform a different type of test to check the
requirements mentioned in the Software Requirements Specification (SRS), these checks
include:
• Completeness checks
• Consistency checks
• Validity checks
• Realism checks
• Ambiguity checks
• Verifiability
There are several techniques which are used either individually or in conjunction
with other techniques to check to check entire or part of the system:
• Source traceability –
These are basically the links from requirement to stakeholders who
propose these requirements.
• Requirements traceability –
These are the links between dependent requirements.
• Design traceability –
These are the links from requirement to design.