|
Ön Koşul Dersleri
|
-
|
|
Eğitimin Dili
|
English
|
|
Koordinatör
|
DR. ÖĞR. ÜYESİ BİLGE KAĞAN DEDETÜRK
|
|
Dersi Veren Öğretim Eleman(lar)ı
|
DR. ÖĞR. ÜYESİ BİLGE KAĞAN DEDETÜRK
|
|
Yardımcı Öğretim Eleman(lar)ı
|
-
|
|
Dersin Veriliş Şekli
|
Formal education
|
|
Dersin Amacı
|
The purpose of this course is to equip students with the conceptual foundations, technical skills, and engineering judgment required to design and architect software systems that are robust, maintainable, and adaptable to evolving requirements. The course aims to develop students'' ability to think systematically about design decisions, to reason about trade-offs between competing quality attributes, and to communicate designs effectively using standard UML notations. By progressing from object-oriented design principles and design patterns to architectural styles and service-oriented architectures, the course prepares students to bridge the gap between writing functional code and engineering complete software systems. Ultimately, the course seeks to cultivate professionals who can recognize recurring design problems, apply proven solutions, evaluate architectural alternatives against real-world constraints, and contribute meaningfully to the design of modern distributed and enterprise-scale software in their future academic and industrial careers.
|
|
Dersin Tanımı
|
This course provides a comprehensive introduction to the principles and practices of designing and architecting software systems, bridging the gap between programming and large-scale software engineering. Students learn to translate requirements into well-structured designs through object-oriented analysis and modeling, the systematic application of design principles, and the disciplined use of established design patterns from the Gang of Four catalogue. The scope then expands from class-level design to system-level architecture, covering UML-based architectural views, classical architectural styles, the evaluation of architectures against quality attributes such as performance, modifiability, and availability, and modern service-oriented approaches including SOAP-based web services, RESTful services, and microservices. Through integrating theoretical foundations with hands-on UML modeling and case studies, students develop the engineering judgment required to design software that is not only functionally correct but also maintainable, evolvable, and aligned with contemporary industry standards.
|