280 likes | 409 Views
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?
E N D
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 introduction
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
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
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
The Traditional Approach • Activities • Requirements analysis • Design • Implementation & unit testing • Integration & system testing • Maintenance introduction
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
Desirable Qualities • Usefulness • Timeliness • Reliability • Maintainability • Reusability • User friendly • Efficiency introduction
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
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
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
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
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
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
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
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
Micro Process Identifying classes and objects specifying class interfaces & impl’s Identifying class & object semantics Identifying class & object relationships introduction
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
OO Development Activities • Conceptualization • OO analysis & modeling • OO design • Implementation • Maintenance introduction
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
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
The Unified Process • Workflows • Business modeling • Requirements • Analysis & design • Implementation • Testing • Deployment • Configuration management • Project management • Environment introduction
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
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
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
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
Summary • Desired qualities of software systems • Iterative object-oriented development process • Description • Advantages over the waterfall model • RUP • Phases and workflows introduction
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