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