0% found this document useful (0 votes)
8 views89 pages

Software Engineering and Process Models

The document provides a comprehensive overview of software, including its definitions, types, and importance in modern technology. It discusses various software development models such as Waterfall, V-Model, Incremental, and Prototyping, highlighting their structures, advantages, and limitations. Additionally, it emphasizes the significance of a structured software development life cycle (SDLC) and the role of prescriptive models in ensuring quality and predictability in software projects.

Uploaded by

Matilda Dominic
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views89 pages

Software Engineering and Process Models

The document provides a comprehensive overview of software, including its definitions, types, and importance in modern technology. It discusses various software development models such as Waterfall, V-Model, Incremental, and Prototyping, highlighting their structures, advantages, and limitations. Additionally, it emphasizes the significance of a structured software development life cycle (SDLC) and the role of prescriptive models in ensuring quality and predictability in software projects.

Uploaded by

Matilda Dominic
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd

INTRODUCTION

UNIT 1
Defining Software: Defining key concepts clearly and concisely Key Points:
Software is the collection of programs and data that enable computers to perform tasks. It
acts as an interface between users and hardware, making technology accessible and
functional. Understanding software is essential to grasp how modern digital systems
operate and evolve.
Definition and Types
Software refers to programs and operating information used by a computer. It is
broadly categorized into system software, which manages hardware, and
application software, which performs specific user tasks. Each type plays a
critical role in enabling efficient computing.
Importance in Modern Technology

Software drives innovation across industries, powering everything


from mobile apps to enterprise solutions. Its flexibility and
adaptability allow businesses to optimize operations, improve
customer experiences, and stay competitive in an evolving digital
landscape. Strong software foundations are crucial for
technological advancement.
Software vs. Hardware
Software consists of intangible programs that instruct hardware on tasks to perform. Hardware
includes the physical components like processors and memory. While hardware provides the
necessary infrastructure, software controls and utilizes this infrastructure to execute functions.
Both are essential and interdependent in computing systems.
Development Life Cycle
The software development life cycle (SDLC) outlines stages from
planning to deployment and maintenance. Key phases include
requirements analysis, design, coding, testing, and release. A
structured SDLC ensures efficient project management, quality
delivery, and alignment with user needs.
Programming Languages
Programming languages are tools for writing software code. They
varyby purpose, from low-level languages like Assembly to high-
levellanguages like Python and Java. Choosing the right language
affectsdevelopment speed, performance, and application
suitability.
Testing and Maintenance
Testing verifies software functionality, performance,
and reliability before release. Maintenance involves
ongoing updates, bug fixes, and improvements
post-deployment. Both are critical to sustaining
software quality, security, and user satisfaction
over time.
Software Domains
Software application domains define specific areas where
software engineering principles are applied to solve problems.
Understanding these domains helps tailor development
processes and tools to meet distinct requirements. This
presentation explores key domains in software engineering and
their primary applications.
Web Applications

E-commerce platforms: enable businesses to sell products and


services online through websites and mobile apps. These
platforms focus on secure payment processing, inventory
management, and seamless user experience. Popular examples
include online retail stores and marketplaces that handle
high transaction volumes efficiently.
Web Applications

Content Management Systems (CMS): allow users to create, edit,


and organize digital content with minimal technical knowledge. They
support website management, collaboration, and content publication
workflows. CMS platforms like WordPress and Joomla empower
businesses to maintain dynamic and scalable web content effectively.
Web Applications

Social networking sites: facilitate communication, content sharing,


and community building online. They support features like profiles,
messaging, and multimedia sharing to enhance user engagement.
Platforms such as Facebook and LinkedIn focus on connecting people
professionally and socially, emphasizing security and data privacy to
maintain user trust.
Enterprise Software

Customer Relationship Management (CRM): systems help


businesses manage customer interactions, improve sales, and enhance
customer service. They provide tools for tracking leads, automating
marketing, and analyzing customer data. Prominent CRM solutions like
Salesforce enable companies to build stronger customer relationships
through data-driven insights and streamlined processes.
Enterprise Software

