Introduction to software engineering

Objectives and outcomes

Students understand the methods and techniques of professional software development, which includes: software processes, agile software development, requirements engineering, systems modelling, software architecture design, software design and implementation, software testing and evolution. Students acquire theoretical, methodological and practical knowledge about software system development, applying certain software technologies. Students understand and apply the principles and rules of information system design. Students understand and use the UML language for describing and writing software documentation. They can apply validation techniques, software verification and testing. They understand agile software development methods.

Lectures

The concept of software engineering. Process and life cycle models. Tools and techniques for processes modelling. Modelling in practice. Project planing and management. Progress monitoring. The staff of the project. A project plan. Gathering user requirements. The types of requirements and their characteristics. System design. Decomposition and modularity. Architectural styles and strategies. Characteristics of good design. Techniques to improve design. Evaluation, validation and documentation. Program implementation. Documentation. Program testing. A test plan. Test automation. System testing. Functional testing. Performance testing. Clarity, availability and sustainability. Installation testing. Documentation testing. End-user training and documents. System maintenance. Changes and their monitoring. The metrics in system maintenance. Evaluation and improvement of products, processes and resources.

Practical classes

Introduction to the UML language. A detailed presentation of the UML class diagram and practical application of PowerDesigner tools to case studies: Insulin pump management, MHC-PMS system and remote meteorological stations. Modelling the data structure on a conceptual and physical level. The presentation of the basic characteristics of each model using Power Designer of CASE tools. Creating a bank account: an example of code generation for the bank system. A case study – restaurant: An example of code generation – RMOS system.