1、经济可行性研究和需求经济可行性研究和需求分析分析2022-10-28经济可行性研究和需求分析第2章 可行性研究与需求分析经济可行性研究和需求分析2.1 可行性研究可行性研究2.1.1可行性研究的目的可行性研究的目的2.1.2可行性研究的内容可行性研究的内容2.1.3可行性研究的步骤可行性研究的步骤2.1.4 可行性研究的文档可行性研究的文档经济可行性研究和需求分析2.1.1可行性研究的目的与意义 可行性研究可行性研究的目的不在于提出解决问题的方案,而在于研究解决问题的必要性和可能性。经济可行性研究和需求分析2.1.2 可行性研究的内容可行性研究的内容 1.1.经济可行性经济可行性 2.2.技术
2、可行性技术可行性 3.3.社会可行性社会可行性经济可行性研究和需求分析可行性研究的内容经济可行性研究经济可行性研究的研究内容包括以下几项:经济可行性研究和需求分析可行性研究的内容技术可行性研究技术可行性研究的研究内容包括以下几项:经济可行性研究和需求分析可行性研究的内容社会可行性研究社会可行性研究的研究内容包括以下几项:经济可行性研究和需求分析2.1.3 可行性研究的步骤可行性研究的步骤 典型的可行性研究的步骤如图所示。经济可行性研究和需求分析可行性研究的步骤1.确定系统的目标确定系统的目标系统分析人员要详细地阅读各种相关资料,并对用户和市场进行调查,从而确认目标系统要完成的任务。同时,还要明
3、确进行项目开发时的一切限制和约束,以及可以使用的各种资源。经济可行性研究和需求分析可行性研究的步骤2.分析研究正在运行的系统分析研究正在运行的系统对现有系统功能特点的充分了解是成功开发新系统的前提。对现有系统的研究包括阅读和分析各种文档资料,观察系统的运行状况和实地操作系统,收集和分析用户对现有系统的意见等。可以说,现有系统是开发目标系统时重要的信息来源。经济可行性研究和需求分析可行性研究的步骤3.设计新系统的高层逻辑模型设计新系统的高层逻辑模型一般来说,新系统应该完成现有系统的功能,并对现有系统中存在的问题进行改善或修复。在分析研究了现有系统的基础上,就可以大体把握新系统的功能和结构,然后从
4、较高层次上建立新系统的逻辑模型。经济可行性研究和需求分析可行性研究的步骤4.提出可行的解决方案并对其进行评估和比较提出可行的解决方案并对其进行评估和比较基于新系统的高层逻辑模型,系统分析人员可以从技术的角度提出多种解决方案,并从经济、社会和技术等多个方面对各种解决方案进行比较和评估。经济可行性研究和需求分析可行性研究的步骤5.选择合适的解决方案选择合适的解决方案在上述研究的基础上,回答该软件产品是否能够解决存在的问题,是否能够带来预期的效果和价值的问题。如果该软件开发项目没有必要性和可能性,则应立即停止,并给出详细的理由。如果有开发该软件产品的必要性和可能性,那么应该从上述的多个解决方案中选取
5、出最合适、最可行的解决方案,列举出选择该方案的原因,从经济可行性、社会可行性和技术可行性三个方面对该方案进行可行性研究。经济可行性研究和需求分析可行性研究的步骤6.撰写可行性研究报告撰写可行性研究报告项目背景管理概要候选方案系统描述经济可行性分析、社会可行性分析、技术可行性分析可行性研究的结论可以按计划进行软件项目的开发。需要进行调整或改善后才能进行项目的开发该软件项目不具有可行性,立即停止。经济可行性研究和需求分析2.1.4 可行性研究的文档可行性研究的文档 提交给用户的最终可行性研究报告,纸质或者电子版。经济可行性研究和需求分析案例:编写软件计划书编写软件计划书某中学需要开发一套图书管理系
6、统。目标是实现对图书的自动管理,节省人力资源。要求本系统适用性强,还能应用于部分小型书店。功能要求:1、图书馆管理人员可完成图书入库录入(可通过条形码),进行分类汇总。2、借书时,记录借书日期,以及将相应的信息录入数据库以供检索使用。还书时对借书记录进行注销,并把相应的信息录入数据库以供检索使用。3、用户可查询在馆书目,以及用户的借书记录。还可提供预约借书服务。经济可行性研究和需求分析2.2 需求分析需求分析为什么需要需求分析为什么需要需求分析?开发人员往往急于求成开发人员往往急于求成希望对开发进行指导希望对开发进行指导希望开发人员对用户的要求理解希望开发人员对用户的要求理解希望用户理解开发人
7、员希望用户理解开发人员测试部门有理可依测试部门有理可依经济可行性研究和需求分析 需求分析谁来做需求分析谁来做?系统分析员系统分析员 系统分析员的素质系统分析员的素质:专业素质专业素质 沟通能力沟通能力 组织、协调能力组织、协调能力 写作能力写作能力 一定的成本核算知识一定的成本核算知识经济可行性研究和需求分析 利用软件范围作为指南,软件需求分析试图实现如下几个利用软件范围作为指南,软件需求分析试图实现如下几个目标:目标:1)1)揭示系统信息的流程与结构,为软件的开发打下基础。揭示系统信息的流程与结构,为软件的开发打下基础。2)2)确定接口细节、深入描述软件功能、确定设计的约束、确定接口细节、深
8、入描述软件功能、确定设计的约束、规定软件的检验需求。规定软件的检验需求。3)3)建立并保持与用户以及软件需求者的联系,以便实现上建立并保持与用户以及软件需求者的联系,以便实现上述两项目标。述两项目标。2.2.1 软件需求分析的目标软件需求分析的目标经济可行性研究和需求分析2.2.2 需求分析阶段的任务需求分析阶段的任务 1.1.确定对系统的综合需求确定对系统的综合需求 (1 1)系统功能需求系统功能需求 明确系统必须完成的所有功能。明确系统必须完成的所有功能。(2 2)系统性能需求系统性能需求 包括响应时间、精度指标、安全性包括响应时间、精度指标、安全性等。等。(3 3)运行需求运行需求 集中
9、表现为对系统运行时所处环境需求集中表现为对系统运行时所处环境需求,如软硬件运行环境限定需求等。,如软硬件运行环境限定需求等。(4 4)将来可能会提出的需求将来可能会提出的需求 目的是在设计过程中对系目的是在设计过程中对系统将来可能的扩充和修改做准备,以便需要时能比较容统将来可能的扩充和修改做准备,以便需要时能比较容易进行这种扩充和修改,更有利于系统维护易进行这种扩充和修改,更有利于系统维护经济可行性研究和需求分析2.2.分析系统的数据需求分析系统的数据需求 分析系统的数据需求,是通过系统的信息流归纳抽分析系统的数据需求,是通过系统的信息流归纳抽象出数据元素组成、数据逻辑关系、数据字典格式和象出
10、数据元素组成、数据逻辑关系、数据字典格式和数据类型,并以输入处理输出的结构方式表示。数据类型,并以输入处理输出的结构方式表示。因此,必须分析系统的数据需求,这是软件需求分析因此,必须分析系统的数据需求,这是软件需求分析的一个重要任务的一个重要任务。2.2.2 需求分析阶段的任务需求分析阶段的任务 经济可行性研究和需求分析3.3.获得系统的逻辑模型获得系统的逻辑模型(1 1)确定目标系统与当前系统的逻辑差别;)确定目标系统与当前系统的逻辑差别;(2 2)将变化部分看作新的处理步骤,对功能图)将变化部分看作新的处理步骤,对功能图(一般是一般是数据流图数据流图)及对象图进行调整;及对象图进行调整;(
11、3 3)由外及里,对变化的部分进行分析,推断其结构,)由外及里,对变化的部分进行分析,推断其结构,获得目标系统的逻辑模型。通常用数据流图、数据字典和获得目标系统的逻辑模型。通常用数据流图、数据字典和主要的处理算法描述这个逻辑模型。主要的处理算法描述这个逻辑模型。2.2.2 需求分析阶段的任务需求分析阶段的任务 经济可行性研究和需求分析4 4修正系统开发计划修正系统开发计划经过需求分析阶段的工作,分析员对目标系统有了更深经过需求分析阶段的工作,分析员对目标系统有了更深入、更具体的认识,因此可以对系统的成本和进度做出更入、更具体的认识,因此可以对系统的成本和进度做出更准确的估计,在此基础上对开发计
12、划进行修正。准确的估计,在此基础上对开发计划进行修正。2.2.2 需求分析阶段的任务需求分析阶段的任务 经济可行性研究和需求分析5 5开发原型系统:开发原型系统:当用户本身对需求的了解不太清晰的时候,开发人员通常采用建立原型系统的方法对用户需求进行挖掘。2.2.2 需求分析阶段的任务需求分析阶段的任务 经济可行性研究和需求分析2.2.3 软件需求分析的步骤 第一步:获取需求第一步:获取需求 识别问题识别问题(1 1)研究资料法研究资料法(2)2)问卷调查问卷调查(3 3)用户访谈)用户访谈(4 4)实地观察)实地观察经济可行性研究和需求分析2.2.3 软件需求分析的步骤 第二步:分析需求第二步
13、:分析需求 建立模型建立模型 第一步结束后,分析员应该能够总结出如下几点:第一步结束后,分析员应该能够总结出如下几点:1)1)系统会产生和使用什么数据系统会产生和使用什么数据?2)2)系统必须完成什么功能系统必须完成什么功能?3)3)将定义什么界面将定义什么界面?4)4)会应用什么约束等。会应用什么约束等。在此基础上,分析员创建系统模型,以便可以更好地理解数在此基础上,分析员创建系统模型,以便可以更好地理解数据流和控制流、处理功能、操作行为及信息内容。据流和控制流、处理功能、操作行为及信息内容。常用的数据模型有常用的数据模型有 数据流图数据流图(结构化的设计)(结构化的设计)E-R E-R图图
14、 (结构化的设计)(结构化的设计)用例图用例图 (面向对象的设计)(面向对象的设计)经济可行性研究和需求分析2.2.3 软件需求分析的步骤 第三步第三步 拟订软件需求分析文件拟订软件需求分析文件软件需求分析完成后,这一阶段应交付的文件有:软件需求分析完成后,这一阶段应交付的文件有:1.1.软件需求说明书(或软件规格说明书软件需求说明书(或软件规格说明书 )2.2.初步的用户手册初步的用户手册3.3.确认实施计划确认实施计划4.4.数据要求说明书数据要求说明书 经济可行性研究和需求分析2.2.3 软件需求分析的步骤软件需求分析的步骤 第四步第四步 需求需求 验证、验证、复审复审1验证-几个必须回
15、答的问题几个必须回答的问题(1 1)所规定的软件目标和任务与系统的目标和任务相)所规定的软件目标和任务与系统的目标和任务相符合吗符合吗?(2 2)与所有系统成分的重要接口都已经被描述了吗)与所有系统成分的重要接口都已经被描述了吗?(3 3)研制项目的信息流和信息结构充分确定吗)研制项目的信息流和信息结构充分确定吗?(4 4)图表都清楚吗)图表都清楚吗?每一个图表在不加补充说明的情况每一个图表在不加补充说明的情况下能理解吗下能理解吗?(5 5)主要功能在规定范围内吗)主要功能在规定范围内吗?每一功能都已充分地加每一功能都已充分地加以说明了吗以说明了吗?(6 6)设计的限制条件是现实的吗)设计的限
16、制条件是现实的吗?经济可行性研究和需求分析2.2.3 软件需求分析的步骤软件需求分析的步骤 (7 7)开发的技术风险是什么)开发的技术风险是什么?(8 8)考虑过软件需求的其他方案吗)考虑过软件需求的其他方案吗?(9 9)检验标准详细制定了吗)检验标准详细制定了吗?他们能否确认系统是成功他们能否确认系统是成功的的?(1010)有没有遗漏、重复或者不一致的地方)有没有遗漏、重复或者不一致的地方?(1111)与用户或需求者的联系充分吗)与用户或需求者的联系充分吗?(1212)用户复审了初步的用户手册吗)用户复审了初步的用户手册吗?(1313)软件计划中的估算如何受到影响)软件计划中的估算如何受到影
17、响?经济可行性研究和需求分析2.2.3 软件需求分析的步骤软件需求分析的步骤 2 2复审复审-规则规则 (1 1)着重于说服性的连接词)着重于说服性的连接词(如当然、因此、明确的、显然的等如当然、因此、明确的、显然的等),并,并问问“为什么为什么”。(2 2)观察含糊的术语)观察含糊的术语(如一些、有时、经常、通常、一般、大多数等如一些、有时、经常、通常、一般、大多数等),并进行澄清。,并进行澄清。(3 3)当给出了不完整的列表时,确定已理解了所有项,关键是查找)当给出了不完整的列表时,确定已理解了所有项,关键是查找“等、如此这样等、如此这样”。(4 4)查找蕴含了确定性的语句)查找蕴含了确定
18、性的语句(如如“总是总是”、“每次每次”、“所有所有”、“无无”、“永不永不”等等),然后要求证明它们。,然后要求证明它们。(5 5)当某术语被明确地定义在某处时,力图用该定义去替换其他地方)当某术语被明确地定义在某处时,力图用该定义去替换其他地方出现的该术语。出现的该术语。(6 6)当用语句描述某结构时,画图以帮助理解。)当用语句描述某结构时,画图以帮助理解。(7 7)当描述计算时,至少试验一个例子。)当描述计算时,至少试验一个例子。经济可行性研究和需求分析软件需求分析的步骤总结软件需求分析的步骤总结常用的数据模型有常用的数据模型有 数据流图数据流图(结构化的设计)(结构化的设计)E-R E
19、-R图图 (结构化的设计)(结构化的设计)用例图用例图 (面向对象的设计)(面向对象的设计)经济可行性研究和需求分析2.3需求分析常用的方法 软件需求分析方法很多,重点介绍以下两种方法结构化分析方法面向对象分析方法经济可行性研究和需求分析数据流图 结构化需求分析采用的是“自顶向下,由外到内,自顶向下,由外到内,逐层分解逐层分解”的思想,开发人员要先先画出系统顶层顶层的数据流图,然后然后再逐层画出低层低层的数据流图。顶层顶层的数据流图要定义系统范围系统范围,并描述系统与外界的数据联系数据联系,它是对系统架构的高度概括和抽象。底层底层的数据流图是对系统某个部分的精细描述精细描述。经济可行性研究和需
20、求分析2.3.1结构化分析方法 特点:自顶向下,逐层分解1 13 32 2P P2.12.12.22.21.11.11.31.31.21.23.13.13.23.2顶层顶层第一层第一层第二层第二层经济可行性研究和需求分析 描述工具:数据流图数据字典E-R图2.3.1结构化分析方法经济可行性研究和需求分析数据流图 数据流图数据流图(Data Flow Diagram,DFD)是描述系统中数据流的图形工具。是一种用来表示信息流和信息变换过程的图解方法,可以标识一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理。数据流图把软件系统看成是由数据流联系的各种功能的组合,在需求分析的
21、过程中,可以用来建立目标系统的逻辑模型。经济可行性研究和需求分析数据流图的图符数据流图的图符四种基本图形符号:四种基本图形符号:数据的源点数据的源点或终点或终点加工加工(数据处理数据处理)数据存储数据存储数据流数据流数据流名数据流名图图 d d1.2.1加工名加工名图图 b b实体名实体名图图 a a文件名文件名图图c经济可行性研究和需求分析数据流图 画数据流图的画数据流图的基本原则基本原则:1.数据流图中所有的符号必须是前面所述的四种基本符号和数据流图中所有的符号必须是前面所述的四种基本符号和附加符号;附加符号;2.数据流图的主图(顶层)必须含有前面所述的四种符号,数据流图的主图(顶层)必须
22、含有前面所述的四种符号,缺一不可;缺一不可;3.数据流图主图上数据流必须封闭在外部实体之间。(外部数据流图主图上数据流必须封闭在外部实体之间。(外部实体可以是一个,也可以是多个);实体可以是一个,也可以是多个);4.加工(变换数据处理)加工(变换数据处理)至少有一个输入数据流和一个输出至少有一个输入数据流和一个输出数据流数据流,反映出此加工数据的来源与加工的结果;,反映出此加工数据的来源与加工的结果;5.任何一个数据流子图必须与他父图上的一个加工相对应,任何一个数据流子图必须与他父图上的一个加工相对应,父图中有几个加工,就可能有几张子图,两者的输入数据父图中有几个加工,就可能有几张子图,两者的
23、输入数据流和输出数据流必须一致,即所谓流和输出数据流必须一致,即所谓“平衡平衡”;6.图上的每个元素都必须有名字(流向数据存储或从数据存图上的每个元素都必须有名字(流向数据存储或从数据存储流出的数据流除外)。储流出的数据流除外)。经济可行性研究和需求分析分层的数据流图分层的数据流图经济可行性研究和需求分析画数据流图的画数据流图的步骤步骤:第一步第一步,先找,先找外部实体外部实体(可以是人、物或其他软件系统),找(可以是人、物或其他软件系统),找到了外部实体,则系统与外部世界的界面就得以确定,系统的源到了外部实体,则系统与外部世界的界面就得以确定,系统的源点和终点也就找到了;点和终点也就找到了;
24、第二步第二步,找出外部实体的,找出外部实体的输入和输出数据流输入和输出数据流;第三步第三步,在图的边上画出系统的外部实体;,在图的边上画出系统的外部实体;第四步第四步,从外部实体的输出流(源点)出发,按照系统的逻辑,从外部实体的输出流(源点)出发,按照系统的逻辑需要,逐步画出需要,逐步画出一系列变换数据的加工一系列变换数据的加工,直到找到外部实体处所,直到找到外部实体处所需的输入流(终点),形成数据流的封闭;需的输入流(终点),形成数据流的封闭;第五步第五步,按照上述原则进行检查和修改。,按照上述原则进行检查和修改。最后按照上述步骤画出所有子图。最后按照上述步骤画出所有子图。经济可行性研究和需
25、求分析画数据流图的画数据流图的注意事项注意事项:1.画数据流图时,画数据流图时,只考虑数据流的静态关系只考虑数据流的静态关系,不考虑其动态关,不考虑其动态关系(如启动、停止等与时间有关的问题),也不考虑出错处系(如启动、停止等与时间有关的问题),也不考虑出错处理问题。理问题。2.画数据流图时,画数据流图时,只考虑常规状态只考虑常规状态,不考虑异常状态,这两点,不考虑异常状态,这两点一般留在设计阶段解决。一般留在设计阶段解决。3.画数据流图画数据流图不是画程序流程图不是画程序流程图,二者有本质的区别。数据流,二者有本质的区别。数据流图只描述图只描述“做什么做什么”,不描述,不描述“怎么做怎么做”
26、和做的顺序。而程序流和做的顺序。而程序流程图表示对数据进行加工的控制和细节。程图表示对数据进行加工的控制和细节。4.不能期望数据流图一次画成,而是要经过各项不能期望数据流图一次画成,而是要经过各项反复反复才能完成。才能完成。5.描绘复杂系统的数据流图通常很大,对于画在几张纸上的图描绘复杂系统的数据流图通常很大,对于画在几张纸上的图很难阅读和理解。一个比较好的方法是分层的描绘这个系统。很难阅读和理解。一个比较好的方法是分层的描绘这个系统。在分层细画时,必须保持星系的持续性,在分层细画时,必须保持星系的持续性,父图和子图要平衡父图和子图要平衡;每次只细画一个加工每次只细画一个加工。经济可行性研究和
27、需求分析例1分析下面父图和子图是否平衡经济可行性研究和需求分析父图与子图的平衡 例2分析下面父图和子图是否平衡经济可行性研究和需求分析画数据流图的画数据流图的用途用途;1.基本目的是利用它作为交流信息的工具;基本目的是利用它作为交流信息的工具;p供有关人员审查确认;供有关人员审查确认;p供用户理解和评价;供用户理解和评价;p数据流图应该分层,超过数据流图应该分层,超过9个时应该画分图。个时应该画分图。2.另一个用途是作为分析和设计的工具;另一个用途是作为分析和设计的工具;p描述系统所完成的功能描述系统所完成的功能p辅助物理系统的设计时,以定时要求为指南,画出辅助物理系统的设计时,以定时要求为指
28、南,画出许多组自动化边界,对应不同的物理系统;许多组自动化边界,对应不同的物理系统;1.导出更详细的设计步骤导出更详细的设计步骤-面向数据流的设计方法。面向数据流的设计方法。经济可行性研究和需求分析数据流图案例案例1:绘制考试管理系统的顶层及底层数据流图。:绘制考试管理系统的顶层及底层数据流图。某单位进行招聘考试,应聘者报名后,单位的招聘委员会将每位应聘者的基本情况输入系统。招聘考试结束后,招聘委员会需要将应聘者的成绩输入系统,并按照成绩对应聘者进行排序,将成绩单发放给每位应聘者,并发放录用通知书。经济可行性研究和需求分析数据流图 该考试管理系统顶层和底层的数据流图分别如下图。经济可行性研究和
29、需求分析课堂练习 绘制旅行公司为旅客预订机票的数据流图 要求:(1)旅行公司根据预定单准备预订机票,在预订机票时要查询航班目录信息;(2)预订好机票后要根据费用来记账,并写入记账文件,账单交给旅客(3)同时根据航班准备好机票,并把机票交给旅客经济可行性研究和需求分析画基本系统模型n由若干个数据源点/终点和一个处理组成。旅游公司旅客机票预订系统订票单机票账单机票预订系统的基本系统模型经济可行性研究和需求分析 机票预定系统功能级数据流图 细化,描绘系统的主要功能(功能级DFD)对系统的主要功能还可以进一步细化经济可行性研究和需求分析 描述工具:数据流图数据字典E-R图2.3.1结构化分析方法经济可
30、行性研究和需求分析数据字典 用数据流图来表示系统的逻辑模型直观且形象,但是缺乏细节描述,也就是说它没有准确和完整地定义各个图元。可以用数据字典数据字典(data dictionary,DD)来对数据流图做出补充和完善。经济可行性研究和需求分析数据字典包含4类条目数据流数据存储数据项数据加工以上4个条目按照一定规则组织起来构成数据字典经济可行性研究和需求分析数据字典 定义规则时,常用的符号如下表所示。经济可行性研究和需求分析数据字典例如,某教务系统的学生成绩库文件的数据字典描述可以表示为以下形式。文件名:学生成绩库记录定义:学生成绩=学号+姓名+课程代码+成绩+必修|选修学号:由6位数字组成姓名
31、:24个汉字课程代码:8位字符串考试成绩=0.100文件组织:以学号为关键字递增排列经济可行性研究和需求分析案例2:写出机票预订系统的数据字典经济可行性研究和需求分析 数据流条目:数据流条目:订票单=姓名+住址+电话+航班号+日期+起点+终点 航班=日期+航班号+姓名 机票=姓名+日期+航班号+座位等级+起点+终点+费用 航班号=Y6100.Y8100 起点(或终点)=城市名 城市名=北京|上海|广州|长春|合肥|山西 数据存储条目:数据存储条目:航班目录文件=航班号+起点+终点+时间 组织:按航班号升序排列 记账文件=旅客+航班+机票价+机场建设费 组织:按旅客名字的拼音字母顺序排列经济可行
32、性研究和需求分析 描述工具:数据流图数据字典E-R图2.3.1结构化分析方法经济可行性研究和需求分析E-R图E-R图图E-R图以实体、联系和属性三个基本概念概括数据的基本结构。实体就是现实世界中的事物,多用矩形框来表示,框内含有相应的实体名称。经济可行性研究和需求分析E-R图 比如,在一个教务系统中,“学生”就是一个实体,如下图所示。经济可行性研究和需求分析E-R图 属性属性多用椭圆形表示,并用无向边与相应的实体联系起来,表示该属性归某实体所有。可以说,实体是由若干个属性组成的,每个属性都代表了实体的某些特征。学生实体的属性如下图所示。经济可行性研究和需求分析E-R图 联系联系用菱形表示,并用
33、无向边分别与有关实体连接起来,以此描述实体之间的关系。实体之间存在着三种联系类型,分别是一对一、一对多、多对多,它们反映到E-R图中就为相应的联系类型,即1:1、1:n和m:n。经济可行性研究和需求分析E-R图 一对一联系一对一联系是指甲实体的任何一个实例只能对应到乙实体的一个实例,并且乙实体的任何一个实例只能对应到甲实体的一个实例。比如,在一个座位分配系统中,“学生”实体和“座位”实体之间的关系就是一对一的,如下图所示。经济可行性研究和需求分析E-R图 一对多联系一对多联系是指甲实体的任何一个实例能够对应到乙实体的多个实例,而乙实体的任何一个实例只能对应到甲实体的一个实例。比如,在一个住宿管
34、理系统中,一个“学生”只能分配到一间“宿舍”,而一间“宿舍”可以容纳多个“学生”,如下图所示。经济可行性研究和需求分析E-R图 多对多联系多对多联系是指甲实体的任何一个实例能够对应到乙实体的若干个实例,而乙实体的任何一个实例也可以对应到甲实体的若干个实例。比如,在一个选课系统中,一个“学生”可以选修若干门“课程”,同时一门“课程”也可以被若干个“学生”选修,如下图所示。经济可行性研究和需求分析案例3:一个完整的高校教学管理系统E-R图经济可行性研究和需求分析案例4借阅系统E-R图价格价格借阅日期借阅日期借阅借阅借书人借书人图书图书借书证号借书证号姓名姓名单位单位总编号总编号书名书名分类号分类号
35、作者作者位置位置mn经济可行性研究和需求分析 面向对象的基本概念 面向对象的软件工程方法的特征与优势经济可行性研究和需求分析面向对象的基本概念 近年来,为了克服传统软件工程方法存在的复用性和可维护性差以及难以满足用户需要等缺点,面向对象面向对象的思想越来越受到人们的欢迎和重视。面向对象面向对象的思想提倡运用人类的思维方式,从现实世界中存在的事物出发来构造软件。它建立在“对象对象”概念的基础上,以对象对象为中心,以类类和继承继承为构造机制,来设计和构造相应的软件系统。经济可行性研究和需求分析面向对象的基本概念 相对于传统的软件工程思想而言,面向对象的思想更符合人类的思维逻辑,它淡化了计算机的观点
36、,以现实世界中的模型作为构造软件系统的依据。经济可行性研究和需求分析面向对象的基本概念1.对象对象对象对象可以是客观世界中存在的事物,也可以是概念化的实体,它由一组属性和操作组成。属性属性是用来描述对象静态特征的数据项,是对客观世界实体所具有性质的抽象。操作是用来描述对象动态特征。2.类类类类是对对象对象的抽象,是对具有相同属性和相同操作的一组相似对象的定义。通常情况下,很多对象都有相似的特征。把本质特征相同的事物划分为一类,即将多个对象对象抽象为类类。经济可行性研究和需求分析面向对象的基本概念 谈到类的概念,就必须知道什么是类的实例类的实例。实例实例是由某个特定的类描述的一个具体的对象。比如
37、,对于“教师”类,某位教师“王一”就是类的一个实例;对于“学生”类,某位学生“李二”就是该类的一个实例。经济可行性研究和需求分析面向对象的基本概念3.封装封装封装是指把对象的属性和操作结合在一起,组成一个封闭又独立的单元封闭指外界不能直接访问对象的内部信息。独立是指对象是一个不可分割的整体。它的存在不依赖于外部可以说,类是数据封装的工具,而对象是封装的实现。经济可行性研究和需求分析面向对象的基本概念4.继承继承继承表示类之间层次关系,它使得某类对象可以自动拥有另外一个或多个对象的全部属性和操作.比如,某系统已经定义了一个学生类学生类,现在还需要定义一个研究生类研究生类。由于研究生也属于学生的一
38、种,它具有学生所有的一切属性和操作,这时就可以采用继承的方法,使研究生类直接获得学生类的一切属性和操作。在这个系统中,研究生类就叫做子类子类或派生类派生类,学生类就叫做父类父类或基类基类。子类可以把父类定义的内容自动作为自己的部分内容,同时再加入新的内容。经济可行性研究和需求分析面向对象的基本概念 继承简化了定义一个新类的过程,有利于人们对事物的认识和描述,达到了软件复用软件复用的目的。经济可行性研究和需求分析面向对象的基本概念5.多态多态多态是一种使父类中定义的属性或操作被子类继承后,可以有不同的实现不同的实现的机制。换句话说,多态允许属于不同类的对象对同一消息做出不同的响应不同的响应。经济
39、可行性研究和需求分析面向对象的基本概念 比如,先定义一个父类“几何图形”,它具有“计算面积”的操作,然后再定义一些子类,如“三角形”、“长方形”和“圆形”。它们可继承父类“几何图形”的各种属性和操作,并且在各自的定义中要重新描述“计算面积”的操作。这样,当有计算几何图形面积的消息发出时,对象会根据类的类型做出不同的响应,采用不同的面积计算公式。多态这种机制极大地减少了软件设计中的冗余信息,提高多态这种机制极大地减少了软件设计中的冗余信息,提高了软件的可复用性和可扩展性。了软件的可复用性和可扩展性。经济可行性研究和需求分析面向对象的软件工程方法的特征与优势2.面向对象的软件工程方法的优点:面向对
40、象的软件工程方法的优点:(1)符合人类的思维习惯。(2)稳定性好。(3)可复用性好(4)可维护性好。基于以上这些优点,面向对象面向对象的软件工程方法越来越受到人们的青睐经济可行性研究和需求分析经济可行性研究和需求分析 用例模型:用例用例描述用例图经济可行性研究和需求分析用例是指系统中的一个功能单元,可以描述为操作者与系统之间的一次交互。用例可大可小,但必须是完整的。用例可实现一个具体的用户目标,可进行独立的功能检测用例可以有一个名字,一般根据其在系统中的功能或职责命名 在分析用例名称是否合适之时,一个简单有效的方法是将操作者和其用例连在一起读,看是否构成一个完整场景或句子。比如“游客浏览图书”
41、,“游客登录注册”,都是一个完整的场景。而“游客图书”就不是一个完整场景或句子用例的实例是系统的一种实际使用方法经济可行性研究和需求分析 用例描述就是使用文字来描述用例功能 包含有:用例名称 用例激活前的前置条件 用例行为 执行结束后的后置结果经济可行性研究和需求分析用例案例1:“取款”该用例的实例:张三输入银行帐号和密码,在得到确认后输入取款数字,系统收到信息后把人民币送出来,张三用ATM取款200元。用例描述:用例名称:取款前置条件:ATM正常工作主事件流:(1)客户将卡插入ATM,开始用例(2)ATM显示欢迎信息并提示客户输入密码 .(5)ATM提供如下选项:存钱,取钱,查询,.(13)
42、ATM退出客户的卡,用例结束经济可行性研究和需求分析子事件流a:a1.提示用户输入无效密码请求再次输入a2.如果三次输入无效密码,系统自动关闭,退卡。子事件流b:b1.提示用户余额不够b2.返回(5)等待用户重新选择子事件流c:后置条件:结束取款事件经济可行性研究和需求分析 用例图:是从用户的角度描述系统的功能,由用例、操作者以及它们的关系连线组成。操作者使用人形符号表示,并且具有唯一的名称;用例使用椭圆表示,也具有唯一的名称。操作者和用例之间使用带箭头的实线连接,由操作者指向用例。经济可行性研究和需求分析用例图 正确识别系统的操作者尤为重要,以图书管理系统中学生借书事务为例,学生将书带到总借
43、还台,由图书管理员录入图书信息,完成学生的借书事务。这个使用场景中,图书管理员是操作者,而学生不是,因为借书事务本身是由图书管理员来完成,而不是学生本身。但如果学生可以自助借书,或者可以在网上借书,那么学生也将是操作者,因为这两种场景中学生直接与图书管理系统进行了交互。经济可行性研究和需求分析用例图 用例之间的关系有“包含”(include):“扩展”(extend)“泛化”(generalization)经济可行性研究和需求分析用例图经济可行性研究和需求分析用例图 用例间连线“包含”关系使用带箭头的虚线表示,虚线上标有“”,方向由包含用例指向被包含用例扩展关系也使用带箭头的虚线表示,虚线上标有“”,方向由扩展用例指向被扩展用例“泛化”关系使用带三角形箭头的实线表示,方向由子用例指向父用例经济可行性研究和需求分析用例图案例1:“网上书店”会员是游客的泛化,游客有浏览图书的用例,而会员不仅包含游客的全部用例,还具有自己特有的购买图书用例,参见下图。经济可行性研究和需求分析面向对象需求分析方法 案例2:图书馆信息管理系统的用例图。经济可行性研究和需求分析2022-10-28经济可行性研究和需求分析