SEOC Lecture Notes

The course uses UML as the basis for the design of systems implemented in Java.

This page indexes the lecture notes with notes and readings. These notes guide your required and suggested readings throughout the course. Paper copies of the slides will be made available at the lectures and from the ITO.

You may want to consult Previous years' notes for additional material.

SEOC Lecture Notes and Readings
Week Date Lecture Notes Description Readings
1 23/09/2009 Short SEOC Presentation
1 25/09/2009 Lecture Notes 01

[Slides with Notes]

SEOC Introduction

This lecture provides a general introduction to Software Engineering and to the SEOC course.

Required Readings

  • UML course textbook
    • Chapter 1 on the Introduction to the Case Studies.
    • Chapter 2 on the Background to UML.
  • B. Meyer. Software Engineering in the Academy. IEEE Computer, May 2001, pp. 28-35. [DOI link]
  • R.N. Charette. Why Software Fails. IEEE Spectrum, pp. 42-49, September 2005. [DOI link]
  • B. Nuseibeh. Ariane 5: Who Dunnit? IEEE Software, pp. 15-16, May/June 1997. [DOI link]
  • J.-M. Jezequel, B. Meyer. Design by Contract: The Lessons of Ariane. IEEE Computer, pp. 129-130, January 1997. [DOI link]
  • M. Grottke, K.S. Trivedi. Fighting Bugs: Remove, Retry, Replicate, and Rejuvenate. IEEE Computer, pp. 107-109, February 2007. [DOI link]

Suggested Readings

  • I. Sommerville. Software Engineering, Eighth Edition, Addison-Wesley 2007.
    • Chapter 1 for a general account of Software Engineering
    • Chapter 3 on Critical Systems
    • Chapter 4 on Software Processes
  • SWEBOK Guide to the Software Engineering Body of Knowledge. 2004 Version, IEEE. [DOI link]
  • A. Avizienis, J.-C. Laprie, B. Randell and C. Landwehr. Basic Concepts and Taxonomy of Dependable and Secure Computing. IEEE Transactions on Dependable and Secure Computing 1(1):11-33, January-March 2004. [DOI link]
  • N.G. Leveson, C.S. Turner. An investigation of the Therac-25 accidents. IEEE Computer 26(7): 18-41, Jul 1993. [DOI link]
  • D.R. Wallace, D.R. Kuhn. Lessons from 342 Medical Device Failures. In Proceedings of HASE 1999, pp. 123-131. [DOI link]
2 29/09/2009 Lecture Notes 02

[Slides with Notes]

Gathering and Organising Requirements

This lecture provides a general overview on Requirements Engineering. It uses sample UML designs drawn from the coursebook case studies. The main objective is to highlight requirements engineering practices, references and resources.

Required Readings

  • I. Sommerville. Integrated Requirements Engineering: A Tutorial. IEEE Software, January/February 2005, pp. 16-23. [DOI link]

Suggested Readings

  • I. Sommerville, P. Sawyer. Requirements Engineering: A Good Practice Guide. John Wiley & Sons, 1997.
  • G. Kotonya, I. Sommerville. Requirements Engineering: Processes and techniques. John Wiley & Sons, 1998.
  • I. Sommerville. Software Engineering, Eighth Edition, Addison-Wesley 2007.
    • Chapter 6 on Software Requirements.
    • Chapter 7 on Requirements Engineering Processes.
  • M. Jarke. Requirements Tracing. Communications of the ACM, Vol. 41, No. 12, December 1998. [DOI link]
  • S. Robertson, J. Robertson. Mastering the Requirements Process. Addison-Wesley, 1999.
  • J. Boegh, S. De Panfilis, B. Kitchenham, A. Pasquini. A Method for Software Quality Planning, Control, and Evaluation. IEEE Software, 16(2):69-77, 1999. [DOI link]
2 02/10/2009 Lecture Notes 03

[Slides with Notes]

Use Cases

This lecture introduces the basic notation for use case diagrams. Use case templates allow the desciption of use case information.

Required Readings

  • UML course textbook, Chapter 3 on Use Cases
3 06/10/2009 Invited Industry Presentation

[Slides]

Invited Industry Presentation by P&G.
3 09/10/2009 Lecture Notes 04

[Slides with Notes]

Software Design and Class Diagrams

This lecture introduces software design in terms of objects and components. It also introduces class diagrams, the UML notations for capturing some (architectural) software design aspects of objectd-oriented systems.

Required Readings

  • UML course textbook
    • Chapter 4 on Class Diagram: Classes and Associations
    • Chapter 5 on Class Diagram: Aggregation, Composition and Generalization
    • Chapter 6 on Class Diagram: More on Associations
    • Chapter 7 on Class Diagram: Other Notations
  • P. Kruchten. The 4+1 View Model of architecture. IEEE Software, 12(6): 42-50, November, 1995. [DOI link]

Suggested Readings

  • Chapter 14 on Object-oriented design, I. Sommerville. Software Engineering, Eighth Edition, Addison-Wesley 2007.
  • P. Kruchten, H. Obbink, J. Stafford. The Past, Present and Future of Software Architecture. IEEE Software, 23(2):22-30, March/April, 2006. [DOI link]
  • B. Meyer. Applying ``design by contract''. IEEE Computer, 25(10):40-51, 1992. [DOI link]
