Software Engineering and Object Oriented Design(INF481)
| Course Code | Course Name | Semester | Theory | Practice | Lab | Credit | ECTS |
|---|---|---|---|---|---|---|---|
| INF481 | Software Engineering and Object Oriented Design | 8 | 4 | 0 | 0 | 4 | 5 |
| Prerequisites | |
| Admission Requirements |
| Language of Instruction | French |
| Course Type | Compulsory |
| Course Level | Bachelor Degree |
| Course Instructor(s) | Gülfem ALPTEKİN gulfem@gmail.com (Email) |
| Assistant | Timoteos Onur ÖZÇELİK tozcelik@gsu.edu.tr (Email) |
| Objective | In this course, tools that can be used in the object-oriented design process are introduced, and students are encouraged to develop the ability to apply these tools in practice. These tools support the design process both visually and textually. In addition, students gain the ability to use methods and tools that increase efficiency throughout the various processes encountered during the life cycle of a software project. Students learn the role of software engineering within computer engineering and understand the necessity of software design, followed by object-oriented design. They learn to use UML, a visual modeling language that is accepted worldwide as a standard for software design, and are able to design different software problems using the UML language. They also gain the ability to establish the architectural structure of a software system. Furthermore, students can explain the software development process and life cycle in detail and compare the software development processes commonly used in industry. They learn to test developed software using various techniques and to estimate the expected cost of a software project. |
| Content |
1. Introduction to Software Engineering and Design, Introduction to Agile Project Management 2. Software Requirements Analysis 3. Conceptual Design of Software 4. Software Design Principles, Technical Design 5. UML Class Diagrams 6. Design Patterns – 1 7. Design Patterns – 2 8. Project Conceptual Design Presentations 9. Midterm Exam 10. Software Quality 11. Software Testing Techniques 12. Software Development Models 13. Estimation in Software Projects 14. Term Project Presentations |
| Course Learning Outcomes |
A student who successfully completes this course will acquire the following competencies: 1. By understanding the responsibilities of a software engineer, the student will be able to document and report a software problem, its requirements, and the corresponding software and hardware design in both textual and visual forms. 2. The student will be able to prepare functional analysis documents, requirements documents, and design documents for a software system. 3. The student will be able to select and apply the most appropriate software development process for developing a software system. 4. By knowing different software testing methods, the student will be able to choose and apply the most suitable testing technique for a given software system. |
| Teaching and Learning Methods | Lecture, Discussion, Demonstration, Case Study, Problem Solving, Cooperative Learning, Project, Brain Storming |
| References |
1. Software Engineering, Ian Sommerville, Addison-Wesley, 10th Edition, 2015. 2. Introduction to Software Engineering Design, Processes, Principles, and Patterns with UML2, Christophe Fox, Addison-Wesley, 2006. |
Theory Topics
| Week | Weekly Contents |
|---|---|
| 1 | Introduction to Software Engineering and Design, Introduction to Agile Project Management |
| 2 | Software Requirements Analysis |
| 3 | Conceptual Design of Software |
| 4 | Software Design Principles, Technical Design |
| 5 | UML Class Diagrams |
| 6 | Design Patterns – 1 |
| 7 | Design Patterns – 2 |
| 8 | Project Conceptual Design Presentations |
| 9 | Midterm Exam |
| 10 | Software Quality |
| 11 | Software Testing Techniques |
| 12 | Software Development Models |
| 13 | Estimation in Software Projects |
| 14 | Term Project Presentations |
Practice Topics
| Week | Weekly Contents |
|---|
Contribution to Overall Grade
| Number | Contribution | |
|---|---|---|
| Contribution of in-term studies to overall grade | 2 | 60 |
| Contribution of final exam to overall grade | 1 | 40 |
| Toplam | 3 | 100 |
In-Term Studies
| Number | Contribution | |
|---|---|---|
| Assignments | 0 | 0 |
| Presentation | 0 | 0 |
| Midterm Examinations (including preparation) | 1 | 30 |
| Project | 1 | 30 |
| Laboratory | 0 | 0 |
| Other Applications | 0 | 0 |
| Quiz | 0 | 0 |
| Term Paper/ Project | 0 | 0 |
| Portfolio Study | 0 | 0 |
| Reports | 0 | 0 |
| Learning Diary | 0 | 0 |
| Thesis/ Project | 0 | 0 |
| Seminar | 0 | 0 |
| Other | 0 | 0 |
| Make-up | 0 | 0 |
| Toplam | 2 | 60 |
| No | Program Learning Outcomes | Contribution | ||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 1 | Matematik, fizik ve mühendislik bilimlerine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, mühendislik problemlerinin modellenmesi ve çözümünde kullanabilme becerisi. | X | ||||
| 2 | Karmaşık bilgisayar mühendisliği problemlerini saptama, tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi. | X | ||||
| 3 | Yazılımsal veya donanımsal karmaşık bir sistemi, süreci veya donanımı gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi. | X | ||||
| 4 | Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirme, seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi. | X | ||||
| 5 | Analitik düşünce ile bir sistemi, sistem bileşenini ya da süreci analiz etme, modelleme, deney tasarlama ve yapma, veri toplama, çözüm algoritmaları üretebilme, uygulamaya alma ve geliştirme becerileri. | X | ||||
| 6 | Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi. | X | ||||
| 7 | Türkçe sözlü ve yazılı etkin iletişim kurma becerisi; en az iki yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, yazılım ve donanım tasarımını, gerekirse teknik resim metotları kullanarak raporlayabilme, etkin sunum yapabilme becerisi. | X | ||||
| 8 | Bilgiye erişebilme ve bu amaçla kaynak araştırması yapabilme, veri tabanları ve diğer bilgi kaynaklarını kullanabilme becerisi | X | ||||
| 9 | Yaşam boyu öğrenmenin gerekliliği bilinci; kendini sürekli yenileme becerisi. | X | ||||
| 10 | Mesleki etik ilkelerine uygun davranma, mesleki sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi. | X | ||||
| 11 | Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgi. | X | ||||
| 12 | Mühendislik uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri ve çağın mühendislik alanına yansıyan sorunları hakkında bilgi. | X | ||||
| 13 | Bilgisayar mühendisliği uygulamalarının hukuki ve etik boyutları konusunda farkındalık. | X | ||||
| Activities | Number | Period | Total Workload |
|---|---|---|---|
| Class Hours | 13 | 4 | 52 |
| Working Hours out of Class | 1 | 15 | 15 |
| Assignments | 0 | 0 | 0 |
| Presentation | 0 | 0 | 0 |
| Midterm Examinations (including preparation) | 1 | 30 | 30 |
| Project | 1 | 30 | 30 |
| Laboratory | 0 | 0 | 0 |
| Other Applications | 0 | 0 | 0 |
| Final Examinations (including preparation) | 0 | 0 | 0 |
| Quiz | 0 | 0 | 0 |
| Term Paper/ Project | 0 | 0 | 0 |
| Portfolio Study | 0 | 0 | 0 |
| Reports | 0 | 0 | 0 |
| Learning Diary | 0 | 0 | 0 |
| Thesis/ Project | 0 | 0 | 0 |
| Seminar | 0 | 0 | 0 |
| Other | 0 | 0 | 0 |
| Make-up | 0 | 0 | 0 |
| Yıl Sonu | 0 | 0 | 0 |
| Hazırlık Yıl Sonu | 0 | 0 | 0 |
| Hazırlık Bütünleme | 0 | 0 | 0 |
| Total Workload | 127 | ||
| Total Workload / 25 | 5.08 | ||
| Credits ECTS | 5 | ||


