Software Engineering
Module ID
Y501
Semester
5
Hours/Week - ECTS
4 – 5
Kakarontzas George
Associate Professor
Learning Outcomes
The course is an introduction to the techniques and methodology of designing, developing, implementing and deploying large software projects as well as their management. The course will present the techniques and methodologies related to the software life cycle, requirements analysis and software design, reliability testing and installation of software products.
Upon successful completion of the course, students will be able to:
- Name the four phases of a typical software development methodology and the activities that take place in each of them.
- Analyze the requirements of software projects with dozens of use cases.
- Design object-oriented software systems with hundreds of classes and dozens of packages.
- Illustrate the static and dynamic behavior of software systems with UML with hundreds of classes and dozens of packages.
- Participate as members of multi-member (>10) teams in object-oriented software systems development processes.
- Apply all 23 design patterns.
- Explain the characteristics of flexible software development methodologies (agile methods).
- Use at least two modern IDEs.
- Manage software projects with large teams (>10 people).
- Estimate the cost and completion time of large software projects with hundreds of classes and dozens of packages.
Indicative Module Content
- Introduction to Software Engineering.
- Analysis of software requirements.
- Object-oriented software systems.
- Static and dynamic modeling of software systems using UML.
- Processes for the development of object-oriented software systems.
- Design patterns
- Agile methods
- Modern Integrated Development Environments and related tools.
- Organization and administration of software projects, quality metrics, and complexity metrics.
- Cost and time estimation.