CS445 - Object Oriented Design and Programming OOP.
-
date post
19-Dec-2015 -
Category
Documents
-
view
247 -
download
11
Transcript of CS445 - Object Oriented Design and Programming OOP.
CS445 - Object Oriented Design and Programming
ScheduleWed, 06:25-09:05PM
Rice Campus - Wheaton Room RI 148
CS445 - Object Oriented Design and Programming
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
CS445 - 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.
CS445 - 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.)
CS445 - 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.
CS445 - 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.
CS445 - Object Oriented Design and Programming
Text Book TEXTBOOK (REQUIRED)
– Object-Oriented Software Development Using Java
– Xiaoping Jia, Second Edition
CS445 - Object Oriented Design and Programming
Contact Information Class Home Page,
http://www.csam.iit.edu/~oaldawud/cs445/
Omar Aldawud [email protected]
CS445 - Object Oriented Design and Programming
SE Generic Activities
Communication Planning
Modeling
ConstructionDeployment
analysis
designcode
test
project initiation
requirement gathering estimating
scheduling
tracking
delivery
support
feedback
SW Engineering is the:
Analysis, Design, Construction, Verification and Management of Software.
CS445 - Object Oriented Design and Programming
Evolutionary Models: The Spiral
communication
planning
modeling
constructiondeployment delivery feedback
start
analysis design
code test
estimation scheduling risk analysis
CS445 - 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
CS445 - Object Oriented Design and Programming
inceptioninception
The Unified Process (UP)
software increment
Release
Inception
Elaboration
construction
transition
production
inception
elaborationPhase 1
Communication + Planning
Phase 2
Planning + Modeling
Phase 3
Coding, unit test & integrate Components
Phase 4 Deployment
result
Construction
Transition
Production
CS445 - Object Oriented Design and Programming
UP Phases
Inception Elaboration Construction Transition Production
UP Phases
Workflows
Requirements
Analysis
Design
Implementation
Test
Iterations #1 #2 #n-1 #n
Support
CS445 - Object Oriented Design and Programming
UP Work ProductsInception phase
Elaboration phase
Construction phase
Transition phase
Vision document Init ial use-case model Init ial project glossaryInit ial business case Init ial risk assessment. Project plan, phases and iterations. Business model, if necessary. One or more prototypes Incept io n
Use-case modelSupplementary requirements including non-functional Analysis model Software architecture Descript ion. Executable architectural prototype. Preliminary design model Revised risk listProject plan including iteration plan adapted workflows milestones technical work products Preliminary user manual
Design modelSoftware components Integrated software increment Test plan and procedure Test cases Support documentation user manuals installat ion manuals descript ion of current increment
Delivered software increment Beta test reports General user feedback
CS445 - Object Oriented Design and Programming
Extreme Programming (XP) The most widely used agile process, originally
proposed by Kent Beck. It encompasses the following activities:
1. 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
CS445 - Object Oriented Design and Programming
Extreme Programming (XP)2. 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
3. XP Coding– Recommends the construction of a unit test for a story before
coding– Encourages “pair programming” for stories– Integration Team – integrates all stories
4. XP Testing– All unit tests are executed daily– “Acceptance tests” are defined by the customer and
executed to assess customer visible functionality
CS445 - Object Oriented Design and Programming
Extreme Programming (XP)
unit test continuous integration
acceptance testing
pair programming
Release
user stories values acceptance test criteria iteration plan
simple design CRC cards
spike solutions prototypes
refactoring
software incrementproject velocity computed
CS445 - 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
CS445 - 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
• 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
CS445 - 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
CS445 - 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
CS445 - 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
CS445 - Object Oriented Design and Programming
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.
CS445 - 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)
Ok ...
J a va V i r tu a lM a c h in e
T ra n s la to r
1011 0000 0001 00000000 0100 0001 01111010 0010 0100 1000 0000 0000
sum = 16 + 23;J a va
C o m p i l e r
J V MM a c h in e
L a n g u a g e
CS445 - Object Oriented Design and Programming
Java Portability
Windows PCrunning JVM
Windows PCrunning JVM
Java Program
Java Program Unix box
running JVM
Unix boxrunning JVM
Macintoshrunning JVM
Macintoshrunning JVM
Java Bytecode
Java Bytecode
CS445 - 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
CS445 - 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
CS445 - Object Oriented Design and Programming
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
CS445 - Object Oriented Design and Programming
An Introduction to Programming
Programming Basics Program Design with Pseudocode Developing a Java Application
CS445 - 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
CS445 - 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
CS445 - Object Oriented Design and Programming
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
CS445 - 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 Statement Statement . . .
CS445 - Object Oriented Design and Programming
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
CS445 - Object Oriented Design and Programming
Methods
SUBPROGRAM1 a meaningful collection
of SEQUENCE, SELECTION, LOOP,
SUBPROGRAM
sqroot method . . .
CS445 - Object Oriented Design and Programming
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." Statement
Statement
Condition . . .
True
False
IF Condition THEN Statement1 ELSE Statement2
Statement
CS445 - Object Oriented Design and Programming
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
WHILE Condition DO Statement1
Statement
. . .False
True
Condition
CS445 - Object Oriented Design and Programming
EVENT
EVENTHANDLER
a subprogram executed when an event occurs
ASYNCHRONOUS CONTROL
CS445 - 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
CS445 - 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
CS445 - 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
CS445 - Object Oriented Design and Programming
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)
CS445 - Object Oriented Design and Programming
Classes and Objects Inheritance Example: Student GradStudent MSStudent PhDStudent UGStudent
CS445 - 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