Undergraduate Course: Software Engineering with Objects and Components (INFR10056)
|School||School of Informatics
||College||College of Science and Engineering
|Credit level (Normal year taken)||SCQF Level 10 (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 competent in basic Java programming.
Interested students who lack experience with Java, but know a similar
language such as C++ or C#, should contact the lecturer.
Information for Visiting Students
|Pre-requisites||Visiting students are required to have comparable background to that
assumed by the course prerequisites listed in the Degree Regulations &
Programmes of Study. If in doubt, consult the course lecturer.
|High Demand Course?
Course Delivery Information
|Not being delivered|
On completion of this course, the student will be able to:
- Design simple object-oriented systems, making appropriate use of available components.
- Design simple software components, making sensible API decisions.
- Evaluate and evolve object-oriented software designs, making use of common design patterns if appropriate.
- Create, read and modify UML diagrams documenting designs.
- 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||Prof Perdita Stevens
Tel: (0131 6)50 5195
|Course secretary||Mrs Victoria Swann
Tel: (0131 6)51 7607