200 likes | 335 Views
. Classification is hard.How do you decide what is important?What is important for animals? Why pick those characteristics? (Maybe those are important for some purposes, though.)What about chemicals?. Identifying Classes and Objects. Classical categorizationConceptual clusteringPrototype theory
E N D
1. Classification
2. Classification is hard.
How do you decide what is important?
What is important for animals? Why pick those characteristics? (Maybe those are important for some purposes, though.)
What about chemicals?
3. Identifying Classes and Objects Classical categorization
Conceptual clustering
Prototype theory
4. Classical Categorization All entitities that have a given property or collection of properties in common form a category.
Necessary and sufficient properties.
5. Conceptual Clustering Create a concept, and see how close it is to the concept.
6. Prototype theory How closely does it resemble a set of prototype objects.
7. Approaches to Analysis Classical Approaches
Shlaer and Mellor
Tangible things: Cars, telemetry data, pressure sensors
Roles: Mother, teacher, politician
Events: Landing, interrupt, request
Interactions: Loan, meeting, intersection
8. Database modeling perspective
People: Humans who carry out some function
Places: Areas set aside for people or things
Things: Physcial objects, or groups of objects, that are tangible
Organizations: Formally organized collections of people, resources, facilities, and capabilities having a defined mission, whose existence is largely independent of individuals
Concepts: Principles or ideas not tangble per se; used to organize or keep track of business activities and/or communications
Events: Things that happen, usually to something else at a given date and time, or as steps in an ordered sequence
9. Coad and Yourdon
Structure: “Is a” and “part of” relationships
Other systems: External systems with which the application interacts
Devices: Devices with which the application interacts
Events remembered: A historical event that must be recorded
Roles played: the different roles users play in interacting with the application
Locations: Physical locations, offices, and sites important to the application
Organizational units: Groups to which the users belong
10. Use Case Analysis The design is good if it fits the use cases.
Compile a set of scenarios.
Step through them.
CRC Cards
Class/Responsibilities/Collaborators
Used to help record the use case analysis
Can spread them on a table, etc.
11. UML What is the point of a notation?
What does a layering diagram mean?
12. Multiple Views There is a single system design, but no single diagram of it serves to capture all the essence.
You can think of it as an object that requires multiple camera angles to capture all of it.
13. Types of Diagrams Structure diagrams
Package diagram
Class diagram
Component diagram
Deployment diagram
Object diagram
Composite structure diagram
Use dase diagram
Activity diagram
State machine diagram
Interaction diagram
Sequence diagram
Communication diagram
Interaction overview diagram
Timing diagram
14. Use In Practice Let it be driven by your needs.
No need to diagram for the sake of diagramming.
How do you know you need one?
Do not need to be too rigid about it, the point is communication, to others and also to yourself.
15. Conceptual, Logical, Physical Models Conceptual model is in the problem domain.
Logical model is implementable, but not specific to a language, contains key abstractions.
Physical model is specific to the programming language.
16. Package Diagram Can be used to organize classes, also use cases. pcpc
17. Public: Visible outside of the package
Private: Visible only inside the package
18. Dependency relationship
Use an arrow
Can aggregate if we go up.
Draw
Can be a import or access.
20. Component Diagrams A component diagram drills down one level from the package diagram.
A component.
Multiple components being connected.