260 likes | 429 Views
Object Oriented Modelling. Object Oriented Modelling. Develop cognitive models to help discover and design OO software Focus is on finance applications High-level Concept Mapping techniques Map CMs to UML, patterns and code. What is a Concept?.
E N D
Object Oriented Modelling • Develop cognitive models to help discover and design OO software • Focus is on finance applications • High-level Concept Mapping techniques • Map CMs to UML, patterns and code
What is a Concept? • A regularity in entities, objects, activities or events • Designate a concept by a label • We use concepts as recognition devices • Concepts can be abstract/high-level or concrete/low-level
Examples of Concepts • Instrument, option, IBM stock • Pricing model, PDE, FDM • MC pricing engine • Risk System
Links • We ‘glue’ concepts together to form propositions • Meaningful relationships between concepts • A link is typically a verb or verb phrase • Source: text, word-of-mouth, experience
Examples of Links • FDM uses a PDE • An Asian option has various kinds of payoff • A Cheyette model is a kind of Asian option • Crank Nicolson is a FD scheme • A portfolio consists of instruments
Relationships with OO • Concepts correspond to classes and (sub)systems • Links correspond to ISA, aggregation and association relationships • We create a concept maps, evaluate it and then map to C++ classes and patterns • We recommend it!
Concept Map • A set of concepts with links connecting them • Concepts correspond to nouns, links to verbs and verb phrases • Originally used in Education • Duffy used it for Object Modeling Technique (OMT, 1995)
Why Concept Maps? • Forces us to think about the problem • Easier to understand and to discuss than ‘flat’ text • Front-end to UML and Design Patterns (Gamma et al) • Many stakeholders can understand them
Concept Mapping Process • We wish to develop techniques for creating concept maps • Cleat input and output (defined process) • Input: text, discussion, domain knowledge • Output: One or more (hierarchical) concept maps
Categories of Concept Maps • Describing the structure of (complex) objects • Describing dependencies in a dependency graph • Data flow in a ‘data graph’ • Any combination of the above
The Filtering Process • Texts tend to be ambiguous • People tend not to ask question • Get a common frame of reference ASAP • Apply standard questions
Questions • What is • What kinds of • How to • When, why • Relationship questions • Follow-on questions
Sources of Confusion • Noise (redundancy) • Silence • Overspecification • Contradiction • Ambiguity • Role (a ‘view’ of the ‘real’ thing, what is the latter?)
The Process • 1. Make a list of words/concepts in current problem • 2. Apply filtering process (modify list in 1.) • 3. Find the links between the words • 4. Construct sentences/propositions between the words in steps 2 and 3 • 5. Construct the concept map
The Map • 1. List key concept • 2. List supporting concepts at next level of generality • 3. Create links between main and supporting concepts • 4. Create cross-links between supporting concepts • 5. Goto step and execute for each supporting concept
What’s next? • Assuming we have a good feeling about the map, start design • UML components, classes and corresponding diagrams • Design patterns • C++ code
Tips on Text Input • At most 1 A4 • Describe what the system should deliver • What is the input? • Describe the activities in the process from input to output