Personal Information
Research Projects
Open Positions

By Geek & Poke

Software Engineering

Course Description

This course focuses on issues related to software lifecycle in general and to the individual phases that constitute the software lifecycle: requirements (elicitation, analysis, documentation, quality), design (architecture and technical design, documentation, quality, architectural styles), implementation, testing (unit, integration, system testing), delivery (user training, documentation). The course’s lab aims at training the students in the use of integrated development environments that will be employed for the development of the course's project. The lab further focuses on issues related to the different phases of the project (requirements, design, implementation, testing, delivery).

Learning Objectives & Expected Outcomes

The study and application of systematic processes, methods and techniques for software design, implementation and testing. The main outcomes of the course is that the students will be capable to:
  • Elicit, analyze and specify requirements for a large scale software system. 
  • Specify the architecture of the system based on the requirements specification.
  • Design and implement the subsystems of the system’s architecture.
  • Test the system in a principled way that guarantees the quality of the result.
  • Organize the delivery of the system and the user’s training.

Literature and Study Material

The main textbooks for the course are:
  • Software Engineering - Theory & Practice, S. L. Pfleeger, ISBN 978-960-461-477-6 
  • Software Engineering, I. Sommerville, ISBN 978-960-461-220-8
Apart from the above textbooks you can download the course's and labs lecture notes (ppt, pdf) from the following git hub repo: github.com/zarras/myy803-slides.

Some examples/tutorials showing the basic structure of popular GoF pattern can be found in the following git hub repo: github.com/zarras/myy803-GoF-patterns-tutorials

Some examples/tutorials about spring, jpa and other related stuff can be found in the following git repo: github.com/zarras.


The project is developed by groups of 2-3 students.
The requirements for the project, important design hints and related material (templates for release plan, release reports, etc) can be found here.

NOTICE !! Find here some important guidelines and standard conventions that should be followed in the implementation of the project.

NOTICE !! Find here a brief introduction to unit testing and test driven development.

NOTICE !! Find here a JUnit tutorial that can be used for the development of your tests.
  • INSTRUCTIONS !!! for the delivery of each release:
    • For the delivery of the source code use the turnin program:
      • turnin deliverables@myy803 <your-project>.zip, where your-project is a zip file of your Eclipse project.
      • ATTENTION -- For the review of the project prepare a small DEMO video, about 15' minutes, using a screen capture tool like ActivePresenter for example. In the demo you should illustrate the execution of the user stories that you implemented. During the demo further state if there are any user stories that you DID NOT implement. Finally, demosntrate the execution of the JUnit tests that you prepared for the project.
      • For the delivery of the demo 
        • Make an account - if you do not have one - on GitHub
        • Put the demo video on GitHub.
        • In the project folder that you turnin include a txt file named DEMO-LINK.txt that contains the link that points to the GitHub folder that contains the video. 
      • For the delivery of the release report include a pdf of the report in the project forder.
  • To register your project group, fill this form - Deadline 9/3/2022.
  • Deadline for the project: 18/5/2022 23:59.


  • NEW!! The overall grades for September 2022 can be found here.

  • The project grades can be found here
    • ATTENTION Given that this year the project was entirely new, groups with project grades < 5 can also participate to the final exams in June and September.
      • In these cases, success to the final exams will require grades > 5 in the quiz.
      • So the final grade will be based on the following formula:
        • 0.6 * quiz + 0.4 * project - if quiz >= 5
        • min (written exam, project) - if quiz < 5
  • Project Review Schedule is not available here. The review will take place via MS Teams in the course's team with the following code r5dpt3e. The schedule is very tight, so make sure that you join the team ontime. Have your PC with the application installed ready for a live demo!!

  • NEW !!! Due to the students' elections the lecture on 18/5 will take place a  day earlier on 17/5 at 18.00 in I5.
  • NEW !!! In the final exam you can bring with you an A4 cheat sheet with your personal notes.
  • Join this year's MS-Teams with the following code r5dpt3e. We will use this  team mainly for announcements and further communication.
  • February 2022 Exams - The overall grades (project and final exam, if both greater  than the respective limits) can be found here.
  • During the final exam of the course you will not be able to have access to the course's slides and other related material.

Useful Links