ESOF 326

Software Maintenance

2 Cr. (Hrs.:2 Lec.)

Continues to study the process of developing software applications and systems. Software requirements, design and testing are addressed. Students gain experience in these areas by working on software maintenance projects that involve significant changes to a previously developed product and further development on a previously started project. Prerequisite: CSCI 332, CSCI 340, ESOF 322 (2nd)

Course generally offered spring (2nd) semester.


E1. Students entering this course should have a firm knowledge of multiple programming languages (from CSCI 136 and CSCI 232), algorithm design and analysis (from CSCI 232), databases (from CSCI 340) and software engineering (ESOF 322).

E2. Students entering this course should be able to construct source files in C++ and Java that conform to the small module standards for such files. (ESOF 322).

E3. Students entering this course should be able to write and execute any of the following standard software development documents (from ESOF 322).

Course Outcomes:

R1. Demonstrated the ability to work effectively in a team setting on a multi-programmer, multi-month, software project. (CAC-a, b, c, d, f, i, k; EAC-a, c, e, g, k, 1, 3)

R2. Taken an existing project and either bring it to the next stage of completion or made major enhancements. (CAC-a, b, c, d, f, h, i, k; EAC-a, c, e, g, i, k, 1, 3)

R3. Appreciate the importance of early and continuous involvement of all system stakeholders during the development cycle. (CAC-b, d, f, g; EAC-g)

R4. Be able to create and follow a software test plan, report failures, correct faults, and resubmit test case results. (CAC-a, d, f, i, k; EAC-a, e, k, 1, 2, 3)

R5. Understand the importance of software metrics and know the standard measurements such as person hours and lines of code. (CAC-d; EAC-a, c, k, 4)

R6. Can describe his or her experience with the personal, technical, managerial and people aspects of a class maintenance project. (CAC-f; EAC-g, 4)