| ||||||||
Creating Software ProgramsCreating software
programs is part science and art. There are two aspects to software development:
This section will also deal with debugging and delivering software programs.
Development ProcessThere are many aspects to software development. Historically, one approach has called for a multi-part process including:
Developers, in order to meet local software development needs, often modify this approach based on:
This takes us back to the point that software development is part science and art. There are many tools and techniques for defining the nature and cost of software development. But in many cases, experience and hard work is critical to software development and an educated (experiential) guess is often more right than wrong. There are a number of techniques or strategies that are used in developing software programs that are worth mentioning:
Project ManagementKey to the success of any software development project is management. Management is responsible for the allocation of resources (people, tools) based on money and time to develop a project. Project management does not necessarily mean that the manager is intimately familiar with technologies to develop software. However, they should have a good understanding of the development process and the nature of the technologies involved. DocumentationDocumentation is a critical part of any software development process. Any software development project should include a significant set of documentation to record requirements, preserve design notes, and document testing. Configuration ManagementConfiguration management is the process of tracking code and documentation. This effort is critical in maintaining and tracking versions of software in large development efforts or in the maintenance phase. Quality AssuranceCritical to any software development project is the ability to ensure that a good (or great) product will be created. Quality assurance is responsible for making sure that:
Although these sound like project management functions, these are also independent functions that are undertaken to ensure success for a project. Quality assurance is not the same as testing. Quality assurance ensures that a product meets a desired standard, that is, it works and is complete. This is called product acceptance. Testing is used to make sure every function and process works per specification, a job performed by the developer.
Debugging SoftwareDebugging is the process of finding and correcting errors in a program. There are a number of techniques to accomplish this including examining how the program is running (is it giving us the answer expected), or using built-in tools in the programming environment to troubleshoot problems. Program Behavior DebuggingExamine the behavior of the program. Is it doing what is expected? If not, find out why and fix it. For example, a series of actions may be expected. By knowing the sequence, you can determine if it is not working properly. Some programming systems, such as Visual Basic, allow you to step through a program to see how things happen. In some cases, programs do not execute the instructions in the sequence we expect. This is very true in event-driven systems, where different things such as user input or other system functions can cause events we did not anticipate. These events have to be accounted for in debugging the program. Generally speaking, there are three types of errors that occur when developing computer programs:
Error TrappingMost programming systems will halt or generate an error message if illegal actions occur such as exceeding the value range of an integer or dividing by 0. These error messages can be used to find the problem and make corrections. Typically, an error window will appear telling you where the error occurred. Some systems, such as Visual Basic, provide a "debug" window, which allows you to check the status of variables in the program. This often provides valuable clues as to where problems are. Program-based Error HandlingMany software environments, such as Visual Basic, allow you to use statements that tell the program what to do if an error is encountered during program execution. Some examples of this include:
Error trapping is valuable in creating programs that are user-friendly. Delivering ApplicationsFinally, when you have designed, coded, and tested your application - it is time to deliver it! There are number of delivery options, depending on what kind of programming environment you have selected.
CompilingMany software programs can be compiled to machine language for faster execution. Compilers for languages such as Visual Basic, C++, and Assembly language will actually optimize the final code to run efficiently. Generally speaking, compilers are operating system specific. You can run the program only on the system it is compiled for or compatible with. Some programming systems (e.g., Visual Basic) will allow you to run the program in interpretive mode prior to compiling to support faster testing. Interpretive programs are often slower but may be smaller in size (although they depend on the presence of an interpreter program for execution). Although most compilers create an executable file (it has an ".exe" extension), other supporting files such as dynamic link libraries and control files may need to be shipped with the application in order for it to run.
Web DeliveryJavaScript and VBScript are interpreted programs. The code is commonly stored in the hypertext markup language (HTML) document that is downloaded to the browser (there are also server tools for executing scripts prior to downloading). The code is read when the document is loaded and then processed. The interpreter to run the program is actually part of the browser. One of the more frustrating aspects of web delivery is browser (and server) compatibility. Currently, VBScript runs only on Microsoft Explorer browsers and servers whereas JavaScript runs on Netscape and Microsoft browser and server products.
Document Macro (Office Applications)Macros are similar to interpreted software programs in that they are not compiled to machine language. Macros are usually stored as part of a document. They are then executed when an interpreter run from within the parent program needs them. The parent program (e.g., word processor or spreadsheet) contains or can access the interpreter program when the macro is needed. Macro programming for Microsoft Office actually shares a common macro language called Visual Basic for Applications (VBA) that looks, functions, and is even implemented like Visual Basic (the programming environment).
|
|
Copyright © 1999
- 2005 |