Jenny Harlow

From CSSEMediaWiki
(Difference between revisions)
Jump to: navigation, search
m (Reverted edits by Ebybymic (Talk); changed back to last version by Jenny Harlow)
 
(16 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Navigation shortcuts: [[Wiki users]]:[[User:Jenny Harlow|Jenny Harlow]]
 
----
 
  
= Project =
 
Redesigning [part of] the Java Collections Framework
 
 
== Introduction ==
 
This project will attempt to redesign part of the [http://download.oracle.com/javase/tutorial/collections/index.html Java Collections Framework] from the point of view of 'if we were starting again, what might we do'.  The whole framework is huge, and includes many specialised features such as the [http://download-llnw.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/package-summary.html java.util.concurrent] classes.  This project will focus on what we might consider to be the main everyday usage collections - the ones that come into almost everything we might want to write: lists, sets, maps.
 
 
== Background ==
 
In COSC324 Wal emphasised the use of Collections for efficient programming.  He pointed out some of the ways in which the Java Collections Framework uses design patterns (wrappers, [[Iterator|iterators]], [[Factory Method|factory methods]]), but also some of the glaring Arrghghgs (the OO term seems to be [[antipatterns]]) that there seem to be in the current design.  Naturally we all nodded wisely and agreed that it is just terrible ...  It's easy to criticise - can I do any better?
 
 
= Design Study =
 
 
== Requirements ==
 
My aim is to create a design for a collections framework that includes lists, sets and maps and provides equivalent functionality to the existing [http://download.oracle.com/javase/tutorial/collections/implementations/index.html|general-purpose implementations]. 
 
 
My initial thinking about this project made me realise that a major issue for Collections is contracts:  Collections are for other programmers to use and so using and abiding by [[Design by contract|design by contract]] has to be just as important, if not more so, as conspicuous display of [[Gang of Four 1995|GoF]]-authorised design patterns.  Am I claiming the design by contract is more important here than in some of the other projects?  No, but I am saying that it is very very relevant when designing a framework whose sole purpose is to provide objects to be used by clients. 
 
 
== Optional extras ==
 
If I have time I am interested in the idea of a performance test suite for collections, running some standard tests and providing a summary of results.
 
 
 
 
 
== Constraints ==
 
 
== Review of the Java Collections Framework ==
 
=== The good ...===
 
=== The bad ... ===
 
=== And the ugly ... ===
 
 
 
== Initial Design ==
 
 
 
=== Diagram ===
 
 
 
=== Description of Classes ===
 
 
== Design Critique ==
 
 
 
 
 
== Design Improvements ==
 
 
I have set up a separate page [[Jenny's Design scratch-pad|design scratch-pad]] for thoughts-in-progress that are too open-ended to  have made it here yet.
 
 
= Files =
 
 
 
= Acknowledgements =
 
 
--[[User:Jenny Harlow|Jenny Harlow]] 05:41, 10 August 2010 (UTC)
 

Latest revision as of 03:17, 25 November 2010

Personal tools