Enterprise Resource Planning (ERP): ERP software integrates core


business processes such as finance, HR, and supply chain into a unified
system. This integration improves operational efficiency, data accuracy,
and decision-making. Leading ERP platforms, like SAP and Oracle, offer
modular solutions that can be customized to meet diverse enterprise
needs.
Enterprise Software

Supply Chain Management (SCM): SCM software manages the flow


of goods, information, and finances from production to delivery. It
enhances inventory control, order processing, and supplier coordination.
Effective SCM solutions reduce costs and improve service levels by
providing real-time visibility and analytics across the supply chain.
THE SOFTWARE PROCESS

​What is a Software Process (SDLC)?

​ predefined, structured set of activities for developing, operating, and


A
maintaining software.

​It dictates how a team translates customer needs into a working system.
• G
​ oal: Achieve consistent, high-quality output while managing cost and
time.
WHY DO WE NEED A PROCESS?

​Importance and Benefits:

​ isk Reduction: Identify and mitigate problems (e.g., scope creep,


R
technical debt) early.

​ redictability: Ensures projects are completed on schedule and within


P
budget.

​ raceability: Provides documentation for audits, maintenance, and


T
compliance.
• C
​ onsistency: Defines standards and practices that lead to reliable,
repeatable results.
THE FOUR CORE ACTIVITIES

The essential activities present in almost all software processes:

​Specification (Requirements): Defining what the system must do.

​ evelopment (Design & Implementation): Creating how the system


D
works.

​ alidation (Testing): Confirming the system meets the specification and


V
user needs.
• E
​ volution (Maintenance): Changing and adapting the system after
deployment.
MODEL 1: THE WATERFALL MODEL

Concept: A linear, sequential flow where each phase must be completed


before the next begins.

Phases:

​Requirements Definition

​System and Software Design

​Implementation and Unit Testing


• ​Integration and System Testing
MODEL 2: INCREMENTAL DEVELOPMENT

Concept: Delivers the system in small, rapid increments, each version


building upon the last.

I​terative Cycles: Specification, development, and validation are


interleaved and repeated.

​Early Value: Provides basic functional software to the customer quickly.


• F
​ eedback Driven: Customer feedback on each increment guides the
development of the next.
MODEL 3: AGILE DEVELOPMENT

Focus: Flexibility, customer collaboration, and rapid response to change.

The Agile Manifesto Core Values:

​Individuals and Interactions over Processes and Tools.

​Working Software over Comprehensive Documentation.


• ​Customer Collaboration over Contract Negotiation.
DETAILED ACTIVITY: SOFTWARE
SPECIFICATION
Elicitation: Gathering requirements through interviews, workshops, and
observation.

​ nalysis & Negotiation: Resolving conflicts, prioritizing needs, and


A
modeling the system.

​Documentation: Creating the Software Requirements Specification (SRS).


• V
​ alidation: Ensuring requirements are consistent, unambiguous, and
realistic.
DETAILED ACTIVITY: DEVELOPMENT

Architectural Design: Defining the high-level system structure (e.g.,


client-server, microservices).

I​nterface Design: Specifying how system components and external


systems communicate.

​ omponent Design: Detailing the inner structure, algorithms, and data of


C
individual modules.
• ​Implementation: Writing, commenting, and reviewing the source code.
SELECTING THE RIGHT PROCESS

Waterfall: Only for stable, fixed requirements (rare).

I​ncremental/Agile: Preferred for most modern projects with evolving


requirements.
• Modern Trend: Emphasis on DevOps and Continuous Delivery (CI/CD),
blurring the lines between development and operations for faster
evolution.
PRESCRIPTIVE PROCESS MODELS

• Prescriptive Process Models are traditional software development approaches


