Software Design

Course Description

Software design course addresses basic knowledge and skills for acquiring the competences in software engineering, namely understanding, evaluating and designing of software systems. Generic models of software engineering processes. Requirements engineering. Software architecture concepts and specification paradigms. Modeling of input/output and reactive software systems. Object-oriented system modeling (UML). Formal specification and verification of software system properties. Software testing. Automated assistance and tools in software design process.

General Competencies

Knowledge and skills of software construction. Deriving accurate description of software architecture from requirement analysis. Generating and selecting software architectural alternatives based on domain restricted knowledge and precise specification. Properties verification of particular software architectural formal models. Utilizing common software development tools.

Learning Outcomes

  1. define effective procedure for software design.
  2. distinguish between structured and unstructured procedures in siftware design.
  3. apply software engineering process models.
  4. employ methods to specify program requirements.
  5. analyze requirements and derive the most suitable software architecture.
  6. assemble software model using standard graphical and mathematical notations (UML).
  7. create final software product using selected language and programming environment.
  8. assess the quality of finalized software product.

Forms of Teaching


The course is organized in two cycles. The first cycle consists of 7 weeks of lectures and midterm exam. The second cycle consists of 6 weeks of lectures and final exam.


Quick quizzes. Midterm exam. Successful project completion. Final exam.

Other Forms of Group and Self Study

Students are arranged in groups of 6 to 8 individuals, and are working on a project comprising specificatio, design, realization and testing of software product.

Grading Method

Continuous Assessment Exam
Type Threshold Percent of Grade Comment: Percent of Grade
Quizzes 10 % 9 % 10 % 9 %
Seminar/Project 50 % 30 % 50 % 30 %
Mid Term Exam: Written 0 % 25 % 0 %
Final Exam: Written 30 % 36 %
Exam: Written 50 % 61 %

Week by Week Schedule

  1. Course administration. Introduction to software engineering. Introduction to software requirements engineering.
  2. Processes and models in software requirements specification. Prezentation of software requirements document. Instructions on students project group coordination.
  3. Processes and models in software engineering (waterfall, evolutionary, component based, RUP). Prezentation of a tool for UML modeling.
  4. Introduction to software architecture and architectural stiles
  5. Introduction toobject-oriented software design (classes, objects, variables, methods, operations, responsibilities, polymorphism, inheritance, dynamic binding, etc.).
  6. Software modeling with basic UML diagrams. Specific presentation on UML class diagrams.
  7. Presentation of all relevant UML diagrams (statical and dynamical) and ways how to use them.
  8. Midterm exam
  9. Distributed object-oriented architecture (client-server architecture, broker based architecture, service oriented architecture, component based architecture).
  10. Methods for software testing with presentation of an environment for software design and testing.
  11. Formal software verification -1: introduction to propositional and predicate logic.
  12. Formal software verification - 2: temporal logic for spesifying software behavior.
  13. Other software architectures - 1: data flow architecture, event based architecture.
  14. Other software architectures - 2: data repository architecture, layered architecture, virtual machines, software architecture for process control.
  15. Final exam

Study Programmes

University undergraduate
Computer Engineering (module)
(5. semester)
Computer Science (module)
(5. semester)
Information Processing (module)
(5. semester)
Software Engineering and Information Systems (module)
(5. semester)
Telecommunication and Informatics (module)
(5. semester)


Timothy C. Lethbridge, Robert Laganiere (2005.), Object-Oriented Software Engineering, McGraw-Hill
Ian Sommerville (2007.), Software engineering, Addison-Wesley
Paul Clements, David Garlan, Paulo Merson (2010.), Documenting Software Architectures, Addison-Wesley

Grading System

ID 34269
  Winter semester
L1 English Level
L1 e-Learning
60 Lecturers
0 Exercises
60 Laboratory exercises


86 Excellent
72 Very Good
60 Good
50 Acceptable