![]() |
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 2010 [55851] |
| Meeting Times: | Tuesdays & Thursdays 1:00PM - 2:50PM |
| Location: | Science 1094 |
| Credit Hours: | 4 |
| Prerequisites: | CS 4250 |
| Course Website: | http://www.jodypaul.com/cs/sweprac |
| Course Support: | http://www.jodypaul.com/moodle/ |
| Instructor: | Dr. Jody Paul (schedule & office hours) |
| E-mail: | jody@cse.mscd.edu |
| Office: | Administration 420 (x68435) |
| Campus Mail: | Campus Box 38 |
Software Engineering Practices is 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 clients and progress will be evaluated in conjunction with those clients. (Senior Experience)
This course provides students the opportunity to practice the principles of software engineering while developing a significant software application.
Students will:
- Form and work as members of project teams for software development
- Evaluate and select software development projects
- Determine and justify an appropriate software development model
- Define appropriate procedures, practices, and techniques for their software development 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 while developing their software application
- Provide periodic self-assessments of their successful practices as well as those areas in need of improvement
- Deliver a completed software application that satisfies their constituencies
Expected Learning Outcomes:
- Students should learn how to assess a software development effort to determine the appropriate principles and practices that will maximize the likelihood of success
- Students should increase their interpersonal and team skills that support maximizing team effectiveness
- Students should develop individual and team reflective skills that assist in evaluating and adapting software development activities to achieve success
This Senior Experience course is primarily concerned with work on a software engineering project and modeling real-world software development 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]REQUIRED
The Deadline: A Novel About Project Management
by Tom DeMarco
Dorset House (1997); ISBN 0932633390
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.
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.
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 assigned to 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 joint 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 "fire" any non-contributing member with instructor approval. Any "fired" 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 firing team will be expected to produce the same level of quality and quantity of products as if there team was at its original size.
Individual Portfolio
You must actively maintain an individual Portfolio. The portfolio is a collection of key artifacts documenting your contribution to the project as well as your learning. These artifacts may include copies of external deliverables, internal deliverables, intermediate products and products not ending up as part of the final deliverables. Each artifact must be accompanied by an annotation that consists of a title, description and reflection. A subset of the collected artifacts 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.
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 relevant to the project. The notebook is due prior to the end of the course. Documentation should also include final anlyses, such as outcomes of metrics applied to the project and product.
Grading
The relative importance of course activities and deliverables is as follows:
Individual: Contribution, participation and learning
(supported by Individual Portfolio)58%
Assignments, Reflections, Assessments
(submitted oneline)16% Presentations
(minimum 4)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 client/customer/user needs
- Delivered on-time
- Delivered within budget
- Is free of major defects
- 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
Also see the MSCD College Catalog at http://www.mscd.edu/academic/catalog/ for official announcements, including Academic Policies and Procedures and Student Rights and Responsibilities, and the Academic Calendar at http://www.mscd.edu/academic/acal.htm for additional official dates and deadlines, including the last dates to withdraw and receive NC (with and without faculty signatures).
©2002, 2004, 2006, 2007, 2008, 2009, 2010 Dr. Jody Paul – All rights Reserved