Title: Chapter 10 Application Development
1Chapter 10Application Development
2Chapter Goals
Chapter 10
Systems Architecture
- Describe the application development process and
the role of methodologies, models and tools. - Compare and contrast programming language
generations.
3Chapter Goals
Chapter 10
Systems Architecture
- Explain the function and operation of program
translation software, including assemblers,
compilers and interpreters. - Describe link editing and contrast static and
dynamic linking.
4Chapter Goals
Chapter 10
Systems Architecture
- Describe integrated application development
software, including programmers work-benches and
CASE tools.
5Chapter Topics
Chapter 10
Systems Architecture
- Software development process
- Programming languages
- Compilation and link editing
- Interpretation
- Symbolic debugging
- Application development tools
6Chapter 10
Systems Architecture
7The Application Development Process
Chapter 10
Systems Architecture
- Definition of the Application Development Process
- Systems Development Life Cycle
- Methodologies and Models
- Tools
8The Application Development Process
Chapter 10
Systems Architecture
- The process of designing and constructing
software translates users information processing
needs into CPU instructions that, when executed,
address those needs. - Software development is a complex process that
requires significant effort and resources.
9The Application Development Process
Chapter 10
Systems Architecture
- The complexity of software development creates
many possibilities for error.
10The Application Development Process
Chapter 10
Systems Architecture
11The Application Development Process
Chapter 10
Systems Architecture
- Software Development Life Cycle
- The SDLC breaks the complex process of software
development into smaller and more management
pieces. - The output of each phase of the SDLC produces
input to the next phase.
12The Application Development Process
Chapter 10
Systems Architecture
13The Application Development Process
Chapter 10
Systems Architecture
- Methodologies and Models
- Developers attempt to minimize errors during the
SDLC by using proven development methodologies. - Structured methods document requirements by
modeling the flow of data and the relationship of
various parts of the process.
14The Application Development Process
Chapter 10
Systems Architecture
15Chapter 10
Systems Architecture
16The Application Development Process
Chapter 10
Systems Architecture
- Tools
- Software development is supported by many
automated tools. - Software development tools vary with the target
system deployment environment.
17The Application Development Process
Chapter 10
Systems Architecture
- Tools
- The declining cost of computer hardware and the
increasing cost of application development labor
have spurred the development of automated system
and software development tools.
18Programming Languages
Chapter 10
Systems Architecture
- First Generation Languages
- Second Generation Languages
- Third Generation Languages
- Fourth Generation Languages
- Fifth Generation Languages
- Object-Oriented Languages
- Programming Language Standards
19Programming Languages
Chapter 10
Systems Architecture
- A programming language is a language that is used
to instruct a computer to perform a task. - Program instructions are called code.
- Programs are written by a programmer or coder.
20Programming Languages
Chapter 10
Systems Architecture
- Two ways to make programs easier to write and
applications easier to develop are - 1. Make the programming language easier for
people to understand. - 2. Develop languages and program development
approaches that require people to write fewer
instructions.
21Programming Languages
Chapter 10
Systems Architecture
22Programming Languages
Chapter 10
Systems Architecture
- First Generation Languages
- Programs written using machine language.
- Disadvantages
- Difficult for people to remember to code.
- Difficult to find errors.
- Tedious to write program statements.
23Programming Languages
Chapter 10
Systems Architecture
- Second Generation Languages
- Programs are written using assembly language.
- Assembly language uses short mnemonics to
represent CPU instructions. - Easier for people to remember and manipulate than
binary code. - Must be translated to binary code.
24Programming Languages
Chapter 10
Systems Architecture
- Third Generation Languages
- Allow programmers to specify many CPU actions
with a single program instruction. - Uses mnemonics to represent instructions,
variables, and labels. - Must be translated to binary code.
- Most have significant limitations with respect to
modern hardware, GUIs and DBMSs.
25Programming Languages
Chapter 10
Systems Architecture
- Fourth Generation Languages
- Instructions or prewritten functions to implement
interactive I/O and GUIs. - Instructions to interact directly with an
internal or external relational databases. - Ability to describe processing requirements
without precisely specifying solution procedures.
26Chapter 10
Systems Architecture
27Programming Languages
Chapter 10
Systems Architecture
- Fifth Generation Languages
- Nonprocedural language suitable for developing
software that mimics human intelligence. - Contains a set of nonprocedural rules that mimic
rules people use to solve problems.
28Chapter 10
Systems Architecture
29Programming Languages
Chapter 10
Systems Architecture
- Object-Oriented Programming Languages
- OOP allows for program reuse and long-term
software maintenance. - OOP views data and programs as two parts or
procedures that manipulate the data called
methods. - OOP is uniquely suited to developing real-time
programs such as operating systems.
30Chapter 10
Systems Architecture
31Programming Languages
Chapter 10
Systems Architecture
- Programming Language Standards define
- Language syntax and grammar.
- Machine behavior for each instruction or
statement. - Test programs with expected warnings, errors and
execution behavior.
32Compilation
Chapter 10
Systems Architecture
- Data Declarations
- Data Operations
- Control Structures
- Function Calls
33Compilation
Chapter 10
Systems Architecture
34Compilation
Chapter 10
Systems Architecture
- Program Editor used to input the program into
the computer system. (Source code) - Compiler translates some source code
instructions directly into executable code and
other source code instructions into library
calls, which are further processed by the Link
Editor. (Object Code)
35Compilation
Chapter 10
Systems Architecture
- Link Editor searches an object code file for
external function calls. (Executable code)
36Compilation
Chapter 10
Systems Architecture
- Data Declarations defines the name and data
type of one or more program variables.
37Compilation
Chapter 10
Systems Architecture
- Data Operations
- Any instruction that updates or computes a data
value. - The compiler translates data operation
instructions into an equivalent sequence of data
movement and data transformation instructions for
the target CPU.
38Compilation
Chapter 10
Systems Architecture
- Data Operations
- For Example f_temperature 212
39Compilation
Chapter 10
Systems Architecture
- Control Structures - a source code instruction
that controls the execution of other source code
instructions - Control structures include
- Unconditional branches (Goto statements)
- Conditional branches (If statements)
- Loops
40Compilation
Chapter 10
Systems Architecture
- Unconditional Branch Example
- F_temperature 0
- Loop F_temperature F_temperature 1
- Goto Loop
41Compilation
Chapter 10
Systems Architecture
- Conditional Branch Example
- If (c_temperature gt -273.16)
- f_temperature (c_temperature 1.8) 32
- Else
- f_temperature -999
42Compilation
Chapter 10
Systems Architecture
- Loop Example
- F_temperature 0
- While (F_temperature lt 10)
- F_temperature F_temperature 1
43Compilation
Chapter 10
Systems Architecture
- Function Calls a call instruction transfers
control to the first instruction in the function
and the function transfers control to the
instruction following the call by executing a
return instruction. -
44Compilation
Chapter 10
Systems Architecture
- Function Example
- float Fahrenheit_to_Celsius(float F)
- float Cel
- Cel (F 32) / 1.8
- return (Cel)
45Compilation
Chapter 10
Systems Architecture
- To implement the call and return instructions,
the compiler generates CPU instructions to - Pass input parameters to the function
- Transfer control to the function
- Execute CPU instructions within the function
- Pass output parameters back to the calling module
- Transfer control back to the calling module at
the statement immediately following the function
call statement.
46Chapter 10
Systems Architecture
47Link Editing
Chapter 10
Systems Architecture
- A link editor searches an object code for
external function calls. - When an external function call is found, the link
editor searches other object code files or
compiler libraries to find executable code that
implements the function.
48Link Editing
Chapter 10
Systems Architecture
- Benefits of a link editor
- 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.
49Chapter 10
Systems Architecture
50Chapter 10
Systems Architecture
51Dynamic and Static Linking
Chapter 10
Systems Architecture
- Dynamic Linking linking is performed during
program loading or execution. - Static Linking library and other subroutines
cannot be changed once they are inserted into the
executable code.
52Dynamic and Static Linking
Chapter 10
Systems Architecture
- Dynamic Linking Advantages
- Smaller application program files
- Flexibility
- Static Linking Advantages
- Execution speed
- Improved reliability and predictability of
executable programs
53Interpreters
Chapter 10
Systems Architecture
- Reads a single source code instruction,
translates it into CPU instructions or a DLL
call. - Advantage flexibility to incorporate new or
updated code into an application program. - Disadvantage increased memory and CPU
requirements during program execution.
54Chapter 10
Systems Architecture
55Technology Focus - Java
Chapter 10
Systems Architecture
56Symbolic Debugging
Chapter 10
Systems Architecture
- A symbolic debugger is an automated tool for
testing executable programs. - Symbolic debugger features
- Trace calls to specific source code statements or
subroutines - Trace changes to variable contents
- Execute source code instructions one at a time
- Detect run-time errors and report them to the
programmer in terms of specific source code
instructions and variables
57Symbolic Debugging
Chapter 10
Systems Architecture
58Symbolic Debugging
Chapter 10
Systems Architecture
59Integrated Application Development Tools
Chapter 10
Systems Architecture
- Tools are needed during each phase of the SDLC
60Integrated Application Development Tools
Chapter 10
Systems Architecture
61Integrated Application Development Tools
Chapter 10
Systems Architecture
- Programmers Workbenches an integrated set of
automated support tools to speed development and
testing. - Smart program editor
- Compiler and/or interpreter
- Link editor and a large library of classes or
subroutines
62Integrated Application Development Tools
Chapter 10
Systems Architecture
-
- Programmers Workbenches cont.
- Interactive facility for prototyping and
designing user interfaces - Symbolic debugger
- Integrated window-oriented graphical user
interface
63Technology Focus
Chapter 10
Systems Architecture
64CASE Tools
Chapter 10
Systems Architecture
- Computer Assisted Software Engineering (CASE)
tool a tool that supports the SDLC analysis and
design phases. - Supports a broad range of system development
activities with particular emphasis on model
development.
65Summary
Chapter 10
Systems Architecture
- Application systems are developed by following
the steps of the systems development life cycle.
(SDLC) - Executable software consists entirely of CPU
instructions. - All programming language generations other than
the first must be translated into CPU
instructions prior to execution.
66Summary
Chapter 10
Systems Architecture
- Compiled and interpreted programs must be linked
to libraries of executable functions or methods. - Application development is more efficiently
supported by integrated suites of automated
tools.