Software Engineering

General

  • Course Code: 1742
  • Semester: 7th
  • Course Type: Scientific Area (SA)
  • Course Category: Compulsory Optional (CO-OP)
  • Scientific Field: Programming and Algorithms (PA)
  • Lectures: 4 hours/week
  • ECTS units: 6
  • Teching and exams language: Greek
  • The course is offered to Erasmus students
  • Recommended prerequisite courses: (1205) Object Oriented Programming
  • Coordinator: Stamatis Dimosthenis
  • Instructors: Bratsas Charalampos

Educational goals

The purpose of the course is to introduce the student to the basic concepts of software system development methodologies, their structure, the principles that govern them, as well as modern technological developments and trends. Upon successful completion of the course the student will be able to:

  • analyze the specifications of a software system.
  • describe the methods and techniques used to successfully develop quality systems within the time, technological and economic constraints.
  • understand, calculate and evaluate quantitative and qualitative indicators of software products.
  • compare methodologies, techniques and best practices at every stage of software system development.
  • develop in detail and precisely the functions of a software system.
  • recognize international terminology and examine relevant specifications.
General Skills
  • Searching, analyzing and synthesizing data and information, using the necessary technologies
  • Decision making
  • working independently
  • working in team
  • Exercising criticism and self-criticism
  • Promoting free, creative and inductive thinking
  • Working in an international environment
  • Working in an interdisciplinary environment
  • Generating new research ideas
  • Project planning and management

Course Contents

• Object-Oriented Technology – Introductory Concepts
• Unified Modeling Language – UML (Unified Modeling Language)
• Integrated Process – RUP (Rational Unified Process)
• Agile methods
• Software Refactoring
• Management of software projects using the SCRUM method
• Software evaluation with metrics
• Design principles
• Design patterns

Teaching Methods - Evaluation

Teaching Method
  • Face to face theoretical teaching (discussion, problem solving).
Use of ICT means
  • Using slide show software
  • Use of system design software
  • Using project management software
  • Use metric tool
  • Using an online learning platform (moodle)
  • Electronic communication with students
Teaching Organization
Activity Semester workload
Lectures52
Writing and presenting compulsory work20
Individual study and analysis of literature56
Laboratory exercises52
Total 180
Students evaluation

I. Final Written Examination (FWE) (35%) including:
- Short Answer Questions
- Problem solving
II. Evaluation of teamwork assignment deliverables (TWD) (65%)
- Assigned to groups of three students
- Requires software system development
In order to be awarded a credit, the total grade of the course (FWE * 0.35 + TWD * 0.65) must be at least five (5).
Assessment criteria are accessible to students on the course web site.

Recommended Bibliography

Recommended Bibliography through "Eudoxus"
  1. Object Oriented Software Engineering, Lethbridge, 2010, Second Edition.
  2. Object-Oriented Systems Analysis and Design Using UML, Simon Bennett , Ray Farmer , Steve McRobb, 2010
Complementary greek bibliography
  1. Systems Analysis Design UML Version 2.0 - An Object-Oriented Approach, A. Dennis, B. Wixom, D. Tegarden
Complementary international bibliography
  1. Object Oriented Analysis and Design with Applications, G. Booch, 3rd edition, 2008
  2. Applying UML and Patterns, 3rd Ed, C. Larman, 2007
Scientific journals
  1. IEEE Software
  2. IEEE Transactions on Software Engineering
  3. Empirical Software Engineering
  4. Journal of Systems and Software