OOP CS 445 Object Oriented Design and Programming
OOP CS 445 - Object Oriented Design and Programming
Schedule §Wed, 06: 25 -09: 05 PM Rice Campus - Wheaton Room RI 148 CS 445 - Object Oriented Design and Programming
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 Jbuilder JDeveloper CS 445 - Object Oriented Design and Programming
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. CS 445 - Object Oriented Design and Programming
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. ) CS 445 - Object Oriented Design and Programming
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. CS 445 - Object Oriented Design and Programming
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. CS 445 - Object Oriented Design and Programming
Text Book § TEXTBOOK (REQUIRED) – – Object-Oriented Software Development Using Java Xiaoping Jia, Second Edition CS 445 - Object Oriented Design and Programming
Contact Information § Class Home Page, http: //www. csam. iit. edu/~oaldawud/cs 445/ § Omar Aldawud aldaoma@iit. edu CS 445 - Object Oriented Design and Programming
Introduction §Chapter 1 CS 445 - Object Oriented Design and Programming
SE Generic Activities Communica t ion project init iat ion requirement gat hering Planning estimating scheduling tracking Mode ling analysis design Const ruct ion code t est Deploy ment delivery s upport f eedback SW Engineering is the: n Analysis, Design, Construction, Verification and Management of Software. CS 445 - Object Oriented Design and Programming
SE Waterfall Model CS 445 - Object Oriented Design and Programming
Evolutionary Models: The Spiral CS 445 - Object Oriented Design and Programming
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 CS 445 - Object Oriented Design and Programming
The Unified Process (UP) Phase 1 elaboration Communication + Planning Phase 2 Planning + Modeling inception Phase 3 inception Coding, unit test & integrate Components Construction Transition result Phase 4 Deployment Production CS 445 - Object Oriented Design and Programming
UP Phases CS 445 - Object Oriented Design and Programming
UP Work Products CS 445 - Object Oriented Design and Programming
Extreme Programming (XP) § 1. 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 CS 445 - Object Oriented Design and Programming
Extreme Programming (XP) 2. XP Design – – 3. XP Coding – – – 4. Follows the KIS principle – Simple 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 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 CS 445 - Object Oriented Design and Programming
Extreme Programming (XP) CS 445 - Object Oriented Design and Programming
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 CS 445 - Object Oriented Design and Programming
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 • • – OO Design • – Goal to create an architecture for implementation Implementation • • – Goal to build models of the system’s behavior using UML A model should capture the essential and relevent aspects of the real world Use OO programming language (such as Java) to implement the design Coding, testing and debugging Maintenance • Evolution support CS 445 - Object Oriented Design and Programming
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 CS 445 - Object Oriented Design and Programming
High Level Programming Languages §Java Introduction CS 445 - Object Oriented Design and Programming
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 CS 445 - Object Oriented Design and Programming
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 CS 445 - Object Oriented Design and Programming
Java § § § Combination of compiler and interpreter Compiler converts source code into byte codes (an instruction set for a virtual, machineindependent 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. CS 445 - Object Oriented Design and Programming
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) CS 445 - Object Oriented Design and Programming
Java Portability Windows PC running JVM Java Program Java Bytecode Unix box running JVM Macintosh running JVM CS 445 - Object Oriented Design and Programming
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 CS 445 - Object Oriented Design and Programming
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 CS 445 - Object Oriented Design and Programming
Java Programs § Applets – – § Servlets – – § Small programs designed to add interactivity to Web sites Downloaded with the Web page and launched by the Internet browser Run by Web server on the server Typically generate Web content Applications – Programs that run standalone on a client CS 445 - Object Oriented Design and Programming
An Introduction to Programming § § § Programming Basics Program Design with Pseudocode Developing a Java Application CS 445 - Object Oriented Design and Programming
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 CS 445 - Object Oriented Design and Programming
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 CS 445 - Object Oriented Design and Programming
Four Types of Flow of Control § Sequential Processing – § Method Call – § Jump to code in method, then return Selection – § Execute instructions in order Choose code to execute based on data value Looping or Iteration – Repeat operations for multiple data values CS 445 - Object Oriented Design and Programming
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 CS 445 - Object Oriented Design and Programming Statement . .
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 CS 445 - Object Oriented Design and Programming
Methods. . . sqroot method SUBPROGRAM 1 a meaningful collection of SEQUENCE, SELECTION, LOOP, SUBPROGRAM CS 445 - Object Oriented Design and Programming
IF Condition THEN Statement 1 ELSE Statement 2 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 T negative. " rue Statement Condition Statement . . . False Statement CS 445 - Object Oriented Design and Programming
WHILE Condition DO Statement 1 Looping § The pseudocode for finding the sum of a set of numbers is: False . . . Condition Tru set total to 0 read a number while there was a number to read, add number to total read the next number write total CS 445 - Object Oriented Design and Programming e. Statement
ASYNCHRONOUS CONTROL EVENTHANDLER EVENT a subprogram executed when an event occurs CS 445 - Object Oriented Design and Programming
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 and methods. A mechanism for encapsulation. modularity information hiding CS 445 - Object Oriented Design and Programming
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 CS 445 - Object Oriented Design and Programming
Classes and Objects Examples § Date class – – § data: month, day, year operations to set and return month, day, year a Date object – – – Aug 28 2007 CS 445 - Object Oriented Design and Programming
Classes and Objects § An object: point 1 § Attributes or fields: int x, y; § A method: § void move(int dx, int dy) A message: point 1. move(10, 10) CS 445 - Object Oriented Design and Programming
Classes and Objects § § § Inheritance Example: Student Grad. Student MSStudent Ph. DStudent UGStudent CS 445 - Object Oriented Design and Programming
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 CS 445 - Object Oriented Design and Programming
An Object of class OPERATIONS DATA Set Increment Write. . . Private data: hrs 8 mins 25 secs 42 Time CS 445 - Object Oriented Design and Programming Time
- Slides: 49