oosd using java n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
OOSD Using Java PowerPoint Presentation
Download Presentation
OOSD Using Java

Loading in 2 Seconds...

play fullscreen
1 / 28

OOSD Using Java - PowerPoint PPT Presentation


  • 99 Views
  • Uploaded on

OOSD Using Java. Lecture 1 Introduction. Introduction. IST 350 – Tools & CSC 485 – OOD? Software Development vs. Programming Activities, Processes, & Tools Why Object Orientation? Class Goals & Roadmaps OO Software Development Processes. Two Courses Co-listed. Why co-listed?

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

OOSD Using Java


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
oosd using java

OOSD Using Java

Lecture 1

Introduction

introduction
Introduction
  • IST 350 – Tools & CSC 485 – OOD?
  • Software Development vs. Programming
  • Activities, Processes, & Tools
  • Why Object Orientation?
  • Class Goals & Roadmaps
  • OO Software Development Processes

introduction

two courses co listed
Two Courses Co-listed
  • Why co-listed?
    • An IST course emphasizes s/w development with the aid of tools
    • A CSC course focuses on OO design
  • Tool-based software development – an OO approach
    • Without the knowledge of OO methodology, the best one can be is a tool operator
    • One may be able to write some code, but it’s hard to development large systems without tools

introduction

textbook s
Textbook(s)
  • Required
    • OOSD using Java, 2/eJia/Addison Wesley
      • Concepts & principles
      • OO design as used in Java APIs
      • System development methodology
  • Recommended
    • Rapid application development using Sun ONE studioLiang/Prentice Hall
      • Extensive use of IDE
  • Other online resources

introduction

software vs programs
Software vs. Programs
  • Complexity
    • Break down the task into smaller increments
    • Analysis & design before coding
    • Using appropriate tools is essential
    • Documentation: for communication and maintenance
  • Longevity & evolution
    • Flexibility
  • High user expectations
    • Enterprise applications

introduction

the traditional approach
The Traditional Approach
  • Activities
    • Requirements analysis
    • Design
    • Implementation & unit testing
    • Integration & system testing
    • Maintenance

introduction

the traditional approach1
The Traditional Approach
  • The waterfall process
    • Flowing from one step (or phase) to the next
    • There is no return: from begin to end
    • Pros
      • Simple to manage
    • Cons
      • Know everything a system needs to provide before ever designing
      • Inflexible for changing requirements
      • No (partially) working system until the end, no user feedback

introduction

desirable qualities
Desirable Qualities
  • Usefulness
  • Timeliness
  • Reliability
  • Maintainability
  • Reusability
  • User friendly
  • Efficiency

introduction

tools
Tools?
  • IDE: for
    • Editing, w/ context-sensitive menu
    • Form editing and code generation
    • Compiling/debugging/executing
    • Code documenting: w/ javadoc
    • Packaging: w/ jar
  • JUint: for unit testing
  • ANT: for system building
  • Rational Rose: for OO modeling

introduction

why object orientation
Why Object Orientation?
  • Programming paradigm
    • A way of organizing programs on the basis of some conceptual model of programming and an appropriate language to make program written in the style clear
    • Examples
      • Procedure-oriented algorithms
      • Object-oriented classes & objects
      • Rule-oriented if-then rules
    • OO paradigm is best suited to a broad set of applications (e.g., the so-called enterprise application)

introduction

what s object orientation
What’s Object Orientation
  • For all things object-oriented, the conceptual framework is the object model
  • Four major elements [essential]
    • Abstraction
    • Encapsulation
    • Modularity
    • Hierarchy
  • Three minor elements [useful but not essential]
    • Typing
    • Concurrency
    • Persistence

introduction

class roadmaps an overview
Class Roadmaps – an overview

class discussion and labs

Component design

and implementation

(build the

building blocks)

Component-based

system development

(from building

Blocks to systems)

Test 1

Test 2

Design

Construction

Demo &

Presentation

Inception

project

introduction

class roadmaps components
Class Roadmaps – components

Introduction

Visual Programming

w/ Swing & AWT

Lab 3

Swing

Lab 4

Event

OO Concepts

& Principles

Using Collection

Classes

Lab 1

UML

