Course Details

Course Information Package

Course Unit TitleSOFTWARE ENGINEERING
Course Unit CodeACSC383
Course Unit DetailsBSc Computer Engineering (Technical Electives) - BSc Computer Science (Required Courses) -
Number of ECTS credits allocated6
Learning Outcomes of the course unitBy the end of the course, the students should be able to:
  1. To explain the systematic approach to development of software as product emphasising the basic analysis and design phases of the software development lifecycle and to compare different development lifecycle models.
  2. To show knowledge and skills for specifying the system requirements in a given problem domain as starting point of development process applying Use Case modelling.
  3. To show ability to apply UML as de-facto standard for CASE working with Use Case, Class and Object, State, Collaboration and Sequence diagrams for analysis and design of object-oriented software systems.
  4. To describe and explain the nature of design as continuation of analysis and to be able to apply specific methods and techniques to system (architectural) and detailed (software) design.
  5. To introduce the concept of component-based software engineering as extension of objects, use of analysis and design patterns and development of complex systems based on frameworks.
Mode of DeliveryFace-to-face
PrerequisitesACSC155,ACSC223,ACSC382Co-requisitesNONE
Recommended optional program componentsNONE
Course Contents·  The nature of software engineering: Technology and Business processes, modelling software, complexity of software, estimation of risks, roles and responsibilities.
·  Software Development Life Cycle: Waterfall, Rational Unified Process, Agile process. Prototypes. CASE tools and reverse engineering.
·  Requirements analysis: Requirements and Specifications. Documentation.
·  UML: visual modelling language. Parts, views, models, tools.
·  Use Case modelling: Use Cases and Actors. Use Case-driven software development.
·  System Analysis: Approaches to modelling.
·  Object Orientation: The fundamentals. Objects as modules.
·  Object-Oriented Analysis: Information modeling. Object identification and applying Entity-Relationship modeling.
·  Object-Oriented Analysis: Dynamic modeling. Events and event tracing. Sequence diagrams. State modeling. Data flow modeling and diagrams.
·  System Design: System and software architecture. Basic architectural components. Design as a continuation of analysis. Implementation as a bridge between analysis and design.
·  Object-Oriented Software (detailed) Design: Software characteristics. External and internal quality factors. Modularity and its object-oriented interpretation and implementation. Class design guidelines.
·  Components, Patterns and Frameworks: Transition from objects to components and frameworks through analysis and design patterns.
Recommended and/or required reading:
Textbooks
  • S.Bennett, S.McRobb, R.Farmer. Object-Oriented Analysis and Design using UML, 3-d ed., McGraw-Hill, 2005.
References
  • P.Stevens, R.Pooley, Using UML. Software Engineering with Objects and Components. Addison Wesley, 1999.
  • F.Buschmann et.al. Pattern-Oriented Software Architecture. A System of Patterns. Vols.1,2 John Wiley and Sons, 2002.
  • Hans Van Vliet, Software Engineering. Principles and Practice, 3rd Edition, John Wiley & Sons, Ltd, 2008.
  • Reading of specific scientific papers.
Planned learning activities and teaching methodsFor the delivery of the class material, power point presentations are primarily used, along with the whiteboard. The lecture notes, consisting of slides presented in class, and additional material, are made available to the students through the course website.
Assessment methods and criteria
Tests20%
Homework20%
Final Exam60%
Language of instructionEnglish
Work placement(s)NO

 Εκτύπωση  Ηλεκτρονικό ταχυδρομείο