CS 616 - Software Engineering

 

Credits: 3

 

Course Description

 

This course provides an overview of the software engineering discipline: software requirements, software design, software construction, software management, and software quality. Testing and validation techniques will be emphasized throughout the course. Programs and program fragments will be developed and studied throughout the course to illustrate specific problems encountered in the lifecycle development of software systems.

 

Prereqs: At least nine hours of graduate computer science courses.

 

Needed Skills

 

The student is expected to be familiar with programming in a object-oriented language, have studied algorithms and data structures, and have completed at least 9 credits hours of graduate level computer science.

 

Learning Outcomes

 

Students will learn software engineering techniques useful for the development of large software/hardware projects. Experience will be gained in working with teams throughout the complete development cycle of a class project.

 

Week by Week Course Outline

 

This is a sample outline. Exact outline will be determined by the instructor offering this course.

 

Weeks Topics
1-2

Product, Process, Project Management, Metrics, Project Planning

3-4

Risk, SQA, Project Scheduling, SCM, Systems Engineering,  Analysis Concepts

5-6

Analysis Modeling, Design Concepts, Architecture Design, User Interface Design, Other Design Topics

7

Mid-Terms/Project/Presentation

8

Software Testing Techniques and Strategies

9

Technical Metrics, OO Concepts

10-11

OOA, OOD, OO Testing, OO Metrics, Formal Methods

12

Component-Based Software Engineering, Client/Server, Cleanroom

13

Web Engineering, Reverse Engineering, Genetic Programming

14

CASE, Student Project Presentation

15

The Road Ahead, Presentations of Final Student Projects

 

Examinations

 

The instructor offering the course will determine exact details about examinations in this course. Typically, grading will be determined by a combination of in-class presentations, homework assignments, written documentation, and a final programming project. Specific details will be made available in the syllabus at the start of each semester in which the course is offered.

 

Grading

 

A weighted average of homework assignments, programming exercises, projects, hour examinations, and the final examination will determine the student's grade. The faculty offering the course will make the details available at the start of the course. A typical weighting is:

 

Homework - 20%

Presentations - 20%

Team Programming Project - 20%

Hour Exams - 20%

Final Examination - 20%

 

Possible Textbooks

 

Pressman
Software Engineering: A Practitioner's Approach, Fifth Edition
McGraw-Hill
ISBN: 0-07-052182-4

 

Possible Resources

 

Stephen R. Schach
Classical and Object-Oriented Software Engineering, 4th Edition, WCB
McGraw-Hill, 1999
ISBN: 0-07-230226-7

 

Brooks
Mythical Man Month, 2nd Edition
Addison Wesley

 

Peters and Pedrycz
Software Engineering: An Engineering Approach
John Wiley & Sons

 

Additional materials in the form of articles and reviews will be supplied by the instructor.