Models and methods of software engineering

Objectives and outcomes

Students are familiar with different types of software modelling, their key features, as well as with the best-known methods that provide a systematic approach to software development. They know the most important types of software modelling. They know how to interpret, critically assess and create software models of different types. Students can select the appropriate type of models to describe a certain aspect of the software system. They are familiar with the key features of the most famous methods used in modern software engineering.

Lectures

Principles of software modelling – modelling key software elements, providing perspective, enabling effective communication. Features of software models – completeness, consistency, correctness. Syntax, semantics and pragmatics of software models. Metamodels. Preconditions, postconditions and invariants. Types of modelling – data modelling, behavioural modelling, structural modelling. Analysis of software models. Heuristic method of software engineering. Formal methods. Software specification languages. Prototype methods. Agile methods and rapid software development.

Practical classes

Analysis of case studies using different models and software specification languages ​ covered in lectures. Illustration of different software modelling approaches using examples of well-known software. Software model analysis exercise – analysis of correctness, completeness, consistency, traceability, interaction analysis (flow control). Different models for different aspects of a software system – structural model, data model, behavioral model. Discussion about software engineering methods covered in lectures and presentation of case studies of the application of various methods in software development.