Upload
gladys-page
View
221
Download
0
Tags:
Embed Size (px)
Citation preview
OOSD Using JavaOOSD Using Java
Lecture 1Lecture 1
Introduction Introduction
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
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
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
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
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
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
8/19/048/19/04 introductionintroduction 88
Desirable QualitiesDesirable Qualities
UsefulnessUsefulness TimelinessTimeliness ReliabilityReliability MaintainabilityMaintainability ReusabilityReusability User friendlyUser friendly Efficiency Efficiency
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
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)
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
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
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
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
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
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
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
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)
8/19/048/19/04 introductionintroduction 1919
OO Development ActivitiesOO Development Activities
ConceptualizationConceptualization OO analysis & modelingOO analysis & modeling OO designOO design ImplementationImplementation MaintenanceMaintenance
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
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
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
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
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
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
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
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
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/