Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming "— Presentation transcript:

1 OOSD Using Java Lecture 1 Introduction

2 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming  Activities, Processes, & Tools  Why Object Orientation?  Class Goals & Roadmaps  OO Software Development Processes

3 8/19/04introduction3 Two Courses Co-listed  Why co-listed? An IST course emphasizes s/w development with the aid of tools An IST course emphasizes s/w development with the aid of tools A CSC course focuses on OO design 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 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 One may be able to write some code, but it’s hard to development large systems without tools

4 8/19/04introduction4 Textbook(s)  Required OOSD using Java, 2/e Jia/Addison Wesley OOSD using Java, 2/e Jia/Addison Wesley Concepts & principlesConcepts & principles OO design as used in Java APIsOO design as used in Java APIs System development methodologySystem development methodology  Recommended Rapid application development using Sun ONE studio Liang/Prentice Hall Rapid application development using Sun ONE studio Liang/Prentice Hall Extensive use of IDEExtensive use of IDE  Other online resources

5 8/19/04introduction5 Software vs. Programs  Complexity Break down the task into smaller increments Break down the task into smaller increments Analysis & design before coding Analysis & design before coding Using appropriate tools is essential Using appropriate tools is essential Documentation: for communication and maintenance Documentation: for communication and maintenance  Longevity & evolution Flexibility Flexibility  High user expectations Enterprise applications Enterprise applications

6 8/19/04introduction6 The Traditional Approach  Activities Requirements analysis Requirements analysis Design Design Implementation & unit testing Implementation & unit testing Integration & system testing Integration & system testing Maintenance Maintenance

7 8/19/04introduction7 The Traditional Approach  The waterfall process Flowing from one step (or phase) to the next Flowing from one step (or phase) to the next There is no return: from begin to end There 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 designingKnow everything a system needs to provide before ever designing 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 8/19/04introduction8 Desirable Qualities  Usefulness  Timeliness  Reliability  Maintainability  Reusability  User friendly  Efficiency

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

10 8/19/04introduction10 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 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 Examples Procedure-orientedalgorithmsProcedure-orientedalgorithms Object-orientedclasses & objectsObject-orientedclasses & objects Rule-orientedif-then rulesRule-orientedif-then rules OO paradigm is best suited to a broad set of applications (e.g., the so-called enterprise application) OO paradigm is best suited to a broad set of applications (e.g., the so-called enterprise application)

11 8/19/04introduction11 What’s Object Orientation  For all things object-oriented, the conceptual framework is the object model  Four major elements [essential] Abstraction Abstraction Encapsulation Encapsulation Modularity Modularity Hierarchy Hierarchy  Three minor elements [useful but not essential] Typing Typing Concurrency Concurrency Persistence Persistence

12 8/19/04introduction12 Class Roadmaps – an overview Component design and implementation (build the building blocks) Component-based system development (from building Blocks to systems) Test 1Test 2 Inception ConstructionDesign Demo & Presentation project class discussion and labs

13 8/19/04introduction13 Class Roadmaps – components Introduction Lab 1 UML OO Concepts & Principles Lab 2 IDE Mapping OO Models to Java Lab 4 Event Lab 5 JCF Using Collection Classes Visual Programming w/ Swing & AWT Lab 6 IO Using Java IO Classes Lab 3 Swing

14 8/19/04introduction14 Class Roadmaps – system Java Component Model: JavaBeans Lab 8 Use Lab 9 Patterns Design Patterns I & II Lab 10 JDBC Persistence: JDBC Case Study: A Drawing Pad Lab 11 JSP Distributed Apps: JSP Lab 7 Create Component-based Development

15 8/19/04introduction15 Score Breakdown  Tests 400 2@200 pts each  Labs & case study250  Assignments & quizzes150 assignments 4~6 @ 20~30 pts each  Project 200 design/documentation 100 coding & testing 50 system demo & presentation 50

16 8/19/04introduction16 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 Boehm’s spiral model Booch’s iterative model Booch’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

17 8/19/04introduction17 Micro Process Identifying classes and objects Identifying class & object semantics Identifying class & object relationships specifying class interfaces & impl’s

18 8/19/04introduction18 Macro Process Develop a model of the desired behavior (analysis) Create an architecture (design) Evolve the Implementation (evolution) Establish core requirements (conceptualization) Manage postdelivery evolution (maintenance)

19 8/19/04introduction19 OO Development Activities  Conceptualization  OO analysis & modeling  OO design  Implementation  Maintenance

20 8/19/04introduction20 System Development - A Practical View Ideas Needs statement Functional spec (D-req’ts) Design docs System in production System under dev. Prototypes High-up in the air Solid ground Analysis Design Implementation Conceptualization C-req’ts

21 8/19/04introduction21 The Unified Process  Real distinguishing aspects Use-case driven Use-case driven Architecture-centric Architecture-centric Iterative and incremental Iterative and incremental  Key practices Develop software iteratively Develop software iteratively Elicit, organize, and manage changing requirements Elicit, organize, and manage changing requirements Use component-based architecture Use component-based architecture Visually model software using UML Visually model software using UML Continuously verify software quality Continuously verify software quality Control changes to software Control changes to software

22 8/19/04introduction22 The Unified Process  Workflows Business modeling Business modeling Requirements Requirements Analysis & design Analysis & design Implementation Implementation Testing Testing Deployment Deployment Configuration management Configuration management Project management Project management Environment Environment

23 8/19/04introduction23 The Unified Process  Major phases Inception: establishes the business case for the project Inception: establishes the business case for the project Elaboration: establishes a project plan and a sound architecture Elaboration: establishes a project plan and a sound architecture Construction: grows the system Construction: grows the system Transition: supplies the system to its end users Transition: supplies the system to its end users

24 8/19/04introduction24 complete targeted requirements Step n: Analyze requirements Step n+3: Test Step n+2: Implement Step n+1: Design Product:class models + Product: requirements specifications Product: code +Product: test results + Spiral Development

25 8/19/04introduction25 RUP – activities vs. phases ElaborationInceptionConstructionTransition 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 expended on the requirements phase during the first Construction iteration

26 8/19/04introduction26 Extreme Programming (XP)  Key practices Planning game Planning game Frequent and small release Frequent and small release Simple design Simple design Test first Test first Refactoring Refactoring Pair programming Pair programming Continuous integration Continuous integration Coding standards Coding standards  Read more at http://www.extremeprogramming.org http://www.extremeprogramming.org

27 8/19/04introduction27 Summary  Desired qualities of software systems  Iterative object-oriented development process Description Description Advantages over the waterfall model Advantages over the waterfall model  RUP Phases and workflows Phases and workflows

28 8/19/04introduction28 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 Liang’s book website (Java coding standards, multiple choice review questions, etc) http://www.cs.armstrong.edu/liang/radft.html http://www.cs.armstrong.edu/liang/radft.html Sun’s Java tutorials: http://java.sun.com/docs/books/tutorial/ Sun’s Java tutorials: http://java.sun.com/docs/books/tutorial/ http://java.sun.com/docs/books/tutorial/


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

Similar presentations


Ads by Google