Wa0003.
Wa0003.
S-22/4
08 Discuss merits and demerits of Waterfall model.
M
W-22/
11 Explain the different phases of Waterfall model.
3M
Advantages of the SDLC Waterfall Model
The classical waterfall model is an idealistic model for software development. It is very simple,
so it can be considered the basis for other software development life cycle models. Below are
some of the major advantages of this SDLC model.
∙ Easy to Understand: The Classical Waterfall Model is very simple and easy to
understand.
∙ Individual Processing: Phases in the Classical Waterfall model are processed one at a
time.
∙ Properly Defined: In the classical waterfall model, each stage in the model is clearly
defined.
∙ Clear Milestones: The classical Waterfall model has very clear and well-understood
milestones.
∙ Properly Documented: Processes, actions, and results are very well documented.
∙ Reinforces Good Habits: The Classical Waterfall Model reinforces good habits like
define-before-design and design-before-code.
∙ Working: Classical Waterfall Model works well for smaller projects and projects where
requirements are well understood.
Disadvantages of the SDLC Waterfall Model
The Classical Waterfall Model suffers from various shortcomings we can’t use it in real projects,
but we use other software development lifecycle models which are based on the classical
waterfall model. Below are some major drawbacks of this model.
∙ No Feedback Path: In the classical waterfall model evolution of software from one
phase to another phase is like a waterfall. It assumes that no error is ever committed by
developers during any phase. Therefore, it does not incorporate any mechanism for error
correction.
∙ Difficult to accommodate Change Requests: This model assumes that all the customer
requirements can be completely and correctly defined at the beginning of the project, but
the customer’s requirements keep on changing with time. It is difficult to accommodate
any change requests after the requirements specification phase is complete.
∙ No Overlapping of Phases: This model recommends that a new phase can start only
after the completion of the previous phase. But in real projects, this can’t be maintained.
To increase efficiency and reduce cost, phases may overlap.
∙ Limited Flexibility: The Waterfall Model is a rigid and linear approach to software
development, which means that it is not well-suited for projects with changing or
uncertain requirements. Once a phase has been completed, it is difficult to make changes
or go back to a previous phase.
∙ Limited Stakeholder Involvement: The Waterfall Model is a structured and sequential
approach, which means that stakeholders are typically involved in the early phases of the
project (requirements gathering and analysis) but may not be involved in the later
phases (implementation, testing, and deployment).
∙ Late Defect Detection: In the Waterfall Model, testing is typically done toward the end
of the development process. This means that defects may not be discovered until late in
the development process, which can be expensive and time-consuming to fix.
∙ Lengthy Development Cycle: The Waterfall Model can result in a lengthy development
cycle, as each phase must be completed before moving on to the next. This can result in
delays and increased costs if requirements change or new issues arise.
Discuss Incremental process model with its diagram and compare it
06 W-23/7M
with Waterfall model.
There is a long waiting time for There is a short waiting time for
Waiting Time for
running software in the waterfall running software in the incremental
Running Software
model. model.
Handling Large The waterfall model can’t handle The incremental model also can’t
Projects large projects. handle large projects.
The cost of the Waterfall model is The cost of the incremental model is
Cost
Low. also Low.
Explain the process model which is used in situations where the user
10 W-22/3M
Requirements are not well understood.
03 Explain Spiral Process Model and states its advantages and disadvantages. S-23/7M
Activity diagrams are useful in eliciting software system requirements by visually representing
the flow of activities within a system, allowing analysts to identify key processes, decision
points, and potential issues within a workflow, thus helping to capture detailed functional
requirements and ensure all necessary steps are considered during the design phase.
Key benefits of using activity diagrams for requirement elicitation:
∙ Visual Representation:
Activity diagrams provide a clear, graphical representation of a system's workflow, making it
easier for stakeholders (including non-technical users) to understand the system's behaviour and
identify potential gaps in requirements.
∙ Identifying Use Cases:
By mapping out the steps in a specific user scenario, activity diagrams can be used to identify
and document different use cases for the system, helping to capture diverse user needs.
∙ Detailed Process Breakdown:
Activity diagrams can break down complex processes into smaller, manageable steps, allowing
for a more thorough analysis of the system's functionality and potential edge cases.
∙ Decision Points and Conditions:
The ability to incorporate decision nodes and guard conditions within activity diagrams helps to
model complex logic and identify situations where the system needs to make choices based on
specific criteria.
∙ Parallelism and Concurrency:
Activity diagrams can depict parallel activities and synchronization points, which is useful for
modelling systems with concurrent processes.
∙ Collaboration and Communication:
By providing a shared visual representation of the system's workflow, activity diagrams facilitate
communication and collaboration between stakeholders, developers, and users, ensuring
everyone is on the same page regarding system requirements
Define feasibility study. Enlist and explain the contents to be
05 W-22/4M
included in the feasibility study report.
A feasibility study is a comprehensive evaluation that assesses the practicality of a proposed
project or business idea, analysing various factors like financial viability, technical requirements,
legal constraints, and market demand to determine whether the project is likely to succeed and if
it's worth pursuing.
Key components of a feasibility study report:
∙ Executive Summary:
A concise overview of the project, including its objectives, key findings, recommendations, and
overall feasibility assessment.
∙ Project Description:
○ Problem Statement: Clearly defines the issue or need the project aims to address.
○ Project Goals and Objectives: Specific, measurable targets the project intends to
achieve.
○ Product/Service Description: Detailed explanation of the proposed product or
service, including its features and benefits.
∙ Market Analysis:
○ Market Size and Growth Potential: Analysis of the target market size,
demographics, and potential growth rate.
○ Competition Assessment: Identification and evaluation of existing competitors,
their strengths and weaknesses.
○ Market Penetration Strategy: Plan for how the project will capture market share.
∙ Technical Feasibility:
○ Technology Assessment: Evaluation of available technology to implement the
project, including its limitations and compatibility.
○ System Requirements: Detailed list of hardware, software, and infrastructure
needed.
○ Development Process: Outline of the project development phases and timelines.
∙ Economic Feasibility:
○ Cost Analysis: Detailed breakdown of project costs, including development,
operational, and maintenance expenses.
○ Revenue Projections: Estimated revenue generation based on market penetration
and pricing strategy.
○ Return on Investment (ROI): Analysis of the expected financial return compared
to the initial investment.
∙ Financial Feasibility:
○ Funding Sources: Identification of potential funding options like loans, equity
investments, or grants.
○ Financial Projections: Projected cash flow statements, income statements, and
balance sheets.
○ Break-Even Analysis: Calculation of the sales volume required to cover project
costs.
∙ Legal and Regulatory Feasibility:
○ Permits and Licenses: Identification of necessary permits and licenses to operate
the project.
○ Compliance Requirements: Assessment of relevant legal and regulatory
frameworks that may impact the project.
∙ Management Feasibility:
○ Organizational Structure: Outline of the project team roles and responsibilities.
○ Project Management Plan: Description of project management methodologies and
processes.
○ Stakeholder Analysis: Identification of key stakeholders and their potential impact
on the project.
∙ Risk Assessment:
○ Potential Risks: Identification of potential risks associated with the project.
○ Mitigation Strategies: Proposed actions to address and minimize identified risks.
Important Considerations:
∙ Data Accuracy: Ensure the feasibility study relies on reliable and up-to-date data sources.
∙ Objectivity: Maintain a neutral perspective when evaluating project viability.
∙ Clear Communication: Present the findings of the study in a clear and concise manner,
including recommendations and next steps.
06 Define Generalization. Explain with example W-22/3M
Generalization in software engineering is the process of grouping entities into broader categories
based on common attributes, behavior, or both. This process helps to reduce the complexity of
models and redundancy in specifications.
Here are some examples of generalization in software engineering:
∙ Creating a superclass
Generalization can be used to create a superclass that has common properties and methods
shared by multiple subclasses. For example, a "Car" entity can be the child entity, and "Sedan,"
"SUV," and "Truck" can be the generalized parent entities.
∙ Identifying commonalities
Generalization can be used to identify commonalities among a set of entities. For example, all
graphical user interface windows have a title.
∙ Applying a general function
Generalization can be used to apply a general function to other use cases. For example, a general
function filter can be applied to keep only positive numbers from a list.
- Correct
- Unambiguous
- Complete
- Modifiable
- Traceable
- Verifiable
- Consistent