S.E. 3250WSoftware Engineering3 Cr. (Hrs.:3Lec.)
Studies the process of engineering large software systems. Covers all phases of the software development lifecycle from requirements elicitation to acceptance testing. Material on all aspects of software engineering, including professional ethics, will be presented. In addition to individual homework assignments students will do in class assignments in pairs and in module software products and multi-module software products. Immediate Prerequisites: Sophomore standing and CS 2106.
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 2106)
E2. Students have a basic understanding of object-oriented programming and can create programs using classes and objects in C++. (CS 2106)
Course Outcomes:
R1. Students understand what it means to “engineer” software and appreciate the benefits of planning, organizing, monitoring, and managing risks throughout the software lifecycle. Students appreciate the importance of early and continuous involvement of all system stakeholders throughout the lifecycle. (SE02, SE03, SE13, SE15, SE17)
R2. Students understand standard life-cycle process models such as the Waterfall, Incremental, Spiral and Agile models. They know the properties of these models, and given a development environment and project goals can select an appropriate development process model.(SE03, SE17)
R3. Students discussed societal and global issues in computing. Students have written a paper related to society and technology. (SE01, SE05, SE08 SE12)
R4.Students understand the difference between ethics and morals and can discuss and apply several different ethical theories to software engineering situations. Students understand the purpose of ethical codes and are familiar with the joint ACM/IEEE Software Engineering Code of Ethics and Professional Practice. Students have discussed strategies for dealing with unethical situations. Students have discussed the ethics and practical considerations involved in several whistle blowing case studies. Students have written and presented several short essays discussing ethical behavior in Computer Science and Software Engineering. (SE01, SE05)
R5. Students understand quality issues such as usability, reliability, availability, maintainability, portability, performance, and availability, and how these must be considered throughout the life cycle. (SE04, SE07, SE14, SE17)
R6.Students appreciate the need for and can adhere to a project coding standard. (SE02, SE06, SE15)
R7. Students can design and perform a formal module test that utilizes a test coverage tool. (SE06, SE14)
R8. Students can write a satisfactory system test plan and test case descriptions given system requirements, architecture, and design documentation. (SE02, SE06, SE10, SE15)
R9.Students understand the importance of software technical reviews and software inspections throughout the lifecycle and have performed several such reviews and inspections. Students can distinguish between validation and verification and have discussed the more commonly used V&V methods and techniques. (SE02, SE05, SE06, SE13, SE15, SE17)
R10. Students understand the importance of software metrics and know the standard measurements such as person hours, number of module requirements and lines of code. (SE13)
R11. Students can answer short essay questions in good professional English. Students can write software development documentation to a defined standard in good professional English. Students can write multi-page essays in a professional format using professional English. (SE05)
|