Title: Systems Architecture, Fifth Edition
1(No Transcript)
2Chapter 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
3Chapter Goals (continued)
- Describe link editing, and contrast static and
dynamic linking - Describe integrated application development
software, including programmers workbenches and
CASE tools
4(No Transcript)
5The Application Development Process
- Follows a development methodology
- Develops a set of models
- Uses automated tools
6(No Transcript)
7Systems Development Life Cycle (SDLC)
- Follow disciplines and iterations of the Unified
Process (UP) - Usually includes two sets of models
- System requirements model
- Design model
8(No Transcript)
9Methodologies 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
10Tools
- Wide array to support or completely automate
software development tasks - Proper tool selection is a critical and difficult
undertaking
11Programming 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
12(No Transcript)
13Programming 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)
14(No Transcript)
15First-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
16Second-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
17Third-Generation Languages
- Use mnemonics to represent instructions,
variables, and labels - Have degree of instruction explosion greater than
11 - Translated with compilers, link editors, and
interpreters - Machine independent
- Developed before GUIs, database managers, and
Internet
18Fourth-Generation Languages
- Majority were proprietary many were optional
components of database management systems - Most support mixture of procedural and
nonprocedural instructions
19Fifth-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
20Object-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
21OOP languages Objects reside in a specific
location, wait for messages to arrive, and return
a response.
22Scripting 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
23Programming 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
24Compilation
- Translates an entire source code file, building a
symbol table and object code file as output
25(No Transcript)
26Compiler
- Checks for syntax and other errors issues
warning or error messages - Updates internal tables that store information
about data items and program components - Generates CPU instructions or library calls to
carry out the source code instruction
27Source Code Instruction Types
- Data declarations
- Data operations
- Control structures
- Function, procedure, or subroutine calls
28Data Declarations
- Define name and data type of program variables
- Stored in memory allocated by compiler
29The compiler updates a symbol table to keep track
of data names, types, and assigned memory
addresses.
30Data 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
31Control Structures
- Source code instructions that control the
execution of other source code instructions - Common thread is transfer of control among CPU
instructions
32Function Calls
- Named instruction sequences executed by call
instructions - Transfer control to the instruction following the
call by executing a return instruction
33Implementing Call and Return Instructions
- 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
34(No Transcript)
35Link 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
36Key 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
37(No Transcript)
38Dynamic and Static Linking
- Static linking
- Library and other subroutines cannot be changed
once inserted into executable code - Dynamic linking
- Performed during program loading or execution
39Advantages of Dynamicand Static Linking
- Dynamic
- Smaller application program executable files
- Flexibility
- Static
- Execution speed
- Improves reliability and predictability of
executable programs
40Interpreters
- 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
41(No Transcript)
42Java
- 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
43(No Transcript)
44Features 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
45Symbolic 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
46Symbolic 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
47(No Transcript)
48Integrated Application Development Tools
Programmers 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
49Programmers 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
50CASE Tools
- Front-end CASE tools
- Support development of requirements and design
models - Back-end CASE tools
- Generate program source code from models
51Summary
- Software development process
- Programming languages
- Compilation and link editing
- Interpretation
- Symbolic debugging
- Application development tools