Principles of Software Engineering

Academic Semester:
Course TypeReference NumberSubprogram
CompulsoryTheory: ΤΠ40Κ4
Lab: ΤΠ41Κ4
Software Engineers
SemesterAcademic YearHours per week
Spring2ndTheory: 3 Lab: 2
Theory: Final written examination on the material presented during the semester (100%). The examination includes theory questions (from 3-5) and Exercises (from 1-2). Lab: The final grade is calculated by writing laboratory exercises (10%), project develo611
PrerequisitesTeaching methodTeaching Language
Lectures with parallel laboratory classesGreek, English

Academic Staff

Faculty in charge: 
nv's picture
βιδάκης νικόλαος
Vidakis Nikolaos
Associate Professor
Αναπληρωτής Καθηγητής

Course Outcome

In today's information society, the software development costs rise whilst the cost of hardware decreases. The software development period is increased and maintenance costs of software grow. Software errors have increased whilst the hardware errors have been minimized. In order to solve the above problems, we should follow structured software development methods.
Software Technology or otherwise "Software Engineering" incorporates the whole range of tasks that must be completed for proper software implementation. This work is summarized in Analysis, Design, Implementation, Validation & Verification, Project Management and Software Development & Maintenance.
The course Principles of Software Engineering is intended address issues related to the stages of Software Engineering; Analysis, Design and Validation & Verification at an introductory level. Specifically, it aims to familiarize the student with basic concepts, tools, diagrams, models, methods and analysis methodologies, design and maintaining software and thus convey the basic skills of Software Engineering.
After completing the course the student will have acquired the necessary knowledge and skills to:

  • Be familiar with basic concepts of analysis, design and maintaining software systems.
  • Be able to analyze, plan and maintain simple software systems.
  • Be aware of the value of quality and how it is ensured in software systems.
  • Be able to use at least one CASE tool and UML.Be aware of the value of the methodologies and be able to use in practice at an elementary level the Unified Software Development Process (USDP).


Course Syllabus

  • Introduction
  • Systems Engineering
  • Software Processes
  • Software Requirements
  • Requirements Engineering Processes
  • System Models
  • Software Prototyping
  • Formal Specification
  • Architectural Design
  • Architecture of Distributed Systems
  • Design of Object-Oriented Software
  • Real-time Software Designing
  • Design Software with Reuse
  • Validation and Verification
  • Software Testing

Recommended Bibliography

  • Ian Sommerville: Software Engineering (8th edition), Addison-Wesley, 2006
  • Ivar Jacobson, Grady Booch, James Rumbaugh: The Unified Software Development Process, Addison-Wesley, 1999
  • Ivar Jacobson, Magnus Christerson, Patrik Jonsson, Gunnar Oevergaard: Object-Oriented Software Engineering (A use case Driven Approach), Addison-Wesley, 1995
  • Rational Rose Home Page:
  • The Carnegie Mellon Software Engineering Home:


Head of the Department οf Informatics Engineering

Deputy Head of the Department οf Informatics Engineering

Address: Department of Informatics Engineering, School of EngineeringTEI of Crete, Heraklion, Crete, P.O Box: 71500
Tel: 2810-379716, 2810-379795, 2810-379853
Fax: 2810-379717

Tel: 2810-379776