s the goals of the new program so that it can be designed to do what users want it to do. Designing solutions: The analyst plans the design and structure of the new program in the form of step-by-step instructions. Each step of the process must be specified, including the data to be used, input and output files needed, mathematical and logical operations to be performed, etc. After developing the design for the program, systems analysts prepare flow charts and other diagrams that show the flow of data (flow charts are used to track data through an organisation as well as through a computer program). The analyst may also prepare a cost-benefit analysis to help management decide whether the proposed programming project is financially feasible and provides sufficient value to make it worth undertaking. Once the project is approved, analysts specify the particular files and records used by the program, determine the sequence of processing, and design how the output will look so that it meets the user's needs. Other issues that a systems analyst may address include: how the system will function on a network, the security of data, compatibility with existing systems and design of the user interface. After the program is written, the analyst oversees the testing and evaluation process and makes sure that all (or most) of the bugs are corrected. In a smaller organisation, a single programmer-analyst may handle both program design and coding. Computer Assisted Software Engineering (CASE) tools are now used extensively to automate much of the programming process, making it easier for a knowledgeable programmer to fill both functions in software development. Because the possible uses of computers are so varied and complex, analysts usually specialise in either business, scientific, engineering, or microcomputer applications. They are found in the computer industry and in the data processing departments of large organisations such as banks, insuran...