CS 5150 Software Engineering

Slides:



Advertisements
Similar presentations
2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.
Advertisements

1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
CS 501: Software Engineering Fall 2000 Lecture 2 The Software Process.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
CSE 470 : Software Engineering The Software Process.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
CS 5150 Software Engineering
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
CS CS 5150 Software Engineering Lecture 2 Software Processes.
CS CS 5150 Software Engineering Lecture 5 by Stephen Purpura Matching Process to Risk.
CS 501: Software Engineering
CS 5150 Software Engineering
1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 2 Software Processes.
1 CS 501 Spring 2008 CS 501: Software Engineering Lecture 2 Software Processes.
CS 501: Software Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
1 CMPT 275 Software Engineering Software life cycle.
Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
Software Engineering Management Lecture 1 The Software Process.
1 SWE Introduction to Software Engineering Lecture 4.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
CS 5150 Software Engineering Lecture 3 Software Processes 2.
CS CS 5150 Software Engineering Lecture 2 Software Processes 1.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
CS 5150 Software Engineering Lecture 2 Software Processes 1.
Four Major Software Development Methodologies  Object-oriented analysis and design developed in 1980s and 1990s  Structured analysis and design developed.
Software Project Management Iterative Model & Spiral Model.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
CC20O7N Software Engineering 1 CC2007N Software Engineering 1 Part 1 Introduction to Software Engineering.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter 1: Introduction Omar Meqdadi SE 3860 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
SOFTWARE DEVELOPMENT Presented By : Emporiumtech This presentation is brought you by
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Rekayasa Perangkat Lunak Part-6
Methodologies/Life Cycle Models
Methodologies and Algorithms
Software Engineering Management
Exam 0 review CS 360 Lecture 8.
Game Design, Development, and Technology
Chapter 2 – Software Processes
Software Processes (a)
Prototype Model Lecture-4.
Software Development Life Cycle
Software Process Models
Chapter 2 SW Process Models
Life Cycle Models PPT By :Dr. R. Mall.
Software Prototyping Animating and demonstrating system requirements.
Software Processes.
Computer Science Life Cycle Models.
Software Engineering Lecture 18.
Software Process Models and the feasibility study
Chapter 2 – Software Processes
Process Models Coming up: Prescriptive Models.
An Overview of Software Processes
Incremental Waterfall
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Processes Process should be
Software Processes.
Software Engineering Lecture 17.
Rapid software development
SDLC (Software Development Life Cycle)
Presentation transcript:

CS 5150 Software Engineering Lecture 4 Software Processes 3

Administration Projects Announcements by project groups • Roll call of projects and team numbers • Who does not have a project team?

Administration Project teams: • If you do not have a team, please meet after class. • If you are still having difficulty finding a team send email to the course team • We may ask teams to add extra members • If you have definitely chosen a project and reached agreement with your client, send email to the course team with the names of your team members

Administration Test 1 See the Tests page on the web site. Monday, September 12 at 7:30 p.m. in Phillips Hall 101. Two questions on material that has been covered in the lectures, including the class on the day of the test. Open book. You may bring any books or notes. Laptops can be used to store copies of the course materials and notes, but for no activity that involves networking. If you miss a test, there is no opportunity to retake it.

Sequential Development: The Waterfall Model Requirements Feasibility study Requirements Design System design Implementation Program design Implementation (coding) Testing Acceptance & release Operation & maintenance

Iterative Refinement Evaluation Requirements Design Implementation

Incremental Development (Sprints) For each increment (sprint) a team works through a full software development cycle including planning, requirements analysis, design, coding, unit testing, and acceptance testing. Each sprint is completed in a fixed time period, e.g., four weeks. The size of an sprint is based on team size, e.g., 5-10 people. Sprint 1 Sprint 2 Sprint 3 Accept Sprint 1 Accept Sprint 2 Accept Sprint 3

Discussion of the Waterfall Model Advantages: • Process visibility • Separation of tasks • Quality control at each step • Cost monitoring at each step Disadvantages: Each stage in the process reveals new understanding of the previous stages, which often requires the earlier stages to be revised. The Waterfall Model is not enough!

