Aim of the course
The aim of the course is to introduce issues of software engineering in methodologically neutral terms, with emphasis on the problems of organization of IT projects and to enable the assimilation of practical knowledge of the design process for non-trivial design problems.
The scope and specificity of computer systems engineering and its relationship with software engineering and classic types of engineering. Process of software development and methodologies for its maintenance. Principles of project management in software engineering. Requirements for software; process of requirements engineering. Modelling, specifying and prototyping of systems. Architectural design and system architecture. Designing with multiple usage, user interface and special requirements. Rules of system verification and validation at different stages of software development. Selected issues of project management (team, cost, product quality, risk management). Errors in the organization of software production process and failures of software projects. Problems of system evolution (legacy systems, modification, restructuring, configuration management, quality management).
Overview of the course elements
Practical learning of design process, including the identification and reduction of "difficult" problems, correct definition of project tasks, selection of software development methods, project planning and control of its implementation. Practical activities are carried out in small teams, including project design and documentation for selected aspects of realized solutions, including documenting oriented towards future development.
1. Sommerville I.: Inżynieria oprogramowania, WNT, Warszawa 2003
2. Brooks, Mityczny osobomiesiąc : eseje o inżynierii oprogramowania. WNT, Warszawa 2000
3. Yourdon, E.: Marsz ku klęsce. Poradnik dla projektantów systemów. WNT, Warszawa 2007