BIS07 Application Development - I


Published on

Course Material for MBA Course on Business Information Systems

Published in: Education, Technology
  • Be the first to comment

BIS07 Application Development - I

  1. 1. Business Information Systems Application Development An outline of computer programming Prithwis Mukerjee, Ph.D.
  2. 2. What shall we cover here <ul><li>Languages and Environments </li></ul><ul><ul><li>Computer Languages </li></ul></ul><ul><ul><li>Development Environments </li></ul></ul><ul><li>Activities </li></ul><ul><ul><li>What are the steps required to create an application </li></ul></ul><ul><li>World of Objects </li></ul><ul><ul><li>What and why ? </li></ul></ul><ul><li>Business application design </li></ul><ul><ul><li>Software development life cycle </li></ul></ul><ul><ul><li>Water fall method </li></ul></ul><ul><ul><li>Iterative Method </li></ul></ul><ul><ul><li>Rational Unified Process </li></ul></ul>
  3. 3. From Desire to Deployment <ul><li>I want the computer to print out “Hello Praxis” on the screen </li></ul><ul><li>Computer Prints out “Hello Praxis” </li></ul>Hello Praxis Say “ Hello Praxis”
  4. 4. Structure of an “application” Database Application
  5. 5. What does an “application” do ? Database Read Write Print <ul><li>“Process” Data </li></ul><ul><li>Manipulate </li></ul><ul><li>Modify Data </li></ul>
  6. 6. Same Task : Two Languages PRINT &quot;Hello World&quot; InputString$ = INLINE$(&quot;What is your name > &quot;) InputString$ = InputString$ + &quot; Welcome to Programming&quot; PRINT InputString$ cout << &quot;Hello World&quot; << endl; cout << &quot;What is your name ?&quot; << endl; gets(InputString); strcat(InputString,&quot; Welcome to Programming&quot;); cout << InputString << endl;
  7. 7. Which Language ?
  8. 8. What is a computer PROGRAM <ul><li>A set of instructions that </li></ul><ul><li>A computer can “understand” </li></ul><ul><ul><li>Correct syntax </li></ul></ul><ul><li>That [ unless specified otherwise ] are executed sequentially </li></ul><ul><li>To generate a “desired” result </li></ul><ul><ul><li>Correct semantics </li></ul></ul>PRINT &quot;Hello World&quot; InputString$ = INLINE$(&quot;What is your name > &quot;) InputString$ = InputString$ + &quot; Welcome to Programming&quot; PRINT InputString$ <ul><li>Exceptions </li></ul><ul><li>CONDITIONALS </li></ul><ul><li>LOOPS </li></ul>
  9. 9. Conditional : IF – THEN – ELSE
  10. 10. LOOP
  11. 11. BOTH : Conditional AND Loop FOR K = 1 TO 10 IF ( K < 5 ) THEN PRINT &quot;I will not be naughty&quot; K ELSE PRINT &quot; I will not be naughty ... but i am getting tired &quot; K END IF NEXT K
  12. 12. The Four Primary Tasks <ul><li>Input – Output </li></ul><ul><ul><li>Read and Write data </li></ul></ul><ul><ul><li>From Users </li></ul></ul><ul><ul><li>From databases </li></ul></ul><ul><li>Manipulate Data </li></ul><ul><ul><li>Assign values </li></ul></ul><ul><ul><li>Perform calculations or “operations” </li></ul></ul><ul><li>Conditionals </li></ul><ul><ul><li>IF – THEN – ELSE </li></ul></ul><ul><ul><li>Change the order of statements depending on certain conditions </li></ul></ul><ul><li>LOOP </li></ul><ul><ul><li>Repeat a statement a number of times using some CONDITIONAL statement </li></ul></ul>
  13. 13. Compilation Process <ul><li>Human being “write” a program in HIGH LEVEL LANGUAGE </li></ul><ul><ul><li>C, C++, Basic </li></ul></ul><ul><ul><li>“closer” to natural languages like ENGLISH </li></ul></ul><ul><li>Computers understand only a LOW LEVEL LANGUAGE </li></ul><ul><ul><li>Which consists of sequences of ZERO and ONE ONLY </li></ul></ul><ul><ul><li>“Impossible” for a human being to write this code </li></ul></ul><ul><li>Compilation is a process of converting the HLL to LLL </li></ul><ul><ul><li>This is a tedious process which is best done by another program called a 'compiler' </li></ul></ul>
  14. 14. Seven Steps to meeting expectations <ul><li>A computer understands instructions given as binary code. </li></ul><ul><li>A human can delivery instructions in an English like language </li></ul><ul><li>These are the seven steps required to convert human instructions delivered in English to binary instructions that a computer can understand </li></ul>
  15. 15. Human to High Level Language <ul><li>Choose a language to write the program </li></ul><ul><ul><li>C, C++, Java </li></ul></ul><ul><ul><li>VB Script, Javascript </li></ul></ul><ul><li>Programmer's task is to convert </li></ul><ul><ul><li>From English </li></ul></ul><ul><ul><ul><li>Say “hello praxis” </li></ul></ul></ul><ul><ul><li>To C++ : </li></ul></ul><ul><ul><ul><li>cout << “hello praxis” </li></ul></ul></ul><ul><li>Use an “Editor” to write the program in the language of your choice </li></ul><ul><ul><li>Notepad ? </li></ul></ul>editor Say “ Hello Praxis”
  16. 16. High Level to Low Level Language <ul><li>Same language, say C++, can be compiled by compilers from different vendors </li></ul><ul><ul><li>Turbo C++ </li></ul></ul><ul><ul><li>Microsoft C++ </li></ul></ul><ul><ul><li>UDD C++ </li></ul></ul><ul><li>HLL like C++ is converted to a low level language which consists of binary code 0 and 1 </li></ul><ul><li>The Compiler is a piece of software that automates this process </li></ul><ul><li>Compiler will also locate all syntax errors </li></ul><ul><ul><li>Spelling </li></ul></ul><ul><ul><li>Punctuation </li></ul></ul><ul><ul><li>etc </li></ul></ul>editor compiler
  17. 17. Link with pre-built parts <ul><li>Linker will also spot errors like undefined external requests </li></ul><ul><li>Not all the instructions needed for the complete execution are written by the programmer </li></ul><ul><li>Many parts of the program are provided by the vendor who has supplied the compiler in low level machine language </li></ul><ul><li>These have to be linked together with the part of the program written by the programmer </li></ul>editor compiler linker
  18. 18. First Execution <ul><li>The binary machine code is now ready for execution on the operating system </li></ul><ul><ul><li>Windows XP / Vista </li></ul></ul><ul><ul><li>Unix / Linux </li></ul></ul><ul><li>The first execution is expected to show up non-syntax errors : </li></ul><ul><ul><li>Errors in logic </li></ul></ul><ul><ul><li>Errors in specifications </li></ul></ul>editor compiler linker runtime
  19. 19. Debugging : Locating & Fixing Errors <ul><li>The debugging process generally leads all the way back to the editor where the program is altered to fix the problem. </li></ul><ul><li>All subsequent steps are done again </li></ul><ul><li>Until no more errors are found. </li></ul>editor compiler linker runtime debugger
  20. 20. Deployed for Use <ul><li>The final program is distributed on CDs or as downloads on the internet </li></ul><ul><ul><li>Has to be packaged in an appropriate manner </li></ul></ul><ul><ul><li>With necessary runtime libraries </li></ul></ul><ul><li>Pricing Decisions </li></ul><ul><ul><li>Freeware ? </li></ul></ul><ul><ul><li>Single user license ? </li></ul></ul><ul><ul><li>Multiuser license ? </li></ul></ul>Hello Praxis editor compiler linker runtime debugger packaging
  21. 21. Integrated Development Environment <ul><li>A single piece of software that does all the six functions </li></ul><ul><li>IDE is different from a language </li></ul><ul><ul><li>For the same language there are different IDEs from different vendors </li></ul></ul><ul><ul><li>Some IDEs are better or more user friendly </li></ul></ul><ul><ul><li>Some IDEs are free, others have to bought </li></ul></ul>I ntegrated D evelopment E nvironment editor compiler linker runtime debugger packaging
  22. 22. A Free C++ IDE
  23. 23. XBasic IDE
  24. 24. Zoho Creator
  25. 25. Why ZOHO ? <ul><li>Comparable in functionality to any IDE </li></ul><ul><ul><li>Relational database management feature </li></ul></ul><ul><ul><li>Visual application development feature </li></ul></ul><ul><ul><li>Equivalent to Visual Basic + Oracle </li></ul></ul><ul><li>Zero Cost </li></ul><ul><ul><li>Nothing to buy or steal ( that is piracy) </li></ul></ul><ul><ul><li>No extra hardware required </li></ul></ul><ul><li>Goes beyond any available IDE in terms </li></ul><ul><ul><li>Rapid Deployment on the web : nothing else required !! </li></ul></ul><ul><ul><li>Basic security structures in place </li></ul></ul><ul><li>So what is the catch ? What is missing </li></ul><ul><ul><li>Very new product, not yet known in the market </li></ul></ul><ul><ul><li>No demonstrated capability in the corporate world </li></ul></ul><ul><ul><ul><li>Wonderful tool to learn about application development </li></ul></ul></ul>