IST 311 - PowerPoint PPT Presentation

About This Presentation
Title:

IST 311

Description:

IST 311 Object-Oriented Design & Software. Steven Haynes. IST 311 Class 4. 19 January 2006 ... School of Information Sciences. and Technology. Mid-Term ... – PowerPoint PPT presentation

Number of Views:27
Avg rating:3.0/5.0
Slides: 38
Provided by: steven333
Category:
Tags: ist | haynes

less

Transcript and Presenter's Notes

Title: IST 311


1
IST 311 Object-Oriented Design Software
  • Steven Haynes
  • IST 311 Class 4
  • 19 January 2006
  • shaynes_at_ist.psu.edu

2
Mid-Term Deliverables
  • Use Case diagrams
  • Derived from scenarios
  • Class diagram
  • Conceptual
  • Sequence diagrams TBD
  • Need use cases first
  • User Interface Design
  • Need use cases first
  • Due Thursday, March 3rd (Thursday before break)

3
Design Representations
  • Why learn the UML?
  • What is the purpose of design representation
    languages and techniques?

4
Design Representations
  • An aid to design cognition
  • A common language for communicating about a
    design (specifications)
  • A record of the design process and its outcomes
    (documentation)

5
UML Diagrams, Part 1.
  • Use Case diagram

6
UML Diagrams
  • Use Case diagram
  • Identify major services provided by a system to
    external actors (users and other systems)
  • Establish the boundaries of the system
  • Identify common functionality
  • Identify high-level alternate use scenarios
  • Capture requirements
  • Development project planning tasks
  • Communicate with the customer/user.

7
Use Case Diagram
8
Use Cases
  • Actors
  • Use Cases
  • Include (Uses) Use Cases
  • Extend Use Cases
  • Annotations
  • Pre-conditions
  • Post-conditions
  • Constraints
  • Dont use actor or use case generalization

9
Guidelines for Use Cases
  • Actors specific user roles
  • Human actors on left
  • Non-human actors (systems) on right
  • Use Cases verb-noun phrase
  • e.g., Verify Credit Card
  • Include (uses) link included use case MUST be
    completed for the including use case to complete
  • Extend link extending use case represents a
    variant of the extended use case

10
Guidelines for Use Cases
  • Use cases model system interactions.
  • Use case granularity THE big problem
  • Use annotations (notes) freely to document your
    assumptions.
  • Use cases are not data stores
  • Use cases are not data flow diagrams

11
UML Diagrams
  • Class diagram

12
UML Diagrams
  • Class diagram
  • Identify classes
  • Attributes
  • Operations
  • Identify class relationships
  • Identify packages
  • Describe a systems static structure

13
Class Diagram
14
UML Diagrams
  • Sequence diagram

15
UML Diagrams
  • Sequence diagram
  • Describe the sequence of steps required to
    realize a use case or use case scenario, which
    represent requirements
  • Describe interactions between objects/classes
  • Perspective is time oriented

16
Sequence Diagram
17
UML Diagrams
  • Collaboration diagram

18
UML Diagrams
  • Collaboration diagram
  • Same as Sequence diagram except
  • Perspective is structural or spatial

19
Collaboration Diagram
20
Degree Audit Use Cases Classes
21
Practice Exploratory Learning!
  • Read Raposa chapters with a Java development
    environment at hand
  • Experiment with his or your own code fragments to
    ensure you understand a given point

22
Code Comments, Diagram Annotations
  • Always comment your code
  • Always annotate diagrams
  • Most points are lost on assignments and projects
    because of clarity issues. Comments and
    annotations help overcome these problems.

23
Important from Chapters 1-3
  • Ch. 1
  • The JVM
  • Bytecodes
  • Classes vs. Objects
  • .java vs. .class files
  • Command-line arguments
  • The main method
  • Ch. 2
  • Java keywords
  • Java identifiers
  • Primitive data types
  • Declaring, initializing, assigning variables
  • Java Strings
  • Reference vs. primitive data
  • Constants
  • Operators
  • Comments
  • Ch. 3
  • Java control structures
  • Boolean operators and logic

24
Assumptions
  • You know what data types are and can select the
    appropriate type from those available in Java
  • You know what Java keywords are and can find and
    use them appropriately
  • You can declare, initialize, and use Java
    variables and constants

