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 Outcomes | 0 | 1 | 2 | 3 |
1 | Employ knowledge of mathematics, science and engineering to formulate solution to real life computing problems | ✔ | |||
2 | Design and conduct experiments, as well as analyze, evaluate and interpret data | ✔ | |||
3 | Design systems, components, and/or processes by specifying the requirements and determining the realistic constraints such as ethical and environmental | ✔ | |||
4 | Judge professional and ethical principles and integrate them in the working environment | ✔ | |||
5 | Have the ability to communicate effectively | ✔ | |||
6 | Recognize the need for, and an ability to engage in life-long learning | ✔ |
0: No Contribution 1: Little Contribution 2: Partial Contribution 3: Full Contribution