Renaat Verbruggen CA421 Object-Oriented Patterns and Metrics

Pre-requisites: You must have completed either:

CA314 OO Analysis & Design or CA212 OO Design and Implementation

I have updated the page to reflect the lectures

This is a module in the first semester which is core for Software Engineering and optional for Information Systems.

Formerly some of the material was taught as part of CA401 Software Engineering so previous exam papers on that subject are useful and some are included below.

The main changes from previous years are: The main articles are now available on this site. As a result there is no handout of articles and papers. Hence all questions will be asked about these new papers. The metrics section is now separate to Cost Estimation and there is more emphasis on patterns throughout the object-oriented section both for design and for architecture, testing too is heavily based on Object-Oriented approaches.

The object-oriented section is based on C++ , java, patterns and low-level class design as the higher level design (e.g. UML) is in the module CA422.

The estimation approaches divide into parametric - those that involve formulae into which values are placed (COCOMO, CoCoMo II, SLIM etc.) - and non-parametric those based on building up data without using formulae, e.g. analogy etc.

On the metrics side it is important to understand why the metrics have been developed and what makes them "good" ie applicable. Some more emphasis on object-oriented metrics is given. Henderson-Sellers approach to metrics supercedes previous references to Ince and Shepperd and Kafura.

For testing, both the approaches and the metrics are important.

Please Note the overlaps between Patterns, Estimation, Testing and Metrics as all are OO based and metrics can ( and should) be easily related to all of the other three so don't pigeon-hole them (in other words be careful about "strategic" studying).

If you are to buy one book for the course then I recommend:

Object-Oriented Software Engineering:
Practical Software Development using UML and Java
Second Edition
Timothy C. Lethbridge and Robert Laganière
McGraw Hill, 2005
ISBN 0-07-710908-2

The first edition is still worth picking up 2nd hand:

ISBN 0-07-709761-0

Website associated with book, including lectures by authors etc. at:

http://www.lloseng.com

There are a number (41) of E-books online available through the library from within DCU.

http://www.dcu.ie/~library/Eresources/e-books.htm

At least 3 are directly relevant to this module:

Applied Java Patterns
By Stephen Stelting, Olav Maassen
Publisher : Prentice Hall PTR
Pub Date : December 01, 2001
ISBN : 0-13-093538-7
Pages : 598
Website: http: //authors.phptr.com/appliedjavapatterns/    
Metrics and Models in Software Quality Engineering, Second Edition
By Stephen H. Kan
Publisher : Addison Wesley
Pub Date : September 20, 2002
ISBN : 0-201-72915-6
Pages : 560
     
Design Patterns Explained: A New Perspective on Object-Oriented Design
By Alan Shalloway, James R. Trott
Publisher : Addison Wesley
Pub Date : July 09, 2001
ISBN : 0-201-71594-5
Pages : 368
website: http://www.netobjectives.com/dpexplained.  

2000 and 2001 Other exam papers should be available from your portals.


Topic
Reading material Comments
1. Introduction

Why the problem ?

Object-oriented features

The Write Stuff Text of article

Joel's 12 point Test for a Good Software Test

Foote : The Big Ball of Mud "pattern"

This material provides a justification for the course and the approach and you should read it as early as possible.

Here is the "Mud" summary and a classic on how to write un-maintainable code[BackGround]

1.Idioms and Canonical Classes The chapter 1 , chapter 2, From Eliens

Local file: canonical classes in java JavaWorld Link

Notes on polymorphism.and canonical classes

A Java vs. C++ comparison extracted by Michael O'Shea from Bruce Eckel's work. [BackGround]

Elienschapter4. and appendix C++. appendix java. [BackGround]

The Patterns Project

Details are available: Assignment description.

1.Patterns for Design

 

Brad Appleton's Overview

Notes from Lethbridge and Laganiere on patterns

The proxy pattern in ppt

Schmidts ACM article on Patterns

Gang of Four Patterns

Patterns Site Articles

http://hillside.net/patterns/

Brad Appleton's description of patterns: www.enteract.com/~bradapp/docs/patterns-intro.html

Patterns can be harmful

Eliens Notes on patterns.

2.Patterns for Architecture Notes from Lethbridge and Laganiere on architectural patterns

Schmidt's POSA notes on patterns (edited form)

 
3.Measurement

and Metrics

OO Metrics ppt notes updated

Chidamber and Kemerer A Metrics Suite for Object-Oriented Design

Eliens on CK metrics

Henderson-Sellers Change to LCOM

Using McCabe's Complexity Metric

Some Notes on a new study on CK

 

Study on CK metrics{ October 2006}
4.Estimation

Lecture Notes:

Introduction

CoCoMo

Further notes on Estimation are on NT: /public/renaat/CA4/estimation

Notes on

an excellent Comparison by Liming Wu, Calgary

Notes from Lethbridge and Laganiere on Cost Estimation and project management

Notes from Bowen Lee and Titchkosky

 

4.Estimation Very good overview of Cost Estimation at the University of Bournemouth(You should read these pages )

Summary Report from U.Calgary

Some pictures of the graphs associated with Londeix:

Lifecycle

SLIM curve

Trapezoid for project cost

5.Test Robert Binder Myths of Object oriented testing.

Lessons learnt from testing an Object-oriented project Zip file contains all gifs as well

Testing C++ programmes IPL report in pdf

Overview notes on Test Context Coverage

More on OO testing coverage metrics and context IPL report 2

Junit:

Cookbook

Cook's Tour

Notes that could help you with definitions and background from Lethbridge and Laganiere on quality and testing

Junit based on the work of Kent Beck and Erich Gamma.Original Link:

http://junit.sourceforge.net/

Part of the eXtreme programming approach, loads more on Junit and test-frst programming at:

http://www.junit.org/

Numbers indicate Topic Numbers (5 in total)    

The chapter 1 , chapter 2, chapter4. and appendix C++. appendix java. Powerpoint versions of these overheads are available locally in zip form , Mirrored from Anton Eliens web site. Anton has his complete book (second edition) on the web using a presentation program - you can get at it here and use the navigation to point at chapters etc. Extra C++ examples illustrating points in the notes are in html format here. These mirrored notes may contain dead references which you can follow by going to the site above.



Renaat Verbruggen Updated regularly