50122 Feasibility Study

 

Chapter 2 feasibility study

 

• Objective: To determine the minimum cost problem in the shortest possible time is able to solve.

• task: to determine whether the problem is worth solving.

• First, the need for further analysis and clarification of definition.

      Preliminary analysis of the problem definition phase to determine the size and destination, the right to be sure, to correct errors in a timely manner, there are no restrictions and limitations on the target system, they must be clearly listed.   

 

 

Problem Definition content

Background • Problem

• Development of the status quo system

• Development of reasons and conditions

• Developer system requirements, general requirements

• The nature of the problem, the type of range

• To achieve the goal

• Functional Size

• achieve the objectives of the program

• Development of conditions, environmental requirements

 

 

Problem Definition Examples

      Project: Textbook Sales System

• Background: artificial low sales productivity, error-prone

• Project objectives: to establish a highly efficient, error-free computer textbook sales system

• Project scope: the use of existing computer hardware, software development costs not more than 5000 yuan

• initial ideas: increasing the lack of statistical books and purchasing functions

• Feasibility study: It is recommended a week, the cost of not more than 500 yuan

 

 

Student Course Registration System "objectives and scope statement"

Project: Students registered elective system.

• Problem: Credit trial process, students elective artificially low registration efficiency, easy conflict, difficult to obtain timely and effective teachers of elective courses students list.

• Project objectives: to establish a registration system student elective semester-based teaching management of computer networks.

• Project Scope: The main use of existing computer hardware teaching management network, was equipped with a small amount of equipment, software development costs expected 2800 yuan.

• initial idea: to provide students fill out enrollment cards and computer network terminal queries Dialogue Between Two Kinds elective methods, teaching management section of the course conflicts can then query the students to determine the adjustment. The main output system course registration database, student schedule, record single course grade.

• Feasibility study: conducted by analysts and teaching management department, mainly for system implementation and management procedures elective school students to study. Recommended for about 10 days, the cost does not exceed $ 200.

 

 

Task 2.1 Feasibility study

Determine whether the problem is worth next to solve.

 

• Export logical model of the system.

  The main solution to explore several alternative (ie, system implementation). Study the feasibility of each solution from the following three aspects:

(1) the technical feasibility of using existing technology to achieve this system?

(2) economic feasibility , the economic benefits of this system can exceed its costs to develop it?

(3) operational feasibility , the way the system works within the user's organization do?

 

    The most fundamental task of the feasibility study is to make recommendations on future action.

    If the problem is not a viable solution, the analyst should be advised to stop this development project.

    If the issue is worthy of solution, analysts should recommend a better solution, and to develop a preliminary plan for the project.

    The length of time required feasibility study depends on the size of the project. In general, the cost of the feasibility study is expected to only 5% to 10% of the total cost of the project.

 

2.2 Feasibility study

Feasibility study has the following steps.

1. Review the system size and destination

   Analysts are sure that problem is really asking him to solve the problem.

2. The research system is currently being used

   The existing system is an important source of information. The new target system must also be able to perform its basic functions;

    On the other hand, the existing system must have certain drawbacks, the new system must be able to solve the problems in the old system.

3. Export of high-level logic model of the new system

(Data flow diagrams and data dictionary).

4. further define the problem

    Analysts and users should be reviewed together define the problem again, and the target size of the project, data flow diagrams and data dictionary as a basis for discussion.

    The first four steps essentially of a feasibility study cycle.

    Define the problem, analyze the problem, derive a tentative solution;

    Based on this definition of the problem once again, once again to analyze this issue, modify the solution;

    This cycle continues, until the logic model presented in full compliance with the target system.

5. Export and evaluation alternative solution

    Analyst should proceed from the logical model of his proposed system, the export of several high-level (more abstract) physical solution for comparison and selection.

   The development schedule for each realized in terms of technical, operational and economic systems are feasible.

6. The recommended course of action

    Whether to proceed with the development project.

7. The draft development plan

    Development of the project schedule

    Estimate of the situation need different kinds of developers and all kinds of resources, indicate when to use and how long.

    System life cycle cost estimates for each phase.

    Given the next phase (needs analysis) a detailed schedule and cost estimates.

