An Introduction to Software Development

skatechildrenSoftware and s/w Development

Nov 3, 2013 (3 years and 7 months ago)

101 views

An Introduction to Software
Development

Java Methods

A & AB

Object
-
Oriented Programming

and Data Structures

Maria Litvin


Gary Litvin

Copyright © 2006 by Maria Litvin, Gary Litvin, and Skylight Publishing. All rights reserved
.

Chapter 2

2
-
2

Objectives:


Understand the software development
process, tools, and priorities


Understand compilers and interpreters


Learn about Java Virtual Machine, bytecodes


Learn to set up and run simple console
applications, GUI applications, and applets in
Java


Learn basic facts about OOP


2
-
3

Software Today:

6,460,000,000


2
-
4

Software Applications


Large business
systems


Databases


Internet, e
-
mail, etc.


Military


Embedded systems


Scientific research


AI


Word processing
and other small
business and
personal productivity
tools


Graphics / arts /
digital photography


Games


2
-
5

Software Development


Emphasis on
efficiency


fast algorithms


small program size


limited memory use



Often cryptic code


Not user
-
friendly


Emphasis on


programmer’s
productivity


team development


reusability of code


easier maintenance


portability


Better documented


User
-
friendly


1950
-
1960's
:

Now
:

2
-
6

Programming Languages

1940 1950 1960 1970 1980 1990 2000

Machine

code

Assembly
languages

Fortran

Basic

Pascal

Scheme

C

C++

Java

LISP

Smalltalk Smalltalk
-
80

C#

Logo

Python

2
-
7

The First “Bug”

“(moth) in relay”

Mark II Aiken Relay Calculator (Harvard University, 1945)

2
-
8

Compiled Languages:

Edit
-
Compile
-
Link
-
Run

Editor

Source

code

Compiler

Object

code

Linker

Executable

program

Editor

Source

code

Compiler

Object

code

Editor

Source

code

Compiler

Object

code



2
-
9

Interpreted Languages:

Edit
-
Run

Editor

Source

code

Interpreter



2
-
10

Compiler vs. Interpreter


Compiler:


checks syntax


generates
machine
-
code
instructions




not needed to run
the executable
program


the executable
runs faster


Interpreter:


checks syntax


executes appropriate
instructions while
interpreting the
program statements


must remain installed
while the program is
interpreted


the interpreted
program is slower

2
-
11

QUIZ TUESDAY
-

8/28


Identify Applet and Gui Application


File types associated with java (.class, .java)


Conversions (Decimal to Binary and Hex) and vice
-
versa (W/O Calculator)


Gridworld CaseStudy (What does it do, Recognize
objects and methods in it)


Inheritance (Identify & Explain use)


Methods (Identify)


Recognize Classes


Debug Syntax Errors


Write a program asking for Input and then Display to
user


2
-
12

Software Development Tools


Editor


programmer writes
source code


Compiler


translates the source
into object code
(instructions specific to a
particular CPU)



Linker


converts one or several
object modules into an
executable program


Debugger


steps through the
program “in slow motion”
and helps find logical
mistakes (“bugs”)

2
-
13

Java’s Hybrid Approach:

Compiler + Interpreter


A Java compiler converts Java source
code into instructions for the Java
Virtual Machine.


These instructions, called
bytecodes
,
are the same for any computer /
operating system.


A CPU
-
specific Java interpreter
interprets bytecodes on a particular
computer.

2
-
14

Java’s Compiler + Interpreter

Editor

:

7

K

Hello.java



Compiler

:

Hello.class





Interpreter

Hello,

World
!





:

Interpreter

2
-
15

Why Bytecodes?


Platform
-
independent


Load from the Internet faster than source
code


Interpreter is faster and smaller than it would
be for Java source


Source code is not revealed to end users


Interpreter performs additional security
checks, screens out malicious code


2
-
16

JDK


J
ava
D
evelopment
K
it


javac


Java compiler


java


Java interpreter


appletviewer


tests applets without a
browser



javadoc


generates HTML
documentation (“docs”)
from source


jar


packs classes into jar
files (packages)


All these are command
-
line tools,
no GUI

2
-
17

JDK (cont’d)


Available free from Sun Microsystems


All documentation is online:




Many additional Java resources on the
Internet

http://java.sun.com/javase/index.jsp

2
-
18

Java IDE


GUI front end for JDK


Integrates editor, javac, java, appletviewer,
debugger, other tools:


specialized Java editor with syntax highlighting,
autoindent, tab setting, etc.


clicking on a compiler error message takes you to
the offending source code line


Usually JDK is installed separately and an
IDE is installed on top of it.

