Software Engineering 1 Lecture 3 PDF
Document Details
Uploaded by StrikingNarwhal7850
Menoufia University
Dr. Nesma Mahmoud
Tags
Summary
Lecture notes on Software Engineering 1, Lecture 3, covering software development methodologies and software process models. Topics include Waterfall, incremental, and agile models, their pros and cons, and when to use each model.
Full Transcript
Software Engineering 1 Dr. Nesma Mahmoud Lecture 3 (Undergraduate – FAI- Level 2) Software Processes/SCLC Models 2 Hint This lecture is based on “Chapter 2 Software processes” from the book namely “Soft...
Software Engineering 1 Dr. Nesma Mahmoud Lecture 3 (Undergraduate – FAI- Level 2) Software Processes/SCLC Models 2 Hint This lecture is based on “Chapter 2 Software processes” from the book namely “Software Engineering, 10th Edition by Ian Sommerville” This lecture is based on “Chapter 3 Agile Software Development” from the book namely “Software Engineering, 10th Edition by Ian Sommerville” In this lecture We will: Software development methodologies (or Software process/development models) Recall: Software Processes A software process encompasses the broader methodology and workflow adopted to develop, deliver, and maintain software products. It includes SDLC but also covers additional aspects such as project management practices, quality assurance, and development methodologies like Agile or Waterfall. Recall: The software process A structured set of activities required to develop a software system. Many different software processes but all involve: Specification – defining what the system should do; Design and implementation – defining the organization of the system and implementing the system; Validation – checking that it does what the customer wants; Evolution – changing the system in response to changing customer needs. A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective. 30/10/2014 Chapter 2 Software Processes 6 Software process models 30/10/2014 Chapter 2 Software Processes 7 Various Software Process Models Different process models Build-and-fix model Waterfall model Incremental model Evolutionary process models Rapid prototyping model Spiral model Agile process models Scrum or Extreme programming Object-oriented life-cycle models Unified Process In this Course: Software Process Models The waterfall model Incremental development Model Agile Models Reuse-oriented software engineering (Integration and configuration) In practice, most large systems are developed using a process that incorporates elements from all of these models. 30/10/2014 Chapter 2 Software Processes 9 Waterfall Model The waterfall model can be … 30/10/2014 Chapter 2 Software Processes 11 http://wiki.doing-projects.org/index.php/Waterfall_model The waterfall model can be … https://www.rezaid.co.uk/post/sdlc-waterfall-model-the-6-phases-you-need-to-know-about 30/10/2014 Chapter 2 Software Processes 12 The waterfall model can be … 30/10/2014 Chapter 2 Software Processes 13 Waterfall Model Waterfall model is the pioneer of the SDLC processes. The waterfall model is a sequential design process in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of SDLC. Waterfall model is an example of a Sequential model. In this model, the software development activity is divided into different phases and each phase consists of a series of tasks and has different objectives. Characterized by: Feedback loops Documentation-driven Waterfall Model: Pros & Cons Advantages Enforces disciplined approach Documentation for each phase Products of each phase checked by SQA group Maintenance is easier Every change reflected in the relevant documentation Disadvantages Working version of the software will not be available until late in the project time-span Specifications are long, detailed, written in a style unfamiliar to the client “Blocking states” –some project team members must wait for other team members to complete dependent tasks 30/10/2014 Chapter 2 Software Processes 15 Waterfall Model: Cons Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements. Therefore, this model is only appropriate when the requirements are well- understood and changes will be fairly limited during the design process. Few business systems have stable requirements. 30/10/2014 Chapter 2 Software Processes 16 Incremental Model Incremental development Incremental Model is a process of software development where requirements are broken down into multiple standalone modules of software development cycle. Each iteration passes through the requirements, design, coding and testing phases. Typical product takes from 5 to 25 builds (iterations). Incremental Model can be … 30/10/2014 Chapter 2 Software Processes 19 Incremental Model can be … 30/10/2014 Chapter 2 Software Processes 20 Incremental Model Waterfall models Deliver complete product at the end Incremental model Deliver portion of the product at each stage Advantages The software will be generated quickly during the software life cycle It is flexible and less expensive to change requirements and scope Throughout the development stages changes can be done This model is less costly compared to others A customer can respond to each building (easier to get customer feedback ) Errors are easy to be identified Incremental Model Problems Disadvantages: It requires a good planning designing Problems might arise due to system architecture as not all requirements collected up front for the entire software lifecycle Each iteration phase is rigid and does not overlap each other Correcting a problem in one unit requires correction in all the units and consumes a lot of time 30/10/2014 Chapter 2 Software Processes 22 When to use Incremental models? Requirements of the system are clearly understood When demand for an early release of a product arises When software engineering team are not very well skilled or trained Such methodology is more in use for web application and product based companies 30/10/2014 Chapter 2 Software Processes 23 Reuse-oriented Model Reuse-oriented software engineering (Integration and configuration) Based on software reuse where systems are integrated from existing components or application systems (sometimes called COTS - Commercial-off-the-shelf) systems). Reused elements may be configured to adapt their behaviour and functionality to a user’s requirements Reuse is now the standard approach for building many types of business system Reuse covered in more depth in Chapter 15. 30/10/2014 Chapter 2 Software Processes 25 Reuse-oriented software engineering 30/10/2014 Chapter 2 Software Processes 26 Types of reusable software Stand-alone application systems (sometimes called COTS) that are configured for use in a particular environment. Collections of objects that are developed as a package to be integrated with a component framework such as.NET or J2EE. Web services that are developed according to service standards and which are available for remote invocation. 30/10/2014 Chapter 2 Software Processes 27 Advantages and disadvantages Reduced costs and risks as less software is developed from scratch Faster delivery and deployment of system But requirements compromises are inevitable so system may not meet real needs of users Loss of control over evolution of reused system elements 30/10/2014 Chapter 2 Software Processes 28 Agile Models Agile Software Development = Agile Manifesto 30