Lab 5

JCF

Mapping OO

Models to Java

Using Java IO

Classes

Lab 2

IDE

Lab 6

IO

introduction

class roadmaps system
Class Roadmaps – system

Java Component

Model: JavaBeans

Case Study:

A Drawing Pad

Lab 7

Create

Persistence:

JDBC

Component-based

Development

Lab 10

JDBC

Lab 8

Use

Design Patterns

I & II

Distributed Apps:

JSP

Lab 9

Patterns

Lab 11

JSP

introduction

score breakdown
Score Breakdown
  • Tests 400 2@200 pts each
  • Labs & case study 250
  • Assignments & quizzes 150assignments 4~6 @ 20~30 pts each
  • Project 200 design/documentation 100 coding & testing 50 system demo & presentation 50

introduction

oo processes
OO Processes
  • What’s the difference?Different mindset determines differentactivities be recognized and different approaches be chosen
  • Evolutionary/iterative process models
    • Boehm’s spiral model
    • Booch’s iterative model
      • Micro process: OOAD @ component development level
      • Macro process: project/product evolution level

introduction

micro process
Micro Process

Identifying classes

and objects

specifying class

interfaces & impl’s

Identifying class &

object semantics

Identifying class &

object relationships

introduction

macro process
Macro Process

Develop a model of

the desired behavior

(analysis)

Establish core

requirements

(conceptualization)

Create an

architecture

(design)

Manage postdelivery

evolution

(maintenance)

Evolve the

Implementation

(evolution)

introduction

oo development activities
OO Development Activities
  • Conceptualization
  • OO analysis & modeling
  • OO design
  • Implementation
  • Maintenance

introduction

system development a practical view
System Development- A Practical View

Ideas

High-up

in the air

Conceptualization

Needs statement

Analysis

C-req’ts

Functional spec

(D-req’ts)

Design

Prototypes

Design docs

Implementation

Solid

ground

System under dev.

System in production

introduction

the unified process
The Unified Process
  • Real distinguishing aspects
    • Use-case driven
    • Architecture-centric
    • Iterative and incremental
  • Key practices
    • Develop software iteratively
    • Elicit, organize, and manage changing requirements
    • Use component-based architecture
    • Visually model software using UML
    • Continuously verify software quality
    • Control changes to software

introduction

the unified process1
The Unified Process
  • Workflows
    • Business modeling
    • Requirements
    • Analysis & design
    • Implementation
    • Testing
    • Deployment
    • Configuration management
    • Project management
    • Environment

introduction

the unified process2
The Unified Process
  • Major phases
    • Inception: establishes the business case for the project
    • Elaboration: establishes a project plan and a sound architecture
    • Construction: grows the system
    • Transition: supplies the system to its end users

introduction

slide24

Spiral Development

Product: requirements

specifications

Product:class

models +

Step n:

Analyze

requirements

Step n+1: Design

complete

targeted

requirements

Step n+2: Implement

Step n+3: Test

Product: code +

Product: test results +

introduction

rup activities vs phases
RUP – activities vs. phases

Inception

Elaboration

Construction

Transition

Prelim.

iterations

Iter.

#1

Iter.

#n

Iter.

#n+1

Iter.

#m

Iter.

#m+1

Iter.

#k

..

…..

…..

Requirements

Analysis

Amount of effort expended

on the requirements phase

during the first Construction

iteration

Design

Implemen-

tation

Test

introduction

extreme programming xp
Extreme Programming (XP)
  • Key practices
    • Planning game
    • Frequent and small release
    • Simple design
    • Test first
    • Refactoring
    • Pair programming
    • Continuous integration
    • Coding standards
  • Read more at http://www.extremeprogramming.org

introduction

summary
Summary
  • Desired qualities of software systems
  • Iterative object-oriented development process
    • Description
    • Advantages over the waterfall model
  • RUP
    • Phases and workflows

introduction

announcements
Announcements
  • We will be meeting in lab 200 starting next week
  • Useful links
    • Liang’s book website (Java coding standards, multiple choice review questions, etc) http://www.cs.armstrong.edu/liang/radft.html
    • Sun’s Java tutorials: http://java.sun.com/docs/books/tutorial/

introduction