oosd using java lecture 1 introduction. 8/19/04introduction2 introduction ist 350 – tools &...

28
OOSD Using Java OOSD Using Java Lecture 1 Lecture 1 Introduction Introduction

Upload: gladys-page

Post on 26-Dec-2015

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

OOSD Using JavaOOSD Using Java

Lecture 1Lecture 1

Introduction Introduction

Page 2: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 22

Introduction Introduction

IST 350 – Tools & CSC 485 – OOD?IST 350 – Tools & CSC 485 – OOD? Software Development vs. ProgrammingSoftware Development vs. Programming Activities, Processes, & ToolsActivities, Processes, & Tools Why Object Orientation?Why Object Orientation? Class Goals & RoadmapsClass Goals & Roadmaps OO Software Development ProcessesOO Software Development Processes

Page 3: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 33

Two Courses Co-listed Two Courses Co-listed

Why co-listed?Why co-listed? An IST course emphasizes s/w development with the An IST course emphasizes s/w development with the

aid of toolsaid of tools A CSC course focuses on OO designA CSC course focuses on OO design

Tool-based software development – an OO Tool-based software development – an OO approachapproach Without the knowledge of OO methodology, the best Without the knowledge of OO methodology, the best

one can be is a tool operatorone can be is a tool operator One may be able to write some code, but it’s hard to One may be able to write some code, but it’s hard to

development large systems without toolsdevelopment large systems without tools

Page 4: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 44

Textbook(s)Textbook(s)

RequiredRequired OOSD using Java, 2/eOOSD using Java, 2/e

Jia/Addison WesleyJia/Addison Wesley• Concepts & principlesConcepts & principles• OO design as used in Java APIsOO design as used in Java APIs• System development methodologySystem development methodology

RecommendedRecommended Rapid application development using Sun ONE studioRapid application development using Sun ONE studio

Liang/Prentice HallLiang/Prentice Hall• Extensive use of IDEExtensive use of IDE

Other online resourcesOther online resources

Page 5: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 55

Software vs. ProgramsSoftware vs. Programs

ComplexityComplexity Break down the task into smaller incrementsBreak down the task into smaller increments Analysis & design before codingAnalysis & design before coding Using appropriate tools is essential Using appropriate tools is essential Documentation: for communication and maintenanceDocumentation: for communication and maintenance

Longevity & evolutionLongevity & evolution FlexibilityFlexibility

High user expectationsHigh user expectations Enterprise applicationsEnterprise applications

Page 6: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 66

The Traditional ApproachThe Traditional Approach

ActivitiesActivities Requirements analysisRequirements analysis DesignDesign Implementation & unit testingImplementation & unit testing Integration & system testingIntegration & system testing MaintenanceMaintenance

Page 7: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 77

The Traditional ApproachThe Traditional Approach

The The waterfallwaterfall process process Flowing from one step (or phase) to the nextFlowing from one step (or phase) to the next There is no return: from begin to endThere is no return: from begin to end Pros Pros

• Simple to manageSimple to manage Cons Cons

• Know everything a system needs to provide before ever Know everything a system needs to provide before ever designingdesigning

• Inflexible for changing requirementsInflexible for changing requirements• No (partially) working system until the end, no user feedbackNo (partially) working system until the end, no user feedback

Page 8: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 88

Desirable QualitiesDesirable Qualities

UsefulnessUsefulness TimelinessTimeliness ReliabilityReliability MaintainabilityMaintainability ReusabilityReusability User friendlyUser friendly Efficiency Efficiency

Page 9: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 99

Tools?Tools?

IDE: forIDE: for Editing, w/ context-sensitive menuEditing, w/ context-sensitive menu Form editing and code generationForm editing and code generation Compiling/debugging/executingCompiling/debugging/executing Code documenting: w/ javadocCode documenting: w/ javadoc Packaging: w/ jarPackaging: w/ jar

JUint: for unit testingJUint: for unit testing ANT: for system buildingANT: for system building Rational Rose: for OO modelingRational Rose: for OO modeling

Page 10: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 1010

Why Object Orientation?Why Object Orientation?

Programming paradigmProgramming paradigm A way of organizing programs on the basis of some A way of organizing programs on the basis of some

conceptual model of programming and an appropriate conceptual model of programming and an appropriate language to make program written in the style clearlanguage to make program written in the style clear

ExamplesExamples• Procedure-orientedProcedure-oriented algorithmsalgorithms• Object-orientedObject-oriented classes & objectsclasses & objects• Rule-orientedRule-oriented if-then rulesif-then rules

OO paradigm is best suited to a broad set of OO paradigm is best suited to a broad set of applications (e.g., the so-called enterprise application)applications (e.g., the so-called enterprise application)

Page 11: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 1111

What’s Object OrientationWhat’s Object Orientation

For all things object-oriented, the conceptual For all things object-oriented, the conceptual framework is the framework is the object modelobject model

Four major elements Four major elements [essential][essential] AbstractionAbstraction EncapsulationEncapsulation ModularityModularity HierarchyHierarchy

Three minor elements Three minor elements [useful but not essential][useful but not essential] TypingTyping ConcurrencyConcurrency Persistence Persistence

Page 12: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 1212

Class Roadmaps Class Roadmaps – an overview– an overview

Component design and implementation

(build the building blocks)

Component-basedsystem development

(from building Blocks to systems)

Test 1 Test 2

Inception ConstructionDesignDemo &

Presentation

project

class discussion and labs

Page 13: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 1313

Class Roadmaps Class Roadmaps – components– components

Introduction

Lab 1UML

OO Concepts& Principles

Lab 2IDE

Mapping OOModels to Java

Lab 4Event

Lab 5JCF

