MELJUN CORTES Software Eng'g Chapter3

Uploaded on

MELJUN CORTES Software Eng'g Chapter3

MELJUN CORTES Software Eng'g Chapter3

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. Introduction to Software Engineering Software ProcessM L UN P CORT S,M A,M A,B EJ . E B P SCS Software Engineering 1
  • 2. Software ProcessCommon Process Framework  provides the Framework Activity 1 Framework Activity 2 framework from Task Set Framework Activity n Tasks 1: Task Set 1: Task Set 1: Tasks Milestones which a Tasks Milestones Deliverables Milestones Deliverables SQA Points comprehensive Deliverables SQA Points SQA Points plan for software development can Umbrella Activities be established Software Engineering 2
  • 3. Software Process• It consists of: – framework activities that are applicable to all software projects regardless of size or complexity – tasks sets, which consists of tasks, milestones, deliverables and SQA points that enable the framework activities to be adapted to the characteristics of the software projects and the requirements of the project team Software Engineering 3
  • 4. Software Process• It consists of: – umbrella activities such as software project management, formal technical reviews, quality assurance, configuration management, documentation, risk management and measurement Software Engineering 4
  • 5. Software Process Model Is a strategy that a software development team incorporates in order to build software projects. Is chosen based on the nature of the project and application, methods and tools to be used, and the controls and deliverables that are required. Software Engineering 5
  • 6. Types of Software Process Models• Linear Sequential Model• Prototyping Model• The RAD Model• The Evolutionary Software Process Models – The Incremental Model – The Spiral Model – The Component-based Assembly Model – The Concurrent Development Model• The Formal Methods Model• Fourth Generation Techniques Software Engineering 6
  • 7. Linear Sequential Model also known as the classic life cycle or waterfall model suggests a systematic, sequential approach to software development that begins at the system level and progresses through analysis, design, coding, testing and maintenance Software Engineering 7
  • 8. Linear Sequential Model Requirements Engineering Design Engineering Coding Testing Operation and Maintenance Software Engineering 8
  • 9. Linear Sequential Model• Advantages: – Better than nothing – Provides a basis for other Software Engineering Models• Disadvantages: – Real projects rarely follow the sequential flow. – Customers have difficulty stating all requirements. – Customer involvement occurs during beginning and end of the project. – Customers must have patience. – Developers are often delayed unnecessarily. Software Engineering 9
  • 10. Prototyping Model best approach for the following situations: – a customer defines a set of general objectives for the software but does not identify detailed input, processing, or output requirements – the developer may be unsure of the efficiency of an algorithm, the adaptability of an operating system or the form that human-machine interaction should take Software Engineering 10
  • 11. Prototyping Model Listen Build or Revise to Prototype by Customers Developers Test-drive the Prototype by Customer Software Engineering 11
  • 12. Prototyping Model• Advantages: - Users get a feel of actual system Disadvantages: − Customers see what appears to be working version of the software unaware that the prototype is held together “with chewing gum and baling wire” without consideration on software quality and long-term maintainability. − Developers make implementation compromises in order to have a working prototype. Software Engineering 12
  • 13. Rapid Application Development (RAD) Modeldevelopment process is a linear sequential software model that emphasizes an extremely short development cycle is achieved through component-based construction approach best if all requirements are well-understood and project scope constrained Software Engineering 13
  • 14. RAD Model Functional Partition 3- Team Requirements Functional Partition 2- Team Engineering Requirements Engineering DesignFunctional Partition 1- Team Engineering Design Requirements Engineering Engineering Coding Coding Design Testing Engineering Testing Coding Turn-over Turn-over Testing Turn-over 60 – 90 Days Software Engineering 14
  • 15. RAD Model• Advantages: – A fully functional system is created within a short span of time. Software Engineering 15
  • 16. RAD Model• Disadvantage − For large, but scalable projects, RAD requires sufficient human resources to create the right number of RAD teams − RAD requires developers and customers who are committed to the rapid-fire activities necessary to complete a system in a much-abbreviated time frame. − It is not a good software process model for systems that cannot be modularized. − It is also not a good software process model for systems that require high performance. − It is not appropriate when new technology is used or software requires high degree of inter-operability with existing computer programs. Software Engineering 16
  • 17. Evolutionary Software Process Model recognizes that software evolves over a period of time are iterative in nature enables the development of an increasingly more complicated versions of software• Examples: 1. Incremental Model 2. Spiral Model 3. Component-based Assembly Model 4. Concurrent Development Model Software Engineering 17
  • 18. Incremental Model combines elements of the linear sequential model with the iterative philosophy of prototyping linear sequences are defined, that is, each sequence produces a deliverable “increment” of the software unlike prototyping, at each increment an operational product is delivered Software Engineering 18
  • 19. Incremental ModelFirst Increment Second Increment Third Increment Requirements Requirements Requirements Engineering Engineering Engineering Design Design Design Engineering Engineering Engineering Coding Coding Coding Testing Testing Testing Delivery of the 1st Turn-over Turn-over Increment Third SW Second SW Second SW Increment Increment Increment First First First SW Increment SW Increment SW Increment Software Engineering 19
  • 20. Spiral Model originally proposed by Boehm is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of linear sequential model provides the potential for rapid development of incremental versions of the software Software Engineering 20
  • 21. Spiral Model is divided into framework models also known as tasks regions: 1. Customer Communication 2. Planning 3. Risk Analysis 4. Engineering 5. Construction and Release 6. Customer Evaluation Software Engineering 21
  • 22. Spiral Model Planning Communication Risk Analysis D C B AEvaluation Analysis & Design Coding & Release A. Initial Software Project B. Maintenance of New Software C. Enhancement of Software D. Development of another interrelated system Software Engineering 22
  • 23. Spiral Model• Disadvantage – Demands considerable risk assessment expertise; not widely used Software Engineering 23
  • 24. Component-Based Assembly Model makes use of object technologies emphasizes the creation of classes that encapsulate both data and the algorithms that are used to manipulate data OO classes are reusable across different applications and computer-based system architectures incorporates many of the characteristics of the Spiral Model Software Engineering 24
  • 25. Component-based Assembly Planning Determine Candidate Communication Risk Analysis Classes D C B A Look for theEvaluation Classes in OO Analysis & Design the Library Coding & Release Build Get the New Class ClassesA. Initial Software ProjectB. Maintenance of New Software Put NewC. Enhancement of Software Classes inD. Development of another interrelated system Library Build the nth Iteration of Software Software Engineering 25
  • 26. Component-Based Assembly Model• Advantage: – Good software process model if reusability is a development objective. Software Engineering 26
  • 27. Concurrent Development Model also known as concurrent engineering makes use of state charts to represent the concurrent relationship existent among activities associated with a specific event can be represented schematically as a series of major technical activities, tasks, and their associated states driven by user needs, management decisions, and review results Software Engineering 27
  • 28. Concurrent Development Model Analysis Enter Activity Review as New Model Baseline Develop Revise EndStart Model Model Wait for Changes Software Engineering 28
  • 29. Formal Methods encompasses a set of activities that lead to mathematical specification of computer software provides a mechanism for eliminating many of the problems that are difficult to overcome using other software engineering paradigm serves as program verification and enable to discover and correct errors that might otherwise go undetected Software Engineering 29
  • 30. Factors Affecting the Choice of Process Model• Type of Project• Methods and Tools to be Used• Requirements of the Stakeholders• Common sense and Judgement Software Engineering 30
  • 31. Summary Software Process Types of Software Process − Linear Sequential Model − Prototyping Model − Rapid Application Development (RAD) Model − Evolutionary Process Model  Incremental Process Model  Spiral Process Model  Component-based Assembly  Concurrent Development Model Software Engineering 31
  • 32. Summary Types of Software Process Model − Formal Methods Factors that affect the choice of software development process Software Engineering 32