05ooa - Object-Oriented Analysis Requirements analysis and...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
Object-Oriented Analysis Requirements analysis and domain analysis precede design So far we’ve looked at requirements analysis—understanding what the customer wants Domain analysis understands the customer’s problem—by identifying the classes comprising a problem domain. Design explores their contents, from outside in What’s the difference between traditional or structured analysis and OO analysis? Result of OO analysis is a representation of the classes of a problem domain (not functions) Identifying classes is category -formation Objects simulate some slice of the world which a computer system models Objects are a natural construct for simulation Classes of objects are a natural way to organize classes Infants learn to recognize objects and how to categorize them in their first few months A key insight of the child psychologist Piaget; cognitive scientists have done further work Adults rely on categorization to understand the world around them We create new categories all the time, for example, new makes of cars A problem with categories, however, is that they can be fuzzy and hard to define precisely Natural kinds : how do you define an elephant? a game? Prototypes : people see how close objects match a prototypical member of a category Why is the fuzziness of natural kinds a problem for OOSE? It's hard to be precise about defining categories That's why we need a methodology for OOSE Some categories are directly observable in requirements Others are more abstract, implicit or arising from implementation needs Candidate classes include: Tangible things referred to by common nouns in requirements specification or application domain (i.e., cookie, factory, triangle) Events with associated information (i.e., flight , game ). Abstract data stores (i.e., buffer, tree, hash table ) External interface ports (i.e., terminal, printer, window, menu ) Complex processes or operations (i.e., sort, edit command ) Note: verbs can also be classes! Especially processes than store state information. One might think of a scanner as an operation on tokens of class STRING But a scanner's behavior probably deserves its own abstraction As a subclass of STRING? Can anything be a class? What isn't a class? Indeed, category-formation is a fundamental human activity But there are practical limits: classes should have content, storing state information Simple operations (e.g., QUIT) Proper nouns (these are instances of classes, not classes) 1
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Classes with just one or two routines (probably not worth classifying) Redundant classes (merge synonyms, reuse classes in libraries) Again: develop a glossary of terms— Why would this be especially helpful to OO analysis? Brief dictionary-like definitions denoting how the term is used in domain
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 08/06/2008 for the course CSE 432 taught by Professor Blank during the Fall '08 term at Lehigh University .

Page1 / 8

05ooa - Object-Oriented Analysis Requirements analysis and...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online