3 Cr. (Hrs.:3 Lec.)
This course is the second in a mandatory two semester sequence. This two semester sequence is the capstone sequence for the Software Engineering degree. Students will work in teams of one to five under the direction of the instructor to either develop or re-engineer a complex software product. Although a variant of an Agile process will be used, the team will produce or review all the traditional software engineering pre-implementation work products (at least in draft form). In this second semester each team will concentrate on completing the project they planned and possibly prototyped the first semester reality prototypes. Each team will prepare a poster and a campus presentation on their project. Prerequisite: ESOF 486
ESOF 486 and 487 must be taken in sequence. In unusual personal circumstances 487 may be taken the next year after taking 486. (2nd)
E1. The student must have good knowledge of programming (from CSCI 136 and CSCI 332), algorithm design and analysis (from CSCI 232, CSCI 332 and ESOF 427), databases (from CSCI 340 or BMIS 375, and CSCI 440) and software engineering (from ESOF 322, ESOF 326, ESOF 328 and COMX 338).
E2. The student should be able to write software development documents: a Software Requirements Specification (from ESOF 328), a Software Design Description and a Software Test Plan/Report (from ESOF 326 or ESOF 411).
E3. The student should be able to quickly learn to use a high level programming language necessary for the assigned project.
R1. Will have demonstrated the ability to work effectively in a team setting on a multi-programmer, multi-month and multi-phase software project. (EAC-a, c, e, g, i, k; 1, 2, 3, 4)
R2. Will be able to create a new product from scratch or extensively modify an existing product and will have demonstrated the ability to learn new technologies independently and/or the ability to apply technologies previously learned to new situations. (EAC-a, c, e, g, k, 1, 2, 3)
R3. Will be able to describe what their team accomplished on their project. (EAC-g)
R4. Will have demonstrated the ability to use a software development plan to successfully complete a multi-programmer, multi-month and multi-phase software development project, and to be able to apply quantitative measures in assessing progress toward the on-time, high-quality completion of a software development project. (EAC-c; 1, 2, 3, 4)
R5. Will have demonstrated the ability to describe a system/module design by creating or extensively modifying a software design description. (EAC-a, c, k; 1, 2, 3)
R6. Will have demonstrated the ability to follow a software test plan and to report on the results.
R7. Will have demonstrated the ability to rigorously inspect or review all of the documents used in their project. (EAC-a, k; 1, 2, 3)
R8. Will have demonstrated a working knowledge of software version and change management control. (EAC-a, k; 1, 2, 3)
R9. Will have demonstrated a working knowledge of all the software development tools used in the development of the project's product. (EAC-a, i, k; 1, 2, 3)
R10. Will have completed and demonstrated a nontrivial project.