Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.

Similar presentations

Presentation on theme: "Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare."— Presentation transcript:

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 ters/Programming/Languages/ 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 Java software Java documentation docs/?frontpage-main docs/?frontpage-main Java tutorials Java applet examples html 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

Download ppt "Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare."

Similar presentations

Ads by Google