




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