Building Applications
Information Systems
System o A collection of pieces working together to achieve a common goal An information system includes o Data o People o Procedures o Hardware and software
Reasons for Software Programming
Some types of tasks are candidates for automation as a software program o Routine o Repetitive o Work with electronic data o Follow a series of clear steps A new software program can be created when existing programs do not suffice
Planning: Problem and Opportunity Identification
The existing system is evaluated o Problems are defined o o o o New proposals are reviewed Decisions are made to proceed with the projects The process is documented Relevant problems and opportunities are defined
Analysis
A program specification (goals and objectives of the project) is developed A feasibility assessment is performed User requirements are defined Analysts recommend a plan of action
Design
A detailed plan for programmers is developed Flowcharts and data-flow diagrams (example below) are used for the current and proposed system
Development and Documentation
Actual programming takes place First phase of the program development life cycle (PDLC) Development is documented User documentation is created
Testing and Installation
Program is tested for proper operation Program is installed for use Testing and results are documented
Maintenance and Evaluation
Performance of the system is monitored Corrections and modifications to the program are made Maintenance procedures and results are documented
Joint Application Development (JAD)
Helps designers adapt to changes in program specifications Includes customer involvement No communication delays Also referred to as o Accelerated design o Facilitated team technique
The Life Cycle of a Program
Programming is the process of translating a task into a series of commands a computer will use to perform that task Programming involves o Identifying the parts of a task the computer can perform o Describing tasks in a specific and complete manner o Translating the tasks into a language understood by the computers CPU
Step One: Describing the Problem
The problem statement: Is the starting point of programming Describes tasks the program is to accomplish Describes how the program will execute the tasks Is created through interaction between the programmer and the user o Includes error handling, a testing plan, and output values Stable Hand Example o o o o
Step 2: Developing an Algorithm
Algorithm development o A set of specific, sequential steps that describe what the program must do o Complex algorithms include decision points Binary (yes/no) Loop (repeating actions) o Visual tools used to track algorithm and decision points Flowchart and Pseudocode
Top-Down Design
Problem is divided into a series of high-level tasks Detailed subtasks are created from high-level tasks
Object-Oriented Analysis
Classes (categories of inputs) are identified Classes are defined by information (data) and actions (methods or behaviours) Reusability is key
Step 3: Coding
Coding is translating an algorithm into a programming language Generations of programming languages o 1GL: Machine o 2GL: Assembly o 3GL: FORTRAN, BASIC, C, Java, C++ o 4GL: SQL o 5GL: PROLOG
Compilation
Compilation is the process of converting code into machine language The compiler reads the source code and translates it into machine language After compilation, programmers have an executable program
Interpreter
Some programming languages do not have a compiler but use an interpreter instead o The interpreter translates source code into a line-by-line intermediate form o Each line is executed before the next line is compiled o Programmers do not have to wait for the entire program to be recompiled each time they make a change o Programmers can immediately see the results of changes as they are making them
Coding Tools: Integrated Development Environments
Editor: Special tool that helps programmers as they enter the code Debugging: Removal of errors in code o Syntax error: Mistake in use of the language
o Logic error (runtime error): Mistake in the algorithm
Step 4: Debugging
Running a program to find errors is known as debugging Sample inputs are used to determine runtime (logic) errors Debugger: Tool that helps programmers locate runtime errors
Step 5: Finishing the Project
Users test the program (internal testing) Beta version released o Information collected about errors before final revision Software updates (service packs) o Problems found after commercial release Documentation created o User manuals o User training
Popularity of Programming Languages
C/C++ and Java are among the most popular programming languages