CENG 316
Software Engineering
Reference Standards
– Software Design: IEEE STD 1016 – Systems Design—Software Design Descriptions
– Software Test: IEEE STD 29119 – Software and Systems Engineering — Software Testing
Course Objectives
By the end of this course, students will gain knowledge and practical skills in:
– The role of the software engineer, Software engineering principles, Software development life cycle (SDLC) models, Requirements analysis, specification, system design, Verification and validation processes, Use of software quality metrics, Team organization in software projects, and Human-computer interaction (HCI) design.
Weekly Course Schedule
| Week | Title | Content |
| 1 | Introduction | Software Development Life Cycle, Team Formation, Course Overview |
| 2 | Software Design | Basic Design Principles, Software Architecture |
| 3 | Design Standards | IEEE 1016, formatting rules, templates |
| 4 | Design Draft Discussion | Group review of initial design submissions |
| 5 | Design Review Meeting | Group presentations and instructor feedback |
| 6 | Software Testing | Basic concepts, test design, strategies |
| 7 | Testing Standards | IEEE 29119 and documentation templates |
| 8 | Test Report Draft Discussion | Peer review of initial test reports |
| 9 | Test Report Review Meeting | Improved test strategies discussion |
| 10 | Implementation | First release demonstration |
| 11 | Updated Reports Discussion | Design & test reports review |
| 12 | Updated Reports Discussion | Final feedback for improvement |
| 13 | Final Version Demo | Final delivery of the complete system |
| 14 | Final Exam | Written exam or project presentation |
Deliverables and Evaluation
Each student group (5–8 members) will complete the following artifacts based on a given project topic:
– Requirements Analysis
– Software Design Document (SDD)
– Test Report
– Software Implementation (working system)
Submission and Evaluation Table
| Deliverable | Graded |
| Design Draft Submission | Not Graded |
| Design Report Submission | Graded |
| Design Review Report Submission | Graded |
| Updated Design Report Submission | Graded |
| Test Report Draft Submission | Not Graded |
| Test Report Submission | Graded |
| Test Review Report Submission | Graded |
| Updated Test Report Submission | Graded |
| First Release Submission and Demo | Graded |
| Final Release Submission and Demo | Graded |
Grading Breakdown
| Component | Weight (%) |
| Software Design | 15% |
| Design Review | 3% |
| Test Documents | 15% |
| Test Review | 3% |
| Software System | 20% |
| Final Exam | 30% |
| Peer Assessment | 14% |
Learning Outcomes
C1. Identify functional requirements for a given project
C2. Distinguish between functional and non-functional requirements
C3. Apply object-oriented design methodology
C4. Prepare a project definition document
C5. Utilize and apply software development process models
Prerequisite Courses
– Fundamentals of Programming (CENG211)
– Information Management (CENG315)
– Project Management (CENG323)
Having prior knowledge and experience in analysis and design methodologies will be very beneficial.