that follow a fixed and planned structure to complete a project in a step-by-step
manner. These models guide teams to work systematically from requirement
gathering to final maintenance.
• They help maintain discipline in the development life cycle and avoid confusion.
The models are rule-based and expect every phase to be completed before the
next one starts. This ensures clarity, documentation, and well-defined
responsibilities.
• Prescriptive models are best suited when the requirements are known clearly in
advance. They help reduce risks at later stages because everything is planned
early. These models support predictable schedules and measurable progress,
which makes management easy.
INTRODUCTION TO PRESCRIPTIVE MODELS

• Prescriptive models are called “plan-driven” models because they depend on


advance planning and structured workflow. The entire development is divided into
clear phases, and each phase has specific outputs.
• The team follows these phases without skipping or overlapping them. They help
maintain order and stability throughout the project. Since everything is
documented, miscommunication is reduced. These models work well when clients
know exactly what they want.
• They offer a simple and understandable structure even for beginners. Teams using
prescriptive models can easily track progress. These models are commonly used in
government projects and large organizations where proper control is needed.
NEED FOR PRESCRIPTIVE MODELS

• Prescriptive models are needed to ensure that the development process remains
organized and predictable. They help project managers allocate resources and time
accurately. By using these models, teams can avoid confusion during development
stages.
• They also help produce high-quality outputs because each stage is officially
reviewed. These models reduce errors by maintaining strong documentation. They
suit projects where requirements do not change frequently.
• They help maintain professionalism in development teams. Prescriptive models
also build customer confidence as the work is carried out in a systematic way. They
help detect problems early because every stage has checks.
CHARACTERISTICS OF PRESCRIPTIVE MODELS

• Prescriptive models follow a linear or structured approach where phases must be


completed fully before moving forward. Documentation is given high importance to
maintain clarity. Activities are predictable because the sequence never changes.
• These models provide a disciplined flow of tasks and avoid unwanted changes. They
are stable and reduce risk of unexpected errors. Project tracking becomes easy due
to clearly defined milestones.
• These models demand upfront planning and a clear understanding of user needs.
They are most effective in environments with fixed budgets and timelines. They also
help in training new developers as the process is easy to follow.
TYPES OF PRESCRIPTIVE MODELS

• Prescriptive models come in various forms such as Waterfall Model, V-Model,


Incremental Model, and Prototyping Model. Each model has its own structure but
follows the same principle of planning and documentation.
• Waterfall is fully linear, V-Model focuses on testing, Incremental adds features in
steps, while Prototyping uses early versions of the product. Different models suit
different types of projects. Choosing the correct model helps reduce risk.
• These models help teams work clearly and confidently because all steps are
predefined. They also ensure that the project is delivered with quality and proper
control.
WATERFALL MODEL – OVERVIEW

• The Waterfall Model is one of the oldest and most commonly used
prescriptive models. It follows a strict linear flow where each phase must be
completed before the next one begins. It is compared to water flowing from
one level to another.
• This model is simple and easy to understand. It is best suited for small to
medium projects where requirements are well-understood. Waterfall ensures
structured development and documentation at every phase.
• It avoids parallel activities to maintain clarity. The model helps track progress
easily. It is especially useful when clients want a predictable outcome.
WATERFALL MODEL – PHASES EXPLAINED

• The Waterfall Model consists of Requirement Analysis, System Design,


Implementation, Testing, Deployment, and Maintenance. In Requirement
Analysis, all user needs are documented. System Design converts these needs
into technical plans.
• Implementation involves writing the actual code. Testing checks the system for
errors. Deployment delivers the software to users. Maintenance resolves future
issues and updates. Each phase has a clear output that becomes the input for
the next one.
• This structured flow reduces confusion. It ensures that no phase is skipped.
Waterfall provides full control over development steps.
ADVANTAGES OF WATERFALL MODEL

• Waterfall is easy to understand and implement due to its simple structure. It


