cs 5150 software engineering lecture 3 software processes 2
TRANSCRIPT
![Page 1: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/1.jpg)
CS 5150Software
EngineeringLecture 3
Software Processes 2
![Page 2: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/2.jpg)
2CS 5150
Project Teams
• I will send out project suggestions this afternoon
• You should have a team soon
• Send email to Ben & Yue when you have (most of) a team
• Team name
• Names of team members
• Client info
• Project topic
![Page 3: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/3.jpg)
3CS 5150
Projects
• Project suggestions continuing to come in
• You should have contacted a client by next week
![Page 4: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/4.jpg)
4CS 5150
Project Details
![Page 5: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/5.jpg)
5CS 5150
Software Processes in More Detail
• Feasibility and planning
• Requirements
• System and program design
• Implementation
• Acceptance and release
• Operation and maintenance
![Page 6: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/6.jpg)
6CS 5150
Feasibility
• A feasibility study precedes the decision to start a project
• What is the scope of the project?
• What relevant experience to the participants have?
• Projected benefits?
• Projected costs, risks, timetable?
• Beware McConnell’s wicked problem
• But don’t appeal to it too quickly
![Page 7: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/7.jpg)
7CS 5150
Feasibility for 5150
• Mostly a scoping aid
• Sketch out projected work
• More in next lecture
![Page 8: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/8.jpg)
8CS 5150
Requirements
• Define the system’s behavior from the client’s perspective
• Higher resolution than feasibility study
• Priorities -- relative importance
• Can be developed before design or incrementally
![Page 9: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/9.jpg)
9CS 5150
System and Program Design
• Define the system from the implementer’s perspective
• System design (or architecture)
• High level. Should fit on a white board for 5150
• Program design
• “Medium level”
• Source of much debate in software engineering
![Page 10: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/10.jpg)
10
CS 5150
Implementation (Construction)
• Actual coding
• Or acquisition and integration of existing code
![Page 11: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/11.jpg)
11
CS 5150
Acceptance and Release
• The system is tested against the requirements by the client
• The system is transferred to the client or made available to the public
![Page 12: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/12.jpg)
12
CS 5150
Operation and Maintenance
• Operation: The system is in active use
• Maintenance: Errors and other problems are identified and fixed or triaged
• Evolution: The system is changed in response to changing requirements and priorities
• This might involve a whole new cycle through a software process
• Phase out: Use of the system ends (abruptly or gradually)
• The software life cycle
![Page 13: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/13.jpg)
13
CS 5150
Three Categories of Testing
• User testing
• Using mock-ups, prototypes or the actual system to evaluate usability with real potential users
• Program testing
• The development team makes sure the system works as designed
• Acceptance testing
• The client compares the system with the requirements
![Page 14: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/14.jpg)
14
CS 5150
What is a Software Process?
• More or less formal rules for organizing work on software
• Trivial example:
• Meeting with client
• Meeting with team
• Code code code
• Test
• Email finished program to client
![Page 15: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/15.jpg)
15
CS 5150
Spectrum of Software Processes
• (Modified) waterfall model
• Iterative refinement
• Incremental (Agile)
![Page 16: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/16.jpg)
16
CS 5150
The Waterfall Model
![Page 17: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/17.jpg)
17
CS 5150
Iterative Refinement
![Page 18: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/18.jpg)
18
CS 5150
Incremental
• In each increment (sprint) the team works through the full software development cycle and ends up with new production-ready features
• Each sprint is assigned a fixed (and short) time frame, e.g. 4 weeks
• Team size involved in a sprint is usually small (5-10)
![Page 19: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/19.jpg)
19
CS 5150
Waterfall Discussion
• Pros
• Visibility and predictability
• Separation of tasks
• Quality control at each step
• Cost control at each step
• Cons
• Wicked problems
![Page 20: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/20.jpg)
20
CS 5150
Modified Waterfall
This is morerealistic
![Page 21: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/21.jpg)
21
CS 5150
Iterative Refinement Discussion
• Pros
• Complete (bare-bones) system done quickly
• Can correct mistakes in early design stages
• Cons
• Throw away a lot of code
• Can encourage feature bloat
• Can lead to half-done features
![Page 22: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/22.jpg)
22
CS 5150
Incremental Development Discussion
• Pros
• Leads quickly to production code
• Feedback benefits of iterative refinement, but even faster
• Minimizes wasted code
• Cons
• Haphazard high-level architecture
![Page 23: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/23.jpg)
23
CS 5150
“Choosing” a Process
• Often heavily influenced by the project’s environment
• Big bureaucracies often like waterfall
• End user software vendors usually do something like iterative refinement
• Internet applications often developed with an incremental process
![Page 24: CS 5150 Software Engineering Lecture 3 Software Processes 2](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f145503460f94c285d5/html5/thumbnails/24.jpg)
24
CS 5150
Thought Exercise
• Software process conversation dominated by commercial software developers
• Do these processes make sense for open source?
• What is open source? (Linux, Haskell compiler, Uncle Joe’s photo organizer)