1 / 49

OOP

OOP. Schedule. Wed, 06:25-09:05PM Rice Campus - Wheaton Room RI 148 . Java Must Have. To write your first program, you need: The Java TM 5 Platform, Standard Edition. A text editor. Notepad, the simple editor included with the Windows platforms. You can and should use an IDE Eclipse

muniya
Download Presentation

OOP

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

  2. Schedule • Wed, 06:25-09:05PM Rice Campus - Wheaton Room RI 148

  3. Java Must Have • To write your first program, you need: • The JavaTM 5 Platform, Standard Edition. • A text editor. Notepad, the simple editor included with the Windows platforms. • You can and should use an IDE • Eclipse • Jbuilder • JDeveloper

  4. Class Goals • Explain and justify the principles of Object Oriented concepts: • (review abstraction & abstract data types, encapsulation, inheritance, polymorphism, aggregation) • Analyze and identify the strengths (and weaknesses) of in-depth areas of the Object Oriented paradigm. • Analyze, explain, & compare the qualities of Object Oriented languages and how well they support the object model. • Explain and analyze the key points of Object Oriented analysis.

  5. Class Goals • Explain and analyze the key points of Object Oriented design. • Design, implement, test and debug multi-phased Object Oriented application. • Explain and utilize contemporary Object Oriented methodologies (data-driven methodology and behavior-driven methodology) • Utilize recent notation (Unified Modeling Language) to express the artifacts of Object Oriented Analysis & Design (class design, class relationships, object interaction, object states, etc.)

  6. Class Goals • Perform Object Oriented Analysis & Design on a real-world problem. • Explain and Utilize Complex Design Patterns. • Create an implementation of the resultant Object Oriented design. • Examine new & contemporary concepts in Object Orientation. • Communicate the deliverables of a software development project.

  7. Laboratory Projects • A 2-part large-scale Object Oriented software development project is required by each student in which the student will experience designing, coding, testing and debugging a significant Object Oriented application. • The combined parts of the course project are generally range from 5000 - 10000 lines of code. • Part 1 (6 weeks): object-oriented analysis and design of the software system. • Part 2 (6 weeks): object-oriented detailed design, implementation using object oriented language, and testing of the software system.

  8. Text Book • TEXTBOOK (REQUIRED) • Object-Oriented Software Development Using Java • Xiaoping Jia, Second Edition

  9. ContactInformation • Class Home Page, http://www.csam.iit.edu/~oaldawud/cs445/ • Omar Aldawudaldaoma@iit.edu

  10. Introduction Chapter 1

  11. n t g a t h e r i n g estimating scheduling tracking d e l i v e r y s u p p o r t f e e d b a c k C o m m u n i c a t i o n Planning p r o j e c t i n i t i a t i o n r e q u i r e m e M o d e l i n g a n a l y s i s C o n s t r u c t i o n d e s i g n D e p l o y m e n t c o d e t e s t SE Generic Activities SW Engineering is the: • Analysis, Design, Construction, Verification and Management of Software.

  12. SE Waterfall Model

  13. Evolutionary Models: The Spiral

  14. Rational Unified Process • a “use-case driven, architecture-centric, iterative and incremental” software process closely aligned with the Unified Modeling Language (UML) • Tools are used to describe customer views (use cases) • Used mainly for OO based methodologies • Runs in phases

  15. The Unified Process (UP) inception Phase 1 Communication + Planning Phase 2 Planning + Modeling elaboration inception Phase 3 Coding, unit test & integrate Components Construction Transition result Phase 4 Deployment Production

  16. UP Phases

  17. UP Work Products

  18. Extreme Programming (XP) • The most widely used agile process, originally proposed by Kent Beck. It encompasses the following activities: • XP Planning • Begins with the creation of “user stories” • Agile team assesses each story and assigns a cost • Stories are grouped to form a deliverable increment • A commitment is made on delivery date • After the first increment “project velocity” is used to help define subsequent delivery dates for other increments • Project Velocity is a measure of the number of stories implemented in the first release

  19. Extreme Programming (XP) • XP Design • Follows the KIS principle – Simple Design • Design provide implementation guidelines for a story • Encourage the use of CRC cards or class diagram • For difficult design problems, suggests the creation of “spike solutions”—a design prototype • XP Coding • Recommends the construction of a unit test for a story before coding • Encourages “pair programming” for stories • Integration Team – integrates all stories • XP Testing • All unit tests are executed daily • “Acceptance tests” are defined by the customer and executed to assess customer visible functionality

  20. Extreme Programming (XP)

  21. Modeling the Real World • Components of a software system is an interpretation of the real world • Model • Algorithm • Object Orientation is a software development model that makes use of objects as a representation of the real world

  22. Object Orientation • OO development processes is similar to those of the waterfall model (What Booch calles Macro Process) • Conceptualization – requirements gathering • OO Analysis and Modeling • Goal to build models of the system’s behavior using UML • A model should capture the essential and relevent aspects of the real world • OO Design • Goal to create an architecture for implementation • Implementation • Use OO programming language (such as Java) to implement the design • Coding, testing and debugging • Maintenance • Evolution support

  23. Booch [94] Approach • Proposed an iterative SW development process for OOSD • The approach consist of a number of successive iterations (micro process): • Identify the classes • Identify the semantics (attributes and behavior) • Identify the relationships • Define class interfaces • Implementing the class • Booch’s approach adopted by RUP and XP

  24. High Level Programming Languages Java Introduction

  25. High-Level Languages • Compiled • Compiler converts source code (instructions and data) into machine language, then program is executed • Interpreted • Interpreter converts instructions into machine language at run time as instructions are executed • Usually executes more slowly than compiled program

  26. High-Level Languages • Are portable • Are translated into machine code by compilers • Instructions are written in language similar to natural language • Examples -- FORTRAN, COBOL, Pascal, C, C++ • Many are standardized by ISO/ANSI to provide an official description of the language

  27. Java • Combination of compiler and interpreter • Compiler converts source code into byte codes (an instruction set for a virtual, machine-independent processor) • At run time, the Java Virtual Machine (JVM) interprets the byte codes and converts them into the machine language on which the program is running.

  28. Programming a Computer: Java • The Java Programming Language • A high-level language • Java compiler translates to Java bytecodes for execution on a Java Virtual Machine (JVM)

  29. Windows PC running JVM Java Program Java Bytecode Unix box running JVM Macintosh running JVM Java Portability

  30. Java • Achieves portability by using both a compiler and an interpreter • Java compiler translates a Java program into an intermediate Bytecode--not machine language • An interpreter program called the Java Virtual Machine (JVM) translates each successive instruction in the Bytecode program to machine language and immediately runs it

  31. The Java Language • Created by Sun Microsystems in 1995 • Syntax based on C++ • Object-Oriented • Support for Internet applications • Extensive library of prewritten classes • Portability among platforms • Built-in networking

  32. Java Programs • Applets • Small programs designed to add interactivity to Web sites • Downloaded with the Web page and launched by the Internet browser • Servlets • Run by Web server on the server • Typically generate Web content • Applications • Programs that run standalone on a client

  33. An Introduction to Programming • Programming Basics • Program Design with Pseudocode • Developing a Java Application

  34. Programming Basics • Programming is translating a problem into ordered steps consisting of operations a computer can perform: • Input • Calculations • Comparisons of values • Moving data • Output • The order of execution of instructions is called flow of control

  35. Program Design with Pseudocode • Pronounced sue-dough-code • English-like language for specifying the design of a program • Programmer can concentrate on design of program without worrying about Java language rules (syntax) • Then convert pseudocode into Java code

  36. Four Types of Flow of Control • Sequential Processing • Execute instructions in order • Method Call • Jump to code in method, then return • Selection • Choose code to execute based on data value • Looping or Iteration • Repeat operations for multiple data values

  37. Sequential Processing • The pseudocode for calculating the sum of two numbers would look like this: read first number read second number set total to (first number + second number) output total Statement Statement Statement . . .

  38. Method Call • Calling the method executes the method • Methods can take arguments (data to use) and return values • Here is pseudocode for calculating the square root of an integer: read an integer call the square root method, with integer as argument output the square root

  39. Methods . . . sqroot method SUBPROGRAM1 a meaningful collection of SEQUENCE, SELECTION, LOOP, SUBPROGRAM

  40. IF Condition THEN Statement1 ELSE Statement2 Selection • The pseudocode for determining if a number is positive or negative is: read a number if the number is greater than or equal to 0 write "Number is positive." else write "Number is negative." True Statement Condition . . . Statement Statement False

  41. False . . . Condition True Statement WHILE Condition DO Statement1 Looping • The pseudocode for finding the sum of a set of numbers is: set total to 0 read a number while there was a number to read, add number to total read the next number write total

  42. EVENTHANDLER a subprogram executed when an event occurs EVENT ASYNCHRONOUS CONTROL

  43. Object-oriented Programming (OOP) • Class • tool for encapsulating data and operations (methods) into one package • defines a template or model for creating and manipulating objects • Objects • data created using the class and its methods • an object is an instance of the class • creating an object is instantiation • A software components consists of variables andmethods. • A mechanism for encapsulation. • modularity • information hiding

  44. Object-oriented Programming (OOP) • Message • Objects communicate via message passing. • A message consists of an object (the recipient), a method, and optional parameters. • Inheritance • A mechanism to organize classes by commonalities. • subclasses, specialization • superclass, generalization

  45. Classes and Objects Examples • Date class • data: month, day, year • operations to set and return month, day, year • a Date object • Aug • 28 • 2007

  46. Classes and Objects • An object: point1 • Attributes or fields: int x, y; • A method: void move(int dx, int dy) • A message: point1.move(10, 10)

  47. Classes and Objects • Inheritance Example: • Student • GradStudent • MSStudent • PhDStudent • UGStudent

  48. OOP Advantage: Reuse • Well-written classes can be reused in new applications • Shortens development time because programmers don't need to write new code • Programs are more robust because the class code is already tested

  49. An Object of class Time OPERATIONSDATA Set Private data: hrs 8 mins 25 secs 42 Increment Write . . . Time

More Related