8. written document submitted for review

    The research results of the various steps of the feasibility work clearly written documentation, user, person in charge of the client organization and review group reviewed to decide whether to continue the project and whether to accept the recommendation of analysts scheme.

 

System flowchart 2.3

    The system is a flowchart generally depicting a conventional tool of the physical system. The basic idea is to use the graphical symbol components of each drawing system (programs, documents, databases, manual process, etc.) in the form of a black box.

    Expression system is a flowchart in the case of data flow between the various components of the system, not the control procedure for data processing, and so even though some of the same symbols as symbols and program flow diagram of the system flow chart, but it is physical data flow rather than program flow chart of FIG.

 

2.3.1 Symbols

    When in a general manner abstractly depicts a practical system, using only the basic symbols listed in FIG. 2.1 is sufficient.

    More specifically, when it is desired to a physical system is depicted in FIG. 2.2 and also needs (see the book 29) are listed in systematic symbols.

    These symbols can use a generalized input and output operations embodied as a read-write file stored on a particular device (or database), the abstraction embodied in a particular program or manual operation.

 

 

FIG symbolic 2.1

2.3.2 Examples

    Illustrates the use of system flow.

    Some parts assembly plant has a storage warehouse, warehouse inventory of existing thresholds and the number of each part of the various parts and other data recorded in the inventory master file.

    When there is a change in the number of parts warehouse, should be revised inventory master file,

    If what part of the stock is less than the critical value of its inventory, it should be reported to the purchasing department to orders, orders prescribed every day to send a report to the purchasing department.

    The assembly plant using a small computer processing to update the inventory master file and generate orders report task. Every change parts inventory is called a transaction entered into the computer by the CRT terminal on the warehouse; inventory program in the system for transaction processing, inventory master file update stored on disk, and the necessary ordering information is written on the tape. Finally, once a day, the tape is read by the report generator, and prints out the report orders. Figure 2.3 depicts the system flowchart of an overview of the system described above.

    FIG each symbol is defined with the form of a black box system components, but does not specify a specific working process of each member; arrows in the figure determines the logical path information through the system.

The system flow chart is customary to make the information in the drawing in FIG downward flow from the top or from left to right.

 

2.3 System FIG inventory system flow chart

 

2.3.3 stratified

    When faced with a complex system, a better approach is to depict the hierarchical system.

    First with a high-level overview of the system flow chart depicting the overall system, that the system's key features.

    Then it was extended to an appropriate function for each key level of detail, drawn in a separate sheet of paper.

    This method facilitates the drawing hierarchical reader insight stepwise from abstract to concrete process of a complex system.

Data flow graph 2.4

    Data flow diagram (the DFD) is a graphical technique, which depicts the flow of information and data subjected to the process of moving from the input transform output. No specific physical components in the data flow diagram, it is only logical process depicted in the flow to be processed and the data in the software.

    The system data flow diagram is a graphical representation of logic function, if not a professional computer technician can easily understand it, and therefore is an excellent communication between the analyst and user tools.

     In addition, just consider the basic logic functions of the system that must be done when designing data flow diagram, all without considering how to specifically realize these functions, it is also a good starting point for future software design.


2.4.1 Symbols

    FIG. 2.4 (a) (see page 31), the data flow graph, there are four basic symbols: square (or cube) represents the source of data or an end point; rounded rectangular (or circular) for transforming data representative of ; rectangular opening (or two parallel horizontal lines) represents a data storage; arrows indicate data flow, i.e. the flow direction of the specific data.

    Note that the data stream and program flow (see in Chapter 5) to control the flow indicated by arrows of different nature, do not confused.

    In the data flow diagram to depict the possible flow of data of all, a condition without drawing data stream should appear (or loop branch condition can not be expressed).

    Treatment is not necessarily a program. A processing block may represent a series of programs, a single program module or procedure; it may represent the visual inspection of perforations or correctness of the data processing with other artificial piercer.

    A data store is not equivalent to a document, it may represent a document, portion of a file, a database record, or part of the element and the like; data may be stored in a disk, tape, drum, main memory, microfilm, punch cards, and on any other media (including the brain).

    Data storage and data stream are data in which only the different state. Data storage is in a stationary state of the data, the data stream is in motion.

    Error handling generally ignored in the data flow graph, such as opening or closing nor housekeeping files or the like.

    The basic elements of a data flow diagram depicting the "what" regardless of "what to do."

    Sometimes the same data source and end points, if only the source and a symbol representing the end of data, the at least two connected arrows and the symbols (a into a out), which may be a relatively long line arrow, which will reduced resolution data stream of FIG. Another method is to represent the same repeated draw a symbol (square or cube) indicates the end of data.

    Data storage may also be repeated in order to increase the clarity of the data flow graph. To avoid misunderstandings may arise, if the same thing on behalf of the same symbol appears in the drawing in place of n, the painting (n-1) strips slash mark at a corner of the symbol.

    In addition to the four basic symbols, additional symbols may be used several. FIG. 2.4 (b) gives the meanings of these additional symbols.

