Download presentation
Presentation is loading. Please wait.
1
Object Oriented Design
2
Goals Levels of abstraction Workshop: group meeting for Pragmatic Web homework
3
What is Abstraction? A design technique that focuses on the essential aspects of an entity and ignores or conceals less important or nonessential aspects. (http://people.cs.vt.edu/~kafura/cs2704/abstraction.html)http://people.cs.vt.edu/~kafura/cs2704/abstraction.html
4
What is Abstraction? Programming in an appropriate level of abstraction means choosing ‘primitives’ that are appropriate for the problem (and to the programmer) at hand. Separates the programming task into two nearly independent tasks u solving the original problem in terms of “abstract primitives” u dealing with the details of implementing these abstract primitives (Leron, 1987)
5
What is Abstraction? What we’ve been doing so far (e.g. in the design of Frogger and Space Invaders)! A big part of OO design is about abstraction u Creating classes (attributes, operations) and specifying their interactions with other classes encapsulates functionality in meaningful high-level chunks or groups abstracts functionality to a higher level where concepts of the problem domain are better understood and communicated
6
A good abstraction is… Well named u meanings, intuitions, impressions, and expectations generated by a name accurately reflect the nature of the abstraction Coherent u contains a related set of attributes and behavior that makes sense from the viewpoint of the modeler Complete u contains all of the attributes and behavior necessary to manipulate the abstraction for its intended purpose Accurate & Minimal u does not contain attributes or behavior extraneous to the purpose for which it is defined (http://people.cs.vt.edu/~kafura/cs2704/abstraction.html)http://people.cs.vt.edu/~kafura/cs2704/abstraction.html
7
Why Abstraction? Crucial for creating tractable software because the real-world objects are too complex to be captured and understood in complete detail Creates a higher conceptual level that u hides implementation details u is closer to human cognition, how we think about a problem => Promotes understanding and affords communication
8
Levels of Abstraction Semantic Level Syntactic Level Machine Level Generation Specification Implementation
9
Specification Level: UML Sequence Diagram die () X [see shrimp] octopus:animal Generation Specification Implementation shrimp:animal try-to-eat ()
10
Implementation Level: VAT Generation Specification Implementation
11
Generation Level: Java Byte Code generated by Ristretto ® Generation Specification Implementation
12
Specification Level for AgentSheets Behavior Wizard Specification tool at the level of UML specifically for AgentSheets u Specify agent classes from predefined types u Specify behavior at a high level Generates behaviors at the implementation level (VAT) Generation Specification Implementation
13
Specification for End- Users Specify agent classes from predefined types
14
Specification for End-Users Specify behavior at a high level Implementation for End-Users High-level programming provides customized support for particular applications
15
Generation for End-Users Generates behaviors at the lower-level of implementation (VAT)
16
Meta-Specification: creating templates Different aggregations of underlying behaviors Different points of user control (parameters) Overlapping or disjoint
17
Issues Conceptual u Finding the right level of abstraction For EUP, knowing who the user is, is especially important u Deciding what to show, what to hide, how much detail, what should be visible to the user, what aspects of the behavior should be controllable by the user Technical u Providing the mapping from the specification to the implementation level
18
Homework 4 Choose a name for your team. Design the project AS A TEAM. Use any design methods/diagrams you find useful as a means to organize your work and communicate as a team. Implement the project in AgentSheets AS A TEAM. You are responsible for finding meaningful ways to divide workload within your team. ONE member of your team should turn in (via email): u Team name and members u Design diagrams u AgentSheets Project folder (zipped or stuffed): Please follow naming conventions (use your team's name) u Description of your project including directions on how to use it. Please include any insights on pragmatic web applications, accessing data, utilizing it in a simulation, and presenting it to the user. Due: Oct. 1
19
Reading Assignment Download “ComponentWare” article from class web site and read it before you come to class on Thursday 9/26. We will use it as a basis for a class discussion on objects, components and reuse. u Reminder: class participation counts towards your grade Due: Sept. 26
20
Workshop If you do not have a group, join an existing one or form new ones with other “groupless” classmates Meet with your group u Design project u Divide workload among group members
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.