Personal Information
Research Projects

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 lecture notes here (updated/new versions; the zip file is updated whenever there is a new version).


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 of sprint-X (where X = 1, 2, 3) use the turnin program:
      • turnin <sprint-X>@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 10' 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 6/3/2020.
  • CANCELED DUE TO COVID-19 Deadline for sprint-1 of the project: 6/4/2020
  • NEW !!! Deadline for sprint-2 of the project: 25/5/2020.


  • September 2020 Exams - The overall grades (project and final exam, if both greater  than the respective limits) can be found here.  
  • SEPT 2020 - Guidelines for the exams:
    • During the exam you may use the course material (slides, book, etc.)
    • The exams will take place using the MS Teams platform.
    • To participate in the exams you should become a member in one of the following teams based on you family name. The codes for joinning the teams are given below:
      • From "ΑΓΓΕΛΟΥΛΗΣ" to "ΜΑΡΚΕΤΟΥ" join "Sept 2020 - Εξέταση Τεχνολογίας Λογισμικού Ι1" using qrzrshd 
      • From "ΜΑΣΟΥΡΑΣ" to "ΨΟΧΙΟΣ" join "Sept 2020 - Εξέταση Τεχνολογίας Λογισμικού Ι2" using etum7sx.
    • The deadline for becoming a member of the appropriate team is 12/9.
    • To take the exam you should join in the respective MS Teams meeting that will be scheduled at the exam date.
    • During the exam you will be given a quiz to turn in within a specific deadline. The deadline may be shorter than the overall 3 hours of the exam.
    • During the exam you should keep your cameras and microphones open according to the rules set by the University and the rules set by the Department of Computer Science and Engineering
    • At any time during the exam the instructor may ask you to present your student ID in the camera. 
  • June 2020 Exams - The overall grades (project and final exam, if both greater  than the respective limits) can be found here
  • Project 2020 grades.
  • To participate in the assessment of the course you can follow instructions given in this link - deadline 14/6.
  • The day and time of the online lectures has changed to Friday at 18:00-21:00. The next lecture will be on Fri 10/4.
  • The online lectures will begin on Mon 30/3 via the MS Team platform. You can join the lectures using this code: zmavtcw
  • IMPORTANT !!!!! : COVID-19 and the course project - due to the recent issues we face with  COVID-19 the project of the course will be delivered in a single phase at the end of the semester 11/5/2020. 
  • ATTENTION !!! For the final exam you can bring a cheat sheet (size A4) with your notes.

Useful Links