Studies the process of developing large software systems. Development process models, project management, software quality assurance, change management, software modeling, formal specification, and professionalism will be discussed. Students gain experience in these areas by working in groups to create a Software Requirements Specification (SRS) and a Software Design Description (SDD) based on IEEE standards for a software system for external clients. Prerequisite: C.S. 2656 and C.S. 3316. (1st)
A reflection paper is required for this course.
Expectations:
E1. Students know basic error-handling, testing, and debugging techniques, with an emphasis on the responsibilities that computer professionals have for ensuring software quality. (CS 2116)
E2. Students have a basic understanding of object-oriented programming and can create programs using classes and objects in C++. (CS 2546)
E3. Students are able to evaluate and select the appropriate data structure for a given problem. (CS 3316)
E4. Students learned and used proper testing techniques to ensure software quality.
E5. Students understand the purpose of data modeling and are able to model the logical data in a database. (CS 2656)
E6. Students can write basic Structured Query Language (SQL) data definition, data manipulation and data query statements. (CS 2656)
E7. Students are proficient in at least one database management system. (CS 2656)
Course Outcomes:
R1. Students understand what it means to “engineer” software and appreciate the benefits of planning, organizing, monitoring, and managing risks in requirements and design phase of the software lifecycle. (CS/SE 15)
R2. Students understand standard life-cycle process models such as the Waterfall, Incremental, Spiral, Rapid Application Development models, know their properties and, given a problem description, selected an appropriate development process model. Have written and presented a paper discussing a topic related to system development. (CS/SE 5, CS 17, SE 17)
R3. Students understand quality issues such as usability, reliability, availability, maintainability, portability, and performance, and how these must be considered during the implementation, testing and maintenance phases. (CS/SE 3, CS 17)
R4. Students understand the purpose of ethical codes and are familiar with the ACM and IEEE codes of ethics for computer professionals, as well as the joint ACM/IEEE code of ethics for Software Engineers. Students have written and presented a paper discussing professionalism in Computer Science and Software Engineering. (CS/SE 1, CS/SE 5)
R5. Students discussed whistle blowing case studies and have discussed strategies for dealing with unethical situations. (CS/SE 1)
R6. Students have learned requirements elicitation, representation, and analysis by working in a group with a client to develop a complete set of software requirements for a small software system (5,000 lines of code). Students have made a presentation to their client on the system that they specified (CS\SE 1, CS/SE 2, CS/SE 3, CS/SE 4, CS/SE 5, SE 6, CS/SE 7, CS/SE 10, CS/SE 11, CS/SE 15, CS\SE 17)
R7. Students are able to write requirements that are unambiguous, complete and measurable. (CS 6, SE 6)
R8. Students distinguish between functional and nonfunctional requirements and know ways to make nonfunctional requirements concrete. (CS/SE 15)
R9. Students can model software requirements using a standard approach such as Structured or Object-Oriented Analysis.
R10. Students understand the purpose of formal specification and its advantages and disadvantages. (CS 6, SE 6, CS 14)
R11. Students appreciate the importance of early involvement of all system stakeholders during the requirements and design phase of the lifecycle. (CS/SE 16)
R12. Students have worked in a group to design a small software system (5000 lines of code) and have made a presentation to their client on their design. (CS/SE 1, CS/SE 2, CS/SE 3, CS/SE 4, CS/SE 5, SE 6, CS/SE 7, CS/SE 10, CS/SE 11, CS/SE 15, CS/SE 17)
R13. Students understand the importance of inspecting requirements and design work products and have played different roles in a inspection of these work products. (CS 6, SE 6)
R14. Students understand issues of change management and have used a configuration management system. (CS 6, SE 6) |