Introduction to Computer Information Systems/Program Development

From Wikibooks, open books for an open world
Jump to: navigation, search

Program Design and Development[edit]

Flowchart procedural programming

Procedural programming is more or less self explanatory, it’s procedural so it will go step by step in order to solve a problem. This was a much older type of programming language that has since been outdated by object oriented programming.


Object oriented programming is more focused on objects to make a program instead specific steps. One of the most popular object oriented programming languages is Java[1], which is used virtually everywhere. Objects within an object oriented program consists of attributes. If you have ever played D&D[2] you know that your character has different attributes that would define them. If you have an object you can change its attributes like size, shape, and color.

Similar to this picture, AOP is complimentary to OOP when together

Aspect Oriented Programming is a form of programming that compliments Object Oriented Programming (or OOP) by allowing the developer to modify OOP in a way where the system can grow to meet new requirements. It keeps the original model, which was developed in OOP, but allows for new syntax without having to change the compiler being used or reconfigure the editor either. In essence, it is complimentary to the previously developed OOP style and allows the application to adopt new characteristics over its lifetime without having to be completely remodeled or redeveloped. This ability for an application to be adapted to the current trend in technology prolongs the usefulness and life span of the application, which then benefit the users of that application as well. [3]

Program Development Life Cycle - Analysis, Design, Coding[edit]


The following are six steps in the Program Development Life Cycle:

1. Analyze the problem. The computer user must figure out the problem, and the best program to fix it.
2.Design the program. A flow chart is important to use during this step of the PDLC. This is a visual diagram of the flow containing the program. All in all, this step is breaking down the problem.
3. Code the program. This is using the language of programming to write the lines of code. The code is called the listing or the source code. The computer user will run an object code for this step.
4. Debug the program. The computer user must debug. This is the process of finding the "bugs" on the computer. The bugs are important to find because this is known as errors in a program.
5. Formalize the solution. One must run the program to make sure there are no syntax and logic errors. Syntax are grammatical errors and logic errors are incorrect results.
6. Document and maintain the program. This step is the final step of gathering everything together. Internal documentation is involved in this step because it explains the reasoning one might of made a change in the program or how to write a program.[4]

Program Development Life Cycle - Debugging and Testing, Implementation and Maintenance[edit]



Debugging is basically making sure that a program does not have any bugs (errors) so that it can run properly without any problems. Debugging is a large part of what a programmer does. The first step to debugging is done before you can actually debug the program; the program needs to be changed into machine language so that the computer can read it. It is converted using a language translator. The first goal of debugging is to get rid of syntax errors and any errors that prevent the program from running. Errors that prevent the program from running are compiler errors. These need to be removed right away because otherwise you cannot test any of the other parts of the program. [5] Syntax errors occur when the programmer has not followed the correct rules of the programming language. Another kind of error is a runtime error, which occurs while the program is running and it is not noticed until after all syntax errors are corrected. Many run time errors are because of logic errors, which are errors in the logic of the program. It could occur when a formula is written incorrectly or when a wrong variable name is used. [6]

Testing/Implementation and Maintenance[edit]


Relating to getting a program up and running, many things need to happen before it can be used. One step is to test the program. After the debugging process occurs, another programmer needs to test the program for any additional errors that could be involved in the background of the program. This person needs to perform all of the tasks that an actual user of the program would use and follow. To ensure privacy rights, test data is used in the testing process. However, this still has the same structure and feel to the actual data. The tester needs to check for possible input errors as well, as this would create many problems and issues in the future had it not been checked. Companies usually implement different types of tests. An Alpha test [7] is first conducted, which is on-site at the company, and Beta tests are sent out to different states or countries to ensure the program is 100% ready for use. The Alpha test occurs before the Beta test. Once the debugging and testing are finished, the program is now in the system and the program implementation and maintenance phase are completed. Program maintenance still needs to be kept up, in case of future errors. This is the most costly to organizations because the programmers need to keep improving and fixing issues within the program.

Program Development Tools[edit]

Application Lifecycle Management (ALM) Tools[edit]

Programmers are often overworked and need all the help they can get. This is where ALM tools come into play.