offers strong documentation as every phase is recorded. It is easy to manage
because tasks are completed one after another.
• Waterfall is suitable for stable projects where requirements do not change
often. Progress can be measured clearly at each stage. Proper reviews at
each phase help detect mistakes early. It reduces risks by planning
everything in advance.
• Waterfall also supports better cost estimation. It is widely used in educational
and government projects. Its disciplined nature makes it reliable.
LIMITATIONS OF WATERFALL MODEL

• Waterfall does not handle changing requirements well because going back to
previous phases is difficult. Testing is performed late, which may lead to late
discovery of major issues. It is not suitable for long or complex projects where
user needs keep evolving.
• Waterfall requires complete requirements at the beginning, which is not always
possible. Users do not see the product until the end. If any design mistake
occurs early, it affects the entire development. Waterfall can delay feedback.
• It also increases risk if requirements are unclear. This model is less flexible
compared to modern models.
V-MODEL OVERVIEW

• The V-Model is an enhanced version of Waterfall with a strong focus on testing.


For every development phase, there is a parallel testing phase. The model forms
a V shape with development on the left side and testing on the right side.
• It helps detect problems early because testing activities start during early
phases. This model provides better quality control. It suits projects where
reliability is important.
• V-Model ensures that each requirement has a corresponding test. It is commonly
used in safety-critical systems. The model strengthens verification and validation
activities. It brings more confidence to clients.
V-MODEL STRUCTURE EXPLAINED

• The left branch includes Requirement Analysis, System Design, Architecture


Design, and Module Design. The right branch includes Acceptance Testing,
System Testing, Integration Testing, and Unit Testing.
• The coding phase joins both branches in the center. Each stage on the right
side validates the stage on the left. This structure ensures complete testing
coverage. It reduces errors due to early planning of test cases.
• V-Model is predictable and organized. It improves communication among
teams. This model is best for projects needing strict testing processes. It
reduces failure rates in final stages.
INCREMENTAL MODEL

• The Incremental Model divides the project into small parts called increments.
Each increment delivers a functional portion of the software. It allows early
delivery of working features. Users can give feedback after each increment.
• This model is more flexible than Waterfall because changes can be made in
later increments. It reduces risk by delivering the system gradually. The
development team can focus on one feature at a time. It allows parallel
development.
• Incremental Model suits medium to large projects. It improves customer
satisfaction. It also supports better testing and quality control.
PROTOTYPING MODEL

• The Prototyping Model is used when requirements are unclear. A prototype,


which is an early working model, is built to understand user needs. Users test
the prototype and give suggestions.
• Developers refine the requirements based on feedback. This model reduces
misunderstandings. It saves time because errors are identified early. Prototyping
is useful for user-interactive systems. It increases user involvement.
• It reduces risk of building the wrong product. Prototypes help visualize the final
system. This model ensures better communication with clients. It improves
requirement accuracy.
ADVANTAGES OF PRESCRIPTIVE MODELS

• Prescriptive models bring order, discipline, and clarity to software


development. They provide a structured way to complete tasks.
Documentation helps maintain transparency. These models help project
managers plan properly.
• They are predictable and easy to track. They reduce confusion among
team members. Prescriptive models are ideal for stable environments.
They reduce risks by planning early.
• These models ensure high-quality output. They support formal
reviews. They work well for large teams. They also help new developers
understand the project flow.
• Prescriptive Process Models play a major role in traditional software engineering.
They provide a clear and step-by-step approach for building software. Although
they may lack flexibility, they are highly reliable for well-defined projects.
• Their strong documentation and planning help reduce errors. Models like
Waterfall, V-Model, Incremental, and Prototyping each serve different project
needs. Prescriptive models ensure quality, stability, and professionalism.
• They make development predictable and manageable. These models continue to
be used widely because of their structured nature, clarity, and disciplined
workflow.
THE WATERFALL
MODEL
A CLASSIC APPROACH TO SOFTWARE ENGINEERING
WHAT IS THE WATERFALL
MODEL?

The Waterfall Model is a sequential, linear software development life cycle (SDLC)
model.

In this model, each phase must be fully completed before the next phase can begin.

