Specialization courses
Software Engineering II
- COURSE CONTENTS
-
Course contents:
1. Overview of the object-oriented features of modern programming languages
(a) classes / abstract classes / interfaces
(b) Extension Methods
(c) Anonymous Methods / Lambda Expressions
(d) Delegates / functional interfaces / Events
(e) Generics2. The agile methodology and the iterative development paradigm
(a) Requirements phase
(b) Design phase
(c) Implementation phase3. GRASP and SOLID principles:
(a) GRASP principles: Information Expert, Creator, Low Coupling, Protected Variations, Indirection, Polymorphism, High Cohesion, Pure Fabrication, Controller
(b) SOLID principles: S - Single-responsibility Principle, O - Open-closed Principle, L - Liskov Substitution Principle, I - Interface Segregation Principle, D - Dependency Inversion Principle4. Design patterns - Gang Of Four Patterns
(a) Creation patterns (Abstract Factory, Builder, Factory Method, Prototype, Singleton)
(b) Structural patterns (Adapter, Bridge, Composite, Decorator, Façade, Flyweight, Proxy)
(c) Behavioral patterns (Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State , Template Method, Visitor) - ASSESSMENT
-
Assessment: Compulsory final project with weight 60%-70%. Lab exercises with weight 30%-40%.