Systems Architecture, Fifth Edition - PowerPoint PPT Presentation

1 / 51
About This Presentation
Title:

Systems Architecture, Fifth Edition

Description:

Title: Systems Architecture, Fifth Edition Subject: Chapter 10: Application Development Keywords: Presenter - Anne Ketchen Last modified by: mmisiaszek – PowerPoint PPT presentation

Number of Views:151
Avg rating:3.0/5.0
Slides: 52
Provided by: mjiangCom
Category:

less

Transcript and Presenter's Notes

Title: Systems Architecture, Fifth Edition


1
(No Transcript)
2
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

3
Chapter 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)
5
The Application Development Process
  • Follows a development methodology
  • Develops a set of models
  • Uses automated tools

6
(No Transcript)
7
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

8
(No Transcript)
9
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

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

11
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

12
(No Transcript)
13
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)

14
(No Transcript)
15
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

16
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

17
Third-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

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

19
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

20
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

21
OOP languages Objects reside in a specific
location, wait for messages to arrive, and return
a response.
22
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

23
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

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

25
(No Transcript)
26
Compiler
  • 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

27
Source Code Instruction Types
  • Data declarations
  • Data operations
  • Control structures
  • Function, procedure, or subroutine calls

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

29
The compiler updates a symbol table to keep track
of data names, types, and assigned memory
addresses.
30
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

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

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

33
Implementing 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)
35
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

36
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

37
(No Transcript)
38
Dynamic 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

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

40
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

41
(No Transcript)
42
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

43
(No Transcript)
44
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

45
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

46
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

47
(No Transcript)
48
Integrated 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
49
Programmers 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

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

51
Summary
  • Software development process
  • Programming languages
  • Compilation and link editing
  • Interpretation
  • Symbolic debugging
  • Application development tools
Write a Comment
User Comments (0)
About PowerShow.com