1、 软件工程软件工程广东商学院信息学院核心课程广东商学院信息学院核心课程目目 录录l 第一章第一章 软件工程概述软件工程概述l 第二章第二章 可行性研究可行性研究l 第三章第三章 需求分析需求分析l 第四章第四章 概要设计概要设计l 第五章第五章 详细设计详细设计l 第六章第六章 面向对象的分析与设计方法面向对象的分析与设计方法l 第七章第七章 编码编码l 第八章第八章 软件质量与质量保证软件质量与质量保证l 第九章第九章 项目计划与管理项目计划与管理l 第十章第十章 软件开发工具与环境概述软件开发工具与环境概述第一章第一章 软件工程概述软件工程概述1.1 软件软件 1.2 软件工程概念软件工程
2、概念1.3 软件生存周期与软件开发模型软件生存周期与软件开发模型1.4 小结小结1.1 软件软件1.1.1 1.1.1 软件的发展软件的发展 1.1.程序设计阶段程序设计阶段(2020世纪世纪5050年代初年代初2020世纪世纪6060年代中期)年代中期)2.2.程序系统阶段程序系统阶段(2020世纪世纪6060年代中期年代中期2020世纪世纪7070年代末)年代末)3.3.软件工程阶段软件工程阶段(2020世纪世纪7070年代中期年代中期2020世纪世纪8080年代中期)年代中期)4.4.第四阶段第四阶段(2020世纪世纪8080年代中期至今)年代中期至今)1.1.1 软件的发展软件的发展阶
3、段阶段 第一阶段第一阶段第二阶段第二阶段第三阶段第三阶段第四阶段第四阶段典典型型 技技术术面向批处理面向批处理有限的分布有限的分布自定义软件自定义软件多用户多用户实时实时数据库数据库软件产品软件产品分布式系统分布式系统嵌入嵌入“智能智能”低成本硬件低成本硬件消费者的影响消费者的影响强大桌面系统强大桌面系统面向对象技术面向对象技术专家系统专家系统人工神经网络人工神经网络 并行计算并行计算 网络计算网络计算表表1-1 四个阶段典型技术比较四个阶段典型技术比较1.1.2 软件的定义软件的定义软件的定义如下:软件的定义如下:(1)在运行中能提供所希望的功能和性能的指令集。)在运行中能提供所希望的功能和
4、性能的指令集。(2)使程序能够正确运行的数据结构。)使程序能够正确运行的数据结构。(3)描述程序研制过程、方法所用的文档。)描述程序研制过程、方法所用的文档。1.1.3 软件的特点软件的特点1.软件具有抽象性软件具有抽象性2.重视软件开发过程重视软件开发过程3.软件不会磨损、老化,但维护比较复杂。软件不会磨损、老化,但维护比较复杂。4.软件的开发和运行经常受到计算机系统的限软件的开发和运行经常受到计算机系统的限制,对计算机系统有不同程度的依赖性制,对计算机系统有不同程度的依赖性5.软件的开发尚未完全摆脱手工的开发方式软件的开发尚未完全摆脱手工的开发方式6.软件的开发费用越来越高,成本相当昂贵软
5、件的开发费用越来越高,成本相当昂贵7.软件的开发过程复杂,需要在开发过程中进软件的开发过程复杂,需要在开发过程中进行管理行管理1.1.4 软件的分类软件的分类 1 1基于软件的功能划分基于软件的功能划分 (1 1)系统软件)系统软件 (2 2)支撑软件)支撑软件 (3 3)应用软件)应用软件2.2.基于软件工作方式的划分基于软件工作方式的划分 (1 1)实时处理软件)实时处理软件 (2 2)分时软件)分时软件 (3 3)交互式软件)交互式软件 (4 4)批处理软件)批处理软件 1.1.4 软件的分类软件的分类 1 1基于软件规模的划分基于软件规模的划分 (1 1)微型软件)微型软件 (2 2)
6、小型软件)小型软件 (3 3)中型软件)中型软件 (4 4)大型软件)大型软件 (5 5)甚大型软件)甚大型软件 (6 6)极大型软件)极大型软件1.2 软件工程概念软件工程概念 1.2.1 1.2.1 软件危机与软件工程的定义软件危机与软件工程的定义 1.1.软件危机软件危机 软件危机指的是软件开发和维护过程中遇软件危机指的是软件开发和维护过程中遇到的一系列严重问题。到的一系列严重问题。软件危机包含以下两方面的问题:如何开软件危机包含以下两方面的问题:如何开发软件,怎样满足对软件的日益增长的需求;发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。如何维护数量不断膨胀的已
7、有软件。1.2.1 软件危机与软件工程的定义软件危机与软件工程的定义软件危机的主要表现:软件危机的主要表现:产品不符合用户的实际需要。产品不符合用户的实际需要。软件开发生产率提高的速度远远不能满足客观软件开发生产率提高的速度远远不能满足客观需要。需要。软件产品的质量差。软件产品的质量差。对软件开发成本和进度的估计常常不准确。对软件开发成本和进度的估计常常不准确。软件的可维护性差。软件的可维护性差。软件文档资料通常既不完整也不合格。软件文档资料通常既不完整也不合格。软件的价格昂贵,软件成本在计算机系统总成软件的价格昂贵,软件成本在计算机系统总成本中所本中所 占的比例逐年上升。占的比例逐年上升。1
8、.2.1 软件危机与软件工程的定义软件危机与软件工程的定义1.2.1 1.2.1 软件危机与软件工程的定义软件危机与软件工程的定义 2.2.软件工程的定义软件工程的定义 软件工程是指导计算机软件开发和维护的软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。技术方法结合起来,这就是软件工程。1.2.1 软件危机与软件工程的定义软件危机与软件
9、工程的定义软件工程的软件工程的6 6条基本原则:条基本原则:(1 1)用分阶段的生存周期计划严格管理)用分阶段的生存周期计划严格管理(2 2)坚持进行阶段评审)坚持进行阶段评审(3 3)实行严格的产品控制)实行严格的产品控制(4 4)采用现代程序设计技术)采用现代程序设计技术(5 5)清楚地审查结果)清楚地审查结果(6 6)合理安排软件开发小组的人员)合理安排软件开发小组的人员1.2.2 软件工程的原则软件工程的原则软件工程学应遵守以下原则:软件工程学应遵守以下原则:1.1.分解分解2.2.抽象和信息隐藏抽象和信息隐藏3.3.一致性一致性4.4.确定性确定性1.3 软件生存周期与软件开发模型软
10、件生存周期与软件开发模型1.3.1 1.3.1 软件生存周期软件生存周期 一个软件从定义到开发、使用和维护,直一个软件从定义到开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常到最终被废弃,要经历一个漫长的时期,通常把这个时期称为生存周期。把这个时期称为生存周期。软件的生存周期一般可分为以下阶段:软件的生存周期一般可分为以下阶段:S1:问题的定义问题的定义 S2:可行性研究:可行性研究S3:需求分析:需求分析S4:概要设计:概要设计S5:详细设计:详细设计S6:编码编码S7:测试:测试S8:运行与维护:运行与维护1.3 软件生存周期与软件开发模型软件生存周期与软件开发模型1.3.1
11、1.3.1 软件生存周期软件生存周期 软件生存周期的软件生存周期的三大阶段三大阶段:1.1.计划阶段计划阶段分为两步:软件计划和需求分析分为两步:软件计划和需求分析2.2.开发阶段开发阶段三个步骤:设计、编码和测试三个步骤:设计、编码和测试3.3.维护阶段维护阶段分为改正性维护、完善性维护和适应性维分为改正性维护、完善性维护和适应性维护等护等1.3.2 软件开发模型软件开发模型1.3.2 1.3.2 软件开发模型软件开发模型 软件开发模型是软件过程思想的具体化,软件开发模型是软件过程思想的具体化,是实施与过程模型中的软件开发方法和工具,是实施与过程模型中的软件开发方法和工具,是在软件开发实践中
12、总结出来的软件开发方法是在软件开发实践中总结出来的软件开发方法和步骤。和步骤。软件开发模型是整个软件生存周期的系统软件开发模型是整个软件生存周期的系统开发、运作、维护所实施的全部工作和任务的开发、运作、维护所实施的全部工作和任务的结构框架。结构框架。1.3.2 软件开发模型软件开发模型1.1.瀑布模型瀑布模型又称为又称为生存周期模型生存周期模型。核心思想:核心思想:按工序将问题化简,将功能的实现与设计分开,按工序将问题化简,将功能的实现与设计分开,便于分工协作。采用结构化的分析与设计方法,将逻便于分工协作。采用结构化的分析与设计方法,将逻辑实现与物理实现分开。瀑布模型规定了各项软件工辑实现与物
13、理实现分开。瀑布模型规定了各项软件工程活动,包括:程活动,包括:制定开发计划,进行需求分析和说明,制定开发计划,进行需求分析和说明,软件设计,程序编码,测试及运行维护软件设计,程序编码,测试及运行维护。并且规定了。并且规定了软件生存周期的各个阶段如同瀑布流水,逐级下落,软件生存周期的各个阶段如同瀑布流水,逐级下落,自上而下、相互衔接的固定次序。自上而下、相互衔接的固定次序。1.3.2 软件开发模型软件开发模型计划计划需求分析需求分析设计设计编码编码测试测试运行维护运行维护计划阶段计划阶段开发阶段开发阶段维护阶段维护阶段图图14 瀑布模型瀑布模型1.3.2 软件开发模型软件开发模型1.1.瀑布模
14、型瀑布模型缺点:缺点:(1 1)缺乏灵活性缺乏灵活性,无法解决软件需求不,无法解决软件需求不明确或不准确的问题。明确或不准确的问题。(2 2)由于具有顺序性和相关性,凡后一)由于具有顺序性和相关性,凡后一阶段出现的问题需要通过前一阶段的重新确认阶段出现的问题需要通过前一阶段的重新确认来解决。来解决。(3 3)不能体现开发中的并行和串行。)不能体现开发中的并行和串行。1.3.2 软件开发模型软件开发模型1.1.螺旋模型螺旋模型螺旋模型沿着螺线旋转,如图螺旋模型沿着螺线旋转,如图1-51-5所示,在笛卡尔所示,在笛卡尔坐标的四个象限上分别表达了四个方面的活动,即:坐标的四个象限上分别表达了四个方面
15、的活动,即:(1 1)制定计划制定计划:确定软件目标,选定实施方案,弄清:确定软件目标,选定实施方案,弄清项目开发的限制条件;项目开发的限制条件;(2 2)风险分析风险分析:分析所选方案,考虑如何识别和消除:分析所选方案,考虑如何识别和消除风险;风险;(3 3)实施工程实施工程:实施软件开发;:实施软件开发;(4 4)客户评估客户评估:评价开发工作,提出修正建议:评价开发工作,提出修正建议1.3.2 软件开发模型软件开发模型用户评价用户评价基于用户说明基于用户说明的计划的计划初始需求与项目计划初始需求与项目计划基于初始需求的风险分析基于初始需求的风险分析基于用户基于用户反应的风反应的风险分析险
16、分析初始软件原型初始软件原型第二级原型第二级原型工程系统工程系统图图15 螺旋模型螺旋模型1.3.2 软件开发模型软件开发模型3.3.第四代技术模型(第四代技术模型(4GT4GT)软件工程的第四代技术模型的应用关键在软件工程的第四代技术模型的应用关键在于软件描述的能力,它用一种特定的语言来完于软件描述的能力,它用一种特定的语言来完成或者以一种用户可以理解的问题描述方法来成或者以一种用户可以理解的问题描述方法来描述须解决的问题。描述须解决的问题。例如:数据库查询的非过程语言,报告生例如:数据库查询的非过程语言,报告生成器,数据操纵,屏幕交互及定义,以及代码成器,数据操纵,屏幕交互及定义,以及代码
17、生成;高级图形功能;电子表格功能。生成;高级图形功能;电子表格功能。1.3.2 软件开发模型软件开发模型4.4.原型模型原型模型从需求分析开始。软件开发者和用户在一从需求分析开始。软件开发者和用户在一起定义软件的总目标,说明需求,并规划出定起定义软件的总目标,说明需求,并规划出定义的区域。然后快速设计软件中对用户义的区域。然后快速设计软件中对用户/客户客户可见部分的表示。快速设计导致了原形的建造,可见部分的表示。快速设计导致了原形的建造,原形由用户原形由用户/客户评估,并进一步求精待开发客户评估,并进一步求精待开发软件的需求。逐步调整原型使之满足用户需求。软件的需求。逐步调整原型使之满足用户需
18、求。如图如图1 16 6所示。所示。1.3.2 软件开发模型软件开发模型需求的采需求的采集和细化集和细化快速设计快速设计建造原型建造原型用户评价原型用户评价原型对原型加工对原型加工产生样品产生样品图图16原型模型原型模型1.3.2 软件开发模型软件开发模型4.4.原型模型原型模型(1 1)适用范围适用范围 特别适用需求分析与定义规格说明特别适用需求分析与定义规格说明 设计人机界面设计人机界面 充作同步培训工具充作同步培训工具 “一次性一次性”的应用的应用 低风险引入新技术低风险引入新技术 (2 2)不适用范围不适用范围 嵌入式软件嵌入式软件 实时控制软件实时控制软件 科技数值计算软件科技数值计
19、算软件1.3.2 软件开发模型软件开发模型4.4.原型模型原型模型(3 3)步骤)步骤 S1S1:弄清用户:弄清用户/设计者的基本信息需求设计者的基本信息需求S2S2:开发初始原型系统:开发初始原型系统 S3S3:用原型系统完善用户:用原型系统完善用户/设计者的需求设计者的需求S4S4:修改和完善原型系统:修改和完善原型系统1.3.2 软件开发模型软件开发模型4.4.混合模型混合模型混合模型把几种模型组合在一起,它允许一个项混合模型把几种模型组合在一起,它允许一个项目沿着最有效的路径发展。它提供了一种适用各种具目沿着最有效的路径发展。它提供了一种适用各种具体系统、环境和结构的灵活的结构。体系统
20、、环境和结构的灵活的结构。混合模型分为混合模型分为分析、综合、运行和废弃分析、综合、运行和废弃四个阶段,四个阶段,各阶段的重叠为设计员提出了进行路线的选择。各阶段的重叠为设计员提出了进行路线的选择。混合模型的优点是:混合模型给管理人员提供了混合模型的优点是:混合模型给管理人员提供了在具体操作中使用结构框架的某种形式。由于混合模在具体操作中使用结构框架的某种形式。由于混合模型的不确定性,管理人员在一开始不必去决定完成开型的不确定性,管理人员在一开始不必去决定完成开发过程的方向发过程的方向。1.4 小结小结本章首先介绍了软件的有关概念,包括本章首先介绍了软件的有关概念,包括软件的产生、定义、特点和
21、种类,然后对软软件的产生、定义、特点和种类,然后对软件工程的概念进行了介绍,包括软件工程的件工程的概念进行了介绍,包括软件工程的定义、目标、原则和软件危机。最后介绍了定义、目标、原则和软件危机。最后介绍了软件生存周期与软件开发模型,主要包括瀑软件生存周期与软件开发模型,主要包括瀑布模型、原型模型、螺旋模型、基于四代技布模型、原型模型、螺旋模型、基于四代技术模型等。术模型等。第二章第二章 可行性研究可行性研究2.1 可行性研究的任务可行性研究的任务 2.2 可行性研究的步骤可行性研究的步骤2.3 系统流程图系统流程图2.4 成本效益分析成本效益分析 2.5 小结小结2.1 可行性任务的研究可行性
22、任务的研究 可行性研究的目的是用最小的代价在尽可能短的时间可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。内确定问题是否能够解决。目的不是解决问题,而是确定目的不是解决问题,而是确定问题是否值得去解。问题是否值得去解。一般说来,从一下几个方面进行研究:一般说来,从一下几个方面进行研究:1 1经济可行性经济可行性 2 2技术可行性技术可行性 技术可行性研究是系统开发过程中难度最大的、最重技术可行性研究是系统开发过程中难度最大的、最重要的工作。技术可行性研究包括:要的工作。技术可行性研究包括:(1)(1)风险分析风险分析 (2)(2)资源分析资源分析 (3)(3)技术分析技术
23、分析2.1 可行性任务的研究可行性任务的研究 3 3运行可行性运行可行性 4 4法律可行性法律可行性 5 5开发方案可行性开发方案可行性 可行性研究最根本的任务是对以后的行动路线提出建可行性研究最根本的任务是对以后的行动路线提出建议:如果问题没有可行的解,应该建议停止这项工程的开议:如果问题没有可行的解,应该建议停止这项工程的开发;如果问题值得解,应该推荐一个较好的解决方案,并发;如果问题值得解,应该推荐一个较好的解决方案,并且为工程制定一个初步的计划。且为工程制定一个初步的计划。可行性研究的成本只占预期的工程中成本的可行性研究的成本只占预期的工程中成本的5 510%10%2.2 可行性研究的
24、步骤可行性研究的步骤一般来说,有以下步骤:一般来说,有以下步骤:1 1复查系统规模和目标复查系统规模和目标 2 2研究目前正在使用的系统研究目前正在使用的系统 3 3提出新系统的高层逻辑模型提出新系统的高层逻辑模型 4.4.重新定义问题重新定义问题 5.5.提出和评价供选择的方案提出和评价供选择的方案 6.6.推荐一个方案并说明理由推荐一个方案并说明理由 7.7.推荐开发工程决定推荐开发工程决定 8.8.书写计划任务书书写计划任务书 9.9.提交审查提交审查2.3 系统流程图系统流程图 系统流程图是系统流程图是描绘物理系统的传统工具描绘物理系统的传统工具。它。它的基本思想是用图形符号以黑盒子形
25、式描绘系统的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序,文件,数据库,表格,里面的每个部件(程序,文件,数据库,表格,人工过程等等)。人工过程等等)。系统流程图表达的系统流程图表达的是部件的信息流程是部件的信息流程,而不,而不表示对信息进行加工处理的控制过程,系统流程表示对信息进行加工处理的控制过程,系统流程图的基本符号见图图的基本符号见图2-12-12.3 系统流程图系统流程图处理处理 能改变数据或数据位置的加工或部件能改变数据或数据位置的加工或部件 输入输出输入输出 表示输入输出表示输入输出 连接连接 指出转到图的另一部分或从;另一部分转来指出转到图的另一部分或从;另一部
26、分转来 换页连接换页连接 指出转到另一页图上或从另一页图转来指出转到另一页图上或从另一页图转来人工操作人工操作 由人工完成处理由人工完成处理通信链路通信链路 远程通信线路传送数据远程通信线路传送数据数据流数据流 用来连接其他符号用来连接其他符号图图2-1 系统流程图的基本符号系统流程图的基本符号2.3 系统流程图系统流程图例如:例如:可用系统流程图来分析下述问题。可用系统流程图来分析下述问题。某图书馆闭架借书流程如下:读者须先被验明证件后某图书馆闭架借书流程如下:读者须先被验明证件后才能进入查询室。读者在查询室内通过检书卡或利用终端才能进入查询室。读者在查询室内通过检书卡或利用终端检索图书数据
27、库来查找自己所需的图书。找到所需图书并检索图书数据库来查找自己所需的图书。找到所需图书并填好索书单后到服务台借书。如果所借图书还有剩余,管填好索书单后到服务台借书。如果所借图书还有剩余,管理员将填好借书单,从库房中取出图书交于读者。图理员将填好借书单,从库房中取出图书交于读者。图2-2 2-2 的系统流程图描述了上述系统的概貌。图中的每个符号定的系统流程图描述了上述系统的概貌。图中的每个符号定义了组成系统的一个部件,而并没有指明每个部件的具体义了组成系统的一个部件,而并没有指明每个部件的具体工作过程。图中的箭头指定了系统中信息的流动(逻辑)工作过程。图中的箭头指定了系统中信息的流动(逻辑)路径
28、。路径。2.3 系统流程图系统流程图图图2-2 图书馆借书系统流程图图书馆借书系统流程图读 者验 证索书单图书查询检书卡图书数据库借书借书单取书2.4 成本成本-效益分析效益分析 成本效益分析的目的是要从经济角度分析成本效益分析的目的是要从经济角度分析开发一个特定的新系统是否划算,从而帮助使用开发一个特定的新系统是否划算,从而帮助使用部门负责人正确地作出是否投资于这项开发工程部门负责人正确地作出是否投资于这项开发工程的决定。的决定。成本成本/效益分析首先要估算待开发系统的开效益分析首先要估算待开发系统的开发成本,然后与可能取得的效益(有形的和无形发成本,然后与可能取得的效益(有形的和无形的)进
29、行比较与权衡。的)进行比较与权衡。2.4.1 成本估计成本估计 1.1.自顶向下成本估计自顶向下成本估计 这类方法这类方法着眼于软件的整体着眼于软件的整体。根据被开发项目的整体。根据被开发项目的整体特性,首先估算出总的开发成本,然后在项目内部进行成特性,首先估算出总的开发成本,然后在项目内部进行成本分配。本分配。自顶向下估计的自顶向下估计的缺点缺点是,对开发中某些局部的问题或是,对开发中某些局部的问题或特殊困难容易低估,甚至没有考虑到。特殊困难容易低估,甚至没有考虑到。可采用特尔斐(可采用特尔斐(DelphiDelphi)法,特尔斐法的传统作法)法,特尔斐法的传统作法是:把系统定义文件或规格说
30、明发给各位专家,各自单独是:把系统定义文件或规格说明发给各位专家,各自单独进行成本估计,填入成本估计表(见图进行成本估计,填入成本估计表(见图2-32-3)。)。2.4.1 成本估计成本估计 项目名:项目名:*日期:日期:1/1/2001 以下是第以下是第1轮的估计值轮的估计值:您的估计值您的估计值 平均估计值平均估计值 人人-月月 0 20 40 60 80 100 您对下轮的估计值是您对下轮的估计值是 35人人-月月 您的理由是:您的理由是:图图2-3 特尔斐成本估计表特尔斐成本估计表 2.4.1 成本估计成本估计 2.2.自底向上成本估计自底向上成本估计 与自顶向下估计相反,由底向上估计
31、不是从整体开始,与自顶向下估计相反,由底向上估计不是从整体开始,而是而是从一个个任务单元开始从一个个任务单元开始。其具体作法是,现将开发任。其具体作法是,现将开发任务分解为许多子任务,子任务又分成子子任务,直到每一务分解为许多子任务,子任务又分成子子任务,直到每一任务单元的内容都足够明确为止。然后把各个任务单元的任务单元的内容都足够明确为止。然后把各个任务单元的成本估计出来,汇合成项目的总成本。成本估计出来,汇合成项目的总成本。缺点缺点:有可能使成本估计偏低。:有可能使成本估计偏低。3.3.算法模型估计算法模型估计 算法模型就是资源模型,是成本估计的又一有效工具。算法模型就是资源模型,是成本估
32、计的又一有效工具。模型估计的模型估计的关键,是要选好适用的模型关键,是要选好适用的模型。模型估计法常与。模型估计法常与自顶向下估计或由底向上估计结合使用。自顶向下估计或由底向上估计结合使用。2.4.2 费用估计费用估计 1.1.代码行技术代码行技术 估计出源代码行数以后,用每行代码的估计出源代码行数以后,用每行代码的平平均成本乘以行数均成本乘以行数就可以确定软件的成本。每行就可以确定软件的成本。每行代码的平均成本主要取决于软件的复杂程度和代码的平均成本主要取决于软件的复杂程度和工资水平。工资水平。2.2.任务分解技术任务分解技术 首先把软件开发工程分解为若干个相对独立首先把软件开发工程分解为若
33、干个相对独立的任务。再分别估计每个单独的开发任务的成的任务。再分别估计每个单独的开发任务的成本,最后加起来得出软件开发工程的总成本本,最后加起来得出软件开发工程的总成本。2.4.3 几种度量效益的方法几种度量效益的方法 1.1.货币的时间价值货币的时间价值 通常用利率表示货币的时间价值。设年利率为通常用利率表示货币的时间价值。设年利率为i,现,现已存入已存入P元,则元,则n年后可得钱数为年后可得钱数为 F=P(1+i)n 这就是这就是P元钱在元钱在n年后的价值。反之,若年后的价值。反之,若n年后能收年后能收入入F元,那么这些钱现在的价值是元,那么这些钱现在的价值是 P=F/(1+i)n 2.2
34、.投资回收期投资回收期 投资回收期是衡量一个开发工程价值的经济指标。投资回收期是衡量一个开发工程价值的经济指标。投资回收期就是积累的经济效益等于最初的投资所需要投资回收期就是积累的经济效益等于最初的投资所需要的时间。投资回收期越短,就能越快获得利润。的时间。投资回收期越短,就能越快获得利润。2.4.3 几种度量效益的方法几种度量效益的方法 3.3.纯收入纯收入 工程的纯收入是衡量工程价值的另一项经济指标。工程的纯收入是衡量工程价值的另一项经济指标。纯收入就是在整个生存周期之内系统的累计经济效益纯收入就是在整个生存周期之内系统的累计经济效益(折合成现在值)与投资之差。(折合成现在值)与投资之差。
35、如果纯收入小于零,那么显然这项工程不值得投资。如果纯收入小于零,那么显然这项工程不值得投资。只有当纯收入大于零,才能考虑投资。只有当纯收入大于零,才能考虑投资。2.5 小结小结 通过可行性研究可以知道问题有无可行的通过可行性研究可以知道问题有无可行的解,进而避免人力、物力和财力上的浪费。解,进而避免人力、物力和财力上的浪费。可行性研究所需的成本占总工程成本的可行性研究所需的成本占总工程成本的5 510%10%。可行性研究的目的是用最小的代价在尽可可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。也就能短的时间内确定问题是否能够解决。也就是说可行性研究的目的是确定问题是否值得
36、是说可行性研究的目的是确定问题是否值得去解,而不是解决问题。去解,而不是解决问题。第三章第三章 需求分析需求分析3.1 需求分析的任务与步骤需求分析的任务与步骤 3.2 需求分析的方法需求分析的方法3.3 图形图形3.4 需求规格说明与评审需求规格说明与评审 3.5 小结小结3.1 需求分析的任务与步骤需求分析的任务与步骤 通过软件需求分析,通过软件需求分析,把软件功能和性能的总体概念把软件功能和性能的总体概念描述为具体的软件需求规格说明描述为具体的软件需求规格说明,进而建立软件开发的,进而建立软件开发的基础。基础。3.1.1 3.1.1 需求分析的任务需求分析的任务 需求分析的任务不是确定系
37、统如何完成它的工作,需求分析的任务不是确定系统如何完成它的工作,而是而是确定系统必须完成哪些工作确定系统必须完成哪些工作,也就是对目标系统提,也就是对目标系统提出完整、准确、清晰、具体的要求。出完整、准确、清晰、具体的要求。主要的任务主要的任务有:有:1.1.确定对系统的综合要求确定对系统的综合要求 2.2.分析系统的数据需求分析系统的数据需求3.3.提出系统的逻辑模型提出系统的逻辑模型 4.4.修正系统开发计划修正系统开发计划5.5.开发原型系统开发原型系统3.1 需求分析的任务与步骤需求分析的任务与步骤3.1.2 3.1.2 需求分析的步骤需求分析的步骤1.1.调查研究调查研究 分析人员协
38、同程序员研究系统数据的流程及调查用分析人员协同程序员研究系统数据的流程及调查用户需求或查阅可行性报告、项目开发计划报告,访问现户需求或查阅可行性报告、项目开发计划报告,访问现场,获得当前系统的具体模型,以场,获得当前系统的具体模型,以IPOIPO图或图或DFDDFD图表示。图表示。2.2.分析与综合分析与综合3.3.书写文档书写文档 a.a.系统规格说明系统规格说明 b.b.数据要求数据要求 c.c.用户系统描述用户系统描述 d.d.修正的开发计划修正的开发计划4.4.需求分析评审需求分析评审3.1 需求分析的任务与步骤需求分析的任务与步骤3.1.3 3.1.3 需求分析的原则需求分析的原则1
39、.1.必须能表达和理解问题的数据域和功能域必须能表达和理解问题的数据域和功能域 数据域包括:数据流、数据内容和数据结构数据域包括:数据流、数据内容和数据结构2.2.按按自顶向下逐层分解自顶向下逐层分解问题问题3.3.要给出系统的逻辑视图和物理视图要给出系统的逻辑视图和物理视图 (1 1)逻辑视图逻辑视图给出软件要达到的功能和要处理数据之给出软件要达到的功能和要处理数据之间的关系,而不是实现的细节。间的关系,而不是实现的细节。(2 2)物理视图物理视图给出处理功能和数据结构的实际表示形给出处理功能和数据结构的实际表示形式。式。3.2 需求分析的方法需求分析的方法3.2.1 3.2.1 面向数据流
40、的需求分析方法面向数据流的需求分析方法 结构化分析方法结构化分析方法是面向数据流进行需求分析的方法。是面向数据流进行需求分析的方法。结构化分析方法结构化分析方法使用数据流图使用数据流图DFDDFD与数据字典与数据字典DDDD来来描述,面向数据流问题的需求分析适合于数据处理类型描述,面向数据流问题的需求分析适合于数据处理类型软件的需求描述。软件的需求描述。其其核心思想是分解化简问题核心思想是分解化简问题,将物理与逻辑表示分,将物理与逻辑表示分开,对系统进行数据与逻辑的抽象。开,对系统进行数据与逻辑的抽象。3.2 需求分析的方法需求分析的方法3.2.2 3.2.2 数据流图数据流图 数据流图称为数
41、据流图称为Data Flow DiagramData Flow Diagram。是描述数据处理。是描述数据处理过程的工具过程的工具。1.1.数据流图的含义数据流图的含义 以图形的方式描述数据流从输入到输出的传输变换以图形的方式描述数据流从输入到输出的传输变换过程过程2.2.数据流图的特点数据流图的特点 a.a.抽象性抽象性 b.b.概括性概括性 c.c.层次性层次性3.3.数据流图基本符号数据流图基本符号 (1)(1)数据流图中的主要图形元素数据流图中的主要图形元素 3.2.2 数据流图数据流图数据流图中的基本图形元素有数据流图中的基本图形元素有4 4种:种:数据输入的数据输入的源点源点和数据
42、输出的和数据输出的汇点汇点。加工加工。输入数据在此进行变换产生输出数据。输入数据在此进行变换产生输出数据。数据流数据流。被加工的数据与流向。被加工的数据与流向。数据存储文件数据存储文件,须加以命名。,须加以命名。图图3-2 3-2 数据流图基本图形符号数据流图基本图形符号3.2.2 数据流图数据流图(2)(2)数据流与加工之间的关系数据流与加工之间的关系 AB*CABBCA*数据数据A和和B同时输入变换成同时输入变换成C数据数据A变换成变换成B和和C数据数据A或数据或数据B(不能同时)输入变(不能同时)输入变换成换成C3.2.2 数据流图数据流图(2)(2)数据流与加工之间的关系数据流与加工之
43、间的关系 ABCABBCA数据数据A变换成变换成B或或C(不能变换成(不能变换成B和和C)数据数据A或或B,或,或A和和B同时输入变换成同时输入变换成C数据数据A变换成变换成B或或C,或,或B和和CC3.2.2 数据流图数据流图4.4.数据流图的用途数据流图的用途(1)(1)系统分析员用这种工具可以自顶向下分析系统信息系统分析员用这种工具可以自顶向下分析系统信息 流程。流程。(2)(2)可在图上画出需要计算机处理的部分。可在图上画出需要计算机处理的部分。(3)(3)根据数据存贮,进一步作数据分析,向数据库设计根据数据存贮,进一步作数据分析,向数据库设计过渡。过渡。(4)(4)根据数据流向,定出
44、存取方式。根据数据流向,定出存取方式。(5)(5)对应一个处理过程,用相应的语言、判定表等工具对应一个处理过程,用相应的语言、判定表等工具表达处理方法。表达处理方法。3.2.2 数据流图数据流图5.5.数据流图的优缺点数据流图的优缺点(1)(1)总体概念强,每一层都明确强调干什么,需要什么,总体概念强,每一层都明确强调干什么,需要什么,给出什么。给出什么。(2)(2)可以反映出数据的流向和处理过程。可以反映出数据的流向和处理过程。(3)(3)由于自顶向下分析,容易及早发现系统各部分的逻由于自顶向下分析,容易及早发现系统各部分的逻辑错误,也容易修正。辑错误,也容易修正。(4)(4)容易与计算机处
45、理相对照。容易与计算机处理相对照。(5)(5)不直观不直观,一般都要在作业流程分析的基础上加以概,一般都要在作业流程分析的基础上加以概括、抽象、修正来得到。括、抽象、修正来得到。3.2.2 数据流图数据流图6.6.数据流图画法数据流图画法(1)(1)画数据流图的一般原则画数据流图的一般原则 自外向内,自顶向下,逐层细化,完善求精自外向内,自顶向下,逐层细化,完善求精(2)(2)数据流图的分层方法数据流图的分层方法 一套分层的数据流图由一套分层的数据流图由顶图、底图和中间层顶图、底图和中间层的数据的数据流图所组成。流图所组成。称上层图为下层图的称上层图为下层图的“父父”图图,下层图称为上层图,下
46、层图称为上层图的的“子子”图图。1233.13.23.3ABCDEFCDFUR父图父图子图子图3.2.2 数据流图数据流图6.6.数据流图的画法数据流图的画法(3)(3)分层法绘制流程图的几个问题分层法绘制流程图的几个问题 编号的设置编号的设置 父图与子图的平衡父图与子图的平衡 局部数据存贮局部数据存贮 处理逻辑的分解与分细的程度处理逻辑的分解与分细的程度 由左到右绘制数据流图由左到右绘制数据流图 绘制数据流图时,可以先忽略枝节(次要)的绘制数据流图时,可以先忽略枝节(次要)的 信息信息 合理地命名合理地命名3.2.2 数据流图数据流图7.7.实例实例 假如要分析一家公司的营销系统。其采购假如
47、要分析一家公司的营销系统。其采购部门每天须要按销售部门提供的定货单(须定部门每天须要按销售部门提供的定货单(须定的货物)向供应商采购货物。每种货物的数量的货物)向供应商采购货物。每种货物的数量都存放在数据存储货物库存中,销售和采购使都存放在数据存储货物库存中,销售和采购使每种货物数量发生的变化能够在此数据存储中每种货物数量发生的变化能够在此数据存储中及时被反映出来。而资金的汇总、核对等工作及时被反映出来。而资金的汇总、核对等工作由其会计部门处理。由其会计部门处理。3.2.2 数据流图数据流图7.7.实例实例 图图3-53-5第一层数据流图第一层数据流图 顾 客P1销售P2采购供应商P3会计定货
48、单发货单到货通知定货单发货单应付款通知收款通知F1 货物库存顾 客F2 货物目录业务员P1.1编定订货单P1.2确定订货P1.4产生暂存订货单采 购F3 顾 客P1.3登录新顾客F4 暂存定货单P1.5检查暂存定货单P1.6产生发货单P1.7发货修改库存经 理P1.8检索库存P1.8编制库存销售报表F1 货物库存F5 销售历史F10 应收款帐目定货单不合格合格缺 货到货通知可发的货物新顾客发货单图图3-6销售系统销售系统3.2.2 数据流图数据流图图图3-7采购系统采购系统销 售P2.1 按货物汇总 F4 暂存定货单F6 需定货物P2.2按供应商汇总供应商F8 采购定货单P2.3确定定货F1
49、货物库存P2.4核对发货单P2.5提取货物P2.6修改须定数量P2.7修改库存F9 应付款帐目定货单发货单错误的发货单正确的发货单P2.8发到货通知3.2.2 数据流图数据流图图图3-8会计系统会计系统顾 客P3.1收款处理F10 应收款帐目P3.2编制会计报表P3.3修改总帐目经 理F11 总帐目F9 应付款帐目供应商P3.4核对付款单P3.5付款处理付 款收 据修 改应付款通知3.2.2 数据流图数据流图3.2.3 数据字典数据字典1.1.数据字典的定义数据字典的定义 数据字典是数据字典是关于数据的信息的集合关于数据的信息的集合,对数据流程图,对数据流程图中的各个元素作完整的定义与说明,是
50、数据流程图的补中的各个元素作完整的定义与说明,是数据流程图的补充工具。充工具。数据流图和数据字典共同构成系统的逻辑模型数据流图和数据字典共同构成系统的逻辑模型。2 2数据字典的内容数据字典的内容 一般说来,数据字典由下列六类元素的定义组成:一般说来,数据字典由下列六类元素的定义组成:(1)数据流)数据流 (2)数据项)数据项 (3)数据结构)数据结构 (4)数据存贮)数据存贮 (5)处理逻辑)处理逻辑 (6)外部实体)外部实体3.2.3 数据字典数据字典3 3定义数据的方法定义数据的方法 由数据元素组成数据的方式只有下述由数据元素组成数据的方式只有下述4 4种基本类型:种基本类型:(l l)顺
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。