Short Description
The purpose of software engineering is
to enable repetitively successful software development, that is
software projects where the software is developed according to its
specification and within given time and budget boundaries. In a
world of increasing complexity and growing demands on flexibility
it is necessary to combine software engineering principles with
agile methods like test-first development and extreme programming.
Having successfully completed the course, the student should be
able to:
-
* describe what is the difference between plan-driven and agile
processes and motivate the description
-
* account for what is significant for a software engineering
approach to software development and the principles behind it
* account for what is significant for a plan-driven approach to
software development and the principles behind it
-
* account for what is significant for an agile approach to
software development and the principles behind it
-
* describe several techniques (both classical software engineering
ones and agile ones) for:
-
- requirements elicitation and requirement management
-
- resource planning
-
- risk analysis and risk management
-
- test planning
-
- version management
-
- time and cost estimations
-
- project automation
-
* make judgements about applicability of a these techniques in some
known project, possibly combining plan-driven techniques with
agile ones
-
* decide and motivate why some technique is suitable for use in a
plan driven software project
-
* decide and motivate why some technique is suitable for use in an
agile software project
-
* find suitable software engineering methods for his or her work
in future projects
-
* easily adapt to work processes using software engineering
techniques
Syllabus
To successfully plan and lead a
non-trivial software project, it is
important to possess knowledge of all
project activities in a software
project. The course focuses on teaching
activities such as project planning and
management, quality assurance, version
management, basic cost and time
estimation, basic software metrics,
making and analysing requirements
specifications and basic validation and
verification of software.