3 Cr. (Hrs.:3 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 340 or BMIS 375) and ESOF 322 (2nd)
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. Understand quality issues such as usability, reliability, availability, maintainability, portability, and performance, and how these must be considered throughout the life cycle (ESOF 322).
E3. Understand the importance of software inspections throughout the life cycle, and will have performed several such reviews and inspections according to the documented procedures for such reviews and inspections (ESOF 322).
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)