1 / 28

OOSD Using Java

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?

ziva
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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OOSD Using Java Lecture 1 Introduction

  2. 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

  3. 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

  4. 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

  5. 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

  6. The Traditional Approach • Activities • Requirements analysis • Design • Implementation & unit testing • Integration & system testing • Maintenance introduction

  7. 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

  8. Desirable Qualities • Usefulness • Timeliness • Reliability • Maintainability • Reusability • User friendly • Efficiency introduction

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. Micro Process Identifying classes and objects specifying class interfaces & impl’s Identifying class & object semantics Identifying class & object relationships introduction

  18. 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

  19. OO Development Activities • Conceptualization • OO analysis & modeling • OO design • Implementation • Maintenance introduction

  20. 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

  21. 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

  22. The Unified Process • Workflows • Business modeling • Requirements • Analysis & design • Implementation • Testing • Deployment • Configuration management • Project management • Environment introduction

  23. 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

  24. 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

  25. 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

  26. 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

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

  28. 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

More Related