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.