Problem - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

Problem

Description:

Incorrect (not what the user wanted) The problem involves analysis, design, and ... the interaction between users and analyzers, designers, and implementors ... – PowerPoint PPT presentation

Number of Views:59
Avg rating:3.0/5.0
Slides: 22
Provided by: jimne
Category:

less

Transcript and Presenter's Notes

Title: Problem


1
Problem
  • Software is generally
  • Behind schedule
  • Over cost
  • Defective
  • Incorrect (not what the user wanted)
  • The problem involves analysis, design, and
    implementation

2
Premise
  • Software quality can be improved by
  • Reducing defects
  • Reducing maintenance/modification time
  • Giving the users what they want

3
OO Paradigm
  • Closes the cognitive gap between our view of
    the system and its implementation to minimize
    analysis and design errors
  • Makes reuse possible so that system components
    can evolve toward a defect-free state
  • Fosters a prototyping life-cycle which increases
    the interaction between users and analyzers,
    designers, and implementors

4
Gaps
  • The object-oriented approach provides a closer
    match between our shared perceptions of reality
    and the languages and tools of analysis, design,
    and implementation.
  • As a consequence, the communication gaps which
    can occur between the various system-building
    activities are potentially much smaller.

STRUCTURED
Requirements
Analysis/Logical Design
Physical Design / Implementation
OBJECT-ORIENTED
Requirements
Analysis/Logical Design
Physical Design / Implementation
5
Systems Development Life Cycle
6
Systems Development Life Cycle
Requirements Document
DFD / ERD
Functional Decomposition
Code
7
History of OO
  • Three interwoven threads
  • programming
  • knowledge representation
  • linguistics
  • data modeling

OORA
OOA
OO
OODBMS
OOD
OOI
OOSE
KR
DM
OOPL
8
Building an OOS OOADI interacting activities
in an iterative, recursive, incremental
process(add your own buzz-words here)
OOA
OOI
OOD
9
Object-Oriented Domain Analysis (OODA)
  • Includes existing systems, domain expert
    knowledge, domain theory, and domain technology
  • Promotes reuse
  • Creates, manages, and expands a repository of
    analysis and design artifacts, objects, and
    patterns.
  • Spans projects as an ongoing effort

10
Object-Oriented Analysis (OOA)
  • Focuses upon a particular system or application
    in a domain
  • Draws upon and contributes to the repository
    (reuse)
  • Models the problem space
  • May model (parts of) the solution space

11
Object-Oriented Design (OOD)
  • The bridge between conceptualization and
    implementation
  • Logical OOD
  • blends with OOA
  • establishes a system architecture
  • draws upon and contributes to the repository
    (reuse)
  • includes the user interface
  • Physical OOD
  • blends with OOI
  • modifies the results of analysis and logical
    design to accommodate the implementation
    environment

12
Object-Oriented Implementation or Programming
(OOI or OOP)
  • Blends with physical OOD
  • Involves coding, software engineering, and
    metrics
  • May require special techniques to support a
    distributed environment

13
OOAD Methodologies/Notations/Approaches
  • a partial list
  • Beck Cunningham
  • Berard
  • Booch
  • de Champeaux, Lea, Faure
  • Coad Yourdon
  • Emblay, Kurtz, Woodfield
  • Firesmith
  • Graham
  • Henderson-Sellers Edwards
  • Jacobson
  • Lorenz
  • Martin
  • Martin Odell
  • Meyer
  • Rubin Goldberg ( Gibson)
  • Rumbaugh, et al.
  • Shlaer Mellor
  • Wirfs-Brock, et al.

and the (current) winners are Notation
Process - UML (Booch, Jacobson, and Rumbaugh)
14
Warning!
  • It is possible to write truly awful
    object-oriented programs.
  • There is no substitute for
  • intelligence
  • experience
  • taste
  • work
  • Presentation by Bjarne Stroustrup at the Second
    Annual Alan J. Perlis Symposium on Programming
    Languages as reported by Phil Pfeiffer in ACM
    SIGPLAN Notices, 28(9) 6-12, September 1993.

15
What is Java?
Java is a simple, object-oriented, distributed,
interpreted, robust, secure, architecture-neutral,
portable, high-performance, multithreaded, and
dynamic programming language. (Java is buzzword
compliant)
16
More officially
  • Java is an object-oriented programming language
    from Sun Microsystems.
  • It allows programmers to develop applets or
    standalone computer applications that run as any
    program written in another programming language.

17
Portability
  • One of the most significant benefits of Java is
    its promise of write-once, run anywhere
    portability.
  • This is especially important on the Internet,
    where applets on web pages might be downloaded
    and run on PCs, Apple iMacs, Web TV, Unix boxes
    and more.
  • This portability is made possible by the java
    runtime environment -- also called the Java
    Virtual Machine, or JVM -- which is packaged with
    each currently popular browser.
  • Standalone Java applications can be run on any
    computer that has the Java runtime environment
    installed.

18
Java vs. JavaScript
  • Although the names are almost the same, Java is
    not the same as JavaScript!
  • Java is an object-oriented programming language.
  • JavaScript is a scripting language, implemented
    as an extension of HTML.

19
More Java vs. JavaScript
  • The languages also differ in how each interacts
    with browsers and Web pages.
  • You can use Java to create either standalone
    applications or applets that run within a
    browser.
  • JavaScript works only within a browser and is not
    compiled. You cannot use it to develop standalone
    applications. It is used for writing short
    programs (scripts) such as log-on procedures.
  • JavaScript originated as Netscape's LiveScript,
    but because of its similarity in syntax to Java,
    it was renamed JavaScript.

20
JavaScript Java
  • Interpreted (not compiled) by client.
  • Object-based. Code uses built-in, extensible
    objects, but no classes or inheritance.
  • Code integrated with, and embedded in, HTML.
  • Variable data types not declared (loose typing).
  • Dynamic binding. Object references checked at
    run-time.
  • Cannot automatically write to hard disk.

  • Compiled on server before execution on client.
  • Object-oriented. Applets consist of object
    classes with inheritance.
  • Applets distinct from HTML (accessed from HTML
    pages).
  • Variable data types must be declared (strong
    typing).
  • Static binding. Object references must exist at
    compile-time.
  • Cannot automatically write to hard disk.

21
Java Genealogy
Write a Comment
User Comments (0)
About PowerShow.com