2
-
19

Types of Programs


Console
applications






GUI applications


Applets

2
-
20

Console Applications

C:
\
javamethods
\
Ch02>
path=%PATH%;C:
\
Program Files
\
Java
\
jdk
1.5.0_07
\
bin

C:
\
javamethods
\
Ch02>
javac Greetings2.java

C:
\
javamethods
\
Ch02>
java Greetings2

Enter your first name:
Josephine

Enter your last name:
Jaworski

Hello, Josephine Jaworski

Press any key to continue...



Simple text dialog:

prompt


input, prompt


input ...


result

2
-
21

Command
-
Line Arguments

C:
\
javamethods
\
Ch02>
javac Greetings.java

C:
\
javamethods
\
Ch02>
java Greetings Josephine Jaworski

Hello, Josephine Jaworski

public class Greetings

{


public static void main(String[ ] args)


{


String firstName =
args[ 0 ]
;


String lastName =
args[ 1 ]
;


System.out.println("Hello, " + firstName + " " + lastName);


}

}

Command
-
line
arguments are
passed to
main

as an array of
String
s.

2
-
22

Command
-
Line Args (cont’d)


Can be used in GUI applications, too


IDEs provide ways to set them (or
prompt for them)

Josephine Jaworski

2
-
23

Greetings2.java

import java.util.Scanner;


public class Greetings2

{


public static void main(String[ ] args)


{


Scanner kboard = new Scanner(System.in);


System.out.print("Enter your first name: ");


String firstName = kboard.nextLine( );


System.out.print("Enter your last name: ");


String lastName = kboard.nextLine( );


System.out.println("Hello, " + firstName + " " + lastName);


System.out.println("Welcome to Java!");


}

}

Prompts

2
-
24

GUI Applications

Menus

Buttons

Clickable
panel

Slider

2
-
25

HelloGui.java

import java.awt.*;

import javax.swing.*;


public class HelloGui extends JFrame

{


< ...
other code

>



public static void main(String[ ] args)


{


HelloGui window = new HelloGui( );


// Set this window's location and size:


// upper
-
left corner at 300, 300; width 200, height 100


window.setBounds(300, 300, 200, 100);


window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


window.setVisible(true);


}

}

GUI libraries

2
-
26

HelloApplet.java

import java.awt.*;

import javax.swing.*;

public class HelloApplet
extends JApplet

{


public void init( )


{


...


}


< ...
other code
>

}

No
main

in applets: the
init

method is called by JDK’s
appletviewer

or the browser

2
-
27

OOP


O
bject
-
O
riented
P
rogramming


An OOP program models a world of active
objects.


An object may have its own “memory,”
which may contain other objects.


An object has a set of methods that can
process messages of certain types.

2
-
28

OOP (cont’d)


A method can change the object’s state, send
messages to other objects, and create new
objects.


An object belongs to a particular class, and
the functionality of each object is determined
by its class.


A programmer creates an OOP application by
defining classes.


2
-
29

Method


Group of programming statements that is
given a name.


When a method is invoked, its statements are
executed.


Set of methods is associated with an object



EXAMPLE


setColor()


2
-
30

The Main OOP Concepts:


Inheritance
: a
subclass

extends a
superclass
;
the objects of a subclass inherit features of
the superclass and can redefine them or add
new features.


Event
-
driven programs
: the program
simulates asynchronous handling of events;
methods are called automatically in response
to events.


2
-
31

Inheritance (extends)


A programmer can define hierarchies of classes


More general classes are closer to the top


Inherits all Methods and fields of the Superclass


Public class Adult extends Person



Person

Child

Adult

Baby

Toddler

Teen

2
-
32

Import



Tells Compiler where to look for the Java
Library classes used in this class



EXAMPLE


import java.awt.*;


Import info.gridworld.actor.Rock;

2
-
33


2
-
34


Class Defines a Concept

Bank Account


Classes can be organized into Inheritance
hierarchies

Account

Bank Account

Charge Account

Savings Account

Checking Account

2
-
35

OOP Benefits


Facilitates team development


Easier to reuse software components and
write reusable software


Easier GUI (
G
raphical
U
ser
I
nterface) and
multimedia programming



2
-
36

Review:


What are some of the current software
development concerns?


What are editor, compiler, debugger used
for?


How is a compiler different from an
interpreter?


Name some of the benefits of Java’s
compiler+interpreter approach.


Define IDE.


2
-
37

Review (cont’d):


What is a console application?


What are command
-
line arguments?


What is a GUI application?


What is the difference between a GUI
application and an applet?


What is OOP?


Define inheritance.