SOFTWARE SPECIFICATION AND MODELLING

Objectives and outcomes

Educating students about writing a formal software specification that includes description of functional
requirements, as well as static and dynamic models of software systems. Students are able to conduct
an analysis of complex software systems, write a software requirements specification, as well as to use
formal methods based on UML for modelling static and dynamic aspects of the systems and software.

Lectures

The key model of software systems. The relationship among requirements specification, design
specification and implementation of the software. The basis of engineering requirements, a process,
formulation, analysis, specification, verification and validation of the requirements. Writing a formal
document of software specification. The basics of software design, static and dynamic modelling.
The basic elements of UML, structure, organisation and metamodel. UML diagrams: use case diagrams,
class diagrams, object diagrams, collaboration diagrams, sequence diagrams, activity diagrams, state
diagrams, component diagram. Advanced UML modelling: interfaces, packages and modelling of
physical architecture. Architectural and design patterns and their applications in modelling of software
architectures.

Practical classes

Using free software tools based on UML. Demonstrating and discussing the processes of creating all
types of UML diagrams for a specific software system. Training in writing a software specification document.