Software Engineering Ch-2
Software Engineering Ch-2
Chapter 2
Main Roles
1. Defining and understanding the requirement of user through various Fact finding
techniques.
2. Prioritizing the requirements by obtaining user consensus.
3. Gathering the facts or information and acquires the opinions of users.
4. Maintains analysis and evaluation to arrive at appropriate system which is more
user friendly.
5. Suggests many flexible alternative solutions, pick the best solution, and quantify
cost and benefits.
6. Draw certain specifications which are easily understood by users and
programmer in precise and detailed form.
7. Implemented the logical design of system which must be modular.
8. Plan the periodicity for evaluation after it has been used for some time, and
modify the system as needed.
What is SDLC?
i. SDLC is a process followed for a software project, within a software organization.
ii. It consists of a detailed plan describing how to develop, maintain, replace and alter
or enhance specific software.
iii. The life cycle defines a methodology for improving the quality of software and the
overall development process.
The following figure is a graphical representation of the various stages of a typical
SDLC.
i. Systems development means delivering a system that meets user and organisational
needs–on time and within budget.
ii. There is no formula for achieving this, but the following factors are known to have
impact on success:
iii. The involvement of users throughout the development will mean they are less likely
to resist the software when it is delivered.
ii. The scope can vary from implementing minor enhancements to an existing system,
up to major reengineering.
iii. The project team needs to recognise where they are on this spectrum of change
iv. Managing change requires the ability to recognise existing or potential problems and
deal with them before they become a serious threat to the success of the new or
modified system.
Fear that the employee will lose his or her job, power or influence within the
organisation
Belief that the proposed system will create more work than it eliminates
Reluctance to work with “computer people
Anxiety that the proposed system will negatively alter the structure of the
organisation
Belief that other problems are more pressing than those solved by the proposed
system or that the system is being developed by people unfamiliar with“the way
things need to get done”
Unwillingness to learn new procedures or approaches.
SDLC Models
There are various software development life cycle models defined and designed which
are followed during the software development process. These models are also
referred as Software Development Process Models”. Each process model follows a
Series of steps unique to its type to ensure success in the process of software
development.
Following are the most important and popular SDLC models followed in the industry –
Waterfall Model
Iterative Model
Spiral Model
V-Model
Big Bang Model
Other related methodologies are Agile Model, RAD Model, Rapid Application
Development and Prototyping Models.
SDLC – Waterfall Model
i. The Waterfall Model was the first Process Model to be introduced.
ii. It is also referred to as a linear-sequential life cycle model.
iii. It is very simple to understand and use.
iv. In a waterfall model, each phase must be completed before the next phase can
begin and there is no overlapping in the phases.
v. The Waterfall model is the earliest SDLC approach that was used for software
development.
vi. This means that any phase in the development process begins only if the previous
phase is complete.
Waterfall Model - Design
i. In "The Waterfall" approach, the whole process of software development is divided
into separate phases. In this Waterfall model, typically, the outcome of one phase acts
as the input for the next phase sequentially.
ii. In RAD model, there is less attention paid to the planning and more priority is given
to the development tasks.
v. It emphasizes on delivering projects in small pieces; the larger projects are divided
into a series of smaller projects.
vi. The main features of RAD modeling are that it focuses on the reuse of templates,
tools, processes, and code.
1. Business Modeling
2. Data Modeling
3. Process Modeling
4. Application Generation
1) Business Modeling
2) Data Modeling
The information collected from business modeling is refined into a set of data objects
that are significant for the business.
3) Process Modeling
The data object that is declared in the data modeling phase is transformed to achieve
the information flow necessary to implement a business function.
4) Application Generation
Automated tools are used for the construction of the software, to convert process and
data models into prototypes.
As prototypes are individually tested during every iteration, the overall testing time is
reduced in RAD.
Application of RAD Module
3. When the user will be involved all through the life cycle
6. When a budget is high enough to afford designers for modeling along with the
cost of automated tools for code generation
RAD Advantages
ii. It is useful when you have to reduce the overall project risk.
iv. Due to code generators and code reuse, there is a reduction of manual coding.
RAD Disadvantages
v. If developers are not committed to delivering software on time, RAD projects can
fail
SDLC – Prototyping Model
i. Prototyping Model is a software development model in which prototype is built,
tested, and reworked until an acceptable prototype is achieved.
iii. It works best in scenarios where the project’s requirements are not known in detail.
iv. It is an iterative, trial and error method which takes place between developer and
client.
ii. In this phase, the requirements of the system are defined in detail.
iii. During the process, the users of the system are interviewed to know what is their
expectation from the system.
ii. In this stage, a simple design of the system is created. However, it is not a complete
design.
ii. It helps to find out the strength and weakness of the working model.
iii. Comment and suggestion are collected from the customer and provided to the
developer.
ii. This phase will not over until all the requirements specified by the user are met.
iii. Once the user is satisfied with the developed prototype, a final system is developed
based on the approved final prototype.
ii. The system undergoes routine maintenance for minimizing downtime and prevent
large-scale failures.
4. Sometimes customers may not be willing to participate in the iteration cycle for
the longer time duration.