Presentation is loading. Please wait.

Presentation is loading. Please wait.

Object Oriented Design. Goals  Levels of abstraction  Workshop: group meeting for Pragmatic Web homework.

Similar presentations


Presentation on theme: "Object Oriented Design. Goals  Levels of abstraction  Workshop: group meeting for Pragmatic Web homework."— Presentation transcript:

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


Download ppt "Object Oriented Design. Goals  Levels of abstraction  Workshop: group meeting for Pragmatic Web homework."

Similar presentations


Ads by Google