Undergraduate Course: Software Engineering with Objects and Components (INFR09016)
|School||School of Informatics
||College||College of Science and Engineering
|Credit level (Normal year taken)||SCQF Level 9 (Year 3 Undergraduate)
||Availability||Available to all students
|Summary||This course provides an introduction to the design and implementation of software systems using object-oriented techniques. The techniques we consider are oriented to creating component based designs. The course will review basic object-oriented techniques and how they support the creation of component based designs. We also consider the high level modelling of systems as a means of supporting the Software Engineering process. Here we study the Unified Modelling Language (UML), which provides programming language independent notations for design.
Building on students' prerequisite knowledge of software development and object-oriented programming, we consider how object-orientation and the use of components impacts the development and maintenance of software.
We discuss the use of modelling in software development, including (i) where models are used purely informally, (ii) where they are used as reviewed documentation for designs, and (iii) model-driven development in which models are formal artefacts and code may be generated from them.
Students learn to document designs in the Unied Modeling Language, UML, with emphasis on class, sequence and state diagrams and the Object Constraint Language, OCL.
We study criteria that make one design better than another in context and introduce design principles and patterns that capture good practice.
Relevant QQA Computing Curriculum Sections: Software Engineering
Entry Requirements (not applicable to Visiting Students)
||Other requirements|| This course is open to all Informatics students including those on joint degrees. For external students where this course is not listed in your DPT, please seek special permission from the course organiser.
Students will be assumed to be able to read code examples in Java, and to be conceptually familiar with programming in a statically-typed object oriented language.
Information for Visiting Students
Course Delivery Information
|Not being delivered|
| 1 - Design simple object-oriented systems, making appropriate use of available components;
2 - Design simple software components, making sensible API decisions;
3 - Evaluate and evolve object-oriented software designs, making use of common design patterns if appropriate;
4 - Create, read and modify UML diagrams documenting designs;
5 - Discuss the use of modelling in software development, e.g. why and how models of software can have varying degrees of formality.
|* Stevens with Pooley, Using UML: Software Engineering with Objects|
and Components, Pearson (second edition)
|Course organiser||Dr Perdita Stevens
Tel: (0131 6)50 5195
|Course secretary||Mrs Victoria Swann
Tel: (0131 6)51 7607