Software Design and Architecture
| 1. | Course title | Software Design and Architecture | ||||||||||||
| 2. | Code | F18L3W009 | ||||||||||||
| 3. | Study programme | |||||||||||||
| 4. | Organizer of the study programme (unit, institute, department) | Faculty of Computer Science and Engineering | ||||||||||||
| 5. | Degree level (first, second, third cycle) | First cycle | ||||||||||||
| 6. | Academic year / semester | 5 / Winter | ||||||||||||
| 7. | Number of ECTS credits | 6 | ||||||||||||
| 8. | Teacher | — | ||||||||||||
| 9. | Prerequisites for enrolling in the course | Анализа на софтверските барања или Софтверско инженерство | ||||||||||||
| 10. | Course objectives (competences) | Students should learn the main concepts of the object oriented analysis and design. To introduce the students to the techniques of refactoring, design patterns and different software architectures. Upon completion of the course the students will be able to identify the restrictions and assess the quality of the software systems. They will be able to evaluate completeness and consistency of software specifications, and to design software architectures according the specific needs. | ||||||||||||
| 11. | Course content | (1) Design concepts, definition of design, basic problems in design (for example, persistent data, warehouse management, and exceptions) (1) Design context within multiple software development life cycles, design principles (information hiding, cohesion, and coupling) (1) Interactions between design and requirements, design for quality attributes (for example, reliability, usability, sustainability, performance, testing, safety, and fault tolerance) (1) Design compromises, design strategies, functional design, object-oriented design (1) Data-driven design, aspect-oriented design, architectural design (3) Architectural styles, templates, and frameworks (1) Architectural exchanges between different attributes (1) Hardware and system engineering issues in software architecture, requirements for traceability in architecture (1) Service-Oriented and Cloud Architectures (1) Architectures for network, mobile, and embedded systems (1) The relationship between product architecture, organizational structure, and the market | ||||||||||||
| 12. | Learning methods | lectures, classroom exercises, laboratory exercises, project assignments, homework | ||||||||||||
| 13. | Total available time | 6 ECTS x 30 hours = 180 hours | ||||||||||||
| 14. | Distribution of the available time | 30 + 45 + 15 + 15 + 75 = 180 hours | ||||||||||||
| 15. | Forms of teaching activities |
| ||||||||||||
| 16. | Other forms of activities |
| ||||||||||||
| 17. | Grading |
| ||||||||||||
| 18. | Grading criteria (points / grade) |
| ||||||||||||
| 19. | Requirements for signature and taking the final exam | Activities carried out | ||||||||||||
| 20. | Language of instruction | Macedonian and English | ||||||||||||
| 21. | Method of monitoring teaching quality | internal evaluation and surveys | ||||||||||||
| 22. | Literature |
|