Application Development - PowerPoint PPT Presentation

1 / 57
About This Presentation
Title:

Application Development

Description:

Uses mnemonics to represent instructions, variables, and labels. ... To implement the call and return instructions, the compiler generates CPU instructions to: ... – PowerPoint PPT presentation

Number of Views:18
Avg rating:3.0/5.0
Slides: 58
Provided by: Ernes71
Category:

less

Transcript and Presenter's Notes

Title: Application Development


1
Application Development
  • SA, Chapter 10

2
Chapter Topics
  • Software development process
  • Programming languages
  • Compilation and link editing
  • Interpretation
  • Symbolic debugging
  • Application development tools

3
The 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.

4
The Application Development Process
5
The 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.

6
Application Development
7
The 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.

8
The Application Development Process
  • Tools
  • Software development is supported by many
    automated tools.
  • Software development tools vary with the target
    system deployment environment.

9
The 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?

10
Programming 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.

11
Programming 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.

12
Programming Languages
13
Programming 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.

14
Programming 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.

15
Programming 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.

16
Structured Development
17
Programming 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)
19
Programming 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.

20
O-O Development
21
Programming 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.

22
Programming Languages
23
Programming 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.

24
Programming Languages
  • Terms to know.
  • Instruction explosion
  • Procedural which languages?
  • Non-procedural can you name one?
  • Machine independence

25
Compilation
  • Data Declarations
  • Data Operations
  • Control Structures
  • Function Calls

26
Compilation
  • 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)

27
Compilation
28
Compilation
  • Data Declaration defines the name and data type
    of one or more program variables.

29
Compilation
  • 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.

30
Compilation
  • Data Operations
  • For Example f_temperature 212

31
Compilation
  • 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

32
Compilation
  • 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?

33
Compilation
  • 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

34
Compilation
  • Loop Example
  • F_temperature 0
  • While (F_temperature lt 10)
  • F_temperature F_temperature 1

35
Compilation
  • Conditional Branch Example
  • If (c_temperature gt -273.16)
  • f_temperature (c_temperature 1.8) 32
  • Else
  • f_temperature -999

36
Compilation
  • 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.

37
Compilation
  • 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.

38
Compilation
  • Function Example
  • float Fahrenheit_to_Celsius(float F)
  • float Cel
  • Cel (F 32) / 1.8
  • return (Cel)

39
Link 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.

40
Link 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)
42
Dynamic 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.

43
Dynamic and Static Linking
  • Dynamic Linking Advantages
  • Smaller application program files
  • Flexibility
  • Static Linking Advantages
  • Execution speed
  • Improved reliability and predictability of
    executable programs

44
Interpreters
  • 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.

45
Interpreters vs. Compilers
46
Java
47
Whats 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?

48
Symbolic Debugging
49
Symbolic 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

50
Integrated Application Development Tools
  • Tools are needed during each phase of the SDLC
  • Range from simple text editors to massive,
    multiply linked programs

51
CASE 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.

52
Integrated Application Development Tools
53
Integrated 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

54
Integrated Application Development Tools
  • Programmers Workbenches cont.
  • Interactive facility for prototyping and
    designing user interfaces
  • Symbolic debugger
  • Integrated window-oriented graphical user
    interface

55
Integrated Application Development Tools
56
Summary
  • 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.

57
Summary
  • 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.
Write a Comment
User Comments (0)
About PowerShow.com