Software Design and Architecture

1.Course titleSoftware Design and Architecture
2.CodeF18L3W009
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 / semester5 / Winter
7.Number of ECTS credits6
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 methodslectures, classroom exercises, laboratory exercises, project assignments, homework
13.Total available time6 ECTS x 30 hours = 180 hours
14.Distribution of the available time30 + 45 + 15 + 15 + 75 = 180 hours
15.Forms of teaching activities
15.1.Lectures – theoretical teaching30 hours
15.2.Exercises (laboratory, auditory), seminars, team work45 hours
16.Other forms of activities
16.1.Project assignments15 hours
16.2.Individual assignments15 hours
16.3.Home study75 hours
17.Grading
17.1.Tests10 points
17.2.Seminar paper / project (presentation: written and oral)15 points
17.3.Activity and participation10 points
17.4.Final exam70 points
18.Grading criteria (points / grade)
up to 50 points5 (five) (F)
from 51 to 60 points6 (six) (E)
from 61 to 70 points7 (seven) (D)
from 71 to 80 points8 (eight) (C)
from 81 to 90 points9 (nine) (B)
from 91 to 100 points10 (ten) (A)
19.Requirements for signature and taking the final examActivities carried out
20.Language of instructionMacedonian and English
21.Method of monitoring teaching qualityinternal evaluation and surveys
22.Literature
22.1.Required literature
No. Author Title Publisher Year
22.2.Additional literature
No. Author Title Publisher Year