Systems Architecture, Fifth Edition - PowerPoint PPT Presentation

1 / 37
About This Presentation
Title:

Systems Architecture, Fifth Edition

Description:

Enable programmers to develop applications that do most of their work by calling ... E.g., VB Script, JavaScript, PHP. Pros and Cons ... – PowerPoint PPT presentation

Number of Views:19
Avg rating:3.0/5.0
Slides: 38
Provided by: facultyUs2
Category:

less

Transcript and Presenter's Notes

Title: Systems Architecture, Fifth Edition


1
SCSC 311 Information Systems hardware and
software
2
Chapter Goals
  • Application development process
  • Programming languages
  • Program translation software
  • Integrated application development software
  • Programmers workbenches
  • CASE tools

3
The Application Development Process
  • Application software development is a complex and
    expansive process.
  • Translates user requests into machine
    instructions
  • Software development bridges two gaps
  • Human language to machine language (binary)
  • High-level abstraction to low-level detail

4
Systems Development Life Cycle (SDLC) Unified
Process (UP)
  • Systems development life cycle (SDLC)
  • IS professionals follow a series of steps when
    developing an IS
  • e.g. Unified Process (UP)
  • Business Modeling and Requirements Disciplines
  • Design Discipline
  • Implementation and Testing Disciplines
  • Deployment Discipline

5
Methodologies, Models Tools
  • Methodology
  • Methodology is an integrated collection of
    models, tools, and techniques
  • Developers attempt to minimize errors by using
    proven development Methodologies.
  • UP is methodology that employs OOA, design and
    deployment models
  • e.g., Class diagrams document user and system
    requirements
  • Tools
  • to support or completely automate software
    development tasks
  • e.g., OS, programming language, program
    translator, DBMS, hardware, etc.
  • Proper tool selection is a critical

6
Chapter Goals
  • Application development process
  • Programming languages
  • Program translation software
  • Integrated application development software
  • Programmers workbenches
  • CASE tools

7
Programming Languages
  • Programming languages instruct computer to
    perform a task, a.k.a. code
  • Have evolved through several generations
  • All but 1GL must be translated into CPU
    instructions prior to execution (compilers and
    interpreters)
  • 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
  • Understand two key terms in programming language
  • Instruction explosion (p395)
  • Procedural vs. non-procedural (p398)

8
Why are there so many different programming
languages?
9
1st Generation Languages
  • A machine-level programming language. It consists
    of 1s and 0s
  • Required programmers to remember binary codes
    that represented each CPU instruction and to
    specify all operands as binary numbers
  • Pros Cons
  • run very fast and efficiently
  • Tedious to program error-prone

10
2nd Generation Languages
  • Use mnemonics to represent variables (program
    instruction memory address) and labels (data item
    memory address)
  • The code can be read and written fairly easily by
    a human
  • but it must be converted into binary code by
    compiler in order to run on a computer.
  • Pros and Cons
  • Easier to manipulate than binary code

11
3rd Generation Languages
  • Use mnemonics to represent instructions,
    variables, and labels
  • Translated with compilers, link editors, and
    interpreters
  • Developed before GUIs, database managers, and
    Internet
  • e.g. FORTRAN, Basic, Cobol, Pascal, C
  • Pros and Cons
  • Machine independent
  • Have degree of instruction explosion greater than
    11

12
4th Generation Languages
  • Majority were proprietary
  • many were optional components of database
    management systems
  • Most support mixture of procedural and
    nonprocedural instructions
  • E.g., SQL, VB, etc.

13
5th 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
  • E.g., Lisp, Prolog

14
Object-Oriented Programming (OOP) Languages
  • View data and programs as two parts of integrated
    whole (object)
  • Not clear successors to 5GLs neither
    nonprocedural nor exclusively used for developing
    artificial intelligence
  • E.g., Smalltalk, C, Java, C
  • Pros and Cons
  • Promote reusability and portability of source
    code
  • Uniquely suited to developing real-time programs

15
Scripting Languages
  • Enable programmers to develop applications that
    do most of their work by calling other
    applications and system software
  • Evolved from 4GLs, though most now incorporate
    OOP concepts
  • E.g., VB Script, JavaScript, PHP
  • Pros and Cons
  • Enable rapid assembly of application software by
    gluing together capabilities of other programs
  • Limited capacity, Slow

16
Programming Language Standards (self study)
  • 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

17
Chapter Goals
  • Application development process
  • Programming languages
  • Program translation software
  • Integrated application development software
  • Programmers workbenches
  • CASE tools

18
Program development
  • Program development with a program editor,
    compiler and link editor

19
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

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

(Self-study)
21
Data Declarations
  • Define name and data type of program variables
  • Stored in memory allocated by compiler

The compiler updates a symbol table to keep track
of data names, types, and assigned memory
addresses.
(Self-study)
22
Data Operations
  • Instructions that update or compute a data value
  • Translated by compiler into equivalent sequence
    of data movement and data transformation
    instructions
  • Compiler refers to entries in symbol table to
    determine source and destination memory addresses
    for data movement instructions
  • E.g., f_temperature 212
  • f_temperature f_temperature 1

(Self-study)
23
Control Structures Function Calls
  • Control structures are source code instructions
    that control the execution of other source code
    instructions
  • Common thread is transfer of control among CPU
    instructions
  • E.g. Conditional branch, loop
  • Function calls named instruction sequences
    executed by call instructions
  • Transfer control to the instruction following the
    call by executing a return instruction
  • E.g.,
  • c_temperature fahrenheit_to_celsius(f_temperatur
    e)

(Self-study)
24
Implementing Function 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
  • (This is the same stack operation studied in
    interrupt handling. P231)

25
Static v.s. Dynamic Linking
  • Statically links external reference calls in
    object code to library functions combines them
    into a single file containing executable code
  • 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

26
Dynamic Linking vs. Static Linking
  • Static linking
  • Library and other subroutines cannot be changed
    once inserted into executable code
  • Execution speed
  • Improves reliability and predictability of
    executable programs
  • Dynamic linking
  • Performed during program loading or execution
  • Smaller application program executable files
  • Flexibility

27
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

28
Interpret vs. Compilation
  • 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

29
Programming Language Example Java
  • OO programming language and program execution
    environment
  • Maximizes reliability of applications and
    reusability of existing code
  • Has a standardized target machine language JVM
    for Java interpreters and compilers

(self study)
30
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
  • Drawback Reduced execution speed due to use of
    interpreted byte codes and OS translation

(self study)
31
Symbolic Debugging
  • Use of an automated tool for testing executable
    programs 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
  • 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

(self study)
32
Chapter Goals
  • Application development process
  • Programming languages
  • Program translation software
  • Integrated application development software
  • Programmers workbenches
  • CASE tools

33
Application Development Tools
34
Integrated Application Development Tools
35
Programmers Workbench Components
  • Programmers Workbench contains
  • 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
  • E.g. NetBean, JBuilder

36
CASE Tools
  • Computer-Assisted Software Engineering (CASE)
  • Front-end CASE tools
  • Support development of requirements and design
    models
  • Back-end CASE tools
  • Generate program source code from models
  • E.g. Rational Rose
  • By integrating the modeling and development
    environments using the Unified Modeling Language
    (UML), Rational Rose enables all team members to
    develop individually, communicate collaboratively
    and deliver better software.

37
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com