2.4.2 Examples

    Suppose a factory's purchasing department orders require a daily report, the report sorted by part number, listed in the table re-ordering all required parts.

    The need for re-ordering the part should be listed the following data:

    Part number, part name, number of orders, current prices, the main supplier of secondary suppliers.

    Parts storage or a library called a transaction, placed by CRT terminal warehouse transactions reported to the ordering system. When a certain number of stock inventory of parts is less than the threshold should be ordering again.

 

Data flow graph has four components:

    Source or end, processing, data storage and data streams.

    Thus, the first step can be extracted four components in the data flow graph from the description of the issue:

• First, consider the source and end point data

    From the above description of the system we can know "Purchasing orders require a daily report," "through the CRT terminal on the warehouse in the transaction reported to the ordering system," so buyers are end data, and the data warehouse administrator Source.

•deal with

    Once again, read the description of the problem, "the report Purchasing needs" and apparently they have no such reports, so there must be a process for producing the report.

    The consequences of the transaction is to change parts inventory, but nothing changed data are processed, and therefore the processing of transactions is another treatment.

    Note that, in the description of the problem and need not explicitly mention the transaction processing, but it can be seen by analyzing this need.

• data flow:

     Ordering system to report to the purchasing department, and therefore orders report is a data stream; transaction needs from the warehouse to the system, it is clear the transaction is another data stream.

• data storage:

    Generate reports and process transactions both treatment significantly mismatched at the time -

    Every time there is a transaction occurred while processing it immediately,

    However, the report is generated orders only once a day.

    Therefore, the data used to generate reports orders must be stored for a period of time, that is, there should be a data storage.

    Note that not all data storage and data stream can be extracted directly from the problem description.

 

    It is a logical data flow model of the system, although any computer system are essentially an information processing system, a computer system that is essentially converts the input data into output data.

    Thus, any basic model system consists of a number of data source / end point and a processing composition, the processing system represents the basic function of the data conversion processing.

    2.5 With the above ordering system such basic system model shown in FIG.

 

2.5 System Model The basic system of FIG ordering

 

    From this basic system model began to draw a very high level data flow diagram is a good idea. In this high-level data flow diagrams is listed all given data source / end point was clear, so it is a valuable communication tool.

    However, Figure 2.5, after all, too abstract, information from this chart that can be learned on the ordering system is very limited.

    The next step should be to refine the basic system model, depicting the main function of the system.

    From Table 2.1, "report generation" and "Transaction Processing" is the system must perform two main functions, which will be in place of 2.5 "Ordering System" (Figure 2.6).

 

    Moreover, the data flow graph refinement also increases the two data storage:

    Processing services need to "inventory" data;

    Generate reports and process transactions at different times, it is necessary to store "Ordering Information."

    In addition there are two data streams to the two data streams are listed in Table 2.1, which store the same data.

    This is because the same data to the original data is typically stored and taken out from or into a data store, i.e., data storage and data streams are simply two different forms of the same data.

    In FIG. 2.6 to processing and data storage are added to the number, aim is to facilitate reference and tracking.

 

Functional level data flow diagram of FIG Ordering System 2.6

 

    Then further refinement of the system should function level data stream function mainly depicted in the figures.

    By considering the data flow logic system: When a transaction occurs must first receive it; then modify the contents of the inventory in accordance with the transaction; if the stock last updated less than the critical value stocks, you should be ordering again, which is required ordering information processing.

    Thus, the "transaction processing" function is decomposed into the following three steps, which is logically reasonable: "Receive Transaction", "update inventory" and "Order Processing" (FIG. 2.7).

    When refining the hierarchical data flow graph must maintain continuity of information, that is, when the process is decomposed into a series of processing, input and output streams before decomposition and the same must be decomposed.

 

