CNG350 SOFTWARE ENGINEERING

Course Code:3550350
METU Credit (Theoretical-Laboratory hours/week):3 (3.00 - 0.00)
ECTS Credit:5.5
Department:Computer Engineering
Language of Instruction:English
Level of Study:Undergraduate
Course Coordinator:Assist.Prof.Dr ŞÜKRÜ ERASLAN
Offered Semester:Spring Semesters.

Course Objectives

The students will gain an understanding of the foundations of the software engineering discipline for developing and maintaining computer-based systems. The students will be exposed to the life-cycle processes, modelling techniques, quality concepts, testing methods, standards, and ethical and professional responsibility.


Course Content

Software Project Management: metrics, estimation, planning. Software requirement analysis techniques. Software design techniques. Software implementation. Software quality assurance. Software testing.


Course Learning Outcomes

At the end of this course, students will be able to:

  • Understand the domain and the basic terminology of Software Engineering.
  • Analyse widely used software process models.
  • Compare plan-driven and agile approaches to software development.
  • Distinguish user requirements and system requirements.
  • Distinguish functional requirements and different kinds of non-functional requirements.
  • Compose a software requirement specification that is verifiable, correct, consistent, complete and unambiguous.
  • Apply UML for modelling various aspects of computer-based systems using a state-of-art tool.
  • Construct a requirements model for a computer-based system using UML.
  • Construct a design model for a computer-based system using UML.
  • Analyse system architecture from multiple viewpoints.
  • Assess candidate architectural patterns and design patterns for a given design problem.
  • Distinguish different levels of testing.
  • Select testing techniques appropriate for a given test objective.
  • Understand the fundamental concepts of quality as related to software, such as process quality and product quality, along with related standards.
  • Understand software metrics and their relation to product quality.
  • Discuss the processes involved in evolution of software.
  • Identify ethical issues in a given situation, using the terminology of ACM/IEEE SECEPP.

Program Outcomes Matrix

Level of Contribution
#Program Outcomes0123
1Employ knowledge of mathematics, science and engineering to formulate solution to real life computing problems✔
2Design and conduct experiments, as well as analyze, evaluate and interpret data✔
3Design systems, components, and/or processes by specifying the requirements and determining the realistic constraints such as ethical and environmental✔
4Judge professional and ethical principles and integrate them in the working environment✔
5Have the ability to communicate effectively✔
6Recognize the need for, and an ability to engage in life-long learning✔

0: No Contribution 1: Little Contribution 2: Partial Contribution 3: Full Contribution