Sequence of Processes A pure sequential model is impossible Examples: • A feasibility study cannot create a proposed budget and schedule without a preliminary study of the requirements and a tentative design. • Detailed design and implementation reveal gaps in the requirements specification. • Requirements and available technology change with time. The plan must allow for some form of iteration.

Modified Waterfall Model Feasibility study Waterfall model with feedback This is better Requirements System design Program design Implementation (coding) Testing Acceptance & release Operation & maintenance

Discussion of Iterative Refinement Concept: Initial implementation for client and user evaluation, but not for release, followed by refinement until system is complete. • User interface mock-up • Throw-away software components • Dummy modules • Rapid prototyping • Successive refinement

Iterative Processes: Requirements and Risk Mistakes in the requirements are the most expensive to correct. Requirements are hard to understand until there is an operational system, particularly with user interfaces Create an outline system quickly, review it with clients, test it with users, improve the understanding of the requirements Example: Start-up time of launching a complex application.

Incremental Development (Sprints): Discussion A simple system with basic functionality is brought quickly into production. Subsequent sprints are based on experience gained from users of each previous release. Advantages Pay-back on investment begins soon. Requirement are more clearly understood in developing subsequent sprints – minimize waste. • User feedback can be incorporated in later phases. Challenge A high-level team must establish overall architecture and coordinate increments

Incremental Development of Online Systems When software is released online it is possible to divide it into small increments that are developed and released in quick succession. This approach is excellent for continual enhancement of a system within an established architecture. It is not possible for shrink wrapped software, embedded systems, or similar environments.

Mixed Processes In practice, many large projects create a process that is suitable for the specific development. For example: • A system may use a sequential process with iteration within the individual process steps. This is sometimes called a spiral development process. • User interfaces have to be tested with users. This forces iterative development, even within an underlying sequential process. • A phase 1 system may be developed by iteration and used as requirements for a phase 2, which is developed sequentially.

Examples of Mixed Processes: Iterative Refinement + Waterfall Model: Problem: Add graphics package to a programming environment Phase 1: Iterative refinement Extend current environment with a preprocessor and run-time support package. Test with users. Make several new versions until users are pleased with function. Throw the code away. Phase 2: Modified waterfall Use the results of Phase 1 as the basis for a formal set of requirements. Write new compiler and run-time system incorporating graphics elements. Make minor adjustments to requirements as needed.

Corporate Processes Large software development organizations have their own internal processes that are designed for their needs. For example: • Amazon.com (Internet commerce) divides most software development into phases of about four weeks elapsed time. • Lockheed Martin (government contactor) follows a process that fits with the way that the US government manages software contracts. • SAP (business software) emphasizes the functionality that is seen by their business customers. • Microsoft (PC software) places great emphasis on testing with a very wide variety of equipment and backward compatibility.

Modern Developments in Software Processes Changes during the software development process are expensive. • If the requirements are poorly understood, or expected to change, select a process that keeps flexibility. Iterative refinement, sprints, phased implementation. • For big software systems with many inter-related components, avoid major changes to the design of a system during development. Sequential process, such as the modified waterfall model. • If the market for the software is poorly understood, use an incremental process that gets operational software in front of customers as quickly as possible.

Observations about Software Processes Completed projects should have the basic process steps but ... the development process is always partly evolutionary. Risk is lowered by: • Prototyping key components • Frequent releases, dividing large projects into phases • Early and repeated testing with users and customers. • Following a visible software process • Making use of reusable components

CS 5150 Project Presentations: Iterative Option Evaluation Requirements first presentation second presentation third presentation Implementation Design

CS 5150 Project Presentations: Sequential Option 1. Requirements Feasibility study Requirements 2. Design System design Program design 3. Implementation Implementation (coding) Testing If you follow a sequential process the three presentations should be as shown. Acceptance & release Operation & maintenance

CS 5150 Project Presentations: Incremental Development Sprint 1 Sprint 2 Sprint 3 First release Second release Third release first presentation second presentation third presentation