Figure 2.7 The data flow graph processing function further decomposed matters

 

 

2.4.3 Naming

    Dataflow graph named appropriateness of each component, directly affect the intelligibility of the data flow diagram. Therefore, it should be considered carefully when a name for these ingredients. The following describes the naming issue should be noted:

1. The data stream (or data storage) naming

(1) the name should represent the entire data stream (or data storage), rather than simply reflect some of its components.

(2) Do not use empty, lacking the specific meaning of the name (such as "data", "information", "Enter" and the like).

(3) If you are experiencing difficulties in a name for a data stream (or data storage), it is probably because of the data flow graph decomposition caused by inappropriate and should try to re-decomposition, to see if overcome this difficulty.

2. In order to deal with naming

(1) 通常先为数据流命名,然后再为与之相关联的处理命名。这样命名比较容易,而且体现了人类习惯的“由表及里”的思考过程。

(2) 名字应该反映整个处理的功能,而不是它的一部分功能。

(3) 名字最好由一个具体的及物动词加上一个具体的宾语组成。应该尽量避免使用“加工”、“处理”等空洞笼统的动词作名字。

(4) 通常名字中仅包括一个动词,如果必须用两个动词才能描述整个处理的功能,则把这个处理再分解成两个处理可能更恰当些。

(5) 如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解。

数据源点/终点并不需要在开发目标系统的过程中设计和实现,它并不属于数据流图的核心内容,只不过是目标系统的外围环境部分(可能是人员、计算机外部设备或传感器装置)。通常,为数据源点/终点命名时采用它们在问题域中习惯使用的名字(如“采购员”、“仓库管理员”等)。

2.4.4  用途

    画数据流图的基本目的是利用它作为交流信息的工具。分析员把他对现有系统的认识或对目标系统的设想用数据流图描绘出来,供有关人员审查确认。由于在数据流图中通常仅仅使用4种基本符号,而且不包含任何有关物理实现的细节,因此,绝大多数用户都可以理解和评价它。

    数据流图应该分层,并且在把功能级数据流图细化后得到的处理超过9个时,应该采用画分图的办法,也就是把每个主要功能都细化为一张数据流分图,而原有的功能级数据流图用来描绘系统的整体逻辑概貌。

 

    数据流图的另一个主要用途是作为分析和设计的工具。

    分析员在研究现有的系统时常用系统流程图表达他对这个系统的认识,这种描绘方法形象具体,比较容易验证它的正确性;

    但是,开发工程的目标往往不是完全复制现有的系统,而是创造一个能够完成相同的或类似的功能的新系统。

    用系统流程图描绘一个系统时,系统的功能和实现每个功能的具体方案是混在一起的。

    因此,分析员希望以另一种方式进一步总结现有的系统,这种方式应该着重描绘系统所完成的功能而不是系统的物理实现方案。数据流图是实现这个目标的极好手段。

 

    当用数据流图辅助物理系统的设计时,以图中不同处理的定时要求为指南,能够在数据流图上画出许多组自动化边界,每组自动化边界可能意味着一个不同的物理系统,因此可以根据系统的逻辑模型考虑系统的物理实现。

    例如,考虑图2.7,事务随时可能发生,因此处理1.1(“接收事务”)必须是联机的;采购员每天需要一次定货报表,因此处理2(“产生报表”)应该以批量方式进行。

    问题描述并没有对其他处理施加限制,例如,可以联机地接收事务并放入队列中,然而更新库存清单、处理定货和产生报表以批量方式进行(图2.8)。当然,这种方案需要增加一个数据存储以存放事务数据。

 

图2.8 这种划分自动化边界的方法暗示以批量方式更新库存清单

 

    改变自动化边界,把处理1.1,1.2和1.3放在同一个边界内(图2.9),这个系统将联机地接收事务、更新库存清单和处理定货及输出定货信息;然而处理2将以批量方式产生定货报表。

    还能设想出建立自动化边界的其他方案吗?

    如果把处理1.1和处理1.2放在一个自动化边界内,把处理1.3和处理2放在另一个边界内,意味着什么样的物理系统呢?

    数据流图对更详细的设计步骤也有帮助,本书第5章将讲述从数据流图出发映射出软件结构的方法——面向数据流的设计方法。

 

 

 

 

