《数据库与软件工程第二部分:软件工程(结合数据库分析和设计).pptx》由会员分享,可在线阅读,更多相关《数据库与软件工程第二部分:软件工程(结合数据库分析和设计).pptx(183页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件工程概述软件工程概述数据库与软件工程第二部分数据库与软件工程第二部分数据库与软件工程第二部分数据库与软件工程第二部分12n n软件工程综述软件工程综述n n软件生存周期软件生存周期n n软件质量与质量保证软件质量与质量保证n n软件工程管理软件工程管理n n软件开发环境软件开发环境3n n软件发展的三个阶段软件发展的三个阶段n n软件工程相关概念软件工程相关概念n n软件工程目标软件工程目标n n软件工程三要素软件工程三要素什么是计算机软件?什么是计算机软件?n计算机软件指计算机系统中的计算机软件指计算机系统中的程序及其文档程序及其文档u程序是计算任务的处理对象和处理规则的描述程序是计算任
2、务的处理对象和处理规则的描述F计算任务:任何以计算机为处理工具的任务计算任务:任何以计算机为处理工具的任务 F处理对象:数据(如数据、文字、图形、图像、声音等,它们只处理对象:数据(如数据、文字、图形、图像、声音等,它们只是表示,而无含义)或信息(数据及有关的含义)是表示,而无含义)或信息(数据及有关的含义)F处理规则一般指处理的动作和步骤。程序必须装入计算机内才能处理规则一般指处理的动作和步骤。程序必须装入计算机内才能工作工作u文档是为了便于了解程序所需的文档是为了便于了解程序所需的阐明性阐明性资料,文档一般是资料,文档一般是给人看的,不一定装入计算机给人看的,不一定装入计算机45软件的特点
3、:软件的特点:抽象性抽象性不是实物。不是实物。严密性严密性是逻辑产品。是逻辑产品。智力性智力性思维过程。思维过程。持久性持久性无时间损坏。无时间损坏。一次性一次性创造性的产物。创造性的产物。难以度量难以度量难定量测量。难定量测量。易出错易出错信息转移造成。信息转移造成。必须维护必须维护纠错和变更。纠错和变更。6软件发展的三个阶段软件发展的三个阶段n n程序设计时代(程序设计时代(50-6050-60年代)年代)软件指程序,软件开发关注程序编写,用汇编及机器语言软件指程序,软件开发关注程序编写,用汇编及机器语言软件指程序,软件开发关注程序编写,用汇编及机器语言软件指程序,软件开发关注程序编写,用
4、汇编及机器语言n n程序系统时代(程序系统时代(60-7060-70年代)年代)软件指程序及说明书,软件开发包括程序设计和测试,用软件指程序及说明书,软件开发包括程序设计和测试,用软件指程序及说明书,软件开发包括程序设计和测试,用软件指程序及说明书,软件开发包括程序设计和测试,用高级语言高级语言高级语言高级语言n n软件工程时代(软件工程时代(7070年代以后)年代以后)软件开发包括软件生命期,用软件语言(包括需求定义语言、软件开发包括软件生命期,用软件语言(包括需求定义语言、软件开发包括软件生命期,用软件语言(包括需求定义语言、软件开发包括软件生命期,用软件语言(包括需求定义语言、软件功能语
5、言、软件设计语言、程序设计语言等)软件功能语言、软件设计语言、程序设计语言等)软件功能语言、软件设计语言、程序设计语言等)软件功能语言、软件设计语言、程序设计语言等)7软件工程相关概念软件工程相关概念n n软件危机软件危机:在软件开发过程中遇到的问题找不到解决的办法,致使问题积累起在软件开发过程中遇到的问题找不到解决的办法,致使问题积累起在软件开发过程中遇到的问题找不到解决的办法,致使问题积累起在软件开发过程中遇到的问题找不到解决的办法,致使问题积累起来形成了日益尖锐的矛盾。来形成了日益尖锐的矛盾。来形成了日益尖锐的矛盾。来形成了日益尖锐的矛盾。危机实例(危机实例(危机实例(危机实例(1 1)
6、:):):):19631963年美国飞往火星的火箭探测器爆炸,造成年美国飞往火星的火箭探测器爆炸,造成10001000万美万美元元(数亿美元数亿美元)的损失。原因是用于控制火星探测器的计算机软件的损失。原因是用于控制火星探测器的计算机软件 FORTRAN FORTRAN程序:程序:DO 5 I=1DO 5 I=1DO 5 I=1DO 5 I=1,3 3 3 3 误写误写误写误写为:为:为:为:DO 5 I=1DO 5 I=1DO 5 I=1DO 5 I=1.3 3 3 3危机实例(危机实例(危机实例(危机实例(2 2):):):):19671967年苏联年苏联“联盟一号联盟一号”载人宇宙飞船在
7、返航时,由于载人宇宙飞船在返航时,由于软件忽略一个小数点,在进入大气层时因打不开降落伞而烧毁。软件忽略一个小数点,在进入大气层时因打不开降落伞而烧毁。宇航员:弗拉迪米尔宇航员:弗拉迪米尔科马洛夫科马洛夫8软件工程相关概念软件工程相关概念n n软件危机软件危机:危机实例(危机实例(危机实例(危机实例(3 3):):):):人员伤亡:由于计算机软件被广泛应用于包括医院等与生命息息相关人员伤亡:由于计算机软件被广泛应用于包括医院等与生命息息相关人员伤亡:由于计算机软件被广泛应用于包括医院等与生命息息相关人员伤亡:由于计算机软件被广泛应用于包括医院等与生命息息相关的行业。这也使得软件的错误导致人员伤亡
8、成为了可能。的行业。这也使得软件的错误导致人员伤亡成为了可能。的行业。这也使得软件的错误导致人员伤亡成为了可能。的行业。这也使得软件的错误导致人员伤亡成为了可能。Therac-25Therac-25Therac-25Therac-25的意外:的意外:的意外:的意外:(在软件工程界被大量引用的案例在软件工程界被大量引用的案例在软件工程界被大量引用的案例在软件工程界被大量引用的案例)在在在在1985198519851985年年年年六月到六月到六月到六月到1987198719871987年年年年一月之间一月之间一月之间一月之间,六个已知的医疗事故来自于六个已知的医疗事故来自于六个已知的医疗事故来自于
9、六个已知的医疗事故来自于Therac-25Therac-25Therac-25Therac-25错误地超过剂量错误地超过剂量错误地超过剂量错误地超过剂量,导致患者死亡或严重辐射灼伤导致患者死亡或严重辐射灼伤导致患者死亡或严重辐射灼伤导致患者死亡或严重辐射灼伤9软件工程相关概念软件工程相关概念n n软件危机软件危机:危机实例(危机实例(危机实例(危机实例(4 4):):):):IBMIBM公司公司公司公司1963-19661963-1966年开发年开发年开发年开发IBM360IBM360操作系统,项目花了操作系统,项目花了操作系统,项目花了操作系统,项目花了50005000人人人人-年的年的年的
10、年的工作量,最多时有工作量,最多时有工作量,最多时有工作量,最多时有10001000人投入开发工作,写出人投入开发工作,写出人投入开发工作,写出人投入开发工作,写出100100万行源程序,但发行的万行源程序,但发行的万行源程序,但发行的万行源程序,但发行的每一新版本都是上一版每一新版本都是上一版每一新版本都是上一版每一新版本都是上一版10001000个错误的修正。个错误的修正。个错误的修正。个错误的修正。事后负责人事后负责人事后负责人事后负责人F.D.BrooksF.D.Brooks总结教训时说:总结教训时说:总结教训时说:总结教训时说:“正象一只逃亡的野兽正象一只逃亡的野兽正象一只逃亡的野兽
11、正象一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷的越深。最后无法逃脱灭顶的落到泥潭中做垂死的挣扎,越是挣扎,陷的越深。最后无法逃脱灭顶的落到泥潭中做垂死的挣扎,越是挣扎,陷的越深。最后无法逃脱灭顶的落到泥潭中做垂死的挣扎,越是挣扎,陷的越深。最后无法逃脱灭顶的灾难。程序设计工作正像这样一个泥潭,一批批程序员被迫在泥潭中拼灾难。程序设计工作正像这样一个泥潭,一批批程序员被迫在泥潭中拼灾难。程序设计工作正像这样一个泥潭,一批批程序员被迫在泥潭中拼灾难。程序设计工作正像这样一个泥潭,一批批程序员被迫在泥潭中拼命挣扎,命挣扎,命挣扎,命挣扎,谁也没料到问题竟会陷入这样的困境谁也没料到问题竟会陷入
12、这样的困境谁也没料到问题竟会陷入这样的困境谁也没料到问题竟会陷入这样的困境”10软件危机的表现软件危机的表现n n对软件开发成本和进度的估计常常很不正确对软件开发成本和进度的估计常常很不正确对软件开发成本和进度的估计常常很不正确对软件开发成本和进度的估计常常很不正确n n用户对用户对用户对用户对“已完成的已完成的已完成的已完成的”软件系统不满意的现象经常发软件系统不满意的现象经常发软件系统不满意的现象经常发软件系统不满意的现象经常发生生生生n n软件产品的质量往往靠不住软件产品的质量往往靠不住软件产品的质量往往靠不住软件产品的质量往往靠不住n n软件常常是不可维护的软件常常是不可维护的软件常常
13、是不可维护的软件常常是不可维护的n n软件通常没有适当的文档资料软件通常没有适当的文档资料软件通常没有适当的文档资料软件通常没有适当的文档资料n n软件成本在计算机系统总成本中所占的比例逐年上软件成本在计算机系统总成本中所占的比例逐年上软件成本在计算机系统总成本中所占的比例逐年上软件成本在计算机系统总成本中所占的比例逐年上升升升升n n软件开发生产率提高的速度远远跟不上计算机应用软件开发生产率提高的速度远远跟不上计算机应用软件开发生产率提高的速度远远跟不上计算机应用软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势迅速普及深入的趋势迅速普及深入的趋势迅速普及深入的趋势11软件危机的
14、原因软件危机的原因n n软件是逻辑产品,开发进度、成本难以估计软件是逻辑产品,开发进度、成本难以估计软件是逻辑产品,开发进度、成本难以估计软件是逻辑产品,开发进度、成本难以估计n n缺乏或不完整、不一致的文档给维护带来困难缺乏或不完整、不一致的文档给维护带来困难缺乏或不完整、不一致的文档给维护带来困难缺乏或不完整、不一致的文档给维护带来困难n n用户对软件需求的描述往往不够精确,有遗漏,有二用户对软件需求的描述往往不够精确,有遗漏,有二用户对软件需求的描述往往不够精确,有遗漏,有二用户对软件需求的描述往往不够精确,有遗漏,有二义义义义n n软件开发人员对需求的理解与用户的本来愿望有差异软件开发
15、人员对需求的理解与用户的本来愿望有差异软件开发人员对需求的理解与用户的本来愿望有差异软件开发人员对需求的理解与用户的本来愿望有差异n n大型软件项目需多人协同完成,缺乏管理经验大型软件项目需多人协同完成,缺乏管理经验大型软件项目需多人协同完成,缺乏管理经验大型软件项目需多人协同完成,缺乏管理经验n n开发人员不能有效地、独立自主地处理大型软件的全开发人员不能有效地、独立自主地处理大型软件的全开发人员不能有效地、独立自主地处理大型软件的全开发人员不能有效地、独立自主地处理大型软件的全部关系部关系部关系部关系n n缺乏有力的方法学和工具的支持缺乏有力的方法学和工具的支持缺乏有力的方法学和工具的支持
16、缺乏有力的方法学和工具的支持n n软件项目的特殊性和人类智力的局限性软件项目的特殊性和人类智力的局限性软件项目的特殊性和人类智力的局限性软件项目的特殊性和人类智力的局限性12克服软件危机的途径克服软件危机的途径n n消除消除 错误的概念和做法错误的概念和做法错误的概念和做法错误的概念和做法n n推广推广使用成功的开发技术和方法使用成功的开发技术和方法使用成功的开发技术和方法使用成功的开发技术和方法n n使用使用软件工具和软件工程支持环境软件工具和软件工程支持环境软件工具和软件工程支持环境软件工具和软件工程支持环境n n加强软件加强软件加强软件加强软件管理管理摆脱软件危机的出路:摆脱软件危机的出
17、路:软件开发的软件开发的工程化工程化和和标准化标准化13软件工程相关概念软件工程相关概念n n软件工程软件工程:软件工程是用科学知识和技术原理来定义、开发、维软件工程是用科学知识和技术原理来定义、开发、维软件工程是用科学知识和技术原理来定义、开发、维软件工程是用科学知识和技术原理来定义、开发、维护软件的一门综合性的交叉学科,软件工程是开发与维护护软件的一门综合性的交叉学科,软件工程是开发与维护护软件的一门综合性的交叉学科,软件工程是开发与维护护软件的一门综合性的交叉学科,软件工程是开发与维护软件的规范化系统方法。软件的规范化系统方法。软件的规范化系统方法。软件的规范化系统方法。它综合应用计算机
18、科学、数学及管理科学等原理开发它综合应用计算机科学、数学及管理科学等原理开发它综合应用计算机科学、数学及管理科学等原理开发它综合应用计算机科学、数学及管理科学等原理开发软件的工程。软件的工程。软件的工程。软件的工程。计算机科学、数学用于构造模型与算法;计算机科学、数学用于构造模型与算法;计算机科学、数学用于构造模型与算法;计算机科学、数学用于构造模型与算法;工程科学用于制定规范、设计范型、评估成本及确定工程科学用于制定规范、设计范型、评估成本及确定工程科学用于制定规范、设计范型、评估成本及确定工程科学用于制定规范、设计范型、评估成本及确定权衡;权衡;权衡;权衡;管理科学用于用于计划、资源、质量
19、、成本等管理。管理科学用于用于计划、资源、质量、成本等管理。管理科学用于用于计划、资源、质量、成本等管理。管理科学用于用于计划、资源、质量、成本等管理。14软件工程的软件工程的目标目标n n能按时完成开发任务,及时交付使用;能按时完成开发任务,及时交付使用;能按时完成开发任务,及时交付使用;能按时完成开发任务,及时交付使用;n n付付付付出出出出较较较较低低低低的的的的开开开开发发发发成成成成本本本本,达达达达到到到到要要要要求求求求的的的的软软软软件件件件功能;功能;功能;功能;n n取得较好的软件性能;取得较好的软件性能;取得较好的软件性能;取得较好的软件性能;n n开发的软件易于移植;开
20、发的软件易于移植;开发的软件易于移植;开发的软件易于移植;n n需要较低的维护费用;需要较低的维护费用;需要较低的维护费用;需要较低的维护费用;n n开发的软件可靠性高。开发的软件可靠性高。开发的软件可靠性高。开发的软件可靠性高。15软件工程三要素软件工程三要素n n软件工程方法软件工程方法n n软件工具软件工具n n软件工程过程软件工程过程 为软件开发提供为软件开发提供“如何做如何做”的技术。如怎样定项目计划、怎的技术。如怎样定项目计划、怎样实施需求分析、如何测试等。样实施需求分析、如何测试等。为软件工程方法提供自动或半自动软件支撑环境。如软件开发为软件工程方法提供自动或半自动软件支撑环境。
21、如软件开发工具、测试工具等。软件开发的不同阶段可使用不同的工具。工具、测试工具等。软件开发的不同阶段可使用不同的工具。将软件工程划分为若干阶段,分配方法和工具,定义每个阶将软件工程划分为若干阶段,分配方法和工具,定义每个阶段的先后顺序和完成标志。段的先后顺序和完成标志。16软件生存周期软件生存周期n n生存周期概念生存周期概念n n生存周期各阶段生存周期各阶段n n生存周期模型生存周期模型17软件生存周期软件生存周期软软件件生生存存周周期期(software life cycle)又又称称为为软软件件生生命命期期。是是指指从从形形成成开开发发软软件件概概念念起起,所所开开发发的的软软件件使使用
22、用以以后后,直直到到失去使用价值消亡为止的整个过程。失去使用价值消亡为止的整个过程。一一般般来来说说,整整个个生生存存周周期期包包括括计计划划、开开发发、运运行行三三个个时时期期,每每一一个个时时期期又又划划分分为为若若干干阶阶段段。每每个个阶阶段段有有明明确确的的任任务务,这这样样使使规规模模大大、结结构构复复杂杂和和管管理理复复杂杂的的软软件件开开发发变变得得容容易易控控制和管理。制和管理。n n软件生存周期概念软件生存周期概念18软件生命周期软件生命周期n n软件生命期各阶段软件生命期各阶段1.1.软件计划与可行性研究软件计划与可行性研究软件计划与可行性研究软件计划与可行性研究2.2.软
23、件系统需求分析软件系统需求分析软件系统需求分析软件系统需求分析3.3.软件设计软件设计软件设计软件设计4.4.软件编码软件编码软件编码软件编码5.5.软件测试与调试软件测试与调试软件测试与调试软件测试与调试6.6.软件运行与维护软件运行与维护软件运行与维护软件运行与维护软件生命期一般包括以下各阶段:软件生命期一般包括以下各阶段:19软件软件-建筑建筑计划与可行性研究计划与可行性研究计划与可行性研究计划与可行性研究系统需求分析系统需求分析系统需求分析系统需求分析软件设计软件设计软件设计软件设计软件编码软件编码软件编码软件编码软件测试与调试软件测试与调试软件测试与调试软件测试与调试软件运行与维护软
24、件运行与维护软件运行与维护软件运行与维护20一、一、软件计划与可行性研究软件计划与可行性研究n n目的目的确定软件项目是否能够开发?是否值得去开发?确定软件项目是否能够开发?是否值得去开发?输出:可行性研究报告输出:可行性研究报告 成本成本效益分析效益分析 项目开发计划项目开发计划 21一、软件计划与可行性研究一、软件计划与可行性研究初步确定项目的规模和目标,确定项目的约束和限制。初步确定项目的规模和目标,确定项目的约束和限制。分分析析员员进进行行简简要要的的需需求求分分析析,抽抽象象出出逻逻辑辑结结构构,建建立立逻逻辑模型。辑模型。从从逻逻辑辑模模型型出出发发,经经过过压压缩缩的的设设计计,
25、找找出出几几种种可可供供选选择择的解决办法。的解决办法。n n过程过程22一、软件计划与可行性研究一、软件计划与可行性研究对对每每种种解解决决方方法法,可可从从以以下下三三个个方方面面分分析析研研究究每每种种解解决决方法的可行性。方法的可行性。1技术可行性技术可行性2经济可行性经济可行性3社会可行性社会可行性n n内容内容23软件可行性研究软件可行性研究1技术可行性技术可行性对对要要开开发发项项目目的的功功能能、性性能能、限限制制条条件件进进行行分分析析,确确定定在现有的资源条件下,技术风险有多大,项目是否能实现。在现有的资源条件下,技术风险有多大,项目是否能实现。资源:已有的或可以获得的硬件
26、、软件资源资源:已有的或可以获得的硬件、软件资源 现有技术人员的技术水平现有技术人员的技术水平 已有的工作基础。已有的工作基础。技术可行性分析通常包括风险分析、资源分析和技术分析n n三个方面的可行性三个方面的可行性24n风险分析:分析在给定的约束条件下设计和实现系统的风险。采用不成熟的技术可能造成技术风险采用不成熟的技术可能造成技术风险人员流动可能给项目带来风险人员流动可能给项目带来风险成本和人员估算不合理造成的预算风险成本和人员估算不合理造成的预算风险 风险分析的目的是找出风险,评价风险的大小,并有效地控制和缓解风险。25n资源分析:论证是否具备系统开发所需的各类人员、软件、硬件等资源和相
27、应的工作环境。例如,有一支开发过类似项目的开发和管理的团队,或者开发人员比较熟悉系统所处的领域,并有足够的人员保证,所需的硬件和支撑软件能通过合法的手段获取,那么从技术角度看,可以认为具备设计和实现系统的条件。26n技术分析:分析当前的科学技术是否支持系统开发的各项活动。在技术分析过程中,分析员收集系统收集系统的性能、可靠性、可维护性和生产率方的性能、可靠性、可维护性和生产率方面的信息,面的信息,分析实现系统功能、性能所分析实现系统功能、性能所需的技术、方法、算法或过程需的技术、方法、算法或过程,从技术角度分析可能存在的风险,以及这些技术问题对成本的影响。技术可行性分析时通常需进行系统建模,必
28、要时可建造原型和进行系统模拟27软件可行性研究软件可行性研究2经济可行性经济可行性进进行行开开发发成成本本的的估估算算以以及及了了解解取取得得效效益益的的评评估估,确确定定要要开发的项目是否值得投资开发?开发的项目是否值得投资开发?经济可行性经济可行性:成本成本效益分析效益分析 公司经营长期策略公司经营长期策略 开发所需的成本和资源开发所需的成本和资源 潜在的市场前景潜在的市场前景n n三个方面的可行性三个方面的可行性28基于计算机的系统的基于计算机的系统的成本成本主要包括:主要包括:购置硬件、软件(如数据库管理系统、第三方购置硬件、软件(如数据库管理系统、第三方开发的构件等)和设备(如传感器
29、等)的费用开发的构件等)和设备(如传感器等)的费用系统的开发费用系统的开发费用系统安装、运行和维护费用系统安装、运行和维护费用人员培训费用人员培训费用29效益效益经济效益经济效益使用基于计算机的系统后可增加的收入和可使用基于计算机的系统后可增加的收入和可节省的运行费用(如操作人员数、工作时间、节省的运行费用(如操作人员数、工作时间、消耗的物资等)。消耗的物资等)。社会效益社会效益使用基于计算机的系统后对社会产生的影响使用基于计算机的系统后对社会产生的影响(如提高了办事效益,使用户满意等),通(如提高了办事效益,使用户满意等),通常社会效益只能定性地估计。常社会效益只能定性地估计。在进行成本效益
30、分析时通常只统计五年内的经在进行成本效益分析时通常只统计五年内的经济效益。济效益。经济效益通常可用货币的时间价值、投资回收期经济效益通常可用货币的时间价值、投资回收期经济效益通常可用货币的时间价值、投资回收期经济效益通常可用货币的时间价值、投资回收期和纯收入来度量。和纯收入来度量。和纯收入来度量。和纯收入来度量。30n货币的时间价值(以利率计算的机会成本)设:当前金额为P,年利率为i,n年后的金额为F,则计算时,累计经济效益应折合成当前金额例如,一个基于计算机的系统使用后,每年产生的经济效益为10万,如果年利率为5%,那么,五年内该系统的累计经济效益是432948万,而不是50万。31n投资回
31、收期:累计的经济效益正好等于投资数(成本)所需的时间n纯收入:累计经济效益 投资数当纯收入大于零时,该工程值得投资开发当纯收入大于零时,该工程值得投资开发当纯收入小于零时,该工程不值得投资(除非它当纯收入小于零时,该工程不值得投资(除非它有明显的社会效益)有明显的社会效益)当纯收入等于零时,通常也不值得投资当纯收入等于零时,通常也不值得投资 显然,纯收入越大越好32软件可行性研究软件可行性研究3社会可行性社会可行性要开发的项目是否存在任何侵犯、妨碍等责任问题要开发的项目是否存在任何侵犯、妨碍等责任问题?要开发项目的运行方式在用户组织内是否行得通要开发项目的运行方式在用户组织内是否行得通?现有管
32、理制度、人员素质、操作方式是否可行现有管理制度、人员素质、操作方式是否可行?n n三个方面的可行性三个方面的可行性33中华人民共和国著作权法中华人民共和国著作权法计算机软件保护条例计算机软件保护条例保密法保密法等等34可行性分析的结论可行性分析的结论n n可以立即开始进行可以立即开始进行可以立即开始进行可以立即开始进行n n需需需需要要要要推推推推迟迟迟迟到到到到某某某某些些些些条条条条件件件件(例例例例如如如如资资资资金金金金、人人人人力力力力、设设设设备备备备等等等等)落实之后才能开始进行落实之后才能开始进行落实之后才能开始进行落实之后才能开始进行n n需要对开发目标进行某些修改之后才能开
33、始进行需要对开发目标进行某些修改之后才能开始进行需要对开发目标进行某些修改之后才能开始进行需要对开发目标进行某些修改之后才能开始进行n n因因因因为为为为某某某某种种种种原原原原因因因因(如如如如,技技技技术术术术不不不不成成成成熟熟熟熟、经经经经济济济济上上上上不不不不合合合合算算算算等等等等)不能进行不能进行不能进行不能进行35软件可行性研究软件可行性研究1复查项目规模和目标复查项目规模和目标2研究正在使用的系统研究正在使用的系统3得到新系统的概括的逻辑模型得到新系统的概括的逻辑模型4导出和评价各种方案导出和评价各种方案5推荐可行的方案推荐可行的方案6编写可行性研究报告编写可行性研究报告n
34、 n可行性研究的具体步骤可行性研究的具体步骤36软件可行性研究软件可行性研究n n可行性研究报告内容可行性研究报告内容 1引言。引言。2可行性研究前提。可行性研究前提。3对现有系统的分析。对现有系统的分析。4所建议系统的技术可行性分析。所建议系统的技术可行性分析。5所建议系统的经济可行性分析。所建议系统的经济可行性分析。6社会因素的可行性分析。社会因素的可行性分析。7其他可供选择方案。其他可供选择方案。8结论意见。结论意见。37二、二、软件系统需求分析软件系统需求分析1.1.需求分析概念需求分析概念2.2.需求分析的基本任务需求分析的基本任务3.3.结构化分析方法结构化分析方法BDS38数据库
35、建设的基本规律数据库建设的基本规律三分三分技术,七分七分管理,十二分十二分基础数据 管理 数据库建设项目管理 企业(即应用部门)的业务管理 基础数据 收集、入库 更新新的数据39二、二、软件系统需求分析软件系统需求分析1.1.需求分析概念需求分析概念2.2.需求分析的基本任务需求分析的基本任务3.3.结构化分析方法结构化分析方法40需求的定义需求的定义n nIEEE Standard Glossary of Software IEEE Standard Glossary of Software IEEE Standard Glossary of Software IEEE Standard G
36、lossary of Software Engineering TerminologyEngineering TerminologyEngineering TerminologyEngineering Terminologyu u用户解决一个问题或达到一个目标所需要的一种用户解决一个问题或达到一个目标所需要的一种用户解决一个问题或达到一个目标所需要的一种用户解决一个问题或达到一个目标所需要的一种状况或能力状况或能力状况或能力状况或能力u u系统为了满足一种约定、标准、规格说明或其它系统为了满足一种约定、标准、规格说明或其它系统为了满足一种约定、标准、规格说明或其它系统为了满足一种约定、标准、规
37、格说明或其它正式文件而必须满足或拥有的一种状况或能力正式文件而必须满足或拥有的一种状况或能力正式文件而必须满足或拥有的一种状况或能力正式文件而必须满足或拥有的一种状况或能力u u以上两种状态或能力的文档化表示以上两种状态或能力的文档化表示以上两种状态或能力的文档化表示以上两种状态或能力的文档化表示主观需求客观需求需求文档41功能性需求和非功能性需求功能性需求和非功能性需求n n功能性需求u u系统需要提供的服务或功能:如图书检索系统需要提供的服务或功能:如图书检索u u系统对特定输入的处理方式:如对非法输入的提示系统对特定输入的处理方式:如对非法输入的提示u u系统在特定环境下的行为:如长时间
38、无操作时的屏保系统在特定环境下的行为:如长时间无操作时的屏保n n非功能性需求u u对系统功能或服务附加的质量约束,例如响应时间、对系统功能或服务附加的质量约束,例如响应时间、容错性、安全性等容错性、安全性等客户所关心的客户所关心的(外部质量外部质量)u u从系统开发和维护角度出发的质量属性,例如可理解从系统开发和维护角度出发的质量属性,例如可理解性、可扩展性、可配置性等性、可扩展性、可配置性等软件开发或维护者所软件开发或维护者所关心的关心的(内部质量、软件所特有内部质量、软件所特有)42二、二、软件系统需求分析软件系统需求分析是是指指开开发发人人员员要要准准确确理理解解用用户户的的要要求求,
39、进进行行细细致致的的调调查查分分析析,将将用用户户非非形形式式的的需需求求陈陈述述转转化化为为完完整整的的需需求求定定义义,再再由由需需求求定定义义转转换换到到相相应应的的形形式式功功能能规约(需求规格说明)的过程。规约(需求规格说明)的过程。结构化分析方法结构化分析方法和和面向对象分析方法面向对象分析方法 1.1.需求分析概念需求分析概念43是是是是要要要要准准准准确确确确地地地地定定定定义义义义新新新新系系系系统统统统的的的的目目目目标标标标,满满满满足足足足用用用用户户户户需需需需要要要要。回回回回答答答答系系系系统必须统必须统必须统必须“做什么做什么做什么做什么”的问题。本阶段要进行以
40、下几方面的工作:的问题。本阶段要进行以下几方面的工作:的问题。本阶段要进行以下几方面的工作:的问题。本阶段要进行以下几方面的工作:(1 1)分析人员和用户对问题识别,双方商定对问题的综合需)分析人员和用户对问题识别,双方商定对问题的综合需)分析人员和用户对问题识别,双方商定对问题的综合需)分析人员和用户对问题识别,双方商定对问题的综合需求。求。求。求。包括:功能需求、性能需求、环境需求和用户界面需求。包括:功能需求、性能需求、环境需求和用户界面需求。包括:功能需求、性能需求、环境需求和用户界面需求。包括:功能需求、性能需求、环境需求和用户界面需求。另外还有可靠性、安全性、保密性、可移植性、可另
41、外还有可靠性、安全性、保密性、可移植性、可另外还有可靠性、安全性、保密性、可移植性、可另外还有可靠性、安全性、保密性、可移植性、可维护性等方面的需求维护性等方面的需求维护性等方面的需求维护性等方面的需求.这些需求一般通过双方交流、调查研究来获取,并达到共这些需求一般通过双方交流、调查研究来获取,并达到共同的理解。同的理解。2.2.需求分析的基本任务需求分析的基本任务44(2 2)分析与综合,导出软件的逻辑模型。)分析与综合,导出软件的逻辑模型。)分析与综合,导出软件的逻辑模型。)分析与综合,导出软件的逻辑模型。分析人员对获取的需求,进行一致性的分析检查,在分析、综合中逐分析人员对获取的需求,进
42、行一致性的分析检查,在分析、综合中逐分析人员对获取的需求,进行一致性的分析检查,在分析、综合中逐分析人员对获取的需求,进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能。步细化软件功能,划分成各个子功能。步细化软件功能,划分成各个子功能。步细化软件功能,划分成各个子功能。包括:对数据域进行分解,并分配到各个子功能上,以确定系统的构包括:对数据域进行分解,并分配到各个子功能上,以确定系统的构包括:对数据域进行分解,并分配到各个子功能上,以确定系统的构包括:对数据域进行分解,并分配到各个子功能上,以确定系统的构成及主要成分,并用图文结合的形式,建立起新系统的逻辑模型。成及主要成
43、分,并用图文结合的形式,建立起新系统的逻辑模型。成及主要成分,并用图文结合的形式,建立起新系统的逻辑模型。成及主要成分,并用图文结合的形式,建立起新系统的逻辑模型。(3 3)编写文档。)编写文档。)编写文档。)编写文档。文档:需求规格说明书文档:需求规格说明书文档:需求规格说明书文档:需求规格说明书 初步用户使用手册初步用户使用手册初步用户使用手册初步用户使用手册 确认测试计划确认测试计划确认测试计划确认测试计划2.2.需求分析的基本任务需求分析的基本任务453.3.结构化分析方法结构化分析方法 SASASASA方方方方法法法法利利利利用用用用图图图图形形形形等等等等半半半半形形形形式式式式化
44、化化化的的的的描描描描述述述述方方方方式式式式表表表表达达达达需需需需求,用它们形成需求说明书中的主要部分。求,用它们形成需求说明书中的主要部分。求,用它们形成需求说明书中的主要部分。求,用它们形成需求说明书中的主要部分。描述工具是:描述工具是:描述工具是:描述工具是:(1 1)数据流图()数据流图()数据流图()数据流图(DFDDFDDFDDFD)(2 2)描描描描述述述述加加加加工工工工逻逻逻逻辑辑辑辑的的的的工工工工具具具具:结结结结构构构构化化化化语语语语言言言言、判判判判定定定定表表表表、判定树判定树判定树判定树(3 3)数据字典)数据字典)数据字典)数据字典 结结构构化化分分析析(
45、Structured Analysis,简简称称 SA),是是面面向向数数据据流流进进行行需需求求分分析析的的方方法法。SA是是一一种种建建模模活活动动,该该方方法法使使用用简简单单易易读读符符号号,根根据据软软件件内内部部数数据据传传递递、变变换换的的关关系系,自自顶向下逐层分解,描绘出满足功能需求的软件模型。顶向下逐层分解,描绘出满足功能需求的软件模型。463.3.结构化分析方法结构化分析方法(1)数据流图()数据流图(DFDDFD)数数据据流流图图(Data Flow Diam),是是SA方方法法中中用用于于表表示示系系统统逻逻辑辑模模型型的的一一种种工工具具,它它以以图图形形的的方方式
46、式描描绘绘数数据据在在系系统统中中流流动动和和处处理理的的过过程程,由由于于它它只只反反映映系系统统必必须须完完成成的的逻逻辑辑功功能能,所以它是一种功能模型。所以它是一种功能模型。数据流图的作用:数据流图的作用:需求分析时,作为自顶向下的工具需求分析时,作为自顶向下的工具描述系统组成部分描述系统组成部分为技术员、用户间交流提供有力方法为技术员、用户间交流提供有力方法473.3.结构化分析方法结构化分析方法(1)数据流图()数据流图(DFDDFD)数数据据流流图图由由数数据据流流、加加工工(又又称称为为数数据据处处理理)、数数据据存存储储(又又称称为为文文件件)、数数据据源源点点或或终终点点四
47、四种种基基本成分组成。本成分组成。数据流图实例:银行取款过程数据流图实例:银行取款过程数据流:数据流:加工:加工:数据存储:数据存储:数据源点、终点:数据源点、终点:48描述银行取款过程的数据流图描述银行取款过程的数据流图49基本加工逻辑说明基本加工逻辑说明 n n对数据流图的每一个基本加工,必须有一个基对数据流图的每一个基本加工,必须有一个基对数据流图的每一个基本加工,必须有一个基对数据流图的每一个基本加工,必须有一个基本加工逻辑说明本加工逻辑说明本加工逻辑说明本加工逻辑说明n n描述基本加工如何把输入数据流变换为输出数描述基本加工如何把输入数据流变换为输出数描述基本加工如何把输入数据流变换
48、为输出数描述基本加工如何把输入数据流变换为输出数据流的加工规则据流的加工规则据流的加工规则据流的加工规则n n描述实现加工的策略而不是实现加工的细节描述实现加工的策略而不是实现加工的细节描述实现加工的策略而不是实现加工的细节描述实现加工的策略而不是实现加工的细节n n包含的信息应是充足的,完备的,有用的,无包含的信息应是充足的,完备的,有用的,无包含的信息应是充足的,完备的,有用的,无包含的信息应是充足的,完备的,有用的,无冗余的冗余的冗余的冗余的50(2)用于写加工逻辑说明的工具用于写加工逻辑说明的工具uu 结构化英语结构化英语uu 判定表判定表uu 判定树判定树3.3.结构化分析方法结构化
49、分析方法 511)结构化英语)结构化英语n n结构化英语的词汇表由结构化英语的词汇表由uu 英语命令动词英语命令动词uu 数据词典中定义的名字数据词典中定义的名字uu 有限的自定义词有限的自定义词uu 逻辑关系词逻辑关系词 IF_THEN_ELSE、CASE_OF、WHILE_DO、REPEAT_UNTIL等组成等组成。52n n是一种介于自然语言和形式化语言之间的是一种介于自然语言和形式化语言之间的语言语言n n语言的语言的正文用基本控制结构进行分割正文用基本控制结构进行分割,加,加工中的工中的操作用自然语言短语来表示操作用自然语言短语来表示n n其基本控制结构有三种:其基本控制结构有三种:
50、uu简单陈述句结构简单陈述句结构:避免复合语句;避免复合语句;uu重复结构重复结构:while_do 或或 repeat_until 结构。结构。uu判定结构判定结构:if_then_else 或或 case_of 结构;结构;53商店业务处理系统中商店业务处理系统中“检查发货单检查发货单”if if 发货单金额超过发货单金额超过发货单金额超过发货单金额超过$500$500 thenthen if if 欠款超过了欠款超过了欠款超过了欠款超过了6060天天天天 thenthen 在偿还欠款前不予批准在偿还欠款前不予批准在偿还欠款前不予批准在偿还欠款前不予批准 elseelse (欠款未超期)(