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.