CS 498 Software Engineering for Senior Project

University of Kentucky
Department of Computer Science
CS 498 Software Engineering for Senior Project
1.  Course Number/Name:  CS 498  Software Engineering for Senior Project
2.  Credits and Contact Hours:  3 credits, 3 contact hours
3.   Instructor:  assigned by the department
4.   Textbook:   Fundamentals of Software Engineering, 2nd Ed., Carlo Ghezzi, Mehdi Jazayeri, and Dino Mandrioli
5.   a.  Catalog Description:  Current approaches – practice and technologies – for developing reliable software: specifications, testing, and verification. Individual and team assignments focused on applying these approaches to software systems. A significant communication and composition component related to specifying, designing, presenting, and documenting software systems.
b.  Prerequisites:  CS 115, 215, 216
c.  Required course:  Elective

6.  a.   Outcomes of InstructionAt the conclusion of CS 498 the student should be able to:

             1.    collaborate with a team.
             2.    elicit software requirements.
             3.    translate requirements into an actionable design.
             4.    research new technologies and APIs.
             5.    implement software.
             6.    validate software at all stages of its creation.
b.   Contributions to Student Outcomes from Criterion 3













CS 498












3- Strongly supported   2 – Supported   1 – Minimally supported

7.   List of Topics Covered:

                1.    Software Process Models and Principles (1 week): various process models and   key software principles.
                2.    Software Natural Qualities (1 week): internal qualities, external qualities, key   software qualities.
                3.    Requirement Engineering (2 weeks): requirements elicitation, analysis, specification, validation and management,
                      project Phase 1.
                4.    Software Architecture and Design (2 weeks): architecture patterns, UML diagrams (use case, class diagrams, data-
                     flow diagrams, state-chart diagrams), project Phase 2.
                5.    Implementation and Configuration Management (2 weeks): coding style, code inspection, configuration management
                     systems, version control, project Phase 3.
                6.    Software Testing and Verification (3 weeks): block-box testing, white-box testing, web-based testing, testing tools,
                      project Phase 4.
                7.    Software Maintenance and Regression Testing (2 weeks): test case selection, test case prioritization, program
                      analysis, project Phase 5.
 8.   Continuous Integration (1 week)