1 / 23

Computer Science 2704

Computer Science 2704. Object-Oriented Software Design and Construction with C++. Dr. K. Todd Stevens Spring, 1999. Based on course slides of Dennis Kafura, Summer 1998. Beginning. Overview of the course Lab Accounts and Software Progression of Roles First Topics. abstraction

sdurbin
Download Presentation

Computer Science 2704

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computer Science 2704 Object-Oriented Software Design and Construction with C++ Dr. K. Todd Stevens Spring, 1999 Based on course slides of Dennis Kafura, Summer 1998

  2. Beginning • Overview of the course • Lab Accounts and Software • Progression of Roles • First Topics • abstraction • separation

  3. The URL for the class web page http://ei.cs.vt.edu/~cs2704/todds99

  4. Lab accounts and software • If you do not have an account for the 116/118 lab, fill out the form being distributed (you must have a university PID). • The software for the course is installed on all of the lab machines and should be used for your course work. You may also set up the software on your own machine.

  5. Progression of Roles

  6. Design Strategies in Object Oriented Programming • Abstraction • modeling essential properties • Separation • treat what and how independently • Composition • building complex structures from simpler ones • Generalization • identifying common elements

  7. Connections among Strategies, Structures and Goals

  8. Abstraction • Modeling entities in software • Only essential aspects should be captured • attributes • behavior

  9. Artistic Abstraction Wassily Kandinski, Cossacks, 1910-11

  10. Practical Abstraction

  11. Abstraction A named collection of attributes and behavior relevant to modeling a given entity for some particular purpose

  12. Properties of a Good Abstraction • well named • coherent • accurate • minimal • complete

  13. Good Abstractions WOMEN MEN

  14. attributes {data, data,…} entity behavior {method, method,…} Mapping Abstraction to Software real-world abstraction software

  15. Separation In object-oriented programming, the independent specification of an interface and one or more implementations of that interface.

  16. Interface Implementation Separation visible hidden

  17. Separation of Interface from Implementation

  18. Interchangeability of Implementations

  19. attributes {data, data,…} entity behavior {method, method,…} Mapping Abstraction to Software real-world abstraction software

  20. className public private {data, data, ….} {method,method, ….} General Structure of a Class

  21. General Structure of an Object

  22. Multiple Instances of a Class

  23. Software Engineering Goals

More Related