Using CollectionClasses

Visual Programmingw/ Swing & AWT

Lab 6IO

Using Java IOClasses

Lab 3Swing

Page 14: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 1414

Class Roadmaps Class Roadmaps – system– system

Java ComponentModel: JavaBeans

Lab 8Use

Lab 9Patterns

Design PatternsI & II

Lab 10JDBC

Persistence:JDBC

Case Study: A Drawing Pad

Lab 11JSP

Distributed Apps:JSP

Lab 7Create

Component-basedDevelopment

Page 15: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 1515

Score BreakdownScore Breakdown

Tests Tests 400 400 2@200 pts each2@200 pts each

Labs & case studyLabs & case study 250250 Assignments & quizzesAssignments & quizzes 150150

assignments 4~6 @ 20~30 pts eachassignments 4~6 @ 20~30 pts each Project Project 200200

design/documentation design/documentation 100100coding & testingcoding & testing 50 50system demo & presentationsystem demo & presentation 50 50

Page 16: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 1616

OO ProcessesOO Processes

What’s the difference?What’s the difference?Different mindset determines differentDifferent mindset determines different activities be activities be recognized and different approaches be chosen recognized and different approaches be chosen

Evolutionary/iterative process modelsEvolutionary/iterative process models Boehm’s spiral modelBoehm’s spiral model Booch’s iterative modelBooch’s iterative model

• Micro process: OOAD @ component development levelMicro process: OOAD @ component development level• Macro process: project/product evolution levelMacro process: project/product evolution level

Page 17: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 1717

Micro ProcessMicro Process

Identifying classes and objects

Identifying class & object semantics

Identifying class &object relationships

specifying class interfaces & impl’s

Page 18: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 1818

Macro ProcessMacro Process

Develop a model of the desired behavior

(analysis)

Create anarchitecture

(design)

Evolve the Implementation

(evolution)

Establish corerequirements

(conceptualization)

Manage postdeliveryevolution

(maintenance)

Page 19: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 1919

OO Development ActivitiesOO Development Activities

ConceptualizationConceptualization OO analysis & modelingOO analysis & modeling OO designOO design ImplementationImplementation MaintenanceMaintenance

Page 20: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 2020

System DevelopmentSystem Development - - A Practical ViewA Practical View

Ideas

Needs statement

Functional spec(D-req’ts)

Design docs

System in production System under dev.

Prototypes

High-up in the air

Solidground

Analysis

Design

Implementation

Conceptualization

C-req’ts

Page 21: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 2121

The Unified ProcessThe Unified Process Real distinguishing aspectsReal distinguishing aspects

Use-case drivenUse-case driven Architecture-centricArchitecture-centric Iterative and incrementalIterative and incremental

Key practicesKey practices Develop software iterativelyDevelop software iteratively Elicit, organize, and manage changing requirementsElicit, organize, and manage changing requirements Use component-based architectureUse component-based architecture Visually model software using UMLVisually model software using UML Continuously verify software qualityContinuously verify software quality Control changes to softwareControl changes to software

Page 22: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 2222

The Unified ProcessThe Unified Process

WorkflowsWorkflows Business modelingBusiness modeling RequirementsRequirements Analysis & designAnalysis & design ImplementationImplementation TestingTesting DeploymentDeployment Configuration managementConfiguration management Project managementProject management Environment Environment

Page 23: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 2323

The Unified ProcessThe Unified Process

Major phasesMajor phases Inception: establishes the business case for the Inception: establishes the business case for the

projectproject Elaboration: establishes a project plan and a sound Elaboration: establishes a project plan and a sound

architecturearchitecture Construction: grows the systemConstruction: grows the system Transition: supplies the system to its end usersTransition: supplies the system to its end users

Page 24: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 2424

completetargeted

requirements

Step n:Analyzerequirements

Step n+3: Test

Step n+2: Implement

Step n+1: Design

Product:classmodels +

Product: requirementsspecifications

Product: code + Product: test results +

Spiral DevelopmentSpiral Development

Page 25: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 2525

RUP RUP – activities vs. phases– activities vs. phasesElaborationInception Construction Transition

Requirements

Analysis

Prelim.iterations

Iter.#1

Iter.#n

Iter.#n+1

Iter.#m

Iter.#m+1

Iter.#k

….. …..

Design

Implemen-tation

Test

..

Amount of effort expendedon the requirements phaseduring the first Constructioniteration

Page 26: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 2626

Extreme Programming (XP)Extreme Programming (XP) Key practicesKey practices

Planning gamePlanning game Frequent and small releaseFrequent and small release Simple designSimple design Test firstTest first RefactoringRefactoring Pair programmingPair programming Continuous integrationContinuous integration Coding standardsCoding standards

Read more at Read more at http://http://www.extremeprogramming.orgwww.extremeprogramming.org

Page 27: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 2727

Summary Summary

Desired qualities of software systemsDesired qualities of software systems Iterative object-oriented development processIterative object-oriented development process

DescriptionDescription Advantages over the waterfall modelAdvantages over the waterfall model

RUPRUP Phases and workflowsPhases and workflows

Page 28: OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming

8/19/048/19/04 introductionintroduction 2828

Announcements Announcements

We will be meeting in lab 200 starting next We will be meeting in lab 200 starting next weekweek

Useful links Useful links Liang’s book website (Java coding standards, Liang’s book website (Java coding standards,

multiple choice review questions, etc) multiple choice review questions, etc) http://www.cs.armstrong.edu/liang/radft.htmlhttp://www.cs.armstrong.edu/liang/radft.html

Sun’s Java tutorials: Sun’s Java tutorials: http://http://java.sun.comjava.sun.com/docs/books/tutorial//docs/books/tutorial/