![]() |
Dr. Jody Paul – Education – MSCD Courses Software Engineering Principles |
| jody@acm.org | ||
| Title: | Software Engineering Principles |
| Institution: | Metropolitan State University of Denver |
| Course ID: | CS 4250 |
| Semester [CRN]: | Fall 2012 [52452] |
| Meeting Times: | Mondays & Wednesdays 4:00PM - 5:50PM |
| Location: | Science 1011 |
| Credit Hours: | 4 |
| Prerequisites: | Senior standing, CS 3210, COM 2610, PHI 3370, and 12 additional credits of upper division CS courses, all with a grade of "C" or better |
| Course Website: | http://www.jodypaul.com/cs/sweprin |
| 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 |
This course provides an overview of the principles of software engineering and opportunities to investigate critical activities necessary for success. The software development life cycle provides the framework, with emphasis on the activities that surround the writing of source code.
Major topics include: Software Life Cycle Models (comparative analysis); Requirements Engineering; Verification & Validation; Metrics; Architecture & Design; Implementation; Debugging & Testing; Maintainability; Roles & Responsibilities; Deliverables & Milestones
Participants will locate, critically review and use outside resources.
The following is adapted from course information developed and published by Dr. Noel LeJeune, whose work in developing this text is gratefully acknowledged.
Software Engineering is a dynamic field with few uniquely “right” answers and many “wrong” ones. This is often difficult for scientifically and mathematically oriented people who have come to expect that there is one correct answer. Rather, you are required to think, examine the situation context, reflect upon possible alternatives, select the most suitable, and support or justify your decisions.
This course is intended to provide you with the opportunity to acquire a rich set of principles and tools that prepare you to be successful practitioners of software engineering in the “real world.” As such, our approach uses real-world software engineering as the context.
Successful software engineering is rarely, if ever, a solitary endeavor. Collaboration and teamwork are the norms. Individual performance may be recognized, but the entire project team is judged by the team’s collective performance. Acquisition of team-oriented skills and practices is integral to this course and comprises part of the assessment.
Expected learning outcomes that students should be able to do upon completion:
- Enumerate, define and relate phases in software development processes
- Describe the activities performed in the software development process
- Develop a coherent set of software specifications for a particular application
- Apply any of several design methodologies to the design of a software artifact
- Develop and implement test plans
- Describe the activities associated with maintenance
- Describe and utilize configuration management processes
- Perform an impact analysis for a change request as it applies to a software artifact
- Analyze a software development project and determine applicable and appropriate software engineering principles and practices
- Evaluate the effectiveness of a given set of software engineering practices
- Assess the effectiveness of software engineering processes, practices, products, and artifacts associated with a software engineering development effort
- Work collaboratively and cooperatively with others as a team that produces selected software engineering products and artifacts
- Describe ethical principles and guidelines such as the “Software Engineering Code of Ethics” as they apply to the practice of software engineering
- Create and deliver quality presentations (individually and as part of a team presentation) related to selected aspects of software engineering processes, practices, products, and artifacts
Essentials of Software Engineering, Second Edition
by Frank F. Tsui and Orlando Karam
Jones & Bartlett (2011); ISBN 9780763785345
REQUIREDThe Deadline: A Novel About Project Management
by Tom DeMarco
Dorset House (1997); ISBN 0932633390
REQUIRED
Refactoring Workbook
by William C. Wake
Addison-Wesley (2004); ISBN 0321109295
REQUIRED - (Available new & used at Amazon)
The following references are also recommended. Balancing Agility and Discipline
by Barry Boehm & Richard Turner
Addison-Wesley (2004); ISBN 0321186125
STRONGLY RECOMMENDED
Extreme Programming Refactored
by Matt Stephens & Doug Rosenberg
Apress (2003); ISBN 1590590961
Refactoring: Improving the Design of Existing Code
by Martin Fowler
Addison-Wesley (2000); ISBN 0201485672
Exploring Requirements: Quality Before Design
by D. C. Gause and G. M. Weinberg
Dorset House (1989); ISBN 0932633137
The Mythical Man-Month (Anniversary Edition)
by F. P. Brooks, Jr.
Addison-Wesley (1995); ISBN: 0201835959
Mastering the Requirements Process (2nd edition)
by S. Robertson and J. Robertson
Addison-Wesley (2006); ISBN 0321419499
Facts and Fallacies of Software Engineering
by R. L. Glass
Addison-Wesley (2002); ISBN 0321117425
Waltzing With Bears: Managing Risk on Software Projects
by T. DeMarco & T. Lister
Dorset House (2003); ISBN 0932633609Software Engineering: A Practitioner's Approach (7th ed.)
by R. S. Pressman
McGraw-Hill (2009)
ISBN 007301933XHead First Software Development
by D. Pilone & R. Miles
O'Reilly (2008)
ISBN 007301933X
Class Sessions & Course Websites
A substantial amount of information will be disseminated during class sessions or on course websites that you will be responsible for knowing whether or not you attended the sessions or accessed the websites. Note in particular that the textbooks and references provide some but not all of the information necessary to successfully complete the course.
You are expected to prepare for class sessions (reading, preparatory exercises, etc.), to participate in class discussions and exercises, and to make in-class presentations. Participation in class discussions and activities is mandatory and constitutes part of the overall grade for the course.
Assignments & Projects
Assignments and projects represent your opportunity to practice applying the concepts, thereby enhancing your understanding, and to demonstrate your knowledge of the concepts and their application. Details regarding assignments and projects will be provided in class and on the course support website.
Reflections
Every assignment and project turned in must include a section (maximum 1 page) labeled “Reflection” in which you are expected to reflect on the experience of working on the assignment or project and describe your personal insights and observations associated with the experience. This reflection is required whether or not the assignment specification mentions it explicitly. Reflections comprise a portion of the score of every assignment and project.
Deliverables & Due Dates/Times
As a matter of good engineering practice, deliverables associated with assignments should be turned in well before the published due date/time. (A rule of thumb for this course is four or more days prior to the published due date/time.) Assignment deliverables turned in at any time prior to the published due date/time are eligible for up to 100% of the maximum score. Late deliverables will be accepted provided they are turned in within one week of the published due date/time; such deliverables are eligible for up to 60% of the maximum score. No assignment deliverables will be accepted later than one week after the published due date/time. Illness, crises, and emergency situations will be dealt with on a case-by-case basis in accordance with MSCD, School, and Departmental policies.
Formats of documentation files turned in for assignments must not depend on specific operating system or commercial software. The following are examples of generally acceptable formats: ASCII or UNICODE UTF-8 text, HTML, PDF, GIF, JPEG, PNG. The following are examples of specifically unacceptable formats: Microsoft Word, AppleWorks, PowerPoint. Note that a deliverable submitted in an unacceptable format is equivalent to no submission at all. If your assignment submission consists of multiple files, please bundle them into an archive in tar, gz, or zip format.
Scoring & Grading
Alphabetical grades and status symbols are as defined by MSCD Academic Policies and Procedures:
A — Superior (4 quality points / semester hour)
B — Above Average (3 quality points / semester hour)
C — Average (2 quality points / semester hour)
D — Below Average but Passing (1 quality point / semester hour)
F — Failure (0 quality points / semester hour)The final course grade is determined by combining scores on in-class activities, homework, assignments, projects and exams. You are guaranteed a grade no lower than that computed by the following distribution of total points and weighted conversion to letter grade:
38% – Individual Assignments and Contributions
15% – Group Projects
18% – Midterm Exam
29% – Final ExamYou are guaranteed a grade no lower than that given by the following conversion of score (percentage of total possible) to letter grade:
100-90%: A; 89-80%: B; 79-70%: C; 69-60%: D; 59-0%: FCollaboration & Citation of Sources
Collaboration is encouraged and regarded as an essential aspect of learning Computer Science and especially Software Engineering. Collaboration and discussion with fellow students and instructors concerning course information, materials, assignments, projects, proofreading, and concept exploration is strongly encouraged. You are not expected to learn the course content or work on assignments and projects in isolation on your own.
Most project work in this course will be collaborative in nature. Note, however, that all assignments used for individual assessment must be written up on your own, reflecting your individual effort, even if the solution is arrived at as the result of a collaborative effort. In your write-up, you must credit the people with whom you worked. Remember that you must write and turn in a personal reflection for every collaborative effort, as well as every individual effort.
Collaboration during exams is never acceptable.
If you consult any sources, please explicitly note the materials that you used. Turning in work that does not credit collaborators, includes quotations without corresponding citations, or does not properly cite references, must be treated as academic dishonesty and an attempt at fraud.
All incidents of suspected dishonesty will be reported to the department and the Dean of the college. Consequences may include a grade of 0 on the assignment, a grade of "F" for the course, academic probation, or dismissal from the institution. This is a very serious matter and should not be taken lightly. If you have any uncertainty or concerns, please discuss them with your instructor or advisor.
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.
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 will 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.
Quiet Period
The 24-hour period immediately preceding the published due date/time for each assignment and project is considered a quiet period. During that 24-hour interval, no questions directly referencing that specific assignment/project will be addressed by the professor. All students are strongly encouraged to complete significant work on assignments and projects well in advance of this quiet period.
Since computer systems are likely to be strained during the 24-hour period immediately preceding a published due date/time, you should not depend on such systems, including the course support servers, during that period. It shall be considered part of the normal operating environment if the course support servers are down for as much as eight hours during a quiet period. If the course support servers are down for eight or more hours during a quiet period, the due date/time may be adjusted to compensate for the down time.
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, 2011, 2012 Dr. Jody Paul – All Rights Reserved