Chapter2.pdf
Document Details
Uploaded by UnmatchedCarnelian9931
Full Transcript
Process Models in Software Engineering Definition of a Process Model What is a Process Model?: Purpose and Importance: A process model is a Planning: Helps in outlining the project timeline and resource structu...
Process Models in Software Engineering Definition of a Process Model What is a Process Model?: Purpose and Importance: A process model is a Planning: Helps in outlining the project timeline and resource structured framework that allocation. defines the tasks, activities, Communication: Serves as a and roles involved in software common language among development. stakeholders (developers, managers, clients). It outlines the sequence of Quality Assurance: Ensures that steps to be followed from the each phase meets certain standards inception to the delivery of the before moving to the next. software product. Risk Management: Identifies potential risks early in the development process. Components of a Process Model: ▪ Phases: Distinct stages of development (e.g., requirements, design, implementation). ▪ Activities: Specific tasks within each phase. Definition of a ▪ Milestones: Key points that signify the completion of a phase or important Process Model tasks. Example: o House Building Analogy: Comparing process models to the stages of building a house—planning, foundation, construction, finishing, and inspection. A. Waterfall Model Advantages: o Description: ▪ Simple and easy to understand. ▪ A linear and sequential approach where each ▪ Well-structured with phase must be clear milestones. Popular completed before the next begins. Phases: ▪ Suitable for projects with well-defined requirements. Software o Disadvantages: ▪ Requirements Analysis: Gathering and ▪ Inflexible to changes Process documenting what the software should do. System Design: ▪ once the process is underway. Late discovery of issues Models ▪ Defining the architecture since testing occurs and design of the after implementation. system. ▪ Not ideal for complex or ▪ Implementation long-term projects where requirements (Coding): Writing the may evolve. actual code. ▪ Integration and Example: Testing: Combining all parts and testing for ▪ Developing a static defects. website where requirements are ▪ Deployment: Releasing unlikely to change the software to users. significantly during development. ▪ Maintenance: Ongoing support and updates. Waterfall Model Flowchart V-Model (Verification and Validation Model) o Advantages: Description: ▪ Early detection of defects through An extension of the Popular ▪ corresponding testing Waterfall model that emphasizes verification phases. Software and validation at each ▪ Clear and structured development stage. approach with ▪ Forms a V-shape when emphasis on quality. Process diagrammed, highlighting the relationship between development phases and o Disadvantages: ▪ Still inherits the Models their corresponding testing phases. rigidity of the Waterfall model. Phases: ▪ Changes can be ▪ Requirements Analysis ↔ costly and difficult to Acceptance Testing implement once phases are ▪ System Design ↔ System completed. Testing o Example: ▪ Architectural Design ↔ Integration Testing ▪ Developing a medical ▪ Module Design ↔ Unit software system Testing where rigorous testing is critical for safety ▪ Implementation and compliance. V-Model Flowchart Incremental Model o Advantages: o Description: ▪ More flexible and adaptable to changing ▪ Builds the software requirements. Popular incrementally, with each increment adding ▪ Provides working software early in the Software functional capabilities. development process. ▪ Each increment goes ▪ Easier to manage and test smaller increments. Process through all phases of the process (requirements, design, o Disadvantages: Models ▪ Requires good planning implementation, and design to integrate testing) but on a increments smoothly. smaller scale. ▪ Can lead to inconsistencies if not o Phases: properly managed. ▪ Multiple iterations of o Example: the same phases, ▪ Developing a mobile each delivering a app where core features functional part of the are built first, followed software. by additional features in subsequent updates. o. Incremental Model Impact on Project Success: The chosen process model affects project timelines, budget, quality, and flexibility. Importance of Factors to Consider: Choosing the Project Size and Complexity: Larger, more complex projects may benefit from structured models like V-Model or Right Process Incremental. Requirements Stability: Stable requirements align well with Model the Waterfall model, whereas evolving requirements are better suited for Agile or Incremental models. Customer Involvement: High customer involvement favors Agile methodologies. Team Size and Expertise: Larger, experienced teams may handle complex models more effectively. Time Constraints: Tight deadlines may necessitate iterative and incremental approaches to deliver parts of the system early. Examples Project A: Developing Project B: Creating a an enterprise resource startup’s mobile planning (ERP) system application with evolving with clearly defined features might adopt an requirements might use Incremental or Agile the V-Model. approach.