It is one of the earliest and most traditional models, emphasizing a logical and
structured progression.
WHY "WATERFALL"?

The name comes from its visual representation, which resembles a cascading waterfall.

Progress flows steadily downwards from one phase to the next, with no "swimming
upstream."

Once a phase is complete and its deliverables are approved, the team moves to the
next. Returning to a previous phase is difficult and costly, by design.
EARLY PHASES: WHAT &
HOW

Phase 1: Requirements Phase 2: System Design


All possible requirements for the system are gathered, Using the SRS, the team designs the system's
analyzed, and documented. This results in a Software architecture. This phase defines hardware/software
Requirement Specification (SRS) document, which requirements, data structures, and the overall system
acts as the project's bible. blueprint (High-Level and Low-Level Design).
BUILDING & CHECKING

Phase 3: Implementation Phase 4: Testing


The system design is translated into code. Developers Once all code is written, the testing phase begins. The
build the software in functional units, based on the Quality Assurance (QA) team integrates all units and tests
specifications from the design phase. This is the first the entire system to find and report defects, ensuring it
time code is actually written. meets all requirements.
LAUNCH & BEYOND

Phase 5: Deployment Phase 6: Maintenance


After the system passes all tests, it is deployed to the The final phase involves supporting the live system. This
customer's environment or released to the market. This includes fixing bugs discovered post-launch, making
is the "go-live" phase where the software becomes updates, and performing enhancements over the
operational. software's lifespan.
THE SEQUENTIAL
FLOW

Design Testing
Create Find & Fix
Blueprint Bugs

Requirements Implementation Deployment


Gather & Document Write Code Go Live
ADVANTAGES OF THE WATERFALL
MODEL

Simple & Clear: The model is rigid, easy to understand, and straightforward to
manage.

Well-Defined: Phases are clearly defined with specific deliverables and review
processes.

Good for Stable Projects: Works perfectly when requirements are well-
understood, fixed, and unlikely to change.

Strong Documentation: Emphasizes the creation of thorough documentation (SRS,


Design Docs) at each stage.
DISADVANTAGES OF THE WATERFALL
MODEL

Inflexible: Extremely difficult and costly to accommodate changes in requirements


once a phase is complete.

Late Testing: Testing only occurs *after* all development is finished, making bugs
expensive to fix.

Slow Delivery: No working software is produced until late in the life cycle, so
customers can't provide early feedback.

High Risk: If requirements are misinterpreted at the start, the entire project can
fail, and this isn't discovered until the end.
WHEN SHOULD YOU
USE IT?

The Waterfall model isn't "bad," it's "specific." It is still a viable choice when:

Requirements are 100% stable, clear, and fixed.

The technology stack is well-understood and not

dynamic. The project is short, simple, and has a

clear goal.

There is no ambiguity in any of the requirements.

Example: Building a simple internal tool or a small


website with no complex, changing user logic.
COMPARISON WITH MODERN ALTERNATIVES

Feature Waterfall Agile (e.g., Scrum)

Methodology Sequential & Linear Iterative & Incremental

Flexibility Low (Resists change) High (Embraces change)

Customer Input At the start (Requirements) Continuous (Throughout)

Testing A single, late phase Continuous (In every iteration)

Working Software At the end of the project At the end of each sprint
Introduction to the
Incremental Process
Model A strategic approach to software
development that delivers value
progressively through carefully planned
iterations, enabling teams to adapt and
refine as they build.
Understanding Software Development Life Cycle Model
Software development life cycle (SDLC) models
provide structured frameworks for planning,
creating, testing, and deploying software systems.
These models guide teams through the complexities
of development, ensuring systematic progress from
concept to deployment.

The incremental model stands out by combining


iterative refinement with progressive delivery,
allowing organizations to respond to feedback while
maintaining forward momentum.
Core Principles of Incremental Developme

Progressive Construction Continuous Feedback


Software is built piece by piece, with each increment Regular user input shapes development priorities
adding new functionality to the existing foundation. and ensures alignment with actual needs.

