Software Assignment
Software Assignment
There are several reasons of state of the practice is not better than
Crucial Process Steps.
Requirements are difficult to uncover
It is difficult to identify all the requirements regardless of the techniques we
use.
Requirement Change
Because no user can come up with a complete list of requirements at the
outset, the requirements get added and changed as the user begins to
understand the sytem.
Tight Project Schedule
Because of either lack of planning or unreasonable customer demand, many
projects start with insufficient time. Sometimes, this allocated time is
reduced while the project is underway.
Communication Barriers
Requirements engineering is communication intensive, users and developers
have different vocabularies. Developers usually want more precise
specification while user prefer natural languages.
Lack of Resources
There may not be enough resources to build software that can do everything
the customer wants. It is essential to rank requirements so that the most
important can be implemented first.
Ensure that you spend sufficient time at the start of the project on
understanding the objectives, deliverables and scope of the project.
Make visible any assumptions that the customer is using, and
critically evaluate both the likely end-user benefits and risks of the
project.
Attempt to write a concrete vision statement for the project, which
encompasses both the specific functions or user benefits it provides and
the overall business problem it is expected to solve.
Get your customer to read, think about and sign off on the completed
software requirements specification, to align expectations and ensure
that both parties have a clear understanding of the deliverable.
Problem 2: Requirements change during the course
of the project
The second most common problem with software projects is that the
requirements defined in the first phase change as the project progresses.
This may occur because as development progresses and prototypes are
developed, customers are able to more clearly see problems with the
original plan and make necessary course corrections; it may also occur
because changes in the external environment require reshaping of the
original business problem and hence necessitates a different solution than
the one originally proposed. Good project managers are aware of these
possibilities and typically already have backup plans in place to deal with
these changes.
1. Feasibility Study
Types of Feasibility:
o Data Flow Diagrams: Data Flow Diagrams (DFDs) are used widely for modeling
the requirements. DFD shows the flow of data through a system. The system may
be a company, an organization, a set of procedures, a computer hardware
system, a software system, or any combination of the preceding. The DFD is also
known as a data flow graph or bubble chart.
o If they are correct and as per the functionality and specially of software
New requirements emerge during the process as business needs a change, and a better
understanding of the system is developed.
The business and technical environment of the system changes during the development.
1. Interviews:
Objective of conducting an interview is to understand the customer’s expectations
from the software.
It is impossible to interview every stakeholder hence representatives from groups are
selected based on their expertise and credibility.
Interviews maybe be open ended or structured.
1. In open ended interviews there is no pre-set agenda. Context free questions
may be asked to understand the problem.
2. In structured interview, agenda of fairly open questions is prepared.
Sometimes a proper questionnaire is designed for the interview.
2. Brainstorming Sessions:
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.
3. Facilitated Application Specification Technique:
It’s objective is to bridge the expectation gap – difference between what the
developers think they are supposed to build and what customers think they are going
to get.
A team oriented approach is developed for requirements gathering.
Each attendee is asked to make a list of objects that are-
1. Part of the environment that surrounds the system
2. Produced by the system
3. Used by the system
Each participant prepares his/her list, different lists are then combined, redundant
entries are eliminated, team is divided into smaller sub-teams to develop mini-
specifications and finally a draft of specifications is written down using all the inputs
from the meeting.
4. Quality Function Deployment:
In this technique customer satisfaction is of prime concern, hence it emphasizes on
the requirements which are valuable to the customer.
3 types of requirements are identified –
Normal requirements – In this the objective and goals of the proposed
software are discussed with the customer. Example – normal requirements for a
result management system may be entry of marks, calculation of results etc
Expected requirements – These requirements are so obvious that the
customer need not explicitly state them. Example – protection from
unauthorised access.
Exciting requirements – It includes features that are beyond customer’s
expectations and prove to be very satisfying when present. Example – when an
unauthorised access is detected, it should backup and shutdown all processes.
The major steps involved in this procedure are –
1. Identify all the stakeholders, eg. Users, developers, customers etc
2. List out all requirements from customer.
3. A value indicating degree of importance is assigned to each requirement.
4. In the end the final list of requirements is categorised as –
It is possible to achieve
It should be deferred and the reason for it
It is impossible to achieve and should be dropped off
5. Use Case Approach:
This technique combines text and pictures to provide a better understanding of the
requirements.
The use cases describe the ‘what’, of a system and not ‘how’. Hence they only give a
functional view of the system.
The components of the use case deign includes three major things – Actor, Use
cases, use case diagram.
1. Actor – It is the external agent that lies outside the system but interacts with it
in some way. An actor maybe a person, machine etc. It is represented as a stick
figure. Actors can be primary actors or secondary actors.
Primary actors – It requires assistance from the system to achieve a
goal.
Secondary actor – It is an actor from which the system needs
assistance.
2. Use cases – They describe the sequence of interactions between actors and
the system. They capture who(actors) do what(interaction) with the system. A
complete set of use cases specifies all possible ways to use the system.
3. Use case diagram – A use case diiagram graphically represents what
happens when an actor interacts with a system. It captures the functional
aspect of the system.
A stick figure is used to represent an actor.
An oval is used to represent a use case.
A line is used to represent a relationship between an actor and a use
case.
It shows how information enters and leaves the system, what changes the
information and where information is stored. The purpose of a DFD is to show
the scope and boundaries of a system as a whole. It may be used as a
communications tool between a systems analyst and any person who plays a
part in the system that acts as the starting point for redesigning a system.
External Entity
Data Store
Data Flow
A data flow represents the flow of information, with its direction represented
by an arrowhead that shows at the end(s) of flow connector.
DFD represents the Data Flow Diagram, which shows the flow of a series of data
based on a certain information system model. DFD is generally used for outlining the
pattern and framework of a data system without showing processing time options in
sequence, for example, the Yes or No choices in typical flowcharts. In reality, DFD can
be used for information management or data visualization. Here you can see an
example of the DFD, which shows the overall data flow for making a reservation in a
restaurant.
Q.6 Describe software prototyping and also describe its
types
Prototyping is defined as the process of developing a working replication of a product
or system that has to be engineered. It offers a small scale facsimile of the end
product and is used for obtaining customer feedback as described below:
The Prototyping Model is one of the most popularly used Software Development Life
Cycle Models (SDLC models).This model is used when the customers do not know
the exact project requirements beforehand. In this model, a prototype of the end
product is first developed, tested and refined as per customer feedback repeatedly
till a final acceptable prototype is achieved which forms the basis for developing the
final product.
In this process model, the system is partially implemented before or during the
analysis phase thereby giving the customers an opportunity to see the product early
in the life cycle. The process starts by interviewing the customers and developing the
incomplete high-level paper model. This document is used to build the initial
prototype supporting only the basic functionality as desired by the customer. Once
the customer figures out the problems, the prototype is further refined to eliminate
them. The process continues till the user approves the prototype and finds the
working model to be satisfactory.
Throwaway/Rapid Prototyping
Throwaway prototyping is also called as rapid or close ended prototyping. This type
of prototyping uses very little efforts with minimum requirement analysis to build a
prototype. Once the actual requirements are understood, the prototype is discarded
and the actual system is developed with a much clear understanding of user
requirements.
Evolutionary Prototyping
Incremental Prototyping
Extreme Prototyping
Advantages
Software SRS establishes the basic for agreement between the client and the
supplier on what the software product will do.
• A SRS provides a reference for validation of the final product.
• A high-quality SRS is a prerequisite to high-quality software.
• A high-quality SRS reduces the development cost.
Characteristics of an SRS
• Correct
• Complete
• Unambiguous
• Verifiable
• Consistent
• Ranked for importance and/or stability
• Modifiable
• Traceable