Chapter 2 - Process Models
π 2.1 A Generic Process Model
1- A software process = framework of activities, actions, and tasks to build high-quality software.
2- Framework Activities:
- Communication β requirements gathering, stakeholder discussions.
- Planning β estimating effort, scheduling, tracking.
- Modeling β analysis + design models.
- Construction β coding + testing.
- Deployment β delivery, feedback, support.
3- Umbrella Activities: risk management, QA, configuration management, reviews, measurement.
4- Process Flows:
- Linear (sequential)
- Iterative (repeat some steps)
- Evolutionary (incremental, circular)
- Parallel (overlapping tasks).
π 2.2 Defining a Framework Activity
- Each activity consists of software engineering actions.
- Each action has task sets = work tasks + work products + quality checkpoints + milestones.
- Example: Communication may include elicitation, elaboration, negotiation, specification, validation.
π 2.3 Identifying a Task Set
- Different projects β different task sets.
- Small project: a simple phone call + email confirmation may be enough.
- Large project: requires multiple actions (elicitation workshops, validation meetings, documentation).
π 2.4 Process Assessment and Improvement
- Processes must be assessed and continuously improved.
-
Common assessment models:
-
CMMI (Capability Maturity Model Integration).
- ISO/IEC standards.
- Improvement ensures predictability, repeatability, and better quality.
π 2.5 Prescriptive Process Models
1- Waterfall Model
- Sequential, well-defined stages.
- Strength: disciplined and documented.
- Weakness: rigid, hard to adapt to change.
2- Prototyping Model
- Build a quick prototype β get feedback β refine.
- Helps clarify requirements.
- Risk: may evolve into poorly structured final product.
3- Evolutionary Models (e.g., Spiral)
- Iterative cycles β each version improves.
- Good for large, complex, high-risk projects.
- Strength: risk management, flexibility.
4- Unified Process Model (UP/RUP)
- Iterative and incremental.
- Phases: inception, elaboration, construction, transition.
- Use case driven, architecture-centric.
π 2.6 Product and Process
- A good software process directly impacts the quality of the product.
- Balance between process rigor (discipline) and agility (flexibility) is essential.
π 2.7 Summary
- Software process = structured approach with framework + task sets + assessment.
- Different prescriptive models exist, but all must adapt to context and project needs.
- Continuous improvement is vital for long-term success.
β This chapter emphasizes that thereβs no one-size-fits-all process. Instead, engineers must adapt models to project scale, complexity, and risks.
Process Model For An e-commerce Website
Choosing the right software process model for an e-commerce website depends on:
- Complexity (payment systems, product catalogs, scalability).
- Changing requirements (UI/UX tweaks, marketing features, seasonal campaigns).
- Time-to-market (e-commerce must launch fast to capture business).
- Risk (security, performance, integrations with payment/shipping).
π Model Comparison for E-Commerce
1- Waterfall Model
- β Not suitable β too rigid, requirements change often in e-commerce.
2- Prototyping Model
- β Good for UI/UX-heavy parts (shopping cart, product filters, checkout flow).
- Helps validate with stakeholders quickly.
3- Evolutionary/Spiral Model
- β Very suitable for large, risky projects (multi-country payments, fraud detection).
- Allows risk analysis + incremental builds.
4- Unified Process (RUP)
- β Works well for enterprise-level e-commerce (scalable platforms like Amazon-type systems).
- Iterative, architecture-focused.
5- Agile (Scrum/Kanban/DevOps) (covered in Chapter 3 but related)
- β Best fit for most e-commerce websites.
- Business needs change fast (discount rules, SEO, new features).
- Agile allows continuous delivery, fast iterations, and feedback loops.
β Recommended Hybrid Approach for E-Commerce
- Use Agile (Scrum + DevOps) as the base.
- Apply Prototyping for UI/UX validation (mockups, wireframes, checkout flows).
- For high-risk components (payment gateway, scalability, fraud prevention), adopt Spiral model practices (risk-driven iterations).
π In short: For a typical online shop β Agile + Prototyping is the best choice. For a large enterprise e-commerce platform β Agile + Spiral (risk management) is safer.