Download OOSD Using Java

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Construction management wikipedia , lookup

Phase-gate process wikipedia , lookup

Software development wikipedia , lookup

Transcript
OOSD Using Java
Lecture 1
Introduction
Introduction
350 – Tools & CSC 485 – OOD?
 Software Development vs. Programming
 Activities, Processes, & Tools
 Why Object Orientation?
 Class Goals & Roadmaps
 OO Software Development Processes
 IST
8/19/04
introduction
2
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


8/19/04
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
3
Textbook(s)

Required

OOSD using Java, 2/e
Jia/Addison Wesley
• Concepts & principles
• OO design as used in Java APIs
• System development methodology

Recommended

Rapid application development using Sun ONE studio
Liang/Prentice Hall
• Extensive use of IDE

Other online resources
8/19/04
introduction
4
Software vs. Programs

Complexity





Longevity & evolution


Break down the task into smaller increments
Analysis & design before coding
Using appropriate tools is essential
Documentation: for communication and maintenance
Flexibility
High user expectations

8/19/04
Enterprise applications
introduction
5
The Traditional Approach

Activities





8/19/04
Requirements analysis
Design
Implementation & unit testing
Integration & system testing
Maintenance
introduction
6
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
8/19/04
introduction
7
Desirable Qualities







Usefulness
Timeliness
Reliability
Maintainability
Reusability
User friendly
Efficiency
8/19/04
introduction
8
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
8/19/04
introduction
9
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
• Object-oriented
• Rule-oriented

8/19/04
algorithms
classes & objects
if-then rules
OO paradigm is best suited to a broad set of
applications (e.g., the so-called enterprise application)
introduction
10
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]



8/19/04
Typing
Concurrency
Persistence
introduction
11
Class Roadmaps – an overview
class discussion and labs
Component design
and implementation
(build the
building blocks)
Inception
Test 1
Component-based
system development
(from building
Blocks to systems)
Design
Test 2
Construction
Demo &
Presentation
project
8/19/04
introduction
12
Class Roadmaps – components
Visual Programming
w/ Swing & AWT
Introduction
Lab 3 Lab 4
Swing 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
8/19/04
Lab 6
IO
introduction
13
Class Roadmaps – system
Case Study:
A Drawing Pad
Java Component
Model: JavaBeans
Lab 7
Create
Persistence:
JDBC
Component-based
Development
Lab 10
JDBC
Lab 8
Use
Design Patterns
I & II
Distributed Apps:
JSP
Lab 9
Patterns
8/19/04
Lab 11
JSP
introduction
14
Score Breakdown

Tests
400
2@200 pts each
 Labs & case study
250
 Assignments & quizzes
150
assignments 4~6 @ 20~30 pts each
 Project
200
design/documentation
100
coding & testing
50
system demo & presentation 50
8/19/04
introduction
15
OO Processes

What’s the difference?
Different mindset determines different activities 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
8/19/04
introduction
16
Micro Process
Identifying classes
and objects
specifying class
interfaces & impl’s
Identifying class &
object semantics
Identifying class &
object relationships
8/19/04
introduction
17
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)
8/19/04
introduction
18
OO Development Activities





Conceptualization
OO analysis & modeling
OO design
Implementation
Maintenance
8/19/04
introduction
19
System Development - A Practical View
Ideas
Conceptualization
High-up
in the air
Needs statement
C-req’ts
Analysis
Functional spec
(D-req’ts)
Design
Prototypes
Design docs
System under dev.
System in production
8/19/04
Implementation
introduction
Solid
ground
20
The Unified Process

Real distinguishing aspects




Use-case driven
Architecture-centric
Iterative and incremental
Key practices






8/19/04
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
21
The Unified Process

Workflows









8/19/04
Business modeling
Requirements
Analysis & design
Implementation
Testing
Deployment
Configuration management
Project management
Environment
introduction
22
The Unified Process

Major phases




8/19/04
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
23
Spiral Development
Product:class
models +
Product: requirements
specifications
Step n:
Analyze
requirements
Step n+1:
Design
complete
targeted
requirements
Step n+2:
Implement
Step n+3:
Test
Product: code +
8/19/04
Product: test results +
introduction
24
RUP – activities vs. phases
Inception Elaboration
Construction
Prelim. Iter. .. Iter. Iter.
iterations #1
#n #n+1
…..
Transition
Iter. Iter. …..
#m #m+1
Iter.
#k
Amount of effort expended
on the requirements phase
during the first Construction
iteration
Requirements
Analysis
Design
Implementation
Test
8/19/04
introduction
25
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
8/19/04
introduction
26
Summary

Desired qualities of software systems
 Iterative object-oriented development process



Description
Advantages over the waterfall model
RUP

8/19/04
Phases and workflows
introduction
27
Announcements
 We
will be meeting in lab 200 starting next
week
 Useful links


8/19/04
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
28