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