1、第二章可行性研究学习目标:1可行性研究的任务和内容 2可行性方案的一般格式主要内容主要内容F1、基于计算机的系统与计算机系统工程基于计算机的系统与计算机系统工程F2、可行性研究可行性研究F3、系统分析与系统模型系统分析与系统模型基于计算机的系统F1、系统:一个系统是一组相互关联、能一起工作从而达到某个目标的相关组件的集合。F2、基于计算机的系统:定义为某些元素的一个集合或者排列,这些元素被组织起来,以实现某种方法、过程或者借助处理信息进行控制等。人们通过“系统”完成某个预定的目标,该目标可能是某些业务功能或者开发可被销售的产品等。F软件。计算机程序、数据结构以及相关的文档,它们被用于实现需求的
2、逻辑方法和过程或者控制。F硬件。提供计算能力的电子设备、能使数据流动的互连设备(例如网络交换机和电信设备等)、提供外部功能的电子机械设备(例如传感器、马达等)。F人员。硬件和软件的用户和操作者。F数据库。通过软件访问的、大型的、有组织的信息集合。F文档。描绘系统的使用、操作的描述性信息(例如使用手册、联机帮助文件等)。F过程。定义每一个系统元素特定的使用步骤,或者系统驻留的过程性环境。计算机系统工程F计算机系统工程是指与构造基于计算机系统有关的过程、方法和技术。系统工程是描述、设计、实现、有效性验证、实施和维护等一系列的求解活动,它不仅关心系统的硬件和软件,还要关注系统与周围环境的关系,以及人
3、机交互等问题。计算机系统工程的任务F组织并指导系统工程师定义全系统各层次中的所有基于计算机系统的元素。系统工程过程主要活动需求定义:系统需求定义活动希望获得系统整体需求。系统设计:将不同的组件整合成一个能完成所需功能的系统。子系统开发:实现在系统设计时所确定的子系统,如果该子系统本身又是一个很大的系统,则又进入另一个系统工程过程,例如硬件工程过程,软件工程过程等。系统集成:系统集成就是把一个个独立开发的子系统整合为一个完整的大系统。系统安装:系统进入实际的工作环境。要考虑到系统安装环境的问题,以及新系统和已有系统共存的问题。系统进化:系统在投入运行后,常常需要改进原先系统需求的错误或者满足新的
4、需求,例如设备的更新、系统外部环境的改变等,这就促使系统的变更和进化。系统退役:系统退役就是它的有效生存期结束后停止了它的服务。硬件和硬件工程F系统工程师根据系统需求分析,为硬件系统指派的任务即产生硬件需求,硬件工程师通过硬件工程过程实现硬件系统。软件和软件工程F在系统工程中,把功能和性能分配给软件系统即产生软件需求,软件工程师借助于软件工程的过程、方法和工具开发软件系统。人机工程活动分析:分析人机交互过程,评价人机交互过程中人的活动并根据“活动”设计需要计算机执行的“任务”动作定义和设计:根据人机交互活动,精确地定义人机界面每一个动作的精确内容。这些动作是靠计算机去执行的。人机对话语言设计:
5、设计人机对话语言,精确地定义语言的语法和语义,实现语言中的每一个动作和命令。用户环境设计:将支撑人机界面的软件和硬件集成起来,构成一个用户环境。环境应该包括物理设备(例如场地、照明、温度等方面的因素)。原型设计。软件工程师根据用户要求设计原型,然后请用户一起对原型进行评审。以通过评审的原型为基础设计基于计算机系统的人机界面。不借助原型的帮助,软件工程师很难设计出用户满意的人机界面。数据库工程F调查用户的信息需求和对信息处理的要求;进行可行性论证;提出成本预算和工作计划等。F论证、选择和购置支持数据库系统的硬件和软件,特别是数据库管理系统(DBMS)。此外,还应该考虑支持DBMS运行的操作系统和
6、网络环境。F数据库设计与实现。步骤是(1)对数据库系统的要求进行需求分析和数据分析,产生需求说明和数据说明;(2)以需求说明和数据说明为基础,进行概念设计,产生依赖用户的数据库概念模型;(3)以概念模型为基础,进行逻辑设计,产生依赖于DBMS的逻辑模型;(4)以逻辑模型为基础进行物理设计产生一个完整的、可实现的数据库。可行性研究可行性研究F软件可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。注意,可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否值得去开发,其中的问题能否解决。可行性研究实质上是要进行一次简化、压缩了的需求分析和设计过
7、程,是要在较高层次上以较抽象的方式进行需求分析和设计过程。F可行性研究的内容包括经济可行性、技术可行性、社会可行性、开发方案的操作性与选择性研究。经济可行性研究F经济可行性就是通过成本效益分析,评估系统的经济效益是否超过它的开发成本,也就是给出系统开发的成本论证,并将估算的成本与预期的利润进行对比,分析系统开发对其他产品或利润的影响。F系统成本主要包括:F购置硬件/软件;有关设备的工程安装费用;系统开发费;系统的安装、运行和维护费用;人员培训费用等等。F系统效益包括:F经济效益。系统为用户增加的经济收入,它可以通过直接的或者统计的方法估算;F社会效益。只能用定性的方法估算。例如产品广告宣传,影
8、响。成本一效益分析F1货币的时间价值设利率为i,现存入P元,n年后可得钱数为F,若不计复利,则FP*(1十n*i)F就是P元在n年后的价值。反之,若n年后能收入F元,那么这些钱现在的价值为PF(1十n*i)F2投资回收期投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。投资回收期越短,就越快获得利润,则该项目就越值得开发。3、项目的纯收入,也就是在整个生存周期之内的累计经济效益(折合成现在值)与投资之差。这相当于投资开发一个项目与把钱存入银行中进行比较,看这两种方案的优劣。技术可行性F技术可行性是根据客户提出的系统功能、性能以及实现系统的各项约束条件,从技术的角度研究实现系统的可行性
9、。F技术可行性一般要考虑的情况包括:(1)开发的风险:在给出的限制范围内,能否设计出系统并实现必须的功能和性能?(2)资源的有效性:可用于开发的人员是否存在问题?可用于建立系统的其他资源是否具备?(3)技术:相关技术的发展是否支持这个系统?F数学建模、原型建造和模拟是基于计算机系统技术分析活动的有效工具。基于计算机系统模型应该具备下列特性:F能够反映系统配置的动态特性,容易理解和操作,能够提供系统真实的结果并有利于评审;F能够综合与系统有关的全部因素,能够再现系统运行的结果;F能够突出与系统有关的重要因素,能够忽略与系统无关的或次要的因素;F结构简单、容易实现、容易修改。社会可行性F社会可行性
10、是研究在系统开发过程中可能涉及人力资源、各种合同、知识产权纠纷、责任以及各种与法律相抵触的问题。F研究要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质和操作方式是否可行方案的抉择与可操作性F如果存在的话,提出并评价实现系统的各种开发方案,在给出的几个方案中做出抉择。可操作性是指用户对系统的操作是否可行。可行性研究报告F见文档可行性研究的具体步骤F(1)确定项目规模和目标。分析员对有关人员进行调查访问,仔细阅读和分析有关的资料,对项目的规模和目标进行定义和确认,清晰地描述项目的一切限制和约束,确保分析员正在解决的问题确实是要解决的问
11、题。(2)研究正在运行的系统。正在运行的系统可能是一个人工操作的系统,也可能是旧的计算机系统,因而需要开发一个新的计算机系统来代替现有系统。现有的系统是信息的重要来源。人们需要研究它的基本功能,存在什么问题,运行现有系统需要多少费用;新系统有什么新的功能要求,新系统运行时能否减少使用费用等。F(3)建立新系统的高层逻辑模型。注意,现在还不是软件需求分析阶段,不是完整、详细的描述,只是概括地描述高层的数据处理和流动。F(4)导出和评价各种方案。分析员建立了新系统的高层逻辑模型之后,要从技术角度,提出实现高层逻辑模型的不同方案,即导出若干较高层次的物理解法。根据技术可行件、经济可行性和社会可行性对
12、各种方案进行评估,去掉行不通的解法,就得到了可行的解法。(5)推荐可行的方案。根据上述可行性研究的结果,应该决定该项目是否值得去开发。若值得开发,那么可行的解决方案是什么,并且说明该方案是可行的原因。(6)编写可行性研究报告。将上述可行性研究过程的结果写成相应的文档,即可行性研究报告,提请用户和使用部门仔细审查,从而决定该项目是否进行开发,是否接受可行的实现方案。系统分析与系统模型系统分析与系统模型F系统分析是关于客观世界中问题空间的一个加工过程,它输入的是目标系统的问题空间,输出的是系统需求规范,加工过程则是一个抽象和理解的过程。系统分析本质上是人们的一种思维过程,也就是把系统的问题空间加工
13、为系统的需求规格,系统设计与编程则是解空间的问题。功能分解方法F功能分解方法=功能+子功能+功能接口。F基本思想是将系统看成由若干功能构成的一个集合,每一个功能又可以分成若干子功能(子加工或者过程)等等。在这一过程中,同时定义每一个功能的接口。F功能分解方法的重点是操作,很少考虑到数据结构问题,数据结构是根据功能或者子功能的需要进行设计。对于一个系统而言,结构是相对稳定的,行为却是相对不稳定的,显然,这种方法把重点放在不稳定的行为上,很难适应系统的变化。数据流方法F数据流方法=数据流+数据变换+数据存储+终结点+加工说明+数据词典。其中,终结点是通常的数据源和数据池。F基本出发点是数据流,即利
14、用数据流来理解问题和分析问题。它采用了逐层分解,逐步求精的基本原则,分析人员沿着问题空间的数据流进行分析,从而,把数据流影射到分析结果的模型上,(数据流图)。F数据流方法的难点之一是如何确定数据流之间的变换。人们可以把事件对应的变换分解成若干组,然后进行抽象形成若干变换层次。F在拓扑结构意义上,数据流图属于网状型,系统结构图属于层次型。正是分析和设计两种表示方法的不一致性,导致了由数据流图到系统结构的影射不是唯一的。F“数据字典爆炸”也是这种方法需要解决的问题之一。由于一个复杂系统带来数据流图就很复杂,同时导致数据字典规模也很庞大。数据流方法也很少考虑数据结构问题。信息造型方法F信息造型=对象
15、+属性+联系+父类型/子类型+关联对象。这里的对象是客观世界中的某种事物的表示,它具有属性,但不包含操作。F信息造型方法的基本出发点立足于数据(数据结构)而不是数据流,由问题空间认识导出数据结构,从而建立分析模型,这种方法的描述工具之一是ER图(实体联系图),它的基本元素是实体、属性和关联。F信息造型方法的重要核心概念是实体关系,实体是问题空间中的一个事物,它带有一组数据的属性,关联描述问题空间中事物之间的联系。实体与关联加上属性形成一个网络结构,软件人员常常使用ER图描述系统的信息状态。F信息造型方法与面向对象方法比较接近,但它不支持服务、继承性、消息、结构(分类结构和组装结构)等概念。面向
16、对象方法F面向对象方法=对象(类)+结构+继承+消息(通信)。其中,对象是一组属性和服务的封装体,它是问题空间中某一事物的抽象。这个公式仅仅表达了面向对象方法中几个重要的特征。F面向对象方法使得软件人员可以采用3个基本组织模式来定义和传递系统的需求,即对象和属性、分类结构、组装结构。同时,面向对象分析和设计采用相同的一致的表示方法,实现了分析结果到设计的无缝衔接。用面向对象方法所获得的模型是对问题空间的完整的、直接的影射。系统结构模型F系统工程的一个重要活动是系统建模,它是系统需求和设计的组成部分。系统工程师将基于计算机的系统功能和性能分解,定义若干个子系统及其界面之后,开始建立系统模型,为需求分析和设计阶段的工作奠定基础。输入处理输出(IPO)结构是系统建模的基础,它将基于计算机的系统转换成一个信息变换模型。结构模板图用户界面处理输入处理处理与控制功能输出处理维护和自测试系统规格说明F结构图规格(Architecture Diagram Specification,ADS)描述了子系统信息以及子系统之间的控制流和信息流信息。每个子系统的结构图规格说明都应包括系统模板描述、系统结构字典、系统结构互连图。作业F可行性研究的主要内容有哪些?