Module 2
Module 2
MODULE 2
SOFTWARE PROCESS
Systematic Approach Methodologies Quality Assurance Iterative and Project Management Tools and
Incremental Automation
Development
4
Characteristics of Software Process
Characteristic Description
Systematic and Organized Follows a structured and organized approach with defined phases and activities.
Lifecycle Orientation Encompasses the entire software development lifecycle, from requirements to maintenance.
Iterative and Incremental Allows for multiple cycles of development and continuous improvement.
Goal-Oriented Driven by specific project goals and objectives, aiming to meet defined requirements.
Flexible and Adaptive Adaptable to changing project conditions and requirements.
Quality-Centric Emphasizes quality assurance and control to produce reliable and robust software.
Risk Management Includes practices to identify, assess, and mitigate project risks.
Customer-Centric Encourages customer involvement and feedback throughout the process.
Measurement and Metrics Utilizes metrics to quantify progress, quality, and performance.
Documentation Requires comprehensive documentation, including requirements, design, and test plans.
Project Management Integrates project management practices for planning, scheduling, and risk management.
Continuous Improvement Promotes ongoing process assessment and improvement.
Compliance and Standards Adheres to industry standards and regulatory requirements where applicable.
Training and Skill Development Supports skill development and continuous learning among team members.
Transparency and Communication Relies on effective communication and transparency among team members and stakeholders.
• SDLC is a systematic
process for planning,
creating, testing,
deploying, and
maintaining software
systems.
• It provides a structured
framework for software
development projects.
6
Feasibility Study
Aspect Description
• To assess whether a proposed Assess whether the software can be developed with available
Technical Feasibility
technology and resources. Identify technical challenges and risks.
software project is technically, Examine the project's cost implications, including development, testing,
Financial Feasibility
financially, and operationally deployment, and maintenance costs. Perform cost-benefit analysis.
viable. Evaluate the impact of the software on existing operations, processes,
Operational Feasibility
and staff. Identify potential disruptions and challenges.
Determine if the project can be completed within the desired time
Schedule Feasibility
frame. Create a realistic development schedule.
Assess the demand for the software in the target market. Conduct
Market Feasibility
market research to understand customer needs and competition.
Ensure compliance with relevant laws, regulations, and standards.
Legal and Regulatory Feasibility
Address issues related to intellectual property and data privacy.
Evaluate the availability of human and physical resources, including
Resource Feasibility
skilled personnel and infrastructure.
Assess the environmental impact and compliance with environmental
Environmental Feasibility
regulations, if applicable.
Identify potential risks and uncertainties associated with the project.
Risk Assessment
Develop risk mitigation strategies.
Stakeholder Identification Identify all stakeholders, including end-users, clients, managers, and others with an interest in the project.
Elicitation Techniques Gather requirements through interviews, surveys, workshops, and discussions with stakeholders.
Systematically document requirements using formats like use cases, user stories, and functional
Documentation
specifications.
Analyze requirements to eliminate redundancies, ambiguities, and inconsistencies. Prioritize based on
Analysis and Prioritization
importance.
Validate that requirements accurately represent stakeholder needs. Verify that they are complete and
Validation and Verification
consistent.
Traceability Ensure that each requirement is traceable to its source and rationale, aiding in project understanding.
Change Management Establish a formal process for evaluating and managing changes to requirements as they evolve.
Foster effective communication and collaboration among stakeholders to enhance the requirements gathering
Communication and Collaboration
process.
Prototyping (Optional) Create prototypes or mockups to visualize and validate requirements, particularly for UI/UX aspects.
Obtain formal approval from stakeholders, indicating that the gathered requirements are the basis for
Sign-off
development.
14
Classical Waterfall Model
• One of the oldest and most traditional software
development life cycle.
• It has a linear and sequential approach.
• Each phase must be completed before moving on to
the next one, resembling a waterfall flowing down in
one direction.
Key Characteristics:
• Sequential and Linear
• Document-Driven
• Well-Suited for Stable Requirements
• Limited Flexibility
• Longer Time to Deliver
15
Classical Waterfall Model (Cont…)
Advantages Disadvantages
• The Agile Model is an iterative and incremental • Iterative and Incremental Development
approach to software development that prioritizes • Customer Collaboration
flexibility, collaboration, and customer feedback.
• Flexibility
• Unlike traditional linear models like the Waterfall
Model, Agile methodologies embrace change and • Cross-Functional Teams
aim to deliver a working product in shorter • Emphasis on Individuals and Interactions
development cycles called iterations.
• Working Software as the Primary
Measure of Progress
• Embracing Change
• Regular Reflection and Improvement
17
Agile Model (Cont…)
18
Agile Model (Cont…)
Advantages Disadvantages
• Supports customer involvement and customer • Lack of documentation is a problem if the
satisfaction software team is changed and software
• Strong communication of the software team with needs to be maintained after some years.
the customer. • Senior and highly paid developers are
• Focus on user and customer required because they are the only persons
who can take correct decisions by having an
• Rapid development
eye for a little documentation.
• Allows changes easily
• It does not have full support for
• Cost-saving documentation and design.
• Promotes team works
• Fast delivery
• Little planning required 19
V-Model (Validation and Verification Model)
Definition
20
V-Model (Cont…)
Advantages Disadvantages
• Clear structure and traceability help in • Can be rigid and less adaptable to
managing and monitoring project changing requirements compared to
progress. Agile methodologies.
• Thorough testing at each level reduces • Requires detailed planning and
the likelihood of defects going documentation.
undetected.
22
Iterative Waterfall Model (Cont…)
Advantages Disadvantages
• Base model • No phase overlapping
• Simple and easy • No intermediate delivery
• Small projects • Rigid (no change)
• Feedbacks • Less customer interaction
23
Increment Model
24
Increment Model (Cont…)
Advantages Disadvantages
• Early delivery of partial functionality to • Requires careful planning and
customers. coordination to ensure that increments
align with project goals.
• Allows for flexible adaptation to
changing requirements. • Managing dependencies between
increments can be complex.
• Reduces the risk of late project failure.
• Integration testing becomes more critical
• Incremental improvements and
as the project progresses.
refinements.
25
Prototype Model
• Focuses on creating a preliminary
working model or prototype of the
software before the final product is
developed.
• The prototype serves as a tangible
representation of the system, allowing
users and stakeholders to visualize and
interact with it.
• The feedback obtained from the
prototype helps refine and finalize the
system's requirements and design.
26
Prototype Model (Cont…)
Advantages Disadvantages
• Early and tangible representation of the • Potential for misunderstandings if the
system. prototype's purpose and limitations are
not clear to stakeholders.
• Effective requirements elicitation and
validation. • The danger of the prototype becoming
the final product if not managed
• User involvement and feedback.
carefully.
• Rapid identification and resolution of
• Extra effort may be required to convert
design and functionality issues.
the prototype into a production-ready
system.
28
Spiral Model (Cont…)
Aspect Description
Objectives Define project goals and constraints.
Identify Risks Continuously identify potential risks.
Evaluate risks based on impact and
Assess Risks
likelihood.
Develop strategies to address high-
Mitigation
priority risks.
Create prototypes for technical risk
Prototyping (Opt.)
validation.
Monitor and manage risks during
Development & Testing
development.
Continuously track risks and
Monitoring
mitigation measures.
Repeat the process in spiral cycles,
Iterations
adapting to evolving risks.
Closure Assessment Evaluate risks before project closure.
20XX 29
Spiral Model (Cont…)
Advantages Disadvantages
• Effective risk management and early risk • Requires experienced project managers
identification. and risk analysts.
• Flexibility to accommodate changes in • Can be time-consuming and may result in
requirements. extended project schedules.
• Gradual and incremental development of • Documentation and tracking of risks and
the software. iterations are essential.
• High-quality software through
continuous evaluation and refinement.
34
DevOps Model (Cont…)
Advantages Disadvantages
• Faster time to market. • Complexity in implementation.
• Improved collaboration and • Resource-intensive in terms of tools and training.
communication. • Requires a cultural shift in the organization.
• Higher software quality. • Raises security concerns that need to be addressed.
• Enhanced efficiency through automation. • Demands specific skills in automation and tooling.
• Real-time visibility and monitoring. • Risk of over-automation if not managed properly.
• Increased software reliability. • Resistance to change from traditional practices.
• Scalability to handle growth. • Dependency on specific DevOps tools.
• Flexibility to adapt to changes.
35
Extreme Programming (XP)
38
Extreme Programming model
Presentation title 39
Extreme Programming model
Advantages Disadvantages
• Rapid feedback • Learning curve
• Flexibility • Resource-intensive
• Customer satisfaction • Limited documentation
• High quality • Not ideal for all projects
• Team collaboration • Reliance on customer availability
42
Scrum (Cont…)
• Sprint: A time-boxed development period
(typically 2-4 weeks) during which the
development team completes a set of
planned work.
• Sprint Planning: A meeting to select items
from the product backlog and commit to
delivering them in the upcoming sprint.
• Daily Scrum: A daily stand-up meeting
where team members discuss progress,
plans, and any impediments.
• Sprint Review: A meeting at the end of
each sprint to demonstrate the completed
work and gather feedback.
• Sprint Retrospective: A meeting after the
sprint review to reflect on the process and
identify areas for improvement.
43
Scrum (Cont…)
Advantages Disadvantages
• Adaptability: Scrum allows for changes in • Complexity: Scrum can be challenging to
project requirements even late in development. implement effectively, particularly in larger
• organizations.
Transparency: Stakeholders have a clear view of
project progress through regular sprint reviews. • Documentation: Scrum emphasizes working code
over comprehensive documentation, which may
• Frequent Deliveries: Incremental releases lead
not suit all projects.
to more frequent product deliveries.
• Team Dependency: The success of Scrum relies
• Customer Collaboration: Regular feedback
heavily on team collaboration and competence.
from the product owner and stakeholders keeps
the project aligned with user needs. • Change Management: Frequent changes can
disrupt the development process.
• Empowered Teams: Self-organizing
development teams have a sense of ownership • Limited Predictability: Due to its adaptive nature,
and responsibility. Scrum may not provide precise project timelines.
44