Module Description
Software engineering (SE) is concerned with developing and maintaining software systems that behave reliably and efficiently, are affordable to develop and maintain, and satisfy all the requirements that customers have defined for them. It is important because of the impact of large, expensive software systems and the role of software in safety-critical applications.
Within this framework, this course is concentrating in Object Oriented technology, providing the students with the background, ability and skills to perform as professionals in systems’ development, as well as, in education and research.
Key Contents:
- Object Oriented technology – Fundamentals
- Unified Modeling Language
- Rational Unified Process
- Use Cases, Use Case Diagram
- Use Case Point Estimation Effort
- Software Prototyping
- Conceptual model
- Activity Diagram
- System Sequence Diagram
- Contracts
- Sequence diagram
- General Responsibility Assignment Patterns
- Class Diagram, Class relationships
- State machine Diagram
- Package diagram
- Component diagram
- Deployment diagram
The evaluation is based on written exams and work presentations.
Alternative Evaluation Methods
by undertaking projects
Module Objectives
know the basics of object-oriented programming and learn the basic principles of software engineering, including how to develop large systems using UML. Covers requirements, modelling, design, architecture, and basic project management. Focuses on concepts such as reuse, quality, iterative development, and risk management. Includes many exercises, including projects based on a client-server framework. Presents UML class diagrams and state diagrams in depth. Implemented examples are in Java.
Its specific goals are:
- To provide the students with a sound understanding of the fundamental concepts of the Object Oriented Technology
- To facilitate the understanding of the UML notation and particularly the Object Oriented Analysis and Design with the Rational Unified Process
- To reach the realistic application of Object Oriented development within a variety of problem domains
Bibliography
- Object Oriented Software Engineering – Practical Software Development Using UML and Java, T. Lethbridge & R. Laganiere, 2010
- Software Engineering, (in Greek), M. Giakoumakis, N. Diamantidis, Stamoulis edition, 2009
- Applying UML and Patterns, 3rd edition, C. Larman, 2007
- ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ, S.L. Pflegger, εκδ. Κλειδάριθμος, 2003
- Software Engineering, 8η έκδοση, Sommerville, 2007
- Object Oriented Analysis and Design with Applications, G. Booch, 3rd edition, 2008