3 Cr. (Hrs.:3 Lec.)
This two semester sequence is the capstone course for a 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 first semester each team will review or develop documents such as a Software Concept of Operation document, a Software Requirements Specification, a Software Development Plan, a Software Design Description, a Configuration Management Plan, a Software Quality Assurance Plan, and a Software Test Plan/Report, in accordance with the Montana Tech Methods software development standards. Other documents may also be required for a project. ESOF 486 will probably also include the development or demonstration of exploratory prototypes including the possibility of virtual reality prototypes. Prerequisites: ESOF 326 & ESOF 328, CSCI 340 or CSCI 443, or COMX 338. Co-requisite ESOF 427 & ESOF 411. (1st, 2nd) ESOF 486/487 must be taken in sequence. In unusual personal circumstances 487 may be taken a year after 486.
Need a total of 6 credits and have to do 3 credits at time. (1st)
A reflection paper is required for this course. Course generally offered fall (1st) semester.
E1. The student should have a basic knowledge of programming (from CSCI 135, CSCI 136), algorithm design and analysis (from CSCI 232, CSCI 332 and ESOF 427), databases (from CSCI 340) and software engineering (from ESOF 322, ESOF 326, ESOF 328 and CSCI 443 or COMX 338).
E2. The student should be able to construct source files in a high level programming language that conform to the instructor's standards for such files (from ESOF 322, ESOF 326).
E3. The student should be able to write and carry out the tasks defined in any of the following Montana Tech Methods standards software development documents: a Small Module Development Sheet(ESOF 322), a Software Requirements Specification, (from ESOF 328), a Software Design Description or a Software Test Plan/Report (from ESOF 326 or ESOF 411).
E4. The student should be able to quickly learn to use a high level programming language necessary for the assigned project.
At the conclusion of ESOF 486 those students who receive at least a C-:
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 describe and discuss the professional and ethical responsibilities related to their project and similar projects. (EAC-f, g)
R3. Will have demonstrated the ability to interact effectively with a client or custormer in eliciting and/or verifying system requirements. (EAC-c, e, g, k; 1, 3)
R4. Will have demonstrated the ability to use and MTM 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 an MTM Software Design Description. (EAC-a, c, k; 1, 2, 3)
R6. Will have demonstrated the ability to rigorously inspect or review all of the MTM documents used in their project. (EAC-a, k; 1, 2, 3)
R7. Will have demonstrated a working knowledge of software version and change management control. (EAC-a, k; 1, 2, 3)
R8. 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)
R9. Will have demonstrated an understanding of the impact of engineering solutions in a global, economic, environment and societal context. (EAC-h)
R10. Will have demonstrated an understanding of comtemporary issues. (EAC-j)