ALM tools are, surprise surprise, tools that manage an application throughout its entire life cycle. They are very helpful for programmers who are under increasing amounts of stress to develop new programs quickly. The helpfulness comes from wide range of features that the ALM tools can offer. One example is how many ALM programs come with built-in program design tools, along with the ability to generate the program code from the finished design to create the application. This code generating ability saves companies time and money that they don't have to put towards outsourcing, especially if they've got a small number of programming staff. In addition to code generators, another important tool that can be included in ALM programs is requirements management. Essentially, requirements management is defined in exactly that way, referring to keeping track of and managing program requirements as they are defined and then modified throughout the process of developing the program. The larger the company, the nicer ALM toolset they can purchase; there are many ALM toolsets on the market to choose from.[8]

Application Generators[edit]

Keyboard shortcuts (like those used to initiate the use of a macro)

Application generators are extremely useful devices. They can be used by amateurs/people with less experience or by professionals. The point of an application generator is to make a task simpler than it is. Even if it is just changing a few basic formatting characteristics, these generators can make it so that the user only has to type in a specific key or command in order for all the actions to happen at once with much less effort. One of these useful generators is called a Macro. A macro is an application generator that simply makes it possible to perform repeated actions instantaneously on a single command. The idea is that it will make reformatting or calculating things much easier, thus saving the operator time [9]. Most Microsoft programs contain a macro recorder which allows users to easily record all inputs and commands they use and associate them with a keyboard shortcut for future repetition. Other application generators create reports and form which make things such as memberships, records (such as medical treatments, history, and vaccinations), and even insurance claims more organized and easier to access by those who should be able to access them.

RIA Tools[edit]

Java Rich Internet Applications

Other types of tools include device software development tools, software development kits (SDKs), application program interfaces (APIs), and rich internet application tools (RIAs). A rich internet application offers many of the same features associated with desktop applications. They are more interacting and engaging that other web-based applciations. Some big names in this area are Microsoft, Adobe, and JavaScript. Microsoft actually has a very put together developer’s website that goes into some detail about how to create such applications. It includes information such as things to consider before starting an RIA, such as the audience. [10]

A few key features about RIAs include direct interaction, partial-page updating, better feedback, consistency of look and feel, offline use, and performance impact. [11]

Direct interaction allows for a wider range of controls, such as editing or drag-and-drop tools. Partial-page updating allows for real-time streaming and cuts down on load time waiting for a response from a server. RIAs can provide users with quicker feedback because of the partial-page updates. Also, it is sometimes possible to use RIAs offline when there is no connectivity. Once downside to RIAs is that smaller devices, such as mobile phones, often times do not have the means necessary to run such applications.

Programming Languages[edit]

What is a Programming Language?[edit]

Program Language

A programming language is designed to communicate instructions to a computer and so the computer can interpret the instructions and make sense of them. They are used to create programs that control the behavior of a machine and algorithms. There are multiple languages created into this program which are created from different styles or forms. The description of a programming language is known to be split into the two components of syntax (form) and semantics (meaning). The syntax is the form in which the language is presented in and the actual sense or meaning of the instructions is the semantics. A program is written so that it can be understood by computer so that the instructions can be interpreted, translated into so the computer can eventually make sense of it. So the moment you turn on your computer after it starts to run programs, it interprets these instructions, tests the ram and resets all attached devices and loads the operating system from hard disk. Every operation that the computer holds has instructions that someone had to translate into a programming language. With every language, they have to be created, compiled and tested which tends to be a long and complex task.[12]

Categories of Programming Languages[edit]

Visual Basic is an example of a high-level programming language.

Two categories that programming languages can fall under are procedural (programs that use the procedural approach) and object (for those programs that use the object-oriented approach). However, probably the most common way of categorizing programming languages is by their designation into a tier structure. Programming languages can fall under low-level languages, high-level languages, and very high-level languages. Low-level languages, which are made up of the first generation language, machine language, and second generation language, assembly language, are written at a very low level: programming consists of 0s and 1s for machine language and assembly language includes names and symbols for some of the 0s and 1s. These languages allow computer hardware to read commands quickly, but this happens at the cost of a much steeper learning curve as opposed to higher level languages.[13] High-level languages, on the other hand, are easier to use because they are closer to natural language. They are also machine independent: programs written on one computer can be transferred to another computer without modification. This is in contrast to the machine dependent-nature of low-level programs where modification is necessary. Lastly, very high-level languages, also known as fourth-generation programming languages, are more difficult to distinguish from high-level languages. Fourth-generation languages (4GLs) are known to be declarative, which does not specify exactly how a computer should go about processing a command. This results in programmers using very little code. Although, those languages deemed very-high level languages in the past (e.g. Visual Basic, Python, Perl) have now been called simply high-level languages [14]

