Jody Paul (Logo) Dr. Jody Paul – EducationMSCD Courses
Software Engineering Practices
jody@acm.org    
     
Link to Home Page for Jody Paul Link to the Education section main page Link to Software Engineering section Link to Music section Link to Recommendations section
    Link to MSCD Courses page        

Course Information

Title: Software Engineering Practices
Institution: Metropolitan State College of Denver
Course ID: CS 4260
Semester [CRN]: Spring 2008 [34789]
Meeting Times: Tuesdays & Thursdays 5:00PM - 6:50PM
Location: SI 136
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: Science 225C (x68435)
Campus Mail: Campus Box 38

Course Description

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 constinuencies

Course Objectives

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

Projects

This Senior Experience course is primarily concerned with work on a software engineering project and modeling real-world software development experiences.

Resources

Book Cover - Link to Amazon

Managing Expectations
by N. Karten
Dorset House (1994)
ISBN 0932633277
REQUIRED

Book Cover - Link to Amazon

The Secrets of Consulting
by G. M. Weinberg
Dorset House (1986)
ISBN 0932633013
REQUIRED

Since this course puts into practice the software engineering principles learned in CS 4250, you will likely want to use your CSI 4250 texts and notes as references.
The following references are also recommended, but not required.
Book Cover - Link to Amazon

The Deadline: A Novel About Project Management
by Tom DeMarco
Dorset House (1997); ISBN 0932633390

Book Cover - Link to Amazon

Waltzing With Bears: Managing Risk on Software Projects
by T. DeMarco & T. Lister
Dorset House (2003); ISBN 0932633609

Book Cover - Link to Amazon

More Secrets of Consulting
by G. M. Weinberg
Dorset House (2002);   ISBN:  0932633528

Book Cover - Link to Amazon

Mastering the Requirements Process
by J. Robertson & S. Robertson
Addison-Wesley (1999); ISBN 0201360462

Course Information & Policies

[The following is quoted and 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 as a simulation of real-world software engineering. You are asked to "role play" the parts.

Software engineering is seldom, if ever, a solitary effort. 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. (Remember that your employer will only tolerate minimal absenteeism.) If you must miss a class, it is your responsibility to arrange for another class member to get handouts and notes for you. You may also contact me during office hours 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 additional time outside of class to these efforts.

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.

Deadlines

Deadlines for project deliverables will be appropriately planned and negotiated. Late penalties will also be negotiated. These deadlines and late penalties will be treated much the same as for software projects in the "real world."

Teamwork & Assessment

The work will be done as teams. We will discuss teamwork guidelines, processes, and issues but teamwork will require additional effort to achieve success. The number one rule for success is to actively participate.

Team deliverables are expected to be a joint effort involving all team members. An overall grade will be assigned for each deliverable that reflects the quality of product. An individual grade for each team member may also assigned for each deliverable. This individual grade will be a combination of instructor assessment and peer assessments. You will be expected to assess each team member's contribution (including your own) for each deliverable.

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 maintain and complete an individual Portfolio. The portfolio is a collection of key artifacts relevant to your contribution to the project. These artifacts may include copies of external deliverables, internal deliverables, intermediate products and products not ending up as part of the final deliverable. Each artifact must be accompanied by an annotation that consists of a title, description and reflection. 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 portfolio must be maintained during the semester. The final version will be turned in prior to the end of the course.

Project Notebook

Each team must maintain and complete a Project Notebook. The project notebook is a record of all important artifacts relevant to the project. These artifacts include copies of all external deliverables as well as official meeting minutes and all internal deliverables. The notebook is due prior to the end of the course.

Grading

The relative importance of course activities and deliverables is as follows:

Software Engineering Processes and Procedures 20%
Project Deliverables
(product and documentation of project)
20%
Presentations   5%
Individual Reflections & Portfolio 35%
Participation & Contribution 20%

Team activities and deliverables (Processes & Procedures, Project Deliverables) comprise 45% of an individual's grade. This does not mean that all members of a team will receive the same grade for team activities and deliverables. Peer team members and the instructor will evaluate each individual's contribution with predefined criteria and weighting. However, this assessment will be within the overall context of the team's efforts with respect to these components.

General Assessment Principles

Projects will be assessed with respect to the following criteria:

  • Project Planning
    • The project is properly planned
  • Requirements
    • 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
  • The Product
    • Meets client/customer 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 bad practice! Not really team members!) The grade for this type of product will be negatively impacted regardless of the quality of the product itself.

Official Announcements

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).

Valid HTML 4.01 Transitional ©2002, 2004, 2006, 2007, 2008 Dr. Jody Paul – All rights Reserved