4 13/10/2009 Lecture Notes 05

[Slides with Notes]

Design Patterns

This lecture introduces the basic concepts of Design Patterns. It discusses how design patters support reuse strategies.

Required Readings

  • UML course textbook, Chapter 17 on Design Patterns
  • T. Winn, P. Calder. Is This a Pattern?. IEEE Software 19(1):59-66, January/February, 2002. [DOI link]

Suggested Readings

  • E. Gamma, R. Helm, R. Johnson, J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.
  • M. Schumacher, E. Fernandez-Buglioni, D. Hybertson, F. Bushmann, P. Sommerlad. Security Patterns: Integrating Security and Systems Engineering. John Wiley & Sons, 2006.
4 16/10/2009 Lecture Notes 06

[Slides with Notes]

Validation: CRC Cards

This lecture introduses CRC cards as validation and modelling method, which supports principles of design by responsibilities (responsibility-based modeling or responsibility-driven design).

Required Readings

  • K. Beck, W. Cunningham. A Laboratory for Teaching Object-Oriented Thinking. In Conference Proceedings on Object-Oriented Programming Systems, Languages and Applications (OOPSLA '89), ACM, pp. 1-6. [DOI link]

Suggested Readings

  • T. Mens, T. Tourwe. A survey of software refactoring. IEEE Transactions on Software Engineering, vol.30, no.2, pp. 126-139, February, 2004. [DOI link]
5 20/10/2009 Lecture Notes 07

[Slides with Notes]

Component Diagrams

This lecture discusses the rationale and introduces the notation for component diagrams.

Required Readings

  • UML course textbook, Chapter 7 on Class Diagram: Other Notations
  • UML course textbook, Chapter 8 on Component Diagrams
5 23/10/2009 Lecture Notes 08

[Slides with Notes]

Sequence Diagrams

This lectures introduces sequence diagrams. One of the UML interaction diagrams, which capture (i.e., model) dynamic system aspects.

Required Readings

  • UML course textbook, Chapter 9 on Interaction Sequence Diagrams
6 27/10/2009 Deliverable 1 Notes

[Deliverable 1 Notes]

Deliverable 1 Notes

Question/Answer session.

6 30/10/2009 No Lecture Deliverable 1 Deadline
7 03/11/2009 Lecture Notes 09

[Slides with Notes]

Communication Diagrams

This lecture introduces communication diagrams, formerly named collaboration diagrams. Communication diagrams provide an alternative representation (to sequence diagrams) for dynamic system aspects.

Required Readings

  • UML course textbook, Chapter 10 on More on Interaction Diagrams

Suggested Readings

  • K.J. Lieberherr, I.M. Holland. Assuring good style for object-oriented programs. IEEE Software 6(5):38-48, 1989. [DOI link]
7 06/11/2009 Lecture Notes 10

[Slides with Notes]

Activity Diagrams

This lecture introduces activity diagrams.

Required Readings

  • UML course textbook, Chapter 11 on Activities
8 10/11/2009 Lecture Notes 11

[Slides with Notes]

State Machines

This lecture introduces state machines. It also highlights relationships between state machines and activity diagrams.

Required Readings

  • UML course textbook, Chapter 12 on State Machines

Suggested Readings

  • D. Harel. Statecharts: A Visual Formalism for Complex Systems. Science of Computer Programming, Elsevier, 8(3):231-274, 1987. [DOI link]
  • D. Harel. Statecharts in the making: a personal account. Communications of the ACM, 52(3):67-75, 2009. [DOI link]
8 13/11/2009 Lecture Notes 12

[Slides with Notes]

Software Testing

This lecture introduces the basic concepts of software testing. It also highlights how use cases drive software testing.

Required Readings

  • J.A. Whittaker. What is Software Testing? And Why is it so Hard?. IEEE Software, 17(1):70-79, January/February, 2000. [DOI link]
  • P.C. Jorgensen, C. Erickson. Object Oriented Integration Testing. Communications of the ACM, 37(9):30-38, September, 1994. [DOI link]
9 17/11/2009 Lecture Notes 13

[Slides with Notes]

Deployment Diagrams

This lecture introduces deployment diagrams.

Required Readings

  • UML course textbook, Chapter 14 on Deployment Diagrams
9 20/11/2009 Lecture Notes 14

[Slides]

SEOC - Open Issues and Course Summary
10 24/11/2009 No Lecture
10 27/11/2009 No Lecture Deliverable 2 Deadline

This page is maintained by Massimo Felici (mfelici@staffmail.ed.ac.uk)


Home : Teaching : Courses : Seoc : 2009_2010 

Informatics Forum, 10 Crichton Street, Edinburgh, EH8 9AB, Scotland, UK
Tel: +44 131 651 5661, Fax: +44 131 651 1426, E-mail: school-office@inf.ed.ac.uk
Please contact our webadmin with any comments or corrections. Logging and Cookies
Unless explicitly stated otherwise, all material is copyright © The University of Edinburgh