图2.9 另一种划分自动化边界的方法建议以联机方式更新库存清单

 

2.5  数据字典

    数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

    任何字典最主要的用途都是供人查阅对不了解的条目的解释,数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。

    数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。只有数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。

2.5.1  数据字典的内容

    一般说来,数据字典应该由对下列4类元素的定义组成:

(1) 数据流

(2) 数据流分量(即数据元素)

(3) 数据存储

(4) 处理

    但是,对数据处理的定义用其他工具(如IPO图或PDL)描述更方便,因此本书中数据字典将主要由对数据的定义组成,这样做可以使数据字典的内容更单纯,形式更统一。

    除了数据定义之外,数据字典中还应该包含关于数据的一些其他信息。

    典型的情况是,在数据字典中记录数据元素的下列信息: 一般信息(名字,别名,描述等等),定义(数据类型,长度,结构等等),使用特点(值的范围,使用频率,使用方式——输入、输出、本地,条件值等等),控制信息(来源,用户,使用它的程序,改变权,使用权等等)和分组信息(父结构,从属结构,物理位置——记录、文件和数据库等等)。

    数据元素的别名就是该元素的其他等价的名字,出现别名主要有下述3个原因:

(1) 对于同样的数据,不同的用户使用了不同的名字;

(2) 一个分析员在不同时期对同一个数据使用了不同的名字;

(3) 两个分析员分别分析同一个数据流时,使用了不同的名字。

虽然应该尽量减少出现别名,但是不可能完全消除别名。

2.5.2  定义数据的方法

    定义绝大多数复杂事物的方法,都是用被定义的事物的成分的某种组合表示这个事物,这些组成成分又由更低层的成分的组合来定义。从这个意义上说,定义就是自顶向下的分解,所以数据字典中的定义就是对数据自顶向下的分解。那么,应该把数据分解到什么程度呢?一般说来,当分解到不需要进一步定义,每个和工程有关的人也都清楚其含义的元素时,这种分解过程就完成了。

    由数据元素组成数据的方式只有下述三种基本类型:

(1) 顺序  即以确定次序连接两个或多个分量;

(2) 选择  即从两个或多个可能的元素中选取一个;

(3) 重复  即把指定的分量重复零次或多次。

    因此,可以使用上述3种关系算符定义数据字典中的任何条目。为了说明重复次数,重复算符通常和重复次数的上下限同时使用(当上下限相同时表示重复次数固定)。当重复的上下限分别为1和0时,可以用重复算符表示某个分量是可选的。但是,“可选”是由数据元素组成数据时一种常见的方式,把它单独列为一种算符可以使数据字典更清晰一些。因此,增加了下述的第4种关系算符:

(4) 可选  即一个分量是可有可无的(重复零次或一次)。

    虽然可以使用自然语言描述由数据元素组成数据的关系,但是为了更加清晰简洁,建议采用下列符号:

=意思是等价于(或定义为);

+意思是和(即,连接两个分量);

[ ]意思是或(即,从方括弧内列出的若干个分量中选择一个),通常用“|”号隔开供选择的分量;

{  }意思是重复(即,重复花括弧内的分量);

(  )意思是可选(即,圆括弧里的分量可有可无)。

 

    常常使用上限和下限进一步注释表示重复的花括弧。一种注释方法是在开括弧的左边用上角标和下角标分别表明重复的上限和下限;另一种注释方法是在开括弧左侧标明重复的下限,在闭括弧的右侧标明重复的上限。

    下面举例说明上述定义数据的符号的使用方法:某程序设计语言规定,用户说明的标识符是长度不超过8个字符的字符串,其中第一个字符必须是字母字符,随后的字符既可以是字母字符也可以是数字字符。使用上面讲过的符号,我们可以像下面那样定义标识符:

标识符=字母字符+字母数字串

字母数字串=0{字母或数字}7

字母或数字=[字母字符|数字字符]

    由于和项目有关的人都知道字母字符和数字字符的含义,因此,关于标识符的定义分解到这种程度就可以结束了。

