Chapter 10 Application Development

Slides:



Advertisements
Similar presentations
Chapter 1 An Overview of Computers and Programming Languages.
Advertisements

SYSTEM PROGRAMMING & SYSTEM ADMINISTRATION
Copyright © 2002 W. A. Tucker1 Chapter 1 Lecture Notes Bill Tucker Austin Community College COSC 1315.
Computers Are Your Future
Professor Michael J. Losacco CIS 1150 – Introduction to Computer Information Systems Programming and Languages Chapter 13.
Programming Creating programs that run on your PC
1 Lecture 1  Getting ready to program  Hardware Model  Software Model  Programming Languages  The C Language  Software Engineering  Programming.
Computers: Tools for an Information Age
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
© Prentice Hall CHAPTER 3 Computer Software.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
Chapter 3 Software Two major types of software
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
Computer Software.
Your Interactive Guide to the Digital World Discovering Computers 2012.
Microsoft Visual Basic 2012 CHAPTER ONE Introduction to Visual Basic 2012 Programming.
Microsoft Visual Basic 2005 CHAPTER 1 Introduction to Visual Basic 2005 Programming.
CS102 Introduction to Computer Programming
Programming Languages: Telling the Computers What to Do Chapter 16.
Chapter 1: Introduction to Visual Basic.NET: Background and Perspective Visual Basic.NET Programming: From Problem Analysis to Program Design.
Chapter Lead Black Slide Powered by DeSiaMore Powered by DeSiaMore.
COMPUTER SOFTWARE Section 2 “System Software: Computer System Management ” CHAPTER 4 Lecture-6/ T. Nouf Almujally 1.
Welcome to OBJECT ORIENTED PROGRAMMIN Date: 10/09/2014 Prepared By Prepared By : VINAY ALEXANDER PGT(CS) KV jhagrakhand.
HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.
CISC105 General Computer Science Class 1 – 6/5/2006.
CHAPTER FOUR COMPUTER SOFTWARE.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
Chapter 3: Computer Software. Stored Program Concept v The concept of preparing a precise list of exactly what the computer is to do (this list is called.
Invitation to Computer Science 5 th Edition Chapter 6 An Introduction to System Software and Virtual Machine s.
Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent.
Lead Black Slide. © 2001 Business & Information Systems 2/e2 Chapter 5 Information System Software.
Introduction to OOP CPS235: Introduction.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Chapter 1: Introduction to Visual Basic.NET: Background and Perspective Visual Basic.NET Programming: From Problem Analysis to Program Design.
Chapter 1 An Overview of Computers and Programming Languages.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
Microsoft Visual Basic 2015 CHAPTER ONE Introduction to Visual Basic 2015 Programming.
Welcome to OBJECT ORIENTED PROGRAMMING Prepared By Prepared By : VINAY ALEXANDER PGT(CS) KV jhagrakhand.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Programming Logic and Design Seventh Edition Chapter 1 An Overview of Computers and Programming.
Introduction to Software
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
Computer Language
Evolution and History of Programming Languages
Invitation to Computer Science 6th Edition
DDC 2223 SYSTEM SOFTWARE DDC2223 SYSTEM SOFTWARE.
Advanced Computer Systems
Visit for more Learning Resources
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Operating System Interface between a user and the computer hardware
CSCI-235 Micro-Computer Applications
Computer Programming.
Key Ideas from day 1 slides
Introduction to Visual Basic 2008 Programming
System Programming and administration
Java programming lecture one
Chapter 1: An Overview of Computers and Programming Languages
C++ Programming: From Problem Analysis to Program Design
Chapter 4 Computer Software.
Unit# 8: Introduction to Computer Programming
Computer Programming.
Machine Independent Features
CIS16 Application Development – Programming with Visual Basic
Topics Introduction Hardware and Software How Computers Store Data
Chapter 1 Introduction(1.1)
CMP 131 Introduction to Computer Programming
Introduction to Computer Programming
Programming Logic and Design Eighth Edition
Presentation transcript:

Chapter 10 Application Development

Chapter 10 Application Development Chapter Outline The Application Development Process Programming Languages Compilation Link Editing Interpreters Focus - Java Symbolic Debugging Integrated Application Development Tools Focus – Oracle JDeveloper Focus - Building the Next Generation of Application Software

Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations Explain the function and operation of program translation software, including assemblers, compilers, and interpreters Describe link editing, and contrast static and dynamic linking Describe integrated application development software, including programmer’s workbenches and CASE tools

Chapter 10 Application Development

The Application Development Process Follows a development methodology Develops a set of models Uses automated tools

Application Development

Systems Development Life Cycle (SDLC) Follow disciplines and iterations of the Unified Process (UP) Usually includes two sets of models System requirements model Design model

The Unified Process (UP)

Methodologies and Models Methodology Integrated collection of models, tools, and techniques UP employs object-oriented analysis, design, and deployment models Class diagrams document user and system requirements

Tools Wide array to support or completely automate software development tasks Proper tool selection is a critical and difficult undertaking

This Material Continued In CIS 242 Introduction to Systems Analysis and Design 4 hours, 4 credits Study of a computer system life cycle via a structured approach: problem definition, feasibility study, cost estimation, analysis, design, implementation, testing and maintenance. Hardware and software organization. Several case studies will be considered. PREREQ: CIS 211.

Programming Languages Instruct computer to perform a task Sometimes called code Programmer goals Make language easier for people to understand Develop languages and development approaches that require people to write fewer instructions to accomplish a task

Programming Language Evolution

Programming Languages Summary of capabilities of recent generations Instruction explosion Database access Support for GUIs Nonprocedural programming All but 1GL must be translated into CPU instructions prior to execution (compilers and interpreters)

Programming Language Characteristics

First-Generation Languages Required programmers to remember binary codes that represented each CPU instruction and to specify all operands as binary numbers Tedious to program; error-prone

Second-Generation Languages Use mnemonics to represent variables (program instruction memory address) and labels (data item memory address) Easier to manipulate than binary numbers; assembler translates program into binary CPU instructions Common in 1950s

Third-Generation Languages Use mnemonics to represent instructions, variables, and labels Have degree of instruction explosion greater than 1:1 Translated with compilers, link editors, and interpreters Machine independent Developed before GUIs, database managers, and Internet

Fourth-Generation Languages Majority were proprietary many were optional components of database management systems Most support mixture of procedural and nonprocedural instructions

Equivalent Programs in SQL and C

Fifth-Generation Languages Nonprocedural language suitable for developing software that mimics human intelligence Rule processor accepts a starting state as input and iteratively applies rules to achieve a solution First appeared in 1960s; not widely used until 1980s

Object-Oriented Programming (OOP) Languages View data and programs as two parts of integrated whole (object) Promote reusability and portability of source code Uniquely suited to developing real-time programs Not clear successors to 5GLs; neither nonprocedural nor exclusively used for developing artificial intelligence

OOP Languages Objects reside in a specific location, wait for messages to arrive, and return a response.

Scripting Languages Enable programmers to develop applications that do most of their work by calling other applications and system software Enable rapid assembly of application software by “gluing” together capabilities of other programs Evolved from 4GLs, though most now incorporate OOP concepts

Programming Language Standards Set by ANSI and ISO Include definitions of: Language syntax and grammar Machine behavior for each instruction or statement Test programs with expected warnings, errors, and execution behavior Guarantee program portability among operating systems and application programs

Compilation Translates an entire source code file, building a symbol table and object code file as output

Program Development

Compiler 1. Checks for errors in syntax 2. Issues warnings and/or error messages 3. Builds and uses a Symbol Table as it works stores information about data items and program components 4. Generates CPU instructions and library calls to carry out the source code instructions 5. Creates an object code file as output

Source Code Instruction Types Data declarations A data declaration creates an entry in the symbol table Data operations A data operation becomes a series of data transformation instructions Control structures A control structure becomes a series of control flow instructions Subprogram calls

Data Declarations Define name and data type of program variables Stored in memory allocated by compiler

Symbol Table The compiler updates a symbol table to keep track of data names, types, and assigned memory addresses.

Data Operations Instructions that update or compute a data value Translated by compiler into equivalent sequence of data movement and data transformation instructions for target CPU Compiler refers to entries in symbol table to determine source and destination memory addresses for data movement instructions

Control Structures Source code instructions that control the execution of other source code instructions Common thread is transfer of control among CPU instructions

Function Calls Named instruction sequences executed by call instructions Transfer control to the instruction following the call by executing a return instruction

Implementing Call and Return Instructions Compiler generates CPU instructions to: Pass input parameters to the function Save the value of the IP as a Return Address Load the IP with the address of the subprogram Transfer control to the function Execute CPU instructions within the function Pass output parameters back to the caller Load the IP with the saved Return Address Transfer control back to the caller

Symbol Table

Compilation Just The First Step source code translated by compiler into object code linked with library routines to make load module loaded into memory by operating system as runnable machine instructions

Link Editing Statically links external reference calls in object code to library functions; combines them into a single file containing executable code Can dynamically link external calls by statically linking them to an OS service function that loads and executes dynamic-link library (DLL) functions at run time Always used by interpreters

Key Benefits of Link Editors in Program Translation A single executable program can be constructed from multiple object code files compiled at different times A single compiler can generate executable programs that run under multiple operating systems

Linking Separately Compiled Functions into a Single Program

Dynamic and Static Linking Library and other subroutines cannot be changed once inserted into executable code Dynamic linking Performed during program loading or execution

Advantages of Dynamic and Static Linking Smaller application program executable files Flexibility Static Execution speed Improves reliability and predictability of executable programs

Interpreters Interleave source code translation, link editing, and execution, one source code instruction at a time Advantage (vs. compilation) Provide flexibility to incorporate new or updated code into an application program (dynamic linking) Disadvantage (vs. compilation) Increase memory and CPU requirements during program execution

Memory and CPU Resources Used During Program Execution

Java Object-oriented programming language and program execution environment Maximizes reliability of applications and reusability of existing code Has a standardized target machine language for Java interpreters and compilers Drawback: Reduced execution speed due to use of interpreted byte codes and OS translation

Java How Java and the JVM relate to the CPU and the OS

Features of Java Provision of compilers and virtual machines at little or no cost Incorporation of JVMs into Web browsers Increasing development of application software that uses a Web browser as primary I/O device Ability of Java programs to execute on any combination of computer hardware and OS

Symbolic Debugging Use of an automated tool for testing executable programs; able to: Trace calls to specific source code statements or subroutines Trace changes to variable contents Execute source code instructions one at a time Detect and report run-time errors to programmer

Symbolic Debugger Uses symbol table, memory map, and source code files to trace memory addresses to specific source code statements and variables Inserts debugging checkpoints after each source code instruction; program execution can be paused Debugging vs. production/distribution version Incorporated directly in most interpreters

Application Development Tools

Integrated Application Development Tools Programmer’s workbenches CASE tools Integrated set of automated support tools to speed development and testing Key feature: Level of integration among tools Require 2-3 times CPU power, memory, and disk storage of typical workstation Support UP requirements and design disciplines Key feature: Support for broad range of system development activities with emphasis on model development

Programmer’s Workbench Components Smart program editor Compiler and/or interpreter Link editor and large library of classes or subroutines Interactive tool for prototyping and designing user interfaces Symbolic debugger Integrated window-oriented GUI

CASE Tools Front-end CASE tools Support development of requirements and design models Back-end CASE tools Generate program source code from models

Summary Software development process Programming languages Compilation and link editing Interpretation Symbolic debugging Application development tools

Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations Explain the function and operation of program translation software, including assemblers, compilers, and interpreters Describe link editing, and contrast static and dynamic linking Describe integrated application development software, including programmer’s workbenches and CASE tools