Common Programming Languages[edit]

Fortran is one example of a very common programming language.

There are many programming languages out there that are still, to this day, used immensely on a day-to-day basis. Fortran, which is one of the older options, is used mainly in the scientific field for scientists, mathematicians, and formulating numerical formulas. Cobol is another programming language commonly used today, and can typically can be seen utilized in business environments for everyday transactions. This language is seen as extremely time consuming, and more and more businesses today are starting to move away from it, towards quicker processes. Pascal is yet another language that is used commonly in math and science programs. It was originally created as a teaching tool and uses control structures in its software. Another common programming language is Basic. It is one of the most used languages because it can be considered user friendly. It was designed to be an uncomplicated and stressful language that is used typically for interactive programs. It is extremely easy to get to know, and many people enjoy its simplistic and understandable functioning. One aspect of basic is Visual Basic, which again uses their understandable language, but is focused on visual aid. These are just a few examples of the immense and intricate amount of languages that are out there. Though many of these are still used today, it is obvious that some of the older and more time-consuming software is on its way out. [15]

Key Terms Review[edit]

Procedural programming: An approach to program design in which a program is separated into small modules that are called by the main program or another module when needed.

Variable: A named memory location defined in a computer program that is used to store the current value of a data item used in that program.

Object-oriented programming (OOP): An approach to program design in which a program consists of objects that contain data (attributes) and processes (methods) to be used with those objects.

Aspect-oriented programming (AOP): An approach to program design in which different functions are clearly separated so program components can be developed and modified independently from one another, and the components can be easily reused with separate, nonrelated objects.

Program development: The process of creating application programs.

Program development life cycle (PDLC) The process containing the five phases of program development: analyzing, designing, coding, debugging and testing, and implementing and maintaining application software.

Problem analysis: The phase of the program development life cycle in which the problem is carefully considered and the program specifications are developed.

Programmer: A person whose job it is to write, test, and maintain computer programs.

Program design: The phase of the program development life cycle in which the program specifications are expanded into a complete design of the new program.

Flowchart: A program design tool that graphically shows step-by-step the actions a computer program will take.

Pseudocode: A program design tool that uses English-like statements to outline the logic of a program.

Unified Modeling Language (UML): A set of standard notations for creating business models; widely used for modeling object-oriented programs.

Control structure: A pattern for controlling the flow of logic in a computer program, module, or method.

Sequence control structure: A series of statements that follow one another.

Selection control structure: A series of statements in which the results of a decision determine the direction the program takes.

Repetition control structure: A series of statements in a loop that are repeated until a particular condition is met.

Program coding: The phase of the program development life cycle in which the program code is written using a programming language.

Coding: The process of writing the programming language statements to create a computer program.

Source code: A computer program before it is compiled.

Program debugging and testing: The phase of the program development life cycle that ensures a program is correct and works as intended.

Debugging: The process of ensuring a program is free of errors.

Object code: The machine language version of a computer program generated when the program's source code is compiled.

Language translator: A software program that converts source code to object code.

Compiler: A language translator that converts an entire program into machine language before executing it.

Interpreter: A language translator that converts program statements line-by-line into machine language, immediately executing each one.

Review Questions[edit]

1.) What is a computer program called before it is compiled?

2.) A program design tool that graphically shows step-by-step the actions a computer program will take is called a _______?

3.) What phase of the PDLC has the program code written using a programming language?

4.) If your job is to write, test, and maintain computer programs, you are a _______.

5.) What language translator converts an entire program into machine language before executing it?

6.) What process ensures a program is free of errors?

7.) What is the process of creating application programs?

8.) How many phases are there in the program development life cycle?

9.) List the phases of the PDLC in order.

10.) What is a software program that converts source code to object code?

Review Answers[edit]

1.) Source code 2.) Flowchart 3.) Program coding 4.) Programmer 5.) Compiler 6.) Debugging 7.) Program development 8.) Five 9.) Analyzing, designing, coding, debugging and testing, implementing and maintaining application software 10.) Language translator