25
Assumptions Continued
  • You know what operators are and can use them
  • Logical AND (), OR (), EXCLUSIVE-OR () and
    NOT (!)
  • Arithmetic Addition (), Subtraction (-),
    Multiplication (), Division (/), Modulus ()
  • Increment (e.g., i, i), Decrement (e.g., k--,
    --k)
  • Assignment (, , -, , /, )
  • Relational (, lt, gt, lt, gt, !)
  • You know how to use the different Java comment
    types

26
Classes and Objects
  • Whats the difference?

27
Classes and Objects
  • A class is a blueprint or template for creating
    objects and defines
  • An objects attributes
  • An objects behaviors (methods)
  • An object is an instance of a class
  • To create objects we instantiate a class

28
Java Strings
  • A string is a collection of character (char)
    data. Strings are important data structures in
    any programming language
  • A java.lang.String object is a sequence of
    characters plus a collection of methods for
    manipulating strings.
  • Unlike other Java objects, Strings have certain
    characteristics in common with the primitive data
    types.
  • For example, strings can have literals. A String
    literal  is a sequence of zero or more characters
    contained in double quotes -- for example,
    Socrates and (empty string). 

29
Java Strings
  • The symbol is used as a binary concatenation
    operator for Strings. It has the effect of
    joining two strings together.
  • Primitive types are automatically promoted to
    strings when mixed with concatenation operators.
  • The number of characters in a string is its
    length.
  • The position of a character within a string is
    called its index. Strings are zero indexed --
    the first character is at index 0.
  • The String.valueOf() methods are class methods
    that convert primitive types into String
    objects.
  • The indexOf() method searches from left to right
    within a String for either a character or a
    substring.

30
Java Strings
  • Methods for comparing strings
  • public boolean equals(Object anObject) //
    Overrides Object.equals()
  • public boolean equalsIgnoreCase(String
    anotherString)
  • public int compareTo(String anotherString)
  • Two strings are equal if they have the same
    letters in the same order
  • String s1 "hello"
  • String s2 "Hello"
  • s1.equals(s2) // false
  • s1.equals("hello) // true
  • Error Using to compare two strings. For
    objects, o1 o2 means o1 and o2 are identical.

31
Java Strings
  • Java Strings cannot be modified. Whenever you
    assign a new value to a String, Java must create
    a new String object and discard the old one.
  • Objects of java.lang.StringBuffer class are
    strings that can be modified.

32
Java Strings
  • A StringTokenizer breaks a string into tokens
    separated by delimiters, which by default value
    are the whitespace characters
  • StringTokenizer sTokenizer
  • new StringTokenizer("This is an English
    sentence.")
  • This
  • is
  • an
  • English
  • sentence.

33
Control Structures
  • Sequence --- The statements in a program are
    executed in sequential order unless their flow is
    interrupted by one of the following control
    structures.
  • Invoke or Call a Method --- Invoking a method
    transfers control temporarily to a named method.
    Control returns to the point of invocation when
    the method is completed.
  • Decision/Selection--- The if, if/else, and switch
    statements are branching statements that allow
    choice by forking of the control path into two
    or more alternatives.
  • Repetition --- The for, while, and do-while
    statements are looping statements that allow the
    program to repeat a sequence of statements.

34
Control Structures
  • No matter how large or small a program is, its
    flow of control can be built as a combination of
    these four structures.
  • Note that each structure has one entry and one
    exit.

35
Repetition
  • Repetition structure a control structure that
    repeats a statement or a sequence of statements.
  • A counting loop can be used if you know in
    advance how many iterations are needed. The for
    statement is used for counting loops.
  • A while structure should be used if the loop body
    may be skipped entirely. The while statement is
    used.
  • A do-while structure should be used only if a
    loop requires one or more iterations. The
    do-while-statement should be used.

36
Loop Elements
  • The loop variable, which is used to specify the
    loop entry condition, must be initialized to an
    appropriate value and updated on each iteration.
  • A loop's bound, which may be a count, a sentinel,
    or, more generally, a conditional bound, must be
    correctly specified in the loop-entry expression,
    and progress toward it must be made in the
    updater.
  • An infinite loop may result if either the
    initializer, loop-entry expression, or updater
    expression is not correctly specified.

37
Homework Assignment
  • This is an individual assignment.
  • Read Raposa Chapter 4.
  • Using Eclipse, write a Java class for each of the
    classes you designed for homework 2.
  • Write another class (a program), the main class
    with the main() method, that creates an instance
    of each of these classes, then calls one method
    in each to output the method name.
  • Due at the start of class Tuesday, 1/24.
  • Hand in hard copies of the object definitions
    (classes) and of the source code.
Write a Comment
User Comments (0)
About PowerShow.com