17-653 Managing Software Development v.5

advertisement
17-653
Managing Software Development
Carnegie Mellon
v.5
Software Engineering, Distance Education
Course Overview
Large scale software development requires the ability to manage resources—both human and
computational—through control of the development process. This course addresses the breadth of
managing software development and is designed to help technically trained software engineers to
acquire the knowledge and skills necessary to lead a project team, understand the relationship of software
development to overall project engineering, estimate time and costs, and understand the software
process. The nature of software development is sufficiently unique to require specialized management
techniques, especially in the areas of estimating and scheduling.
Course Objectives
Successful completion of this course will provide you with the knowledge and skills to
s Lead a project team.
s Understand the relationship of software development to overall project engineering.
s Estimate time and costs.
s Understand the software process.
Prerequisite
s Industrial software engineering experience with a large project, or a comprehensive undergraduate
course in software engineering.
Organization
The course consists of a series of lectures conducted by faculty and staff from the School of Computer
Science at Carnegie Mellon University. The lectures, captured on DVDs, lead the way through a series of
assignments and chatroom discussions.
Your best approach to successfully complete the course is to follow three simple steps.
1. Do the assigned readings.
2. Watch the lecture.
3. Complete the assignments.
All course materials, with the exception of the texts and DVDs, will be available on the Carnegie Mellon
Blackboard System. Email with specific information about the course Blackboard site will be sent to you
prior to the start of class.
Feedback and Support
Office hours and computer conferences will take place in the Virtual Classroom on the course Blackboard
site. Your instructor for the course will conduct course discussions in the Virtual Classroom every week,
specific time to be determined. Should your instructor decide to use another chat tool, they will notify
17-653 Managing Software Development v.5
1
Syllabus
you at the beginning of the course. Other times, your instructor will be available by email. In addition,
you should feel free to post questions and comments on the course electronic bulletin board at anytime to
discuss the readings, the course, and issues related to software engineering with members of your class.
Readings
Weekly readings are used to stimulate discussion and as a way to expose you to course topics not
covered directly in the lectures. For most lectures, you will be assigned a few readings to complete before
watching the lecture.
The required textbooks for the course are Software Project Survival Guide, by Steve McConnell; Software
Engineering: A Practitioner’s Approach, by Roger S. Pressman; and Software Project Management in
Practice, by Pankaj Jalote. You will also be required to the following case studies and readings from
Harvard Business Online: Microsoft Corporation: Office Business Unit by Marco Iansiti and Geoffrey
K. Gill; Cimetrics Technology (A1) by Lynn Sharp Paine and Jose Royo; Microsoft Office 2000 by Alan
MacCormack and Kerry Herman; Leadership That Gets Results by Daniel Goleman; and The Satera Team
at Imatron Systems, Inc. (A) by Teresa M. Amabile and Elizabeth A. Schatzel.
Evaluation
No programming will be required in this course. The course grade will be determined by four factors.
s Reading Questions: Your answers to the reading questions will help the instructor to determine if you
understand the material presented in the lectures and readings. The grading for individual sets of
reading questions will be pass/fail.
s Case Studies/Assignments: Homework exercises will be used to ensure that you understand certain tools
and/or concepts. The overriding purpose of these assignments is for you to improve your written and
oral communication skills.
s Final Project Paper: Through use of material presented in class and you own research, you will
demonstrate your ability to apply tailored practices to meet software development needs.
s Instructor judgement: The instructor reserves the right to raise or lower your quantitatively determined
grade based on their judgement of your mastery of course material; this judgement will be based in
part on your ability to participate constructively in class discussions.
Schedule
Lecture
Topic
Reading Assignment
Homework
1
Course Overview
Jalote 02 Ch. 1-3; McConnell 97 Ch. 1-3;
Pressman 05 Ch. 1 & 5
RQ 1
2
Case Study Exercise Discussion
A 1: OBU Case
Processes/Life Cycles
3
Software Development Life Cycles
Pressman 05 Ch. 3; STCS 96; Walton 04
RQ 2
4
Case Study Exercise Discussion
Iansiti 90; PennDoT; Generic Flight Control
A 2: SDLC Case
5
Intro to Processes & How to Choose
Pressman 05 Ch. 2 & 4; Ahern 04; Wells 04;
Booch 98; Norton 05
RQ 3
6
Case Study Exercise
Mangione 03; May 98; panchamb; Schloh
96; Lattanze 05; Rockwood
A 3: Process Case
17-653 Managing Software Development v.5
2
Syllabus
Estimation
7
Software Estimation Techniques
Pressman 05 Ch. 22& 23; Jalote 02 pp. 51-74
A 4: FP COCOMO
8
Case Study Exercise Discussion
Bulkeley 98; Heires 01
A 5: Estimation
Case; RQ 4
Requirements Management
9
Requirements Elicitation and
Documentation
10
Managing Requirements Change
11
Case Study Exercise Discussion
Pressman 05 Ch. 7; Christel 92; § 1-6;
Barbacci 03
RQ 5
Berry 04
A 6:
Requirements
Case
Managing Customer Expectations
12
Expectation Management:
Managing Customer Expectations
Boehm 00
RQ 6
13
Expectation Management Video and Farrell 02
Discussion
14
Identifying and Managing Software
Risk; Risk 1
15
Risk 2
16
Case Study Exercise Discussion
17
The Risk Game (optional)
18
Planning Software Development:
Project Planning
McConnell 97 Ch. 12, pp. 173-186; Jalote 02
Ch. 7, pp. 109-114, 120-123, Ch 11, pp. 199207; Paulk 93
Project Paper
Outline
19
Tracking and Oversight of Software
Development
Pressman 05 Ch. 24
RQ 8
20
Case Study Exercise Discussion
MacCormack 00; Iansiti 90
A 9: Planning
Tracking Case
A 7: Managing
Customer
Expectations
Case
Risk Management
Van Scoy 92; Will 04; Pressman 05 Ch. 15;
Risk Statements
RQ 7
HBR Cimetrics
A 8: Risk Case
Planning, Tracking, and Oversight
Managing Technical People, Leadership, and Teamwork
21
Managing Technical People and
Leadership Errors
Pressman 05 Ch. 21; Horowitz 02; Thite 99;
McCarthy 03; Goleman 00
RQ 9
22
Case Study Exercise Discussion
Amabile 03
A 10: MTP Case
Quality Assurance
23
Building Quality into Software
Pressman 05 Ch. 26 & 27; Jalote 02 Ch. 5 &
9; McConnell 97 Ch. 9; IEEE 02; Fagan 02;
Fagan 99
RQ 10
24
Testing Strategies
Pressman 05 Ch. 13 & 14; NASA 89; Van
Doren 97; Basili 87; Varadan 95
RQ 11
25
Case Study Exercise Discussion
Sutherland 04
A 11: Tartan
Processes Case
Current Topics
26
Strategic Planning with Architecture Lurie 02
27
Open Source
17-653 Managing Software Development v.5
Heckler 99; Wang 01
3
Final Paper
Syllabus
Bibliography
[Abrahamsson 02] Abrahamsson, Pekka; Salo, Outi; Ronkainen, Jussi; & Warsta, Juhani. Agile software development
methods – Review and analysis (VTT Publications 478). Oulu, Finland: VTT Electronics, 2002.
[Ahern 04] Ahern, Dennis M.; Clouse, Aaron; & Turner, Richard. Ch. 3, “The CMMI Concept,” 49-64. CMMI Distilled:
A Practical Introduction to Integrated Process Improvement, 2nd ed. Boston, MA: Addison-Wesley Professional, 2004.
Available WWW <URL: http://www.awprofessional.com/articles/article.asp?p=169102> (2004).
[Amabile 03] Amabile, Teresa M. & Schatzel, Elizabeth A. The Satera Team at Imatron Systems, Inc. (A) (9-803-14).
Harvard Business Online (24 January 2003).
[Barbacci 03] Barbacci, Mario R.; Ellison, Robert; Lattanze, Anthony J.; Stafford, Judith A.; Weinstock, Charles B.;
& Wood, William G. Quality Attribute Workshops (QAWa), 3rd ed (CMU/SEI-2003-TR-016). Pittsburgh, PA: SEI,
Carnegie Mellon University, 2003.
[Basili 87] Basili, Victor R. & Selby, Richard W. “Comparing the Effectiveness of Software Testing Strategies.” IEEE
Transactions on Software Engineering 3, 12 (December 1987): 1278-1296.
[Berry 02] Berry, Daniel M. “The Importance of Ignorance in Requirements Engineering: An Earlier Sighting and a
Revisitation.” Journal of Systems and Software 60, 1 (January 2002): 83-85.
[Berry 04] Berry, Daniel M.; Daudjee, Khazaima; Dong, Jing; Fainchtein, Igor; Nelson, Maria Augusta; Nelson,
Torsten; & Ou, Lihua. “Users’s Manual as a Requirements Specification.” Requirements Engineering Journal 9, 1
(February 2004): 67-82.
[Boehm 00] Boehm, Barry. “The Art of Expectations Management.” Computer (January 2000): 122-124.
[Booch 98] Booch, Grady; Martin, Robert C.; & Newkirk, James. Ch. 4, “The Process,” 93-108. Object Oriented Analysis
and Design with Applications, 2nd ed. Addison-Wesley Longman, Inc. 1998.
[Bulkeley 97] Bulkeley, William M. Ch. 2.3.1, “When Things Go Wrong,” 104-112. Glass, Robert L. Software Runaways:
Monumental Software Disasters. Upper Saddle River, NY: Prentice Hall, 1997.
[Christel 92] Christel, Michael G. and Kyo C. Kang. Issues in Requirements Elicitation (CMU/SEI-92-TR-12).
Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 1992.
[Elssamadisy 01] Elssamadisy, Amr. “XP on a Large Project — A Developer’s View.” Proceedings of the XP Universe.
Raleigh, NC, July 23-25, 2001. Gurnee, IL: Object Mentor, Inc, 2001.
[Fagan 99] Fagan, M. E. “Design and code inspections to reduce errors in program development.” IBM Systems
Journal 38, 2/3 (1999): 258-287. Reprinted from IBM Systems Journal 15, 3 (1976).
[Fagan 02] Fagan, Michael. “Reviews & Inspections: A History of Software Inspections,” 214-225. Broy, Manfred &
Denert, Ernst, eds. Software Pioneers: Contributors to Software Engineering. Berlin, Germany: Springer-Verlag, 2002.
[Farrell 02] Farrell, Bob. Give ‘em the Pickle! DVD. Wellington, FL: Customer Service University, 2002.
[Goleman 00] Goleman, Daniel. Leadership That Gets Results (R00204). Harvard Business Online (1 March 2000).
[Hecker 99] Hecker, Frank. “Setting Up Shop: The Business of Open-Source Software.” IEEE Software (January/
February 1999): 45-51.
[Heires 01] Heires, James T. “What I Did Last Summer: A Software Development Benchmarking Case
Study.” IEEE Software September/October 2001): 33-39.
[Horowitz 02] Horowitz, Alan S. “Singing for Themselves.” Computerworld [online]. Available WWW <URL: http:
//www.computerworld.com/managementtopics/management/story/0,10801,74400,00.html> (2002).
[Iansiti 90] Iansiti, Marco & Gill, Geoffrey K. Microsoft Corporation: Office Business Unit (9-691-033). Harvard
Business Online (1 November 1999).
17-653 Managing Software Development v.5
4
Syllabus
[IEEE 98] IEEE Recommended Practice for Software Requirements Specifications (IEEE Std 830-1998). New York, NY:
IEEE Computer Society, 1998.
[IEEE 02] IEEE Standard for Software Quality Assurance Plans (IEEE Std 730-2002). New York, NY: IEEE Computer
Society, 2002.
[Jalote 02] Jalote, Pankaj. Software Project Management in Practice. Boston, MA: Addison-Wesley Professional, 2002.
[Kelly 04] Kelly, Allan. Why do requirements change? [online]. Available WWW <URL: http://www.allankelly.net> (2004).
[Lattanze 05] Lattanze, Anthony J. Architecture Centric Development Method (ACDM) Version 2.1 (CMU-ISRI-05103). Pittsburgh, PA: International Software Research Institute, Carnegie Mellon University, 2005.
[Longstreet 02] Longstreet, David H. Function Point Analysis Training Course [online]. Available WWW <URL: http:
//www.SoftwareMetrics.com./freemanual.htm> (2002).
[Lurie 02] Lurie, Jonathan & Belanger, R. Jason. “The great debate: .Net vs. J2EE: Does one Web service platform
dominate the other?” [online]. Java World. Available WWW <URL: http://www.javaworld.com/javaworld/jw-032002/jw-0308-j2eenet.html> (2002).
[MacCormack 00] MacCormack, Alan & Herman, Kerry. Microsoft Office 2000 (9-600-097). Harvard Business Online (9
June 2000).
[Mangione 03] Mangione, Carmine. Software Project Failure: The Reasons, the Costs [online]. CIO Update
Jupitermedia Corporation. Available WWW <URL: http://www.cioupdate.com/reports/article.php/1563701> (2003).
[May 98] May, Lorin J. “Major Causes of Software Project Failures.” Crosstalk: The Journal of Defense Software
Engineering (July 1998): 9-12.
[McCarthy 03] McCarthy, Charles C. “Participative Leadership in Team Formulation.” IEEE (2003): 566-570.
[McConnell 97] McConnell, Steve. Software Project Survival Guide. Redmond, WA: Microsoft Process, 1997.
[Narsu 02] Narsu, Uttam & Barnett, Liz. ”Lessons Learned Practicing Agile Development” (research document).
Cambridge, MA: Forester, 2002.
[NASA 89] NASA, Software Assurance Technology Center. Section V, “Verification and Validation.” Software Assurance
Guidebook (NASA-GB-A201). September 1989.
[Norton 05] Norton, Darrell. Scrum Overview [online]. Available WWW <URL: http://codebetter.com/blogs/
darrell.norton/articles/50399.aspx> (2005).
[Paine 99] Paine, Lynn Sharp & Royo, Jose. Cimetrics Technology (A1) (9-399-108). Harvard Business Online (2
February 1999).
[panchamb 05] panchamb. Why Software Systems Fail [online]. Available WWW <URL: http://
www.planetpapers.com/Assets/1931.php> (2005).
[Paulk 93] Paulk, Mark C.; Weber, Charles V.; Garcia, Suzanne M.; Chrissis, Mary Beth; & Bush, Marilyn. Key
Practices of the Capability Maturity Model, Version 1.1 (CMU/SEI-93-TR-25, ESC-TR-93-178). Pittsburgh, PA:
Software Engineering Institute, Carnegie Mellon University, 1993.
[Pressman 05] Pressman, Roger S. Software Engineering: A Practitioners Approach, 6th ed. Boston, MA: McGraw
Hill, 2005.
[Rockwood] Rockwood, Justin. Choose Your Weapon Wisely: A handbook for determining the right software
development method best suited for your team, client, and project (Independent Study Paper). Pittsburgh, PA: School
of Computer Science, Carnegie Mellon University.
[Schloh 96] Schloh, Michael. Analysis of the Denver International Airport baggage system (Senior Project Paper).
San Luis Obispo, CA: Computer Science Department, School of Engineering, California Polytechnic State University,
17-653 Managing Software Development v.5
5
Syllabus
1996. Available WWW <URL: http://www.csc.calpoly.edu/~dsterns/CshlohProject/csc463.html>.
[STSC 96] Department of the Air Force, Software Technology Support Center. Ch. 3, “System Life Cycle and
Methodologies,” 3.1-3.24. Guidelines for Successful Acquisition and Management of Software Systems, v. 2. United States
Department of Defense, 1996.
[Sutherland 04] Sutherland, Dean F. A Tale of Three Processes: Reflection on the Software Development Process
Change at Tartan (student paper). December 2004.
[Thite 99] Thite, Mohan. “Leadership: A Critical Success Factor in IT Project Management,” 298-303. Kocaoglu, Dundar
F. &Anderson, Timothy R., eds. Portland International conference on Management of Engineering and Technology: Proceedings
Vol. 1: Book of Summaries: Technology and Innovation Management. Portland, OR: Portland State University, Engineering
Management Program, 1999.
[VanDoren 97] VanDoren, Edmond. Cyclomatic Complexity [online]. Available WWW <URL: http://www.sei.cmu.edu/
str/descriptins/cyclomatic_body.html> (1997).
[Van Scoy 92] Van Scoy, Roger L. Software Development Risk: Opportunity, Not Problem (CMU/SEI-92-TR-30).
Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 1992.
[Varadan 95] Varadan, Gulyam S. “Trends in Reliability and Test Strategies.” IEEE Software 12, 3 (May 1995): 10.
[Walton 04] Walton, Bill. “Iterative vs. waterfall software development: Why don’t companies get it?”
Computerworld (20 February 1004). Available WWW <URL: http://www.computerworld.com/printthis/2004/
0,4814,90325,00.html>.
[Wang 01] Wang, Huaiqing & Wang, Chen. “Open Source Software Adoption.” IEEE Software (March/April 2001):
90-95.
[Wells 04] Wells, Don. Extreme Programming: A gentle introduction [online]. Available WWW <URL: http://www.extr
emeprogramming.org> (2004).
[Wiegers 95] Wiegers, Karl E. “In Search of Excellent Requirements.” The Journal of the Quality Assurance Institute 9, 1
(January 1995): 23-32.
[Wiegers 99] Wiegers, Karl E. “Writing Quality Requirements.” Software Development 7, 5 (May 1999): 44-48.
[Will 04] Will, Brian A. Software Risk Management. White Paper. Encinitas, CA: Paroxys, LLC, 20004.
17-653 Managing Software Development v.5
6
Syllabus
Download