500 likes | 639 Views
Chapter 1. An Introduction to Java and Program Design. Objectives. Describe characteristics of Java Explain the uses of Java and identify types of Java programs Identify the phases in the program development life cycle Define programs, programming, and applications
E N D
Chapter 1 An Introduction to Java and Program Design
Objectives • Describe characteristics of Java • Explain the uses of Java and identify types of Java programs • Identify the phases in the program development life cycle • Define programs, programming, and applications • Read, explain, and create an object structure diagram
Objectives • Read, explain, and create an event diagram • Explain object-oriented programming (OOP) and object-oriented design (OOD) • Define the terms objects, attributes, methods, and events • Define and explain encapsulation, inheritance, and polymorphism
Objectives • Describe rapid application development (RAD) • Identify key components of the Java Software Development Kit (SDK)
Introduction • A program is a step-by-step series of instructions for a 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
What 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 1990’s
What Is Java? • Parsimonious • Compatible with older versions • Robust • Strongly typed and incorruptible data • Secure • Protection against misuse of code • Portable • Platform-independent
Java Program Types • Console and Windowed applications • Applets • Servlets • Web Services • JavaBeans
Console Applications • Stand-alone programs using a command-line interface
Windowed Applications • Stand-alone programs using a graphical user interface (GUI)
Applets • Client-side programs executed within a Web browser
Servlets • 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)
Web Services • Services receive information requests over the Web and return the requested data
JavaBeans • Reusable software components
Programming a Computer • Companies need developers to build general application software packages • Custom applications are built for specific needs • Existing programs need maintenance and upgrades • New applications will be needed due to emerging technologies
Phase 1 – Analyze 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
Phase 1 – Analyze Requirements • Ensure that a solution, or algorithm, can be developed with the information provided in the requirements • Verify the user interface specifications
Phase 2 – Design Solution • Develop a logical model that illustrates the sequence of steps you will take to solve the problem • Use design tools such as storyboards, object structure diagrams, flowcharts, and pseudocode to outline the logic of the program
Phase 2 – Design Solution • Storyboards are sketches of the user interface
Phase 2 – Design Solution • Object Structure Diagrams illustrate the attributes and methods of an object • Attributes define the characteristics of an object • Methods are instructions an object uses to manipulate values, generate outputs, or perform actions
Phase 2 – Design 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
Phase 2 – Design Solution • Pseudocode is an English representation of how the program code should be written
Phase 3 – Validate 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
Phase 4 – Implement 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 • Test the code as it is written • Test related code
Phase 5 – Test 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
Phase 6 – Document 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
Object-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
Objects • Class • Implementation of an object or set of objects with a common structure and behavior • Class diagram • A tool displaying a hierarchy of classes, including superclasses and subclasses • Instance • A specific occurrence of an object • Attributes • The properties of an individual object
Operations • Method • The code of an operation on the data of an object • Message • The activation of an operation through naming the object and the operation to be performed on the object • Trigger • Impetus for a sent message • Event • The process of a trigger sending a message that results in an operation
Event Diagrams and UML • 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
Encapsulation • The process of hiding the implementation details of an object from its user • The user is shielded from the system’s complexity • Information hiding provides access to an object only through its messages • Objects can be modified without requiring application modification
Inheritance • 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
Polymorphism • 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
Rapid Application Development • Pre-built objects speed up program development
What 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
Features 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
Other 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
Summary • Overview of computer programming • Overview of the Java programming language • Characteristics of Java • Program development life cycle • Java program types
Summary • Object-oriented programming and design • Objects, methods, attributes, events • Encapsulation, inheritance, polymorphism • The Java SDK • Other Java development tools