Title: Application Development
1Application Development
2Objectives
- 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 programmers workbenches and
CASE tools
3Chapter Topics
4The Application Development Process
- The process of designing and constructing
software translates users information processing
needs into CPU instructions that, when executed,
addresses those needs. - Software development is a complex process that
requires significant effort and resources.
5The Application Development Process
6The Application Development Process
- 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.
7The Application Development Process
8The Application Development Process
- 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 or the relationship of
various parts of the process.
9The Application Development Process
10Programming Languages
- Programming languages are used to instruct a
computer to perform a task. - Programming languages have evolved from the
first-generation machine language to scripting
languages.
11Programming Languages
12Programming Languages
13Programming Languages
- Programming Language Standards Define
- Language syntax and grammar.
- Machine behavior for each instruction or
statement. - Test programs with expected warnings, errors and
execution behavior.
14Programming Languages
15Compilation
16Compilation
- Source Code vs. Object Code
- 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)
17Compilation
Data Declarations defines the name and data
type of one or more program variables.
18Compilation
19Compilation
- Data Operations
- Any instruction that updates or computes a data
value. - For Example f_temperature 212
- The compiler translates a data operation
instructions into an equivalent sequence of data
movement and data transformation instructions for
the target CPU.
20Compilation
- Control structures include
- Unconditional branches (Goto statements)
- Conditional branches (If statements)
- Loops
21Compilation
- Unconditional Branch Example
- F_temperature 0
- Loop F_temperature F_temperature 1
- Goto Loop
22Compilation
- Conditional Branch Example
- If (c_temperature gt -273.16)
- f_temperature (c_temperature 1.8) 32
- Else
- f_temperature -999
23Compilation
- Loop Example
- F_temperature 0
- While (F_temperature lt 10)
- F_temperature F_temperature 1
-
24Compilation
- 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.
25Compilation
- Function Example
- float Fahrenheit_to_Celsius(float F)
- float Cel
- Cel (F 32) / 1.8
- return (Cel)
-
26Link Editing
- 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.
27Link Editing
- 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.
28Link Editing
29Link Editing
- Static and Dynamic Linking
- 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.
30Link Editing
- Dynamic Linking Advantages
- Smaller application program files
- Flexibility
- Static Linking Advantages
- Execution speed
- Improved reliability and predictability of
executable programs
31Interpreters
- Interpreter - 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.
32Interpreters
33Technology Focus
34Symbolic Debugging
- 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
35Symbolic Debugging
36Symbolic Debugging
37Integrated Application Development Tools
38Integrated Application Development Tools
- 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
39Integrated Application Development Tools
- Programmers Workbenches cont.
- Interactive facility for prototyping and
designing user interfaces - Symbolic debugger
- Integrated window-oriented graphical user
interface
40Technology Focus
41Integrated Application Development Tools
- CASE Tools refers to a tool that supports the
SDLC analysis and design phases. - Front-end CASE tool supports model development.
- Back-end CASE tool supports program development
based on specific analysis and design models.
42Summary
- 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.
43Summary
- Compiled and interpreted programs must be linked
to libraries of executable functions or methods. - Application development is more efficiently
supposed by integrated suites of automated tools.