2.5.3  数据字典的用途

    数据字典最重要的用途是作为分析阶段的工具。 

    在数据字典中建立的一组严密一致的定义很有助于改进分析员和用户之间的通信,因此将消除许多可能的误解。

    对数据的这一系列严密一致的定义也有助于改进在不同的开发人员或不同的开发小组之间的通信。

    如果要求所有开发人员都根据公共的数据字典描述数据和设计模块,则能避免许多麻烦的接口问题。

    数据字典中包含的每个数据元素的控制信息是很有价值的。

    因为列出了使用一个给定的数据元素的所有程序(或模块),所以很容易估计改变一个数据将产生的影响,并且能对所有受影响的程序或模块作出相应的改变。

    最后,数据字典是开发数据库的第一步,而且是很有价值的一步。

2.5.4  数据字典的实现

    目前,数据字典几乎总是作为CASE“结构化分析与设计工具”的一部分实现的。

    在开发大型软件系统的过程中,数据字典的规模和复杂程度迅速增加,人工维护数据字典几乎是不可能的。

    如果在开发小型软件系统时暂时没有数据字典处理程序,建议采用卡片形式书写数据字典,每张卡片上保存描述一个数据的信息。这样做更新和修改起来比较方便,而且能单独处理描述每个数据的信息。每张卡片上主要应该包含下述这样一些信息:

名字、别名、描述、定义、位置。

2.6  成本/效益分析

    开发一个软件系统是一种投资,期望将来获得更大的经济效益。

    经济效益通常表现为减少运行费用或(和)增加收入。但是,投资开发新系统往往要冒一定风险,系统的开发成本可能比预计的高,效益可能比预期的低。

    效益分析的目的正是要从经济角度分析开发一个特定的新系统是否划算,从而帮助客户组织的负责人正确地作出是否投资于这项开发工程的决定。

    为了对比成本和效益,首先需要估计它们的数量。

2.6.1  成本估计

    软件开发成本主要表现为人力消耗(乘以平均工资则得到开发费用)。成本估计不是精确的科学,因此应该使用几种不同的估计技术以便相互校验。下面简单介绍3种估算技术。

1. 代码行技术

    代码行技术是比较简单的定量估算方法,它把开发每个软件功能的成本和实现这个功能需要用的源代码行数联系起来。通常根据经验和历史数据估计实现一个功能需要的源程序行数。当有以往开发类似工程的历史数据可供参考时,这个方法是非常有效的。

    一旦估计出源代码行数以后,用每行代码的平均成本乘以行数就可以确定软件的成本。每行代码的平均成本主要取决于软件的复杂程度和工资水平。

2. 任务分解技术

    这种方法首先把软件开发工程分解为若干个相对独立的任务。再分别估计每个单独的开发任务的成本,最后累加起来得出软件开发工程的总成本。

    估计每个任务的成本时,通常先估计完成该项任务需要用的人力(以人月为单位),再乘以每人每月的平均工资而得出每个任务的成本。

    最常用的办法是按开发阶段划分任务。如果软件系统很复杂,由若干个子系统组成,则可以把每个子系统再按开发阶段进一步划分成更小的任务。

    典型环境下各个开发阶段需要使用的人力的百分比大致如表2.2(见书40页)所示。当然,应该针对每个开发工程的具体特点,并且参照以往的经验尽可能准确地估计每个阶段实际需要使用的人力。

3. 自动估计成本技术

    采用自动估计成本的软件工具可以减轻人的劳动,并且使得估计的结果更客观。但是,采用这种技术必须有长期搜集的大量历史数据为基础,并且需要有良好的数据库系统支持。

2.6.2  成本/效益分析的方法

    成本/效益分析的第一步是估计开发成本、运行费用和新系统将带来的经济效益。

• 估计开发成本以介绍。

• 运行费用取决于系统的操作费用(操作员人数,工作时间,消耗的物资等等)和维护费用。

• 系统的经济效益等于因使用新系统而增加的收入加上使用新系统可以节省的运行费用。

    因为运行费用和经济效益两者在软件的整个生命周期内都存在,总的效益和生命周期的长度有关,所以应该合理地估计软件的寿命。

    虽然许多系统在开发时预期生命周期长达10年以上,但是时间越长系统被废弃的可能性也越大,为了保险起见,以后在进行成本/效益分析时一律假设生命周期为5年。

    应该比较新系统的开发成本和经济效益,以便从经济角度判断这个系统是否值得投资,但是,投资是现在进行的,效益是将来获得的,不能简单地比较成本和效益,应该考虑货币的时间价值。

