Title: Application Development
1Application Development
2Chapter Topics
- Software development process
- Programming languages
- Compilation and link editing
- Interpretation
- Symbolic debugging
- Application development tools
3The Application Development Process
- 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. The
complexity of software development creates many
possibilities for error.
4The Application Development Process
5The Application Development Process
- Systems 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.
6Application Development
7The Application Development Process
- Methodologies and Models
- Developers attempt to minimize errors during the
SDLC by using proven development methodologies. - Structured methods document the flow of data or
the relationship of various processes. - Object-oriented development models objects and
classes.
8The Application Development Process
- Tools
- Software development is supported by many
automated tools. - Software development tools vary with the target
system deployment environment.
9The Application Development Process
- Tools
- The declining cost of computer hardware and the
increasing cost of application development labor
supports the development of automated system and
software development tools. - Which costs more today?
10Programming Languages
- 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.
11Programming Languages
- 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.
12Programming Languages
13Programming Languages
- First Generation Languages
- Program are written using machine language.
- Disadvantages
- Difficult for people to remember to code.
- Difficult to find errors.
- Tedious to write program statements.
14Programming Languages
- 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.
15Programming Languages
- Third Generation Languages
- Examples COBOL, C
- 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.
16Structured Development
17Programming Languages
- Fourth Generation Languages
- Examples VB, SQL
- Instructions or prewritten functions to implement
interactive and GUIs. - Instructions to interact directly with an
internal or external relational databases. - Ability to describe processing requirements
without precisely specifying solution procedures.
18(No Transcript)
19Programming Languages
- 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.
20O-O Development
21Programming Languages
- Object-Oriented Programming
- Good for program reuse, maintenance
- OOP views data and programs as two parts of an
object. - Objects respond to messages without changing the
data - Procedures that manipulate the data are called
methods. - Only methods can manipulate and change the
original data.
22Programming Languages
23Programming 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.
24Programming Languages
- Terms to know.
- Instruction explosion
- Procedural which languages?
- Non-procedural can you name one?
- Machine independence
25Compilation
- Data Declarations
- Data Operations
- Control Structures
- Function Calls
26Compilation
- 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)
27Compilation
28Compilation
- Data Declaration defines the name and data type
of one or more program variables.
29Compilation
- 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.
30Compilation
- Data Operations
- For Example f_temperature 212
31Compilation
- 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
32Compilation
- Unconditional Branch Example
- Source code
- F_temperature 0
- Loop F_temperature F_temperature 1
- Goto Loop
- What happens to the computer if you run this code?
33Compilation
- Compiled Unconditional Branch
- 2000 MOV 1000 lt0gt
- 2004 MOV R2 lt1gt
- 2008 MOV R1 1000
- 200C RADD R1 R2 R1
- 2010 MOV 1000 R1
- 2014 JMP 200C
34Compilation
- Loop Example
- F_temperature 0
- While (F_temperature lt 10)
- F_temperature F_temperature 1
-
35Compilation
- Conditional Branch Example
- If (c_temperature gt -273.16)
- f_temperature (c_temperature 1.8) 32
- Else
- f_temperature -999
36Compilation
- 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.
37Compilation
- 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.
38Compilation
- Function Example
- float Fahrenheit_to_Celsius(float F)
- float Cel
- Cel (F 32) / 1.8
- return (Cel)
-
39Link 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.
40Link 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.
41(No Transcript)
42Dynamic and Static 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.
43Dynamic and Static Linking
- Dynamic Linking Advantages
- Smaller application program files
- Flexibility
- Static Linking Advantages
- Execution speed
- Improved reliability and predictability of
executable programs
44Interpreters
- Read a single source code instruction, translates
it into CPU instructions or a DLL call on the
fly. - Advantage flexibility to incorporate new or
updated code into an application program. - Disadvantage increased memory and CPU
requirements during program execution.
45Interpreters vs. Compilers
46Java
47Whats different about Java?
- Compilation for the Java Virtual Machine
- Translated by the VJM byte code interpreter
- Two types of programs
- Applets in a sandbox
- Stand alone
- How does this compare to native applications?
Advantages?
48Symbolic Debugging
49Symbolic Debugging
- 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
50Integrated Application Development Tools
- Tools are needed during each phase of the SDLC
- Range from simple text editors to massive,
multiply linked programs
51CASE Tools
- 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.
52Integrated Application Development Tools
53Integrated 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
54Integrated Application Development Tools
- Programmers Workbenches cont.
- Interactive facility for prototyping and
designing user interfaces - Symbolic debugger
- Integrated window-oriented graphical user
interface
55Integrated Application Development Tools
56Summary
- Application systems can be 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.
57Summary
- 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.