Language Translator

Hacking Zone

Hacking Tools
Attacking

Configure Windows

Windows Configuration

Mix Tutorials

Asterisk
Website Building

Novels

Mix Novels

Human Personality

Body Language
System Description and Specification Print E-mail
Article Index
System Description and Specification
Page 2
Page 3
Page 4
Page 5

System Description and Specification


The engineer’s first task is understanding the system, the second one is specifying it, and the third one is building it. Analysis must precede specification since it is impossible to define or describe what is unknown. Specification must precede construction, since we cannot build what has not been defined. The first two tasks (understanding and defining the system) can be quite challenging in the software development field, particularly regarding small- to medium-size projects.

2.0 System Analysis Phase



The engineer’s first task is understanding the system, the second one is specifying it, and the third one is building it. Analysis must precede specification since it is impossible to define or describe what is unknown. Specification must precede construction, since we cannot build what has not been defined. The first two tasks (understanding and defining the system) can be quite challenging in the software development field, particularly regarding small- to medium-size projects. The system analysis phase refers to the evaluation of an existing system. Therefore it may be arguable that this phase can be skipped when implementing a system which has no predecessor. In any case, we should not assume that the analysis phase can be circumvented simply because a system has been judged obsolete or because a decision has already been reached regarding its replacement. Outdated, obsolete, and even totally unsuitable systems may contain information that is necessary or convenient for designing and implementing a new one. Very rarely would it be advisable to completely discard an existing system without analyzing its operation, performance, and implementation characteristics. At the same time, the feasibility of a new system must often be determined independently of the one being replaced. In fact, a system’s feasibility should be evaluated even when it has no predecessor.

2.0.1 The System Analyst

In the information systems world the specialist attempting to understand and define a software system is usually called the system analyst. In computer science-oriented environments this person is often referred to as a systems engineer. Other terms used to describe this computer professional are programmer analyst, systems designer, systems consultant, information system analyst, and information system engineer. Under whatever name, the systems analyst’s job description is usually quite different from that of a programmer. While the responsibility of a programmer ends with the computer program, the analyst’s duties extend into management and administration. Typically the analyst is responsible for equipment, procedures, and databases. Furthermore, the system analyst is usually in charge of the software development team. Therefore, the analyst’s job requires management skills in addition to technical competence. Oral and written communications skills are often necessary since the analyst usually has to perform presentations to clients, lead specifications discussions, and oversee the generation of multiple documents and reports. Programming and system-building projects are usually directed by a lead or principal analyst, who may take on the responsibility of managing and overseeing the activities of a team of analysts, programmers, program designers, software testers, and documentation specialists. The ideal profile for the principal system analyst is that of an experienced programmer and program designer (preferably holding a graduate degree in computer science or information systems) who has experience and training in business. In addition, the lead analyst should be a person who has successfully directed the analysis and development of software or systems projects of comparable complexity. The job description includes gathering and analyzing data, executing feasibility studies of development projects, designing, developing, installing, and operating computer systems, and performing presentations, recommendations, and technical specifications.

However, the smaller software project can rarely count on the services of an ideally-qualified lead analyst. Quite often a person with less-than-optimal skills is appointed to the task. In this respect it is important for the project directors to realize that it is the lead system analyst, or project manager, who should be the most highly qualified member of the development team. One common mistake is to think of the principal analyst as a chore that can be undertaken by a professional administrator with little or no technical knowledge. Another is to judge that the personnel with higher technical qualifications are best employed as programmers or program designers. Experience shows that appointing someone who is not the most highly qualified and technically competent member of the development team to the task of lead system analyst is an invitation to disaster.

Although the lead system analyst often wears many hats, the most necessary skills for this job are technical ones. A competent programmer and designer can be coached or supported in administrative and business functions and helped regarding communication skills. But it would be indeed astonishing that a person without the necessary technical skills could analyze, specify, and direct a systems development project.

2.0.2 Analysis and Project Context

The conventional treatment of systems analysis, as found in most current text and reference books, assumes that a typical project consists of developing a commercial system to be implemented in a particular business enterprise. In this context the systems analysis phase consists of evaluating and describing the existing system and its bottom line is determining whether the new system will be a realistic and profitable venture. This business system orientation is typical of computer information systems and management information systems programs as taught in many of our universities. On the other hand, the software engineering textbooks (sometimes considered as the counterpart of systems analysis in a computer science curricula) view the analysis phase more from a systems modeling point and usually stress the requirements analysis element in this development phase.

In other words, the term systems analysis has different connotations when seen from the information systems viewpoint than when seen from a computer science perspective. Furthermore, sometimes neither perspective exactly suits the problem at hand. For example, to assume that a typical systems development project consists of replacing an outdated business payroll program (information systems viewpoint) or designing a new, more efficient operating system (computer science viewpoint) leaves out many other real-life scenarios. For example, a development project could be an experimental, scientific, or research enterprise for which there is no precedent and in which profit is not a factor. Or it may consist of creating a software product that will be marketed to the public, such as a word processor application, a computer game, or a toolkit for performing engineering calculations. In either case, many of the systems analysis operations and details, as described in