1. 货币的时间价值

    通常用利率的形式表示货币的时间价值。

    假设年利率为i,如果现在存入P元,则n年后可以得到的钱数为:F=P(1+i)n

    这也就是P元钱在n年后的价值。

    反之,如果n年后能收入F元钱,那么这些钱的现在价值是

    P=F/(1+i)n

    例如,修改一个已有的库存清单系统,使它能在每天送给采购员一份定货报表。

    修改已有的库存清单程序并且编写产生报表的程序,估计共需5000元;

    系统修改后能及时定货将消除零件短缺问题,估计因此每年可以节省2500元,5年共可节省12500元。

    但是,不能简单地把5000元和12500元相比较,因为前者是现在投资的钱,后者是若干年以后节省的钱。

    假定年利率为12%,利用上面计算货币现在价值的公式可以算出修改库存清单系统后每年预计节省的钱的现在价值,如表2.3(见书41页)所示。

 

2. 投资回收期

    通常用投资回收期衡量一项开发工程的价值。

    所谓投资回收期就是使累计的经济效益等于最初投资所需要的时间。

    显然,投资回收期越短就能越快获得利润,因此这项工程也就越值得投资。

    举例:参见P42

    投资回收期仅仅是一项经济指标,为了衡量一项开发工程的价值,还应该考虑其他经济指标。

 

3. 纯收入

    衡量工程价值的另一项经济指标是工程的纯收入,也就是在整个生命周期之内系统的累计经济效益(折合成现在值)与投资之差。

    这相当于比较投资开发一个软件系统和把钱存在银行中(或贷给其他企业)这两种方案的优劣。

    如果纯收入为零,则工程的预期效益和在银行存款一样,但是开发一个系统要冒风险,因此从经济观点看这项工程可能是不值得投资的。

    如果纯收入小于零,那么这项工程显然不值得投资。

 

4. 投资回收率

    把资金存入银行或贷给其他企业能够获得利息,通常用年利率衡量利息多少。

    类似地也可以计算投资回收率,用它衡量投资效益的大小,并且可以把它和年利率相比较。

    在衡量工程的经济效益时,它是最重要的参考数据。

    已知现在的投资额,并且已经估计出将来每年可以获得的经济效益,那么,给定软件的使用寿命之后,怎样计算投资回收率呢?

    设想把数量等于投资额的资金存入银行,每年年底从银行取回的钱等于系统每年预期可以获得的效益,在时间等于系统寿命时,正好把在银行中的存款全部取光,那么,年利率等于多少呢?

    这个假想的年利率就等于投资回收率。

   

2.7  小结

    可行性研究进一步探讨问题定义阶段所确定的问题是否有可行的解。

    在对问题正确定义的基础上,通过分析问题,导出试探性的解,然后复查并修正问题定义,再次分析问题,改进提出的解法……。

    经过定义问题、分析问题、提出解法的反复过程,最终提出一个符合系统目标的高层次的逻辑模型。

    然后根据系统的这个逻辑模型设想各种可能的物理系统,并且从技术、经济和操作等各方面分析这些物理系统的可行性。

    最后,系统分析员提出一个推荐的行动方针,提交用户和客户组织负责人审查批准。

 

    在表达分析员对现有系统的认识和描绘他对未来的物理系统的设想时,系统流程图是一个很好的工具。系统流程图实质上是物理数据流图,它描绘组成系统的主要物理元素以及信息在这些元素间流动和处理的情况。

    数据流图的基本符号只有4种,它是描绘系统逻辑模型的极好工具。通常数据字典和数据流图共同构成系统的逻辑模型。没有数据字典精确定义数据流图中每个元素,数据流图就不够严密;然而没有数据流图,数据字典也很难发挥作用。

    成本/效益分析是可行性研究的一项重要内容,是客户组织负责人从经济角度判断是否继续投资于这项工程的主要依据。

 

Guess you like

Origin www.cnblogs.com/ZanderZhao/p/11094736.html