Download presentation
Presentation is loading. Please wait.
1
Chapter 10 Application Development
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 Describe link editing and contrast static and dynamic linking Describe integrated application development software, including programmer’s work-benches and CASE tools
3
Software Development Process of translating user needs into CPU instructions This is a complex process that requires significant effort and resources Software is the most costly component of IS
4
Software Development
5
Systems Development Life Cycle
6
SDLC Phases Systems requirement model – provides the detail needed to develop a specific system to meet user needs Design model – provides an architectural blueprint for system implementation
7
Development of programming languages
8
Programming Languages
9
Programming languages Language used to instruct a computer to perform a task Programming language development has tried to Make the language easier to understand Develop a language that takes less time (requires fewer instructions) to complete a task
10
Programming languages cont. Variety of programming languages Link to Google programming languages page http://directory.google.com/Top/Compu ters/Programming/Languages/ http://directory.google.com/Top/Compu ters/Programming/Languages/
11
Development of languages First Generation – binary CPU instructions First programmers wrote code as sequences binary digits Tedious and error prone As software grew in complexity this became unpractical
12
Languages cont. Second generation language – assembly languages (simple machine) Mnemonic represents CPU instruction Mnemonic can also represent location in memory (variable) Mnemonic can also represent a program instruction memory address (label)
13
Assembler Code from 2GL (Assembly code) is translated into binary instructions by Assembler Translates each mnemonic into its corresponding binary digit sequence Programmer still required to write one assembly instruction per CPU instruction 2GL is for a specific CPU (i.e. processor)
14
Machine independence Programs written in 2GL (assembler) only work for a specific CPU Companies spend a long time developing custom systems These systems continue to evolve over time New modules added Systems updated and maintained over time
15
Machine independence cont. When company buys a new computer (i.e. new CPU) what happens to the old software? Still a problem, still a lot of mainframe systems running (COBOL) due to difficulty of porting to a new computer
16
3G languages 3GLs address the issue of machine independence Code is standardized (ANSI, etc.) Special software called a compiler takes standard code and translates it to a specific CPU Each CPU needs to have its own version of the compiler
17
3GLs FORTRAN, COBOL, BASIC,PL/1, Pascal and C 3GL code is translated (compiled) into assembly code, then into binary code First languages to exploit machine independence – 3GL code is the same regardless of the CPU that executes it
18
Languages cont. Third generation language – allows programmers to specify many CPU instructions per program instruction or statement This one-to-many (1:N) relationship is called instruction explosion
19
Instruction explosion One line of code – Cobol, Pascal, C – are translated into many lines of CPU instructions Makes programmer more productive CPU code is more efficient Compiler (software that generates CPU instructions) can optimize CPU instructions
20
4GLs Addressed the following limitations of 3GL Higher instruction explosion Ability to develop GUI Ability to interact with database Most 4GL were proprietary packages VB and SQL are still in use
21
Object Oriented Languages OOP is an attempt to address problems of software maintenance and re-use Data and programs are viewed as integrated parts called objects Objects communicate using methods Client – server model Prominent examples: C++, Java
22
OOP systems models
23
Language standardization American National Standards Institute (ANSI) and International Standards Organization (ISO) set standards for programming languages (C, C++, COBOL) Advantage: guarantee portability between platforms, promotes machine independence Disadvantage: slow to improve and develop
24
Creating executable code Modern programming languages use a syntax more suited to human understanding Computer requires instructions made out of 0s and 1s
25
Creating.exes cont. Software applications have become quite complex Hundreds if not thousands of programmers contribute part of the solution Solutions are designed to be re-usable
26
Producing an.exe Individual programmer’s work needs to be translated into machine code Translate the source code of an individual file into 0s and 1s All the work of many programmers needs to be packaged together Collect and bundle different parts of binary code into a single load module
27
IDE Integrated development environment is a software development tool that brings together software tools to facilitate: Translating higher order languages into 0s and 1s (binary code) Managing and combining libraries of existing programming solutions
28
Compiler
29
Steps in development process Programmer produces a program in a specific language Program is called source code Code is made up of Data declarations Statements Function calls (using pre-written library routines)
30
Steps cont. Source code (as produced by programmer) becomes input into compiler Compiler tests each line of code comparing it to syntax requirements of specific language If errors exist, produces an error report After “clean compile” compiler produces object code (assembly instructions)
31
Output of compile step Symbol table – list of variable names associated with a memory location Assembler instructions – mnemonic for CPU instructions
32
Symbol table
33
Steps cont. Object file (output of compile step) becomes input into next step – link editor Link editor combines object file with code from software libraries Output of link step is.exe file
34
Example in C++ Example program showing compile link and exe output Go to Visual C++
35
Link Editor Modern programming languages allow programmers to use pre-existing routines in their code Using a function is referred to as a function call A link editor searches object code (the output of the compile step) for references to external library function calls When an external function call is found, the link editor searches for the corresponding executable code that implements the function
36
Link editor
37
Benefits of a link editor Allows a project to be developed among different files (i.e. each programmer develops a separate file) 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
38
Dynamic vs. static binding Dynamic Linking – linking is performed during program loading or execution example: DLLs and Visual Basic, Java Static Linking – library and other subroutines cannot be changed once they are inserted into the executable code example: C++ program
39
Dynamic vs. static linking Dynamic Linking Advantages Smaller application program files Flexibility Static Linking Advantages Execution speed Improved reliability and predictability of executable programs
40
Interpreters Reads a single source code instruction, translates it into CPU instructions or a DLL call Advantage: flexibility to incorporate new or updated code into an application program Disadvantage: increased memory and CPU requirements during program execution
41
Visual Basic Is an interpreted language See VB example
42
Compilers vs. Interpreters
43
Java language OOL developed by Sun Originated as operating system for interactive TVs Applied to demands of producing code for a distributed computing environment (i.e. the Web)
44
Java web resources Java web site http://java.sun.com/http://java.sun.com/ Java software http://java.sun.com/java2/http://java.sun.com/java2/ Java documentation http://developer.java.sun.com/developer/info docs/?frontpage-main http://developer.java.sun.com/developer/info docs/?frontpage-main Java tutorials http://java.sun.com/docs/books/tutorial/ http://java.sun.com/docs/books/tutorial/ Java applet examples http://javaboutique.internet.com/javasource. html http://javaboutique.internet.com/javasource. html
45
Development for the Web What are the requirements for an application development tool designed to produce applications for a distributed computing environment?
46
Requirements Seamless multi-platform capability Built in security & protection capabilities Multi-threaded, i.e. easily break a problem into independent sections run concurrently How does Java address these requirements?
47
Java Requirements Multi-platform Java virtual machine Built in security Security restrictions for applets Multi-threaded Built-in thread class in standard library
48
Java
49
Java example Run java example with java console
50
Microsoft’s Answer.Net framework Supports 20 different programming languages Supports distributed networked applications (see presentation)
51
Summary Application systems are 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 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
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.