Adaptive Planning Early Value Delivery


Requirements and priorities can evolve based on Users receive working software early, generating
insights gained from previous increments. value while development continues.
Breaking Down Requirements into Increments

Identify Core Requirements


Catalog all functional and non-functional requirements through stakeholder collaboration and analysis

Prioritize by Value
Rank requirements based on business value, user impact, technical dependencies, and risk factors.

Group into Logical Increments


Organize requirements into cohesive packages that deliver standalone functionality and business valu

Define Acceptance Criteria


Establish clear success metrics and validation points for each increment to ensure quality delivery.
Planning and Scheduling Incremental Rele
Increment 1: Foundation Increment 3: Expansion
Core architecture and essential features Advanced features and optimizations

1 2 3 4

Increment 2: Enhancement Increment 4: Refinement


Additional functionality and integrations Polish, performance, and final touches

Each increment typically spans 2-6 weeks, balancing the need for meaningful progress with manageable scope.
Release schedules should account for integration time, testing phases, and user feedback cycles to ensure
sustainable delivery pace.
Implementation Strategy for Each Increment
Design Phase
Architects create detailed technical specifications for the increment,
defining interfaces, data structures, and component interactions.

Development Phase
Engineers build features according to specifications, following coding
standards and conducting peer reviews for quality assurance.

Integration Phase
New components merge with the existing system, with careful attention to
backwards compatibility and system stability.

Validation Phase
Stakeholders review the increment against acceptance criteria, providing
feedback that shapes subsequent development.
Testing and Quality Assurance in Incremental
Development
Unit Testing
Individual components are tested in isolation to verify correct behavior and catch defects early in the
development cycle.

Integration Testing
New increment features are tested alongside existing functionality to ensure seamless system operation
and data flow.

Regression Testing
Comprehensive test suites verify that new changes haven't broken previously working features or
introduced unexpected issues.

User Acceptance Testing


End users validate that the increment meets their needs and performs as expected in real-world
scenarios before final release.
Benefits and Advantages of the
Incremental Approach
Faster Time to Market Risk Mitigation
First increment can be released quickly, Problems are identified early in smaller
providing early competitive advantage and increments, reducing the cost and impact of
generating revenue while development errors compared to discovering issues in a
continues on additional features. complete system.

User-Centric Development Adaptability to Change


Regular user interaction ensures the product Requirements can evolve between increments,
evolves based on actual needs rather than allowing teams to respond to market shifts, new
assumptions, improving satisfaction and opportunities, or changing business priorities
adoption rates. effectively.
Challenges and Limitations to Consider

Architectural Complexity
Designing a flexible architecture that accommodates future increments requires significant
upfront planning and expert technical judgment.

Integration Overhead
Each increment adds integration complexity, requiring careful coordination and robust
testing to maintain system stability across releases.

Resource Management
Balancing multiple concurrent activities—planning, development, testing, support—demands
skilled resource allocation and coordination.

Stakeholder Alignment
Managing expectations across increments requires clear communication about scope,
timelines, and feature prioritization to avoid disappointment.
Best Practices and Key Takeaways for Suc
Prioritize Ruthlessly Maintain Quality Communicate
• • Continuously
Focus on high-value features Invest in automated testing
first • Conduct thorough code • Keep stakeholders informed
• Defer nice-to-have capabilities reviews • Gather feedback regularly
• Align increments with • Address technical debt • Celebrate increment
business goals promptly milestones

The incremental process model succeeds when teams embrace iterative learning, maintain architectural discipline,
and deliver consistent value through well-planned releases.
INTRODUCTION TO EVOLUTIONARY PROCESS
MODELS:
Evolutionary process models are software development approaches. They focus on incremental
progress. Requirements evolve over time.

• Adaptive to changes
• Incremental development
• Customer feedback driven
• Risk reduction
• Flexible planning
WHY USE EVOLUTIONARY MODELS:

They support changing requirements during development. They reduce


uncertainty by frequent evaluations. Iterations improve product quality.

