Post on 22-Dec-2015
transcript
Software Process
CS 414 – Software Engineering I
Donald J. Bagert
Rose-Hulman Institute of Technology
December 17, 2002
CS 414 Software Engineering I - Software Process - 17 December 2002
2
Outline
• Introduction• Process Methods• Process Models• Process Frameworks• RHIT Software Processes• Summary
CS 414 Software Engineering I - Software Process - 17 December 2002
3
Introduction
• A software process is the means by which an organization plans, develops and maintains software
• The non-physical nature of software makes a good process essential for– the development of a quality product – making reliable estimates
• Software can be developed without a good process, but generally– has more defects and is harder to maintain– takes much longer to develop
CS 414 Software Engineering I - Software Process - 17 December 2002
4
Process Methods
• Methods are the basic building blocks for all good processes
• Example process methods:– Requirements analysis– Design– Implementation– Testing– Project Planning– Configuration Management– Quality Assurance
CS 414 Software Engineering I - Software Process - 17 December 2002
5
Process Models
• Process models provide a variety of ways to use employ process methods effectively
• Examples:– Linear Sequential– Incremental– Prototyping– Spiral– Agile/Extreme Programming (next lecture)
CS 414 Software Engineering I - Software Process - 17 December 2002
6
Process Models (continued)
• Linear Sequential Model– Several activities are done only once e.g.
• Requirements analysis
• Design
• Implementation
• Testing
– and are only revisited if a defect from an earlier activity is found and so must be corrected
– This is often referred to as the waterfall model, since each activity “flows down” to the next one, and it is more difficult to “flow upstream” to fix a problem at a previous level
CS 414 Software Engineering I - Software Process - 17 December 2002
7
Process Models (continued)
• Linear sequential models are adapted from other engineering disciplines and were therefore commonly used in the beginning
• However, they don’t take advantage of several of the non-physical features of software
CS 414 Software Engineering I - Software Process - 17 December 2002
8
Process Models (continued)
• Incremental Model– Builds the software in several increments, each one with more
functionality than the last– Each increment is developed using a linear model– The next increment is sometimes started before the last one is
finished e.g. requirements analysis of the second increment may occur at the same time as the design phase of the first increment
• This allows for tasks such as analysis and design to be distributed more throughout the lifecycle
– The first increment often contains the functionality that the client needs the most
CS 414 Software Engineering I - Software Process - 17 December 2002
9
Process Models (continued)
• Prototyping Model– Cyclical Development
• Gather requirements
• Build prototype or software version
• Get feedback from client
– Repeat as necessary until client is satisfied– Takes advantage of non-physical nature of software– Unlike the incremental model, the prototypes are not intended
for actual use
CS 414 Software Engineering I - Software Process - 17 December 2002
10
Process Models (continued)
• Spiral Model– Can be thought of as an extension of other models– Each major activity (e.g. requirements specification,
development of a prototype) is broken down into a series of task regions
• Customer communication
• Planning
• Risk Analysis
• Engineering
• Construction and release
• Customer evaluation
CS 414 Software Engineering I - Software Process - 17 December 2002
11
Process Frameworks
• A software process framework refers to a means (“blueprint”) by which a software process can be assessed to see how mature (i.e. how good) it is
• Several common process frameworks:– Capability Maturity Model® (CMM®)– ISO 9001– BOOTSTRAP– ISO/IEC TR 15504 (SPICE)
• The focus here will be on CMM®
Capability Maturity Model and CMM are registered in the U.S. Patent and Trademark Office.
CS 414 Software Engineering I - Software Process - 17 December 2002
12
Process Frameworks(continued)
• CMM® History and Philosophy– In the late 1980’s, the Software Engineering Institute (SEI) of
Carnegie Mellon University started developing a general software process maturity framework
– The purpose of this framework was to enhance software process capability
– This evolved into the Capability Maturity Model® for Software
CS 414 Software Engineering I - Software Process - 17 December 2002
13
Process Frameworks(continued)
• CMM® has five capability levels• Initial – ad hoc process• Repeatable – basic management processes in place• Defined – entire documented, standard process in place• Managed – process data is collected and analyzed• Optimizing – process improvement process standardized
– Each level has a set of key practice areas (KPAs)• There are 18 KPAs in all
– Each KPA has a set of key practice activities (also called key practices)
• There are 150 key practices in all
CS 414 Software Engineering I - Software Process - 17 December 2002
14
Process Frameworks(continued)
• Levels 2 and 3 focus on a good definition of the software process
• The U.S. government wants its software contractors to be a level 3 or higher
• Levels 4 and 5 are mostly concentrating on mature methods for improving the process itself
CS 414 Software Engineering I - Software Process - 17 December 2002
15
Process Frameworks(continued)
• CMM® KPAs at Level 2 (Repeatable)– Requirements management– Software project planning– Software project tracking and oversight– Software subcontract management– Software quality assurance– Software configuration management
CS 414 Software Engineering I - Software Process - 17 December 2002
16
Process Frameworks(continued)
• CMM® KPAs at Level 3 (Defined)– Organization Process Focus– Organization Process Definition– Training Program– Integrated Software Management– Software Product Engineering– Intergroup Coordination– Peer Reviews
CS 414 Software Engineering I - Software Process - 17 December 2002
17
Process Frameworks(continued)
• CMM® KPAs at Level 4 (Managed)– Organization Process Management– Software Quality Management
• CMM® KPAs at Level 5 (Optimizing)– Defect Prevention– Technology Change Management– Process Change Management
CS 414 Software Engineering I - Software Process - 17 December 2002
18
Process Frameworks(continued)
• Example CMM® Key Practice (for software project planning)
“The project’s software development plan is developed according to a documented procedure.”
CS 414 Software Engineering I - Software Process - 17 December 2002
19
RHIT Software Processes
• Focus more on the process methods, rather than on a particular model
• Senior Project Process• The process for this course is not as detailed quite as
much
CS 414 Software Engineering I - Software Process - 17 December 2002
20
Summary
• A software process is the means by which an organization plans, develops and maintains software
• A good software process is essential for the development of a quality product
• Process methods are the basic building blocks for all good processes e.g. analysis and design
• Process models provide a variety of ways to use employ process methods effectively
CS 414 Software Engineering I - Software Process - 17 December 2002
21
Summary (continued)
• A software process framework refers to a means by which a software process can be assessed to see how good it is
• The Rose-Hulman software project processes focus more on the process methods, rather than on a particular model