Title: Announcements
1Announcements
- Prefer building/running programs in class
- yes 23, no 0, answer not so simple 6
- Prefer lecturing from slides
- 3 yes, 18 no, 7 not so simple
- Mixture better than either
- yes 23, no 1, not sure 6
- Comments include that slides are good to have
available for reference and study
2486 Phase 2Here is What this Course is not
- Its not just about programming in Java
- or just about Object Oriented Programming
- It is about Object Oriented Analysis Design
- Recall that software engineering is much more
than programming! - Its also analysis and design, teams, and other
things
3Object-Oriented Analysis and Design in Context
- See life cycle figures from Schach book
4Some OOA/D Core Skills
- Determine what objects to have
- and what responsibilities each should have
- What is the relationship between responsibilities
and functionalities? - Be able to use software design patterns
- that is, logical structures frequently occurring
in designs and requiring multiple objects to
implement - Be able to use UML notation
- Universal Modeling Language is a (large) set
of semi-graphical notations - Be able to perform use-case analysis
- One of numerous skills important in analysis and
design - (What is it?)
5What is Analysis? Design?Object-Oriented
Analysis and Design?
- Analysis any detailed examination
- Websters New World College
Dictionary (4th ed.) - In software engineering, you examine problems, to
understand them - (You dont examine solutions, you build them)
- Therefore analysis refers to
- Examining the problem to be solved
6What is Analysis? Design?Object-Oriented
Analysis and Design?
- Design
- description of the structure of a solution
- In software engineering, you design software
solutions - Therefore design refers to
- Determining the structure of a software artifact
7What is Analysis? Design?Object-Oriented
Analysis and Design?
- Analysis Do the right thing
- Design Do the thing right
- Larman p.7
8What is Analysis? Design?Object-Oriented
Analysis and Design?
- OOAD
- Object-Oriented Analysis and Design
- Object-oriented analysis
- Examine the problem to determine its object-like
parts - Can be done regardless of implementation language
- Object-oriented design
- Determine how the objects interact and what they
contain - One could argue that the analysis/design boundary
is not exactly ideal
9Recall Objects
10A Definition of Object
- An object is
- A data abstraction
- A bundle of
- Data, and
- Methods (modules containing executable
statements) - The bundle is conceptually coherent
- It presents an API
- Inheritance is possible
11Example of OOAD
- (See Larman section 1.5)
- Player rolls 2 dice a 7 wins, other s lose
- First, define use cases
- Next, define a domain model
- Third, define interaction diagrams
- Fourth, define class diagrams
12Defining Use Cases
- Use cases are scenarios of system operation
- Use cases are written stories (Larman)
- Use cases are text documents (Larman p. 71)
- Use utilization, purpose, functionality
- Case example, instance, situation
- (suggesting 9 phrases whose meaning use case
- Systems that do lots of things will have lots of
use cases! - Is the following is a use case?
13These are not exactly use cases. Rather this is a
use case diagram. (Figure source OMG Unified
Modeling Language Specification version 1.3,
www.omg.org)
14First Define Use Cases
- Recall the example
- Player rolls 2 dice 7 wins, other s lose
- Create a use case now
15Back to Defining the Use Cases
- Larman describes the dice game with
- just 1 use case
- Player rolls dice, winning if they add to 7, else
losing
16Second From Use Cases to Domain Model
- Strategy
- Define use cases
- ?Define domain
- model
- ?Define interaction
- diagrams
- ?Define design class
- diagrams
Objective decompose domain into object-like
pieces Try it now then well see what Larman
has
17Domain Model Example
- This is an entity-relationship diagram
- See Figure 1.3, p. 8 (2nd ed.)
- Note
- name of entity,
- relationship description (1 word),
- relationship numerical property,
- attribute names
18Third Define Interaction Diagrams
- Given the entities
- Show their possible interactions
- Interactions among objects use
- Messages
- A message is just the name for a method call
- Ill draw the entities
- You draw the interactions
- Then well see what the text has (Figure 1.4, 2nd
ed.) - NOTE assume a computerized dice game
- Strategy
- Define use cases
- ?Define domain
- model
- ?Define interaction
- diagrams
- ?Define design class
- diagrams
19Fourth Define Design Class Diagrams
- This is a basic design for a system
- Show classes in boxes
- List the data members and methods of each class
- Show how many objects of each class interact with
how many of each other class - Try it now
- Then well see what text has (Figure 1.5, 2nd ed.)
- Strategy
- Define use cases
- ?Define domain
- model
- ?Define interaction
- diagrams
- ?Define design class
- diagrams