• Handles unclear requirements


• Continuous refinement
• Lower risks
• Early delivery of modules
• Better user involvement
PROTOTYPING MODEL:

Prototyping involves creating sample versions of the system. It helps clarify customer needs.
Feedback refines the final product.

• Quick mock-ups
• User feedback
• Improves requirement clarity
• Reduced misunderstandings
• Better design choices
BENEFITS OF PROTOTYPING:

Prototyping enhances communication between stakeholders. It minimizes requirement errors. The


model supports rapid improvements.

• Early visibility
• Lower development cost
• Improved user satisfaction
• Reduced rework
• Faster requirement gathering
INCREMENTAL MODEL:

The incremental model delivers the system in small parts. Each increment adds functionality.
Testing occurs at every step.

• Parallel development
• Better risk handling
• Early partial delivery
• Modular approach
• Easier testing and debugging
ADVANTAGES OF INCREMENTAL MODEL:

It provides working software early. Changes can be smoothly integrated. Ensures continuous
progress.

• Fast delivery
• Flexible updates
• Low initial cost
• Improved reliability
• Customer-friendly process
SPIRAL MODEL:

The spiral model emphasizes risk analysis. Development proceeds in loops called spirals. Each
loop improves the system.

• Risk-driven
• Iterative refinement
• Early detection of issues
• High customer involvement
• Flexible and structured
PHASES OF SPIRAL MODEL:

The spiral model consists of multiple phases. Planning, risk analysis, engineering, and evaluation
are repeated. Each phase enhances quality.

• Planning
• Risk Analysis
• Engineering
• Evaluation
• Repeat cycles
INTRODUCTION TO CONCURRENT
DEVELOPMENT

The Concurrent Development Model,


sometimes referred to as Concurrent
Engineering, is a software development
approach where various phases of the Software
Development Life Cycle (SDLC) run
simultaneously.

Unlike sequential models where one phase


must finish before the next begins, this model
allows overlapping activities to accelerate
delivery.
2
CORE CONCEPTS

• Simultaneity: Design, development, and testing can happen at the same time for
different components.
• States of Activity: Elements of the project move through defined states (e g., Under Development,
Awaiting Changes) rather than strict linear phases.
• Collaboration: Requires intense real-time communication between cross-functional teams.
• Event-Driven: Transitions between states are triggered by events (e.g., "Design Complete", "Error
Detected").

3
WHY USE CONCURRENT MODELS?

Time to Market

In today's fast-paced tech industry,


waiting for a strictly sequential process is often
too slow.
Concurrent models significantly
reduce the overall project timeline.

Feedback Loop

Because testing happens alongside


development, feedback is immediate,
reducing the cost of fixing bugs later in the
4
THE CONCURRENT PROCESS

This diagram illustrates the non-linear


nature of the model.

Notice how multiple activities (modeling, VS


.

construction, requirements) exist in


parallel.

Instead of a timeline, we see a network


of activities interacting constantly.

5
ACTIVITY STATES

‹/› N
Under Development Awaiting Changes Done

The team is actively building Work is paused pending The activity is completed
or designing the feedback or approval from and ready for
component. another team. integration.

6
COMPARISON: WATERFALL VS.
CONCURRENT

Feature Waterfall Model Concurrent Model

Flow Sequential (Step-by-step) Parallel (Simultaneous)

Flexibility Low (Hard to go back) High (Continuous


Change)
Delivery Time Slow (Longer cycles) Fast (Compressed cycles)
COMPARISON: SPIRAL VS.
CONCURRENT

Feature Spiral Model Concurrent Model

Focus Risk Analysis & State Transitions & Parallelism


Iteration
Structure Loops/Cycles Network of Activities

Best For High-risk, Large Projects Projects needing fast delivery

8
ADVANTAGES

• Optimization: Reduces idle time; resources are used more efficiently as teams don't wait for
others to finish completely.
• EaFly Detection: Errors in design or requirements are caught early during concurrent
prototyping or testing.
• Flexibility: The model naturally accommodates changes in requirements during development.

• Efficiency: Drastically reduces the overall product development lifecycle.

9
DISADVANTAGES

• Complexity: Managing parallel streams of work requires sophisticated management and


tracking tools.
• Communication Overhead: Requires constant, high-bandwidth communication between
teams.
• Synchronization Issues: Integrating components developed in parallel can lead to version
conflicts if not managed well.
• Cost: Implementing the necessary infrastructure and tools can be expensive initially.

10
REAL-WORLD APPLICATIONS

Client-Server Applications
Perfect for client-server systems where the
front- end (UI) and back-end (Database/API)
can be developed simultaneously by different
teams.

Mobile App Development

iOS and Android versions are often


developed concurrently with the server-side
logic.
COMPONENTS OF
THE MODEL

• Activities: The actual tasks being • Transitions: Movement between


performed (e g., Coding, Analyzing). states triggered by events.
• States: The status of each activity (e.g., • Events: Triggers such as ”Review
None, Active, Done, Awaiting). Approved” or ”Spec Changed” that
cause state changes.

12
TECHNICAL CHALLENGES

Resource Locking Version Control Testing

Two teams needing the Merging code from Testing a system that is
same resource concurrent streams is constantly changing in
simultaneously can cause error- prone without strict parts is difficult.
bottlenecks. protocols.

1
3
FUTURE OF CONCURRENT
ENGINEERING

AI Integration: AI tools will predict


state transitions and potential conflicts
before they happen.

Cloud Collaboration: Real-time cloud platforms


are making concurrent development
seamless across global teams.

DevOps: The rise of DevOps is essentially


the modern evolution of concurrent
engineering principles.

14
CASE STUDY: MODERN WEB
APP

"A leading e-commerce platform utilized the Concurrent Model to launch their mobile app.
The UI team designed screens while the API team built endpoints. By the time the designs
were approved, the backend was ready to connect.”

Result: Reduced launch time by 40% compared to sequential development.


PROCESS DOMAINS
Specialised process domains focus on distinct fields where
tailored methods and techniques are applied for optimal
outcomes. They range from manufacturing to research,
requiring expertise to manage complexity efficiently.
Understanding these domains enables organisations to harness
innovation and improve operational excellence.
Specialised process domains refer to focused areas within
industry and technology where processes are customised to meet
specific needs. These domains often involve unique workflows,
tools, and standards designed to enhance precision and efficiency.
Their scope extends from product development to scientific
experiments.

Definition and
scope
Recognising specialised process domains is crucial as they drive
innovation, quality, and competitive advantage. By leveraging
domain-specific expertise, organisations improve productivity and
adapt to evolving market demands. This focus fosters better resource
management and refined strategic planning.

Importance in
industry
KEY CHARACTERISTICS

Specialised process domains are defined by their tailored


methodologies, high complexity, and the requirement for
expert knowledge. They often involve unique tools and
standards adapted to the specific needs of the domain. These
characteristics ensure processes are efficient, precise, and
aligned with industry demands, driving innovation and quality
improvements.
In manufacturing, specialised domains focus on optimising production
lines, quality control, and supply chain management. Advanced
techniques such as automation and lean manufacturing are applied to
reduce costs and increase output while maintaining consistent
quality standards essential to competitive industries.

Manufacturing and production


processes
TECHNOLOGY AND
SOFTWARE DEVELOPMENT

Technology domains specialise in software architecture,


system integration, and agile methodologies. These domains
prioritise innovation, rapid development cycles, and ensuring
robust, scalable solutions that meet evolving user and
market requirements, enhancing competitive advantage in
dynamic environments.
Scientific research domains utilise specialised protocols and
experimental designs tailored to distinct disciplines. These
domains emphasize accuracy, reproducibility, and ethical
standards, enabling breakthroughs and fostering cutting-edge
innovation across fields such as medicine, engineering, and
environmental science.

Scientific research and


innovation

You might also like