![]() |
Dr. Jody Paul – Education – MSCD Courses Software Engineering Practices |
| jody@acm.org | ||
| Title: | Software Engineering Practices |
| Institution: | Metropolitan State College of Denver |
| Course ID: | CS 4260 |
| Semester [CRN]: | Fall 2011 [53909] |
| Meeting Times: | Mondays & Wednesdays 10:00AM - 11:50AM |
| Location: | Science 1066 |
| Credit Hours: | 4 |
| Prerequisites: | CS 4250 and Senior standing |
| Course Website: | http://www.jodypaul.com/cs/sweprac |
| Course Support: | http://www.jodypaul.com/moodle2/ |
| Instructor: | Dr. Jody Paul (schedule & office hours) |
| E-mail: | jody @ computer.org |
| Office: | Science 1038 (x68435) |
| Campus Mail: | Campus Box 38 |
Software Engineering Practices is the Computer Science capstone course and a continuation of CS 4250, Software Engineering Principles. Students will work in teams and apply the principles of software engineering to the development of real-world projects. Such projects may involve external stakeholders and progress will be evaluated in conjunction with those stakeholders. (Senior Experience)
This course provides students the opportunity to practice the principles of software engineering while developing a significant software application.
Students will:
- Work as members of a software engineering project team
- Evaluate a software development project
- Determine and justify an appropriate software development model
- Define appropriate procedures, practices, and techniques for their project
- Determine and justify deliverables that their project team will provide
- Develop and maintain appropriate project plans
- Provide periodic reports on project status
- Follow their life-cycle model, procedures, practices, and techniques
- Provide periodic self-assessments of their practices, both those that are successful as well as those areas in need of improvement
- Deliver completed software artifacts that satisfy their stakeholders
Expected learning outcomes that students should be able to do upon completion:
- Assess a software development project to determine the appropriate principles and practices that will maximize the likelihood of success
- Apply principles and practices that improve the likelihood of success of a software engineering effort
- Apply interpersonal and team skills that support maximizing team effectiveness
- Exercise individual and team reflective skills that assist in evaluating and adapting software engineering activities to achieve success
This Senior Experience course is primarily concerned with work on a software development project and modeling real-world software engineering experiences.
REQUIRED
The Five Dysfunctions of a Team
by P. M. Lencioni
Jossey-Bass (2002) ISBN 0787960756
Wiley (2008) ISBN 0470823380
[Manga edition is fun but incomplete]The following references are also recommended, but not required. In addition, since this course puts into practice the software engineering principles covered in CS4250, you are likely to want to use your CS4250 texts and notes as references.
The Deadline: A Novel About Project Management
by Tom DeMarco
Dorset House (1997); ISBN 0932633390
Waltzing With Bears: Managing Risk on Software Projects
by T. DeMarco & T. Lister
Dorset House (2003); ISBN 0932633609
Managing Expectations
by N. Karten
Dorset House (1994)
ISBN 0932633277The Secrets of Consulting
by G. M. Weinberg
Dorset House (1986)
ISBN 0932633013
More Secrets of Consulting
by G. M. Weinberg
Dorset House (2002)
ISBN: 0932633528
Mastering the Requirements Process (2nd Edition)
by J. Robertson & S. Robertson
Addison-Wesley (2006); ISBN 0201360462
[The following is adapted from course information developed and published by Dr. Noel LeJeune, whose work in developing this text is gratefully acknowledged.]
General Philosophy
Software Engineering is a dynamic field. For the most part, there are no "right" answers (however, there can be "wrong" ones!). This is often difficult for scientifically and mathematically oriented people who expect that there is one correct answer. This means that you are required to think, examine the context of the problem, reflect upon possible solutions, select the most suitable one(s), and support or justify your conclusions.
This course should provide you with the full experience of the practice of software engineering. In the "real world," that means you are most likely going to perform software engineering for an employer or customer. The course will help prepare you for that environment. Therefore, we will approach this in the same manner as real-world software engineering.
Software engineering is seldom, if ever, a solitary endeavor. Teamwork is the norm. A significant part of your individual evaluation (see Grading) is based upon your team’s performance. You will be successful only if your team is successful. Just as in the work environment, individual performance may be recognized but the entire project team is judged by the team’s collective performance. The team is responsible as a whole. Help each other to make all successful.
Class Session Attendance
If you are not present, your team is missing a vital team member. The team remains accountable whether you are there or not so please plan to attend. If you must miss a class, it is your responsibility to arrange for another class member to get notes and materials for you. Please feel free to contact me directly concerning special circumstances requiring my assistance.
Project teamwork will require meeting with your other team members at times in addition to class time. While class time will be available for teamwork, it will not be sufficient. You must be willing and able to dedicate significant additional time outside of class to be successful.
Special Note: Because group work represents a significant aspect of this course, if you think you will drop, do your classmates a favor and drop early. If you drop after you are part of a team, your fellow students are adversely impacted.Teamwork & Assessment
The work will be done as teams. Teamwork will require additional effort to achieve success. The key to your success is to actively participate.
Team deliverables are expected to be a collective effort involving all team members. An overall assessment will be determined for each deliverable that reflects the quality of product. An individual assessment for each team member will also be determined for project deliverables. This individual assessment will be a combination of instructor assessment and peer assessments. You will be expected to assess each team member's contribution (including your own).
A team may have the opportunity to release (“fire”) any non-contributing member with instructor approval. Any released team member becomes a team-of-one and is solely responsible for the same products as any other team. However, a team-of-one will suffer a 30% grade reduction for all products completed as a team-of-one. The remaining team will be expected to produce the same level of quality and quantity of products as if the team was at its original size.
Individual Portfolio
You must actively maintain an individual Portfolio. The portfolio is a collection of key artifacts documenting (a) your contributions to the project and (b) your learning during the semester. These artifacts may include copies of external deliverables, internal deliverables, intermediate products, products not ending up as part of the final deliverables, research findings, and documentation of ancillary learning activities. Each artifact must be accompanied by an annotation that consists of a title, a description, and a reflection. Some of the artifacts in the collection should comprise a professional portfolio such as would be used to demonstrate credibility during job interviews or when bidding on contracts. The remaining artifacts should document key learning experiences. The portfolio must be maintained during the semester. The final version will be turned in prior to the end of the course and is the primary documentation used in assessment of individual contribution, participation, and learning.
Activity Log
You are encouraged to actively maintain an individual Activity Log using the vehicle provided on the course support website (examples provided). This provides excellent documentation of effort and supports resource data collection and future estimation.
Project Notebook
Each team must maintain and deliver a Project Notebook. The project notebook is a collection of artifacts that record all important activities and decisions relevant to the project. The notebook is due prior to the end of the course. The project notebook should also include final analyses, such as metrics applied to the project and the product.
Grading
The relative importance of course activities and deliverables is as follows:
Individual: Contribution, participation and learning 58% Assignments, Reflections, Assessments 16% Presentations 4% Group:
Project Deliverables
(Product, Project Notebook, Presentations)
22% Note that all members of a team may not receive the same grade for team activities and deliverables. Peer team members and the instructor will evaluate each individual’s contribution with well-defined criteria. Note that this assessment will be within the overall context of the team’s efforts.
General Project Assessment Principles
Projects will be assessed with respect to the following criteria:
- Project Planning
- The project is properly planned
- Requirements/Specifications
- Carefully and adequately elicited, managed, and tracked
- Project Management
- Appropriate work breakdown structure is created
- Task assignments are appropriately managed
- Tracking and reporting is appropriately performed
- Software Engineering Principles and Practices
- An appropriate software development model is employed
- An appropriate framework is employed, including:
- Change management techniques and practices
- Software configuration management techniques and practices
- Appropriate implementation techniques and practices
- Software quality assurance measures and practice
- Appropriate tool selection and employment
- The Product
- Meets stakeholders objectives
- Delivered on-time
- Delivered within budget
- Achieves required quality
- Is adequately documented
- Is designed for maintainability
Software Engineering
Reminder: While it is stated above, a restatement to stress the importance of Software Engineering in creating the product is in order:
Software Engineering is concerned with the processes and practices used to develop software systems. The underlying principle is that good processes and practices are more likely to produce a quality product within expected resource constraints than are poor ones. Therefore, a significant component of the grade assigned to a product is based on the processes and practices used to produce the product. Rarely, but occasionally, a good product is produced using poor processes and practices, usually due to heroics of individual team members. (A very poor practice!) The grade for this type of product will be negatively impacted regardless of the quality of the product itself.
Official policies applicable to all courses: http://cs.mscd.edu/metadot/index.pl?iid=2249
MSCD College Catalog: http://www.mscd.edu/academic/catalog/
Official announcements, including Academic Policies and Procedures and Student Rights and Responsibilities
MSCD Academic Calendar: http://www.mscd.edu/academic/acal.htm
Additional official dates and deadlines, including the last dates to withdraw and receive NC (with and without faculty signatures) and holidays
MSCD Student Handbook: http://handbook.mscd.edu/
Important MSCD and Auraria campus policies and procedures for students
©2002, 2004, 2006, 2007, 2008, 2009, 2010, 2011 Dr. Jody Paul – All Rights Reserved