Introduction
With only about a third of software projects
considered successful, the people in your industry need a lot of help! This course presents software maintenance and
evolution principles and techniques that enable software engineers to extend
and maintain software products. You will learn techniques for working
productively on software products and systematically changing them to meet
evolving requirements. These skills will
include practices you can help to popularize and standardize in the software
industry, as a software leader.
The
official course description from the MSSE website reads: This course builds upon the
key methods and techniques associated with constructing software to ensure the
maintainability and evolution of software products. Key elements of software
maintenance process, impact analysis, software reengineering/reverse
engineering/design recovery, source code analysis are examined. Then topics on
how to produce software systems with the measurable maintainability properties
are covered from both theoretical and practical perspectives. Advanced topics
in model-based engineering for evolvable products are also examined along with
emerging technologies that are relevant to the sustainability of software.
Email: chenowet@rose-hulman.edu
Phone(s): 812-877-8974 (office) 937-657-3885 (cell)
RHIT Office: Moench Hall, Room F220
Refactoring: Improving the Design of
Existing Code, by Martin Fowler
Publisher: Addison-Wesley Professional; 1 edition
(July 8, 1999)
ISBN-10: 0201485672
Plus: A second text to be provided later.
Proposed: Working Effectively with Legacy Code, by Michael C. Feathers
Publisher: Prentice Hall, 2005
ISBN-13: 0-13-117705-2
Students who successfully complete this course
should be able to:
Course Evaluation and Feedback: Please feel free to provide feedback about the course
at any time.
Grading:
Examinations (2) | 30% |
Project Deliverables (Journal and working samples) | 50% |
Project Mtgs, Class Partic., Final Presntn. | 20% |
Additional Information
This course is about
maintaining and changing software systems. A major goal is to provide practice using state-of-the-art tactics with
tools and a structure which leads to long-term efficiency and effectiveness of
development. The students typically work
on a project relevant to their work or otherwise of interest to them. Students may take on roles on others'
systems, such as helping to detail a design, serving as a stakeholder, or
participating in testing.
Expectations:
Students will be expected
to attend and participate in class. Students will be required to use the course
website on Angel to obtain relevant information, and interact with instructor
and other students. Announcements and assignments will be conveyed via email
and/or posted on the website. Students will be expected to work on some
assignments with other team members.
Assignments:
Project assignments will be
assigned regularly. Unless otherwise requested, please post on Angel your
journals with descriptions of what you did and code examples. Projects are
necessary instruments for tracking progress of students. A typical student will
work approximately 9 hours outside of lectures each week on this course
(depending on background). This is a demanding course covering a great deal of
material -- please avoid falling behind on the assignments. While this course
is demanding, it is also rewarding for those that want strong understanding of
software requires as a discipline.
Academic Integrity:
CSSE Honesty Policy (see
here!)
governs class and performance. Joint study is allowed (even encouraged) on some
items as expressed by the instructor; however, each student must produce his or
her solutions individually. Students must not collaborate on tests or homework
that is passed in unless directed by the instructor.
Attendance Policy:
Please contact the
instructor in advance if you are going to be absent from class. While work
commitments and emergencies can constitute a legitimate reason for missing a
class, attendance is otherwise mandatory. If you cannot make it to class, you
are still responsible for all materials covered in class as well as all
announcements.
Technical Requirements:
You should have a laptop to
bring to class and to use in completing assignments. Special software beyond,
say, email, MS Word and PowerPoint, will NOT be required.
Course Evaluation and Feedback:
Please feel free to provide
me feedback about the course at any time. I also recommend that you keep a "course evaluation log"
somewhere to make notes that you can use for the course evaluation at both
midterm and the end of the course.
Course Grade
Division:
90-100
|
A
|
85- 89
|
B+
|
80- 84
|
B
|
75- 79
|
C+
|
70- 74
|
C
|
65- 69
|
D+
|
60- 64
|
D
|
0- 59
|
F
|
Ethics and Professional Practice:
You are expected to act
honestly and professionally in this course at all times, in a manner consistent
with the school’s honor code.
Late Submissions:
Late assignments may receive
a deduction (or not be accepted at all), depending on the circumstances and the
degree of lateness.
Exam Policy:
Exams will be take home, open
book and notes. No exams will be “dropped”. Giving a makeup exam for an
unexcused absence is at the discretion of the instructor. Any requests for
regrading must be made in writing by the beginning of the next class period
after the exams are returned.
Syllabus
developed by Steve Chenoweth.