Title: An Introduction to Java and Program Design
1Chapter 1
- An Introduction to Java and Program Design
2Introduction
- A program is a step-by-step series of
instructions for a computer - Computer programming is the process of writing
these instructions - Programmers, or developers, design and write
programs using a programming language or
development tool - Java is a programming language that provides the
structure for efficient and economical programs
3What Is Java?
- High-level language
- Object-oriented
- Data and operations are packaged into a single
unit called an object - Basic syntax derived from C, C, and Smalltalk
- Designed by a team from Sun Microsystems led by
James Gosling in the early 1990s
4What Is Java?
- Parsimonious
- Compatible with older versions
- Robust
- Strongly typed and incorruptible data
- Secure
- Protection against misuse of code
- Portable
- Platform-independent
5Java Program Types
- Console and Windowed applications
- Applets
- Servlets
- Web Services
- JavaBeans
6Console Applications
- Stand-alone programs using a command-line
interface
7Windowed Applications
- Stand-alone programs using a graphical user
interface (GUI)
8Applets
- Client-side programs executed as part of a
displayed Web page
9Servlets
- Server-side programs hosted and run on a Web
server - Used in conjunction with Java Server Pages (JSP)
to provide sophisticated server-side logic - Enable connections to server databases through
Java Database Connectivity (JDBC)
10Servlets
11Web Services
- Services receive information requests over the
Web and return the requested data
12JavaBeans
- Reusable software components
13Programming a Computer
- Companies need developers to build general
application software packages - Custom applications are built for specific needs
- Existing programs need maintenance, monitoring,
and upgrades - New applications will be needed due to emerging
technologies
14 15Program Development Cycle
16Phase 1 Analyze the Requirements
- Verify that the requirements are clear and
complete - Evaluate the problem to determine that it is
solvable using a program - List the required input and output data
- Determine whether the input data is available for
testing
17Phase 1 Analyze the Requirements
- Ensure that a solution, or algorithm, can be
developed with the information provided in the
requirements - Verify the user interface specifications
18 19Phase 2 Design the Solution
- Develop a logical model that illustrates the
sequence of steps you will take to solve the
problem - Use design tools such as storyboards, class
diagrams, flowcharts, and pseudocode to outline
the logic of the program
20Phase 2 Design the Solution
- Storyboards are sketches of the user interface
21Phase 2 Design the Solution
- Class Diagrams illustrate the attributes and
methods of a class of objects - Attributes define the characteristics of a class
- Methods are instructions a class uses to
manipulate values, generate outputs, or perform
actions
22Phase 2 Design the Solution
23Phase 2 Design the Solution
- Flowcharts graphically represent the logic used
to develop an algorithm - Control structures allow the programmer to
specify the code that will execute only if a
condition is met - Flowcharts use pseudocode, English, or
mathematical notation inside symbols to represent
the steps of a solution
24 25 26Phase 2 Design the Solution
- Pseudocode is an English representation of how
the program code should be written
27Phase 3 Validate the Design
- The programmer steps through the solution with
test data - The user agrees that the program design solves
the problem put forth in the requirements - The user verifies that the initial requirements
document contains all necessary requirements
28Phase 4 Implement the Design
- Write the code that translates the design into a
program - Create the user interface
- Create comments within the code that explains the
purpose of the code - Unit testing
- Test the code as it is written
- Test related code
29Phase 4 Implement the Design
30Phase 5 Test the Solution
- Create a test plan with test cases of sample
input data and expected output - Perform integration testing to ensure that
components interact correctly - Test boundary values
- Document any problems
- If results are unsatisfactory, a new iteration of
the development cycle begins
31Phase 6 Document the Solution
- Requirements documents, program design documents,
user interface documents, and documentation of
the code - Test cases and proof of successful completion of
testing - Program code should be archived electronically
32Object-Oriented Programming and Design
- Object-oriented programming
- Data and the code that operates on the data are
packaged into a single unit called an object - Object-oriented design
- Identifies how objects interact with each other
to solve a problem
33Object-Speak
- Aggregation
- The concept of an object composed of another
object - Generalization hierarchy
- A tool displaying a hierarchy of classes,
including superclasses and subclasses - Instance
- A specific use of a class
34Object-Speak
- Operation
- Activity that reads or manipulates the data of an
object - Message
- Activates the code to perform one of the
operations - Trigger
- Causes the message to be sent
- Event
- The process of a trigger sending a message that
results in an operation
35Object-Speak
- An event diagram graphically represents
relationships among event and operations - Useful for designing event-driven programs
- Part of the Unified Modeling Language (UML)
- The UML provides a standardized model to describe
object-oriented designs graphically - The UML is a system of symbols to represent
object behavior and program behavior
36 37Encapsulation
- The process of hiding the implementation details
of an object from its user - The user is shielded from the systems complexity
- Information hiding provides access to an object
only through its messages - Objects can be modified without requiring
application modification
38Inheritance
- An efficient way to reuse code by defining a
subclass as an extension of another class - The subclass inherits all the data and functions
of the superclass - The subclass has at least one attribute or method
that differs from its superclass
39Polymorphism
- Allows an instruction to be given to an object
using a generalized command - The same command will obtain different results
depending on the object receiving the command - The specific actions internal to the object are
encapsulated from the user
40(No Transcript)
41Rapid Application Development
- Pre-built objects speed up program development
42What Is the Java SDK?
- The Java Software Development Kit (SDK) is a
programming package to develop Java applications - The Java Runtime Environment (JRE) provides the
tools to deploy Java applications
43Features of the J2SE
- The Java Compiler
- Converts code into bytecode
- The Java Virtual Machine
- Contains an interpreter to execute the bytecode
- The Java API
- The standard set of packages available in Java
- The Java Applet Viewer
- Mini browser to display Java applets
44Other Java Development Tools
- VATE (value-added text editor)
- Color codes elements and numbers lines
- Examples TextPad, JCreator, JGrasp
- IDE (integrated development environment)
- Builder tool to aid coding and debugging
- Examples Sun ONE Studio, JBuilder, Visual Age,
Simplicity - Web server
- Deploys servlets
- Example Tomcat
45Chapter 1 Homework
- Short Answer, pages 35 36
- 1, 2, 5 10
- Only type the answers, not the questions
- Programming Assignments
- Pages 38 43
- 1, 2, 4, 10
- All answers must be typed and printed out.
- Due 9/13/07