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.
- define effective procedure for software design.
- distinguish between structured and unstructured procedures in siftware design.
- apply software engineering process models.
- employ methods to specify program requirements.
- analyze requirements and derive the most suitable software architecture.
- assemble software model using standard graphical and mathematical notations (UML).
- create final software product using selected language and programming environment.
- 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.Exams
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.
|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
- Course administration. Introduction to software engineering. Introduction to software requirements engineering.
- Processes and models in software requirements specification. Prezentation of software requirements document. Instructions on students project group coordination.
- Processes and models in software engineering (waterfall, evolutionary, component based, RUP). Prezentation of a tool for UML modeling.
- Introduction to software architecture and architectural stiles
- Introduction toobject-oriented software design (classes, objects, variables, methods, operations, responsibilities, polymorphism, inheritance, dynamic binding, etc.).
- Software modeling with basic UML diagrams. Specific presentation on UML class diagrams.
- Presentation of all relevant UML diagrams (statical and dynamical) and ways how to use them.
- Midterm exam
- Distributed object-oriented architecture (client-server architecture, broker based architecture, service oriented architecture, component based architecture).
- Methods for software testing with presentation of an environment for software design and testing.
- Formal software verification -1: introduction to propositional and predicate logic.
- Formal software verification - 2: temporal logic for spesifying software behavior.
- Other software architectures - 1: data flow architecture, event based architecture.
- Other software architectures - 2: data repository architecture, layered architecture, virtual machines, software architecture for process control.
- Final exam