510 likes | 521 Views
This chapter introduces Java characteristics, program types, and development life cycle phases. Exploring Java's uses, OOP, RAD, and SDK components, it covers class and event diagrams, object-oriented design, and application development concepts. Learn to code Java applications, understand program design processes, and test and implement solutions effectively. Enhance your Java programming knowledge and skills through hands-on lessons and practical examples.
E N D
Chapter 1 An Introduction to Java and Program Design
Chapter 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 a class diagram
Chapter 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
Chapter 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 • 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 as part of a displayed Web page
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, monitoring, and upgrades • New applications will be needed due to emerging technologies
Phase 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
Phase 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
Phase 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
Phase 2 – Design the Solution • Storyboards are sketches of the user interface
Phase 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
Phase 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
Phase 2 – Design the Solution • Pseudocode is an English representation of how the program code should be written
Phase 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
Phase 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
Phase 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
Phase 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
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
Object-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
Object-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
Object-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
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
Chapter Summary • 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 a class diagram
Chapter Summary • 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
Chapter Summary • Describe rapid application development (RAD) • Identify key components of the Java Software Development Kit (SDK)