CNG457 SPECIAL TOPICS IN COMPUTER ENGINEERING: SOFTWARE CONSTRUCTION

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

Course Objectives

The objective of this course is to enable students to design, develop and test medium-scale concurrent interactive software systems with GUI by applying design patterns to achieve quality attributes such as performance, extensibility and reusability, with the use of modern development tools, including version control systems, development environments, build and test automation, debugger, and static analysis tools.


Course Content

Development of a complete software system based on available reference architectures; best practices in development; contemporary development environments and tools; architectural styles; concurrency; design patterns; libraries and frameworks;development of interface mechanisms including services and APIs;GUI design and implementation;design for reusability; component implementation; unit,component and system testing


Course Learning Outcomes

Upon successful completion of the course, the students will be able to

  • Use the selected integrated development environment tool and git version control system proficiently
  • Design GUI for applications in Java
  • Develop web services with data persistence using Java
  • Use a UML tool for software modelling
  • Develop an end-to-end software system with enterprise level standards using Java
  • Understand at least 6 major design patterns
  • Use at least 3 modern libraries, components, frameworks.
  • Write thread-safe concurrent programs in Java
  • Write test cases and conduct automated tests for software they develop