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 DescriptionA course in the application of a systematic, disciplined, quantifiable approach to
  the development, operation, and maintenance of software, and the study of such approaches.
b.  Prerequisites:  ā€œCā€ grade or better in CS 216 and CS 315.
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)