280 likes | 455 Vues
Survey reusability through Object Oriented Design. Survey reusability through Object Orient Design. Tuesday, 30 September 2014. Agenda. MR and IT: separated at birth? Presentation of OOD concepts Example of an OOD survey system: BMRB ’ s PTK OOD: a future for Market Research?. Introduction.
E N D
Survey reusability through Object Oriented Design Survey reusability through Object Orient Design Tuesday, 30 September 2014
Agenda • MR and IT: separated at birth? • Presentation of OOD concepts • Example of an OOD survey system: BMRB’s PTK • OOD: a future for Market Research?
Introduction Statistics and IT: close relatives? • Same father: Blaise Pascal (1623-1692) • Inventor of the first mechanical adding machine (1642) • Formulated the mathematical theory of probability (1654) • They have unachievable goals • Bug free software • Reliable and actionable information • Dusty image… slowly improving
Introduction Evolution • Machine code and assembly • Structured languages (1971) • GUI languages (1991) • Object oriented environment (2001) Card column punch Quantime, Bellview(mid 70s) In2itive, Askia (mid 90s) …
The concepts… design The design stage is not an option, it’s a must Design is about managing complexity: a design method helps you to split big projects into manageable chunks that you will be able to comprehend separately In object-oriented design, complexity is managed using abstraction “Abstraction is the elimination of the irrelevant and the amplification of the essential” Robert Martin
Object Oriented Design OOD is an attempt at unifying the world into hierarchical concepts Cars, cycles and trains are vehicles Motorcycles and bicycles are cycles My Peugeot is an implementation of the “vehicle” class An object is sometimes the class or the implementation A vehicle is a virtual class
Object Oriented Design Objects have: • Behaviours (they do things) referred as methods • Properties or states (they have things) referred as attributes
Methods Vehicles have a Start and a Stop method…. A uniform way to start and to stop among all implementations Some sub-classes of vehicles may have methods specific to them
Attributes Vehicles usually have a maximum speed Land vehicles have a number of wheels
3 founding paradigms Encapsulation Inheritance Polymorphism
Paradigm 1: encapsulation An object is a black-box. You do not need to see what’s inside to use it Encapsulation also means that an object includes everything it needs: both the data and the operations on it (methods) The encapsulation concept is very powerful because it allows an efficient division of labour in large projects
Paradigm 2: inheritance Reusability is another flagship of OOD The complex job is done once and for all in a parent class. And it is tested once! Deriving and Overriding
Paradigm 3: polymorphism Generally, the ability to appear in many forms Here the ability to process objects differently depending on their class
A real life example Survey reusability through Object Orient Design BMRB, the TGI and the PTK
Background • Very large survey (23 000 responses, 30 000 interviews) • Questionnaire scanned (hence data needs to be cleaned) • Large printed volumes produced • Need a custom tool
Background (prior to 1998) • The edit script used CCP (PTT’s Star software – sta spec) • 10 000 lines of script • The reporting used PTT’s Startab- stb spec • The weighting used QSL • Pressure was on to deliver a multi language / multi country system able to deliver on a quarterly base
The TGI questionnaire • Very repetitive subjects (baked beans, sausage rolls, soap,…) • Edited in the same manner • Reported in the same manner A case for OOD…
Subjects • Easy to define • Easy to maintain • Concurrent access
The edit language CCP free Brand / response independent Overridable
Conclusion • PTK is still ahead of its time • But reusability was its raison d’etre • What about commercial packages?
Object Oriented Survey? • Improve the library concept • AskML : interoperability made possible • Conjoint analysis on all packages? • Metaquestions in Dimensions
Thanks • Steve Harris • Kevin Wavell • Mark Pietronave • Steve Taylor