books on systems analysis and design or on software engineering, are not pertinent.
Another conceptualization that can vary with project context relates to the components of a computer system. Normally we think of a computer system as an integration of hardware and software elements. Therefore systems engineering consists both of hardware systems and software systems engineering. Therefore, the systems analysis phase embodies an investigation and specification of the hardware and the software subsystems. In reality it often happens that either the hardware or the software elements of a computer system take on a disproportionate importance in a particular project. For instance, in a project consisting of developing a computer program to be marketed as a product to the user community, the hardware engineering element becomes much less important than the software engineering ingredient. Under different circumstances the relative importance of hardware and software elements could be reversed. Consequently, the details of the systems analysis phase often depend on project context. What is applicable and pertinent in a typical business development scenario, or in a technical development setting, may have to be modified to suit a particular case. Two elements of this phase are generally crucial to project success: the feasibility study and the project requirements analysis. Each of these activities is discussed in the following

sections.

2.1 The Feasibility Study



Often a software development project starts with a sketchy and tentative idea whose practicality has not been yet determined. Other projects are initially well defined and enjoy the presumption of being suitable and justified. In the first case the systems analyst must begin work by performing a technical study that will determine if the project is feasible or not. According to Pressman, given unlimited time and resources, all projects are feasible. But in the real world resources are limited and often a project’s feasibility is equated with the economic benefits that can be expected from its completion. This excludes systems for national defense, investigative and research projects, or any development endeavor in which financial returns are not a critical consideration.

In most cases the first project activity is called the feasibility or preliminary study. It can be broken down into the following categories:

1. Technical feasibility is an evaluation that determines if the proposed system is technologically possible. Intended functions, performance, and operational constraints determine the project’s technical

feasibility.

2. Economic feasibility is an evaluation of the monetary cost in terms of human and material resources that must be invested in its development, compared with the possible financial benefits and other

advantages which can be realistically anticipated from the project’s completion.

3. Legal feasibility is an evaluation of the legal violations and liabilities that could result from the system’s development.

Before the feasibility study phase begins, intermediate and high-level management (often in consultation with the lead analyst) must determine if the effort will be advantageous and how much time and resources will be invested in this phase. It is difficult to define arbitrary rules in this respect since the convenience of a feasibility study as well as the time and human resources devoted to it are frequently determined by financial and practical considerations. It is reasonable to expect that a minor development project, anticipated to generate large revenues and requiring a relatively small investment, will often be undertaken with a less rigorous feasibility study than a major project involving greater complexity and uncertainty. Two business management techniques are often used in the feasibility study phase of a system analysis: risk analysis and cost-benefits analysis. By means of risk analysis we attempt to establish the dangers associated with the project and to define the points at which it is preferable to cancel the project than to continue it. By means of cost-benefit analysis we attempt to measure the gains that will result from developing the system and the expenses associated with it. A feasible project is one in which the risks and costs are acceptable in consideration of its expected benefits.

Some books on systems analysis and design propose that risk analysis and cost-benefits analysis are activities that precede the main system analysis effort. Therefore, they should be considered as parts of a phase sometimes called the preliminary analysis. The rationale for this approach is that if a project is judged to be not feasible or financially not justifiable, then no further analysis or design effort is necessary. This is consistent with the accepted definition of risk analysis as a technique that serves to ascertain a project’s technical feasibility, and cost-benefits analysis as a method to determine the project’s economic feasibility. In reality, the technical and economic feasibility of many projects are taken for granted. In these cases risk analysis and cost-benefit analysis become either a formality, or as a justification of the original assumptions. The analyst should keep in mind that loss of objectivity in risk analysis or cost-benefit analysis renders these activities virtually useless.

A unique problem-set of the smaller-size software project is that technically qualified personnel for performing feasibility studies and cost-benefit analysis are often not available. Therefore, linking the feasibility study to risk analysis and cost-benefit analysis techniques may result in no feasibility study being performed. Since in most system development projects it is important that some form of feasibility study be executed, to the highest degree of rigor that circumstances permit, then it is preferable to consider risk analysis and cost-benefit analysis as alternative phases. The project feasibility flowchart in Figure 2.1 illustrates this view.

A word of caution regarding the feasibility study relates to the fact that those performing it may have a vested interest in the results. For example, we may suspect that the feasibility study could turn into a self-fulfilling prophesy if it is performed by a software company that is likely to be the eventual project developer. In such cases it may be advisable to contract an independent consultant to either perform or evaluate the feasibility study, thus assuring the objectivity of the results.

2.1.1 Risk Analysis

One of the factors considered in the feasibility study is the project’s risk. For example, a large project, with a great potential for financial gain, could be a big risk if it could lead to a costly lawsuit. In this case a detailed analysis of this risk factor is indicated. By the same token, a small project, with questionable technical and economic feasibility, could be a desirable risk if its successful completion represents a substantial gain. In this case the potential for gain may make it acceptable to undertake the project even if the feasibility study has determined that the possibilities for its completion are doubtful. In other words, the project is judged to be a good gamble.
 
Figure 2.1 Project Feasibility Flowchart
Risk analysis is usually associated with the following activities:

1. risk identification

2. risk estimation

3. risk assessment

4. risk management

We discuss each of these risk-related operations separately.


 
< Prev   Next >
Your Ad Here

Donate us!!

Enter Amount:

RSS socialnet

Add to MyYahoo!
Subscribe in NewsGator Online
Add to Newsburst
Add to Google
Add to My AOL
Add to Pluck
Subscribe in FeedLounge
Add to Windows Live
Add to NetVibes
Subscribe in Rojo
Subscribe in Bloglines
Add to MyMSN
Add to Plusmo for your cellphone
Add to PageFlakes
Add to Technorati
Add to BlinkBits