Unit 2
Unit 2
Unit 2
Requirements definition. For the functionality of the software system to be developed, the customers
must define their requirements. It defines needed information, function, behavior, performance and
interfaces.
Analysis. It analyzes the requirements’ implications to form the initial software system model.
Design. This stage involves the detailed definition of the outputs, inputs and processing procedures,
including data structures and databases, software structure, etc.
Coding. In this phase, the design is translated into a code. Coding involves quality assurance activities
such as inspection, unit tests and integration tests.
System tests. System tests are performed once the coding phase is completed. The main goal of
testing is to uncover as many software errors as possible so as to achieve an acceptable level of
software quality, once corrections have been completed. System tests are carried out by the software
developer before the software is supplied to the customer.
In many cases the customer performs independent software tests (“acceptance tests”) to assure him or
herself that the developer has fulfilled all the commitments and that no unanticipated or faulty
software reactions are anticipated.
Installation and conversion. After the software system is approved, the system is installed to serve as
firmware. If the new information system is to replace an existing system, a software conversion
process has to be initiated to make sure that the organization’s activities continue uninterrupted during
the conversion phase.
Regular operation and maintenance. Regular software operation begins once installation and
conversion have been completed. Throughout the regular operation period, which usually lasts for
several years or until a new software generation appears on the scene, maintenance is needed.
Maintenance incorporates three types of services: Corrective – repairing software faults identified by
the user during operation; Adaptive – using the existing software features to fulfill new requirements;
and Perfective – adding new minor features to improve software performance.
The number of phases can vary according to the characteristics of the project. In complex, large-
scale models, some phases are split, causing their number to grow to eight, nine or more. In smaller
projects, some phases may be merged, reducing the number of phases to six, five or even four phases.
Waterfall Strength
• Technology is understood
Prototyping is the process of quickly putting together a working model (a prototype) in order to test
various aspects of a design, illustrate ideas or features and gather early user feedback. A typical
application of the prototyping methodology is shown in Figure 2.2.
Advantages
Users can try the system and provide constructive feedback during development
An operational prototype can be produced in weeks
Prototyping enables early detection of errors
Disadvantages
Spiral model
According to the spiral model, shown in Figure, software development is perceived to be an iterative
process; at each iteration, the following activities are performed:
Planning
Engineering activities according to the stage of the project: design, coding, testing,
installation and release
Customer evaluation, including comments, changes and additional requirements, etc.
Figure 2.3 : Sriral Model
Planning Phase: Requirements are gathered during this planning phase. Requirements like
‘BRS’ that is ‘Business Requirement Specifications’ and ‘SRS’ that is ‘System Requirement
specifications’ are collected in this phase.
Risk Analysis: In the risk analysis phase, a process is undertaken to identify risk and
alternate solutions. A prototype is produced at the end of the risk analysis phase. If any risk
is found during the risk analysis then alternate solutions are suggested and implemented.
Engineering Phase: In this phase software is developed, along with testing at the end of the
phase. Hence in this phase the development and testing is done.
Evaluation phase: This phase allows the customer to evaluate the output of the project to
date, before the project continues to the next spiral.
Advantages:
1. Realism: the model accurately reflects the iterative nature of software development on
projects with unclear requirements
2. Flexible: incoporates the advantages of the waterfal and rapid prototyping methods
3. Comprehensive model decreases risk
Disadvantages:
Incremental: Start with a modest house; keep adding rooms and upgrades to it.
The object-oriented model shown in figure 2.4 differs from the other models by its
intensive reuse of software components. This methodology is characterized by its easy
integration of existing software modules (called objects or components) into newly developed
software systems. A software component library serves this purpose by supplying software
components for reuse.
The development process begins with a sequence of object-oriented analyses and designs.
The design phase is followed by acquisition of suitable components from the reusable software
library, when available. “Regular” development is carried out otherwise copies of newly
developed software components are then “stocked” in the software library for future reuse.
Figure 2.4: Object oriented Model
Advantages:
Reuse
Improved software-development productivity
– Timing
– Type of quality assurance activity to be applied
– Who performs the activity and the resources required? It should be noted that various bodies
may participate in the performance of quality assurance activities: development team and department
staff members together with independent bodies such as external quality assurance team members or
consultants
Project factors:
Team factors
Example 1
The real-time software development unit of a hospital’s information systems department has
been assigned to develop an advanced patient monitoring system. The new monitoring unit is to
combine of patient’s room unit with a control unit. The patient’s room unit is meant to interface
with several types of medical equipment, supplied by different manufacturers, which measure
various indicators of the patient’s condition. A sophisticated control unit will be placed at the
nurses’ station, with data to be communicated to cellular units carried by doctors.
The project leader estimates that 14 months will be required to complete the system; a team
of five will be needed, with an investment of a total of 40 man-months. She estimates that only
15% of the components can be obtained from the reusable component library. The SDLC
methodology was chosen to integrate application of two prototypes of the patient’s room unit and
two prototypes of the control unit for the purpose of improving communication with the users
and enhancing feedback of comments at the analysis and design phases.
The quality assurance activities and their duration, as defined by the project leader, are listed in
Table.
Qualification – The process used to determine whether a system or component is suitable for operational
use.”
Verification examines the consistency of the products being developed with products
developed in previous phases. When doing so, the examiner follows the development
process and assumes that all the former development phases have been completed
correctly, whether as originally planned or after removal of all the discovered
defects.This assumption forces the examiner to disregard deviations from the customer’s
original requirements that might have been introduced during the development process.
Validation represents the customer’s interest by examining the extent of compliance to
his or her original requirements. Comprehensive validation reviews tend to improve
customer satisfaction from the system.
Planners are required to determine which of these aspects should be examined in each
quality assurance activity. The distinction between the two terms is largely to do with the
role of specifications. Validation is the process of checking whether the specification
captures the customer's needs, while verification is the process of checking that the
software meets the specification.
Verification Validation
2. It does not involve executing the code. 2. It always involves executing the code.
4. Verification uses methods like inspections, 4. Validation uses methods like black box
reviews, walkthroughs, and Desk-checking etc. (functional) testing, gray box testing, and
white box (structural) testing etc.
6. It can catch errors that validation cannot 6. It can catch errors that verification cannot
catch. It is low level exercise. catch. It is High Level Exercise.
REVIEW
“A process or meeting during which a work product, or set of work products, is presented to project
personnel, managers, users, customers, or other interested parties for comment or approval.”
Direct objectives
To detect analysis and design errors as well as subjects where corrections, changes and
completions are required with respect to the original specifications.
Indirect objectives
To provide an informal meeting place for exchange of professional knowledge about
development methods, tools and techniques.
To record analysis and design errors that will serve as a basis for future corrective actions. The
corrective actions are expected to improve development methods by increasing effectiveness and
quality, among other product features.
Review leader
Review Team
The entire review team should be selected from among the senior members of the project team
together with appropriate senior professionals assigned to other projects and departments, customer–user
representatives, and in some cases, software development consultants. A review team of three to five
members is expected to be an efficient team, given the proper diversity of experience.
An excessively large team tends to create coordination problems waste review session time and
decrease the level of preparation, based on a natural tendency to assume that others have read the design
document.
Preparation for DR
Team members are expected to review the design document and list their comments prior
to the review session. In cases where the documents are sizable, the review leader may ease the
load by assigning to each team member review of only part of the document. An important tool
for ensuring the review’s completeness is the checklist.
Development team preparations
The team’s main obligation as the review session approaches is to prepare a short
presentation of the design document. Assuming that the review team members have read the
design document thoroughly and are now familiar with the project’s outlines, the presentation should
focus on the main professional issues awaiting approval rather than wasting time on description of the
project in general.
PEER REVIEW
Peer review is the evaluation of work by one or more people of similar competence to the
producers of the work. It constitutes a form of self-regulation by qualified members of a
profession within the relevant field.
Participants of peer reviews
The optimal peer review team is composed of three to five participants. In certain cases, the
addition of one to three further participants is acceptable.
A recommended peer review team includes:
A review leader
The author
Specialized professionals.
The specialized professionals participating in the two peer review methods differ by
review. For inspections, the recommended professionals are:
A designer: the systems analyst responsible for analysis and design of the software system
reviewed.
A coder or implementer: a professional who is thoroughly familiar with coding tasks, preferably the
leader of the designated coding team. This inspector is expected to contribute his or her expertise to the
detection of defects that could lead to coding errors and subsequent software implementation difficulties.
A tester: an experienced professional, preferably the leader of the assigned testing team, who focuses on
identification of design errors usu-ally detected during the testing phase.
A standards enforcer: This team member, who specializes in development standards and procedures, is
assigned the task of locating deviations from those standards and procedures.
A maintenance expert who is called upon to focus on maintainability, flexibility and testability issues
and to detect design defects capable of impeding correction of bugs or performance of future changes.
Another area requiring his or her expertise is documentation, whose completeness and correctness are
vital for any maintenance activity.
A user representative. Participation of an internal (when the customer is a unit in the same firm) or an
external user’s representative in the walk-through team contributes to the review’s validity because he or
she examines the software system from the point of view of the user consumer rather than the designer
supplier. In cases where a “real” user is not available, a team member may take on that role and focus on
validity issues by comparing of the original requirements with the actual design.
Team assignments
Conducting a review session requires, naturally, assignment of specific tasks to the team
members. Two of these members are the presenter of the document and the scribe, who documents the
discussions.
The presenter: During inspection sessions, the presenter of the document is chosen by the moderator;
usually, the presenter is not the document’s author. In many cases the software coder serves as the
presenter because he or she is the team member who is most likely to best understand the design logic and
its implications for coding.
In contrast, for most walk-through sessions, it is the author, the professional most intimately
acquainted with the document, who is chosen to present it to the group. Some experts claim that an
author’s assignment as presenter may affect the group members’ judgement; therefore, they argue that the
choice of a “neutral” presenter is to be preferred.
The scribe: The team leader will often but not always serve as the scribe for the session, and record
the noted defects that are to be corrected by the development team. This task is more than procedural; it
requires thorough professional understanding of the issues discussed.
Prior to the walkthrough session, team members briefly read the material in order to obtain a general
overview of the sections to be reviewed, the project and its environment. Participants lacking preliminary
knowledge of the project and its substantive area will need far more preparation time. In most
organizations employing walkthroughs, team participants are not required to prepare their comments in
advance.
The presenter reads a section of the document and adds, if needed, a brief explanation of
the issues involved in his or her own words.
As the session progresses, the participants either deliver their comments to the document
or address their reactions to the comments.
The discussion should be confined to identification of errors, which means that it should
not deal with tentative solutions. During the session, the scribe should document each error
recognized by location and description, type and character (incorrect, missing parts or extra
parts)
Session Documentation
Chief software
engineer Coordinator (peer, the
Review leader or senior staff Trained moderator project leader on
member (peer) occasion)
Participants’ Yes –
Preparations thorough Yes – thorough Yes – brief
Revie
w
Session
Yes Yes Yes
training of No Yes No
Participants
Use
of
check
list No Yes No
Error-related data Not formally
collection required Formally required Not formally required
Review
Documentation (1) Inspection
Formal design session Walkthrough
review findings report session
Report (2) Inspection findings report
session
summary report