3-Nature of Software Software Engineering Software Process Project Product Process Models-14!12!2024
3-Nature of Software Software Engineering Software Process Project Product Process Models-14!12!2024
BCSE301L
Module 1
Web Application
Embedded Software
Mobile Software
Engineering/Scientific
Artificial Intelligence
Product
• The software product plus associated documents.
Project
• The activities carried out to produce the product.
Process
• Framework within which the team carries out the activities necessary to
build the product.
The 4Ps Constituting Software Engineering
People Product Project Process
➢Disadvantages
➢Inflexible: Changes to requirements can be difficult and costly to implement.
➢High Risk: If requirements are not properly understood or defined, the project may fail.
➢Long Development Time: The sequential approach can lead to long development times.
The Process Models – Prototyping Model
The Process Models – Prototyping Model
➢Characteristics
➢Iterative: The prototyping process is iterative, with each iteration refining the
prototype.
➢Flexible: The prototyping model allows for changes in requirements and
design.
➢Risk Reduction: Prototyping helps to reduce the risk of project failure by
identifying and addressing potential issues early.
The Process Models – Prototyping Model
➢Phases of the Prototyping Model
➢Requirements Gathering: Identify the basic requirements of the software
application.
➢Quick Plan: Create a rough plan for the prototype.
➢Prototype Development: Build a working prototype of the software
application.
➢User Feedback: Gather feedback from users on the prototype.
➢Refine Prototype: Refine the prototype based on user feedback.
➢Repeat: Repeat the process until the prototype meets the requirements.
The Process Models – Prototyping Model
➢Advantages
➢Improved Requirements: Prototyping helps to identify and refine requirements.
➢Reduced Risk: Prototyping reduces the risk of project failure.
➢Increased User Satisfaction: Prototyping ensures that the final product meets user
requirements.
➢Disadvantages
➢Time-consuming: Prototyping can be time-consuming, especially if multiple iterations are
required.
➢Expensive: Prototyping can be expensive, especially if a large team is involved.
➢May Not Be Suitable for Large Projects: Prototyping may not be suitable for large projects
with complex requirements.
The Process Models – Incremental Model
The Process Models – Incremental Model
➢Characteristics
➢Evolutionary: The incremental model involves multiple evolution, with each
iteration adding new features or functionality.
➢Incremental: The software application is developed in increments, with each
increment building on the previous one.
➢Flexible: The incremental model allows for changes in requirements and
design.
The Process Models – Incremental Model
➢Phases of the Incremental Model
➢Requirements Gathering: Identify the overall requirements of the software
application.
➢System Design: Create a high-level design of the software application.
➢Incremental Development: Develop the software application in increments,
with each increment adding new features or functionality.
➢Testing: Test each increment to ensure that it meets the requirements.
➢Integration: Integrate each increment into the overall software application.
➢Repeat: Repeat the process until the software application is complete.
The Process Models – Incremental Model
➢Advantages
➢ Early Delivery: The incremental model allows for early delivery of a working software application.
➢ Reduced Risk: The incremental model reduces the risk of project failure by breaking the project into smaller,
more manageable increments.
➢ Improved Quality: The incremental model allows for testing and integration of each increment, improving
the overall quality of the software application.
➢Disadvantages
➢ Higher Cost: The incremental model can be more expensive than other models, as it requires multiple
iterations and testing.
➢ Requires Good Planning: The incremental model requires good planning and coordination to ensure that
each increment is properly integrated into the overall software application.
➢ May Not Be Suitable for Large Projects: The incremental model may not be suitable for large projects with
complex requirements.
The Process Models – Spiral Model
The Process Models – Spiral Model
➢Characteristics
➢Iterative & Evolutionary: The Spiral Model involves multiple iterations, with
each iteration refining the software application.
➢Incremental: The software application is developed in increments, with each
increment building on the previous one.
➢Risk-driven: The Spiral Model emphasizes risk management and mitigation.
➢Flexible: The Spiral Model allows for changes in requirements and design.
The Process Models – Spiral Model
➢Phases of the Spiral Model
➢Planning: Identify the objectives, constraints, and risks of the project.
➢Risk Analysis: Analyze the risks associated with the project and develop
strategies to mitigate them.
➢Engineering: Develop the software application, including design,
implementation, and testing.
➢Evaluation: Evaluate the software application and identify areas for
improvement.
➢Repeat: Repeat the process until the software application meets the
requirements.
The Process Models – Spiral Model
➢Advantages
➢Risk Management: The Spiral Model emphasizes risk management and
mitigation.
➢Flexibility: The Spiral Model allows for changes in requirements and design.
➢Improved Quality: The iterative and incremental approach of the Spiral
Model results in improved quality.
➢Reduced Risk: The Spiral Model reduces the risk of project failure by
identifying and mitigating risks early.
The Process Models – Spiral Model
➢Disadvantages
➢Complexity: The Spiral Model can be complex and difficult to
manage.
➢High Cost: The Spiral Model can be expensive, as it requires
multiple iterations and risk analysis.
➢Requires Skilled Resources: The Spiral Model requires skilled
resources, including risk management and software development
expertise.
The Process Models – RAD Model
Team 2 Team n
Team 1
The Process Models – RAD Model
➢Characteristics
➢Rapid Development: The RAD Model emphasizes rapid development and
delivery of a software application.
➢Iterative: The RAD Model involves multiple iterations, with each iteration
refining the software application.
➢Incremental: The software application is developed in increments, with each
increment building on the previous one.
➢User Involvement: The RAD Model emphasizes user involvement and
feedback throughout the development process.
The Process Models – RAD Model
➢Phases of the RAD Model
➢Business Modeling:
➢Business processes and information flow are analyzed to identify the core business
requirements.
➢Stakeholders and developers collaborate to create a high-level overview of what the
system will do.
➢Data Modeling:
➢Information derived from business modeling is refined into data objects (entities).
➢Relationships between data objects are defined, establishing a clear data structure.
The Process Models – RAD Model
➢Phases of the RAD Model
➢Process Modeling:
➢ Data objects and their relationships are used to define the processes (functions) that manipulate data.
➢ These processes are refined iteratively for greater clarity and alignment with user requirements.
➢Application Generation:
➢ Actual coding and development occur.
➢ Tools like CASE (Computer-Aided Software Engineering) are often used to automate code generation,
speeding up development.
➢Testing & Turnover:
➢ Components are tested independently and integrated into the system.
➢ Bugs are identified and resolved rapidly.
➢ A working product is delivered for review and feedback.
The Process Models – RAD Model
➢Advantages
➢Rapid Development: The RAD Model enables rapid development and
delivery of a software application.
➢Improved User Satisfaction: The RAD Model emphasizes user involvement
and feedback, resulting in improved user satisfaction.
➢Flexibility: The RAD Model allows for changes in requirements and design.
➢Reduced Risk: The RAD Model reduces the risk of project failure by
involving users throughout the development process.
The Process Models – RAD Model
➢Disadvantages
➢High Cost: The RAD Model can be expensive, as it requires rapid
development and deployment.
➢Requires Skilled Resources: The RAD Model requires skilled
resources, including developers, designers, and testers.
➢May Not Be Suitable for Large Projects: The RAD Model may not
be suitable for large projects with complex requirements.
The Process Models – V Model
The Process Models – V Model
➢ Characteristics
➢Sequential & Parallel Phases: The V-Model consists of sequential phases,
with each phase building on the previous one.
➢Testing Emphasis: The V-Model places a strong emphasis on testing, with
testing activities integrated throughout the development process.
➢Verification and Validation: The V-Model includes verification and
validation activities to ensure that the software meets the requirements.
The Process Models – V Model - Phases
➢Business requirement analysis: This is the first step where product
requirements understood from the customer's side. This phase contains detailed
communication to understand customer's expectations and exact requirements.
➢System Design: In this stage system engineers analyze and interpret the
business of the proposed system by studying the user requirements document.
➢Architecture Design: The baseline in selecting the architecture is that it should
understand all which typically consists of the list of modules, brief functionality
of each module, their interface relationships, dependencies, database tables,
architecture diagrams, technology detail, etc. The integration testing model is
carried out in a particular phase.
The Process Models – V Model - Phases
➢Module Design: In the module design phase, the system breaks
down into small modules. The detailed design of the modules is
specified, which is known as Low-Level Design
➢Coding Phase: After designing, the coding phase is started. Based on
the requirements, a suitable programming language is decided. There
are some guidelines and standards for coding. Before checking in the
repository, the final build is optimized for better performance, and
the code goes through many code reviews to check the performance.
The Process Models – V Model - Phases
➢There are the various phases of Validation Phase of V-model:
➢Unit Testing: In the V-Model, Unit Test Plans (UTPs) are developed
during the module design phase. These UTPs are executed to eliminate
errors at code level or unit level. A unit is the smallest entity which can
independently exist, e.g., a program module. Unit testing verifies that the
smallest entity can function correctly when isolated from the rest of the
codes/ units.
➢Integration Testing: Integration Test Plans are developed during the
Architectural Design Phase. These tests verify that groups created and
tested independently can coexist and communicate among themselves.
The Process Models – V Model - Phases
➢System Testing: System Tests Plans are developed during System Design
Phase. Unlike Unit and Integration Test Plans, System Tests Plans are
composed by the client’s business team. System Test ensures that
expectations from an application developer are met.
➢Acceptance Testing: Acceptance testing is related to the business
requirement analysis part. It includes testing the software product in user
atmosphere. Acceptance tests reveal the compatibility problems with the
different systems, which is available within the user atmosphere. It
conjointly discovers the non-functional problems like load and
performance defects within the real user atmosphere.
The Process Models – V Model
➢Advantage (Pros) of V-Model:
➢Easy to Understand.
➢Testing Methods like planning, test designing happens well before coding.
➢This saves a lot of time. Hence a higher chance of success over the waterfall
model.
➢Avoids the downward flow of the defects.
➢Works well for small plans where requirements are easily understood.
The Process Models – V Model
➢Disadvantage (Cons) of V-Model:
➢Very rigid and least flexible.
➢Not a good for a complex project.
➢Software is developed during the implementation stage, so no early
prototypes of the software are produced.
➢If any changes happen in the midway, then the test documents along with the
required documents, has to be updated.
The Process Models – Agility
➢Agility in Software Engineering refers to the ability to adapt and
respond quickly to changes throughout the software development
lifecycle.
➢It emphasizes flexibility, collaboration, and continuous improvement to
deliver high-quality software efficiently.
The Process Models – Agile Process Model
➢Key Characteristics of Agile Methods
➢Iterative Development:
➢ System is developed in small increments.
➢ Each increment is delivered and evaluated by users.
➢ Feedback from users is used to refine future increments.
➢Minimal Documentation:
➢Focus on code and working software over extensive documentation.
➢Informal communication is preferred over formal meetings and written
documents.
The Process Models – Agile Process Model
➢Key Characteristics of Agile Methods
➢Customer Involvement:
➢Customers are actively involved in the development process.
➢They provide feedback and prioritize requirements.
➢Flexible Process:
➢The process is adaptable to changing requirements and circumstances.
➢It emphasizes responding to change over following a rigid plan.
The Process Models – Agile Process Model
➢Key Characteristics of Agile Methods
➢Continuous Testing:
➢Testing is integrated into the development process.
➢Automated testing tools are used to ensure quality and reliability.
➢Tool Support:
➢Tools are used to automate various aspects of the development process.
➢This includes version control, build automation, and testing tools.
The Process Models – Agile Process Model
Features Plan-Driven Model Agile Process Model
Process Model Linear Flow Iterative and Evolutionary
Detailed Requirements
Requirements Evolving and Emerging
Upfront
Documentation Extensive Minimal
Customer Involvement Limited High
Risk Management Proactive Reactive
Predictability and Adaptability and
Focus
Control Flexibility
The Process Models – Principles of Agile Methods
1. Customer Early and continuous delivery of valuable Software
Satisfaction
➢ Plan Release:
➢Based on the selected user stories and estimated tasks, a release plan is created.
➢The plan outlines the timeline, milestones, and resource allocation for the release.
➢Release Software:
➢Once the development and testing phases are complete, the software is released to
the customer.
➢The customer evaluates the released software and provides feedback for the next
iteration.
➢Evaluate System:
➢The development team and the customer evaluate the released software to identify
any issues or areas for improvement.
➢Feedback from the customer is used to refine future releases.
The Process Models –Agile Method – Extreme Programming (XP)
➢Workflow Cycle:
➢Customer Defines User Stories: Customers describe what they need in simple,
understandable terms.
➢Developers Estimate and Plan: Developers estimate the time and effort
required for each story and plan iterations accordingly.
➢Build Iterations:
➢Write automated tests (TDD).
➢Pair program and write code to pass tests.
➢Refactor to improve the codebase.
➢Integrate and test frequently.
The Process Models –Agile Method – Extreme Programming (XP)
➢Sprint Planning:
➢The team selects the highest-priority items from the product backlog to
include in the sprint backlog.
➢The sprint goal is defined, and the team collaboratively plans how to deliver
the selected backlog items.
➢Tasks for each backlog item are identified.
The Process Models –Agile Method – SCRUM Workflow
➢Sprint Execution:
➢The development team works on the sprint backlog.
➢Progress is tracked, and daily stand-up meetings are held to ensure
alignment and address blockers.
➢Continuous testing and integration are performed to ensure quality.
The Process Models –Agile Method – SCRUM Workflow
➢Sprint Review:
➢At the end of the sprint, the team demonstrates the completed work (the
increment) to stakeholders.
➢Stakeholders provide feedback, which helps refine the product backlog for
future sprints.
The Process Models –Agile Method – SCRUM Workflow
➢Sprint Retrospective:
➢The team reflects on the sprint process to identify successes and areas for
improvement.
➢Adjustments are made to workflows or practices for the next sprint.
➢Repeat:
➢The next sprint begins, repeating the process with updated priorities and
goals.
The Process Models –Agile Method – SCRUM Scaling
The Process Models –Reuse Oriented Software Engineering
The Process Models –Reuse Oriented Software Engineering