software engineering i cs361
play

Software Engineering I cs361 Announcements Writing Assignment 3 - PowerPoint PPT Presentation

Software Engineering I cs361 Announcements Writing Assignment 3 http:// web.engr.oregonstate.edu/ ~hiltonm/classes/cs361/ WritingAssignments/ WritingAssignment3.pdf Class Diagrams Attribution Much of this material inspired by a


  1. Software Engineering I cs361

  2. Announcements ✖ Writing Assignment 3 ✖ http:// web.engr.oregonstate.edu/ ~hiltonm/classes/cs361/ WritingAssignments/ WritingAssignment3.pdf

  3. Class Diagrams

  4. Attribution Much of this material inspired by a great slides from Steve Easterbrook, available here: http://www.cs.toronto.edu/~sme/ CSC340F/slides/11-objects.pdf also some material taken from here: http://web.stanford.edu/class/cs193j/ LectureThree.pdf

  5. Object Terminology Review Any entity which mirrors the existence of a real world entity is an Object. Examples:

  6. Object Terminology Review Any entity which mirrors the existence of a real world entity is an Object. Examples: Person, Student, Car, Playing Card, etc.

  7. Object Terminology Review Objects Contain: -attributes (variables) -functionality (methods) Objects can have properties or be acted upon

  8. Object Terminology Review A description of an Object is called a class Examples:

  9. Encapsulation ✖ Objects allow data and functionality to be bundled together. ✖ Additionally, access to the data may be restricted to some of the objects components

  10. Inheritance ✖ Allows one Class to automatically “assume” the attributes of another class ✖ Defines an “is a” relationship for classes

  11. Polymorphism ✖ The ability to send the same message (call a method) to an Object, without knowing how the receiver (Object) will implement the message.

  12. Building an Object Oriented Model Our model should: represent people, things and concepts show connections and interactions show enough detail to evaluate designs maintain value after design phase

  13. Object Oriented Analysis Background -Model the requirements in terms of objects and services Motivation -OO is (claimed to be) more ‘natural’ -OO emphasizes importance of well-defined interfaces between objects.

  14. Nearly Anything can be an object…

  15. Nearly Anything can be an object… ✖ External Entities e.g. ✖ Organizational people, devices, other systems. Unites e.g. division, group, team, etc ✖ Things e.g. reports, displays, signals, etc ✖ Places e.g. manufacturing floor, loading dock, game board, ✖ Occurrences or etc Events e.g. transfer of ✖ Structures e.g. sensors, resources, a control actions, etc computers, etc ✖ Roles people who interact with the system

  16. THINGS THAT SHOULD NOT BE AN OBJECT ✖ Procedures: e.g. print, draw, deal, etc ✖ Attributes: e.g. blue, 50Mb, etc

  17. Classes A class describes a group of objects with: similar properties (attributes) common behavior (operations) common relationships common meaning

  18. 
 Example Class: employee: has a name, employee#, department an employee is hired, fired; an employee works in one or more projects

  19. :Employee name employee# department hire() fire() assignProject()

  20. Name (mandatory) :Employee Attributes (optional) name employee# department Operations (optional) hire() fire() assignProject()

  21. How to find classes ✖ Look for nouns in user stories ✖ Review background information ✖ It’s better to start with too many and discard later

  22. Selecting Classes Discard classes for concepts which: - Are beyond the scope of the analysis - Refer to the system as a whole - Duplicate other classes - External entities should not be included as classes

  23. Cold & Yourdon’s critera - Retained information : will the system need to remember info about this class? - Needed Services: Do these objects have identifiable operations that change values - Multiple Attributes: A single attribute class may be an attribute - Common Attributes and Operations: Does the class share attributes and operations will all of its objects

  24. Objects vs Classes The instances of a class are called objects. Jane Doe:Employee name: Jane Doe employee#: 123-456 department: Software Dev hire() fire() assignProject()

  25. Associations Objects do not exist in isolation UML supports: -Association -Aggregation and Composition -Generalization -Dependency -Realization

  26. Class associations :Employee :Office name room #: employee# # of desks: 1 Works in 0..* department hire() add_Employee() fire() remove_Employee() assignProject()

  27. association Classes :car :person VIN name Year Made address 1 owns 0..* Mileage DriversLicenseNumber … … :title yearBought price initialMileage …

  28. Aggregation and Composition ✖ Aggregation: This is the “Has-a” or “Whole/part” relationship ✖ Composition implies ownership:

  29. Aggregation and Composition Example 1 :engine Composition 1 :car 0..1 :person 1 driver Aggregation

  30. Generalization ✖ Subclasses are more specific versions of superclasses ✖ Subclasses inherit attributes, associations, & operations from the superclass ✖ Subclasses can override an inherited aspect ✖ Superclass are abstract if they have no instances

  31. Generalization :student name gpa :undergrad :masters :PhD year m eng dissertation major theis advisor minor

  32. http://agilemodeling.com/artifacts/classDiagram.htm

  33. http://www.uml-diagrams.org/class-diagrams-overview.html

  34. http://yuml.me/diagram/scruffy/class/samples

  35. :car :person owns 1 0..1 VIN name Year Made address Mileage DriversLicenseNumber 1 … … :title yearBought price initialMileage … :sedan :SUV :engine trunkSize isFourWheelDrive

  36. Feedback

  37. Credits Special thanks to all the people who made and released these awesome resources for free: ✖ Presentation template by SlidesCarnival ✖ Photographs by Unsplash

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend