软件工程与测试_第1页
软件工程与测试_第2页
软件工程与测试_第3页
软件工程与测试_第4页
软件工程与测试_第5页
已阅读5页,还剩171页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序员培训 职业道德职业道德 职业道德职业道德基本知识基本知识 职业职业守则守则 (1)遵纪守法,尊重知识产权,爱岗敬业,严守保密制度;)遵纪守法,尊重知识产权,爱岗敬业,严守保密制度; (2)实事求是,工作认真,尽职尽责,一丝不苟,精益求精,团队精神。)实事求是,工作认真,尽职尽责,一丝不苟,精益求精,团队精神。基础知识基础知识 计算机系统计算机系统的组成的组成 (1)计算机硬件的基本组成)计算机硬件的基本组成 (2)计算机软件的基本组成)计算机软件的基本组成 软件开发软件开发基础知识基础知识 (1)程序语言基础知识)程序语言基础知识 (2)数据结构基础知识)数据结构基础知识 (3)操作系统

2、基础知识)操作系统基础知识 (4)数据库基础知识)数据库基础知识 (5)网络编程基础知识)网络编程基础知识 (6)软件工程基础)软件工程基础知识知识以及测试以及测试 网络网络基础知识基础知识 (1)网络基本结构)网络基本结构 (2)网络协议与标准)网络协议与标准 (3)信息安全基础知识)信息安全基础知识 相关相关法律、法规知识法律、法规知识 (1)知识产权)知识产权的相关知识的相关知识 (2)劳动法)劳动法的相关的相关知识知识u职业道德职业道德u职业道德是指从事一定职业劳动的人们,在长职业道德是指从事一定职业劳动的人们,在长期的职业活动中形成的期的职业活动中形成的行为规范行为规范。u职业道德是

3、一种职业道德是一种非强制性非强制性的约束机制。的约束机制。u职业道德作为职业道德作为职业行为准则职业行为准则,有着与其他的执,有着与其他的执业行为准则不具备的特征。业行为准则不具备的特征。u在市场经济条件下,职业道德具有在市场经济条件下,职业道德具有促进人们的促进人们的行为规范化行为规范化的社会功能。的社会功能。u计算机道德规范主要有计算机道德规范主要有有关知识产权有关知识产权、有关计有关计算机安全算机安全和和有关网络行为规范有关网络行为规范等几个方面。等几个方面。u执业纪律是企业的行为规范,职业纪律具有执业纪律是企业的行为规范,职业纪律具有明明确的规定性确的规定性的特点。的特点。 下列选项中

4、属于职业道德范畴的是( D )。 A.企业经营业绩B.企业发展战略 C.员工的技术水平D.人们的内心信念 下列不属于职业道德功能的有( D )。 A.有利于调整职业利益关系 B.有利于提高人民的道德水平 C.有利于完善人格 D.有利于人的职业生涯规划 在市场经济条件下,职业道德具有( C )的社会功能。 A.鼓励人们自由选择职业 B.遏制牟利最大化 C.促进人们的行为规范化 D.最大限度地克服人们受利益驱动 以下不属于职业道德修养内容的是( B )。 A.端正职业态度 B.遵守职业规范 C.强化职业情感 D.历练职业意志 下列选项中属于职业道德作用的是( A )。 A.增强企业的凝聚力B.增强

5、企业的离心力 C.决定企业的经济效益D.增强企业员工的独立性 社会主义职业道德的核心是( C )。 A.爱岗敬业 B.诚实守信 C.为人民服务D.忠于革命事业 下列不属于职业道德修养的内容的是( A ) 。 A.强化职业技能教育 B.端正职业态度 C.强化职业情感 D.历练职业意志 下列选项中属于职业道德作用的是( A )。 A.增强企业的凝聚力B.增强企业的离心力 C.决定企业的经济效益D.增强企业员工的独立性 职业道德通过( D ),起着增强企业凝聚力的作用。 A. 调节企业与社会的关系 B. 为员工创造发展空间 C. 增加职工福利 D. 协调员工之间的关系 职业道德教育不包括( B )内

6、容。 A. 养成职业道德习惯 B. 严格遵守规章制度 C. 培养职业道德情感 D. 树立对职业道德的认识 在市场经济条件下,( B )是职业道德社会功能的重要表现。 A. 增加决策科学化B. 促进员工行为的规范化 C. 遏制牟利最大化D. 克服利益导向 商标权的内容不包括商标权的内容不包括不可转让权不可转让权。 商标侵权的法律责任不包括社会责任。商标侵权的法律责任不包括社会责任。 关于秘密的基本要素不包括地域性。关于秘密的基本要素不包括地域性。 计算机程序设计员要根据自身分工的不同计算机程序设计员要根据自身分工的不同和形势发展的需要,掌握软件技术所需要和形势发展的需要,掌握软件技术所需要的技能

7、,如新的语言,的技能,如新的语言,新的环境新的环境,网络技,网络技能,组件开发等。能,组件开发等。 软件工程软件软件是计算机系统中与硬件相互依存的另一是计算机系统中与硬件相互依存的另一部分,它是部分,它是 程序程序+数据数据+文档文档 的完整集合。的完整集合。其中,其中,程序程序是按事先设计的功能和性能是按事先设计的功能和性能要求编写的指令序列;要求编写的指令序列;数据数据是使程序能正是使程序能正常操纵信息的数据结构;常操纵信息的数据结构;文档文档是与程序开是与程序开发、维护和使用有关的图文材料。发、维护和使用有关的图文材料。注意注意:程序并不是软件,程序只是软件的:程序并不是软件,程序只是软

8、件的组成部分。组成部分。软件的分类软件的分类1. 系统软件系统软件 应用软件应用软件 支撑软件支撑软件 2. 实时处理软件实时处理软件 分时软件分时软件 交互式软件交互式软件 批处理软件批处理软件 基于软件工作方式的划分基于软件工作方式的划分基于软件功能的划分基于软件功能的划分软件危机软件危机2020世纪世纪6060年代末年代末7070年代初,西方工业发年代初,西方工业发达国家经历了一场达国家经历了一场“软件危机软件危机”。这场软件。这场软件危机表现在:危机表现在:软件危机包含下述两方面的问题:如何软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;开发软件,以满足对软件日

9、益增长的需求;如何维护数量不断膨胀的已有软件。如何维护数量不断膨胀的已有软件。 软件软件需求需求的增长得不到满足的增长得不到满足 软件开发软件开发成本成本和和进度进度无法控制无法控制 软件软件质量质量难以保证难以保证 软件不可软件不可维护维护或维护程度非常低或维护程度非常低软件工程的定义软件工程的定义软件工程软件工程是指研究软件生产的一门学科,是指研究软件生产的一门学科,也就是将完善的工程原理应用于经济地生产也就是将完善的工程原理应用于经济地生产既可靠又能在实际机器上有效运行的软件。既可靠又能在实际机器上有效运行的软件。19831983年美国年美国IEEEIEEE软件工程标准术语软件工程标准术

10、语对软件工程下的定义为:软件工程是开发、对软件工程下的定义为:软件工程是开发、运行、维护和修复软件的系统方法,其中运行、维护和修复软件的系统方法,其中“软件软件”的定义为:计算机程序、方法、规的定义为:计算机程序、方法、规则、相关的文档资料以及在计事机上运行时则、相关的文档资料以及在计事机上运行时所必需的数据。所必需的数据。软件工程研究的内容软件工程的主要研究内容软件工程的主要研究内容 软件开发技术软件开发技术: :软件开发方法学软件开发方法学 软件开发过程软件开发过程 软件工具和软件工程环境软件工具和软件工程环境 软件工程管理软件工程管理: :软件管理学软件管理学 软件经济学软件经济学 软件

11、心理学软件心理学 软件生命周期软件生命周期如同任何其他事物一样,软件也有一个孕育、如同任何其他事物一样,软件也有一个孕育、诞生、成长、成熟、衰亡的生存过程,一般称之诞生、成长、成熟、衰亡的生存过程,一般称之为计算机为计算机软件的生存期软件的生存期。一般说来,软件生命期由一般说来,软件生命期由软件定义软件定义、软件开软件开发发和和软件维护软件维护三个时期组成,每个时期又可进一三个时期组成,每个时期又可进一步划分成若干个阶段。步划分成若干个阶段。软件定义软件定义开发阶段开发阶段运行维护阶段运行维护阶段问题定义问题定义可行性分析可行性分析需求分析需求分析概要设计概要设计详细设计详细设计编编 码码测测

12、 试试软件发布软件发布软件运行软件运行维护或退役维护或退役软件生存期软件生存期1 1软件定义时期软件定义时期 问题定义:这是软件生存期的第一个阶段,主问题定义:这是软件生存期的第一个阶段,主要任务是弄清用户要计算机解决的问题是什么。要任务是弄清用户要计算机解决的问题是什么。 可行性研究:任务是为前一阶段提出的问题寻可行性研究:任务是为前一阶段提出的问题寻求一种至数种在技术上可行、且在经济上有较求一种至数种在技术上可行、且在经济上有较高效益的解决方案。高效益的解决方案。 需求分析:弄清用户对软件系统的全部需求,需求分析:弄清用户对软件系统的全部需求,主要是确定目标系统必须具备哪些功能。主要是确定

13、目标系统必须具备哪些功能。软件生存期软件生存期2 2软件开发时期软件开发时期 概要设计:设计软件的结构,即确定程序概要设计:设计软件的结构,即确定程序由哪些模块组成以及模块间的关系。确定由哪些模块组成以及模块间的关系。确定各模块之间的接口。各模块之间的接口。 此阶段产生的文档:概要设计说明书。此阶段产生的文档:概要设计说明书。 详细设计:针对单个模块的设计。确定各详细设计:针对单个模块的设计。确定各模块数据结构,算法。具体为:外部接口、模块数据结构,算法。具体为:外部接口、内部接口、输入输出、局部数据。内部接口、输入输出、局部数据。 此阶段产生的文档:详细设计说明书。此阶段产生的文档:详细设计

14、说明书。软件生存期软件生存期2 2软件开发时期软件开发时期 编码:按照选定的语言,把模块的过程性编码:按照选定的语言,把模块的过程性描述翻译为源程序。描述翻译为源程序。 测试:通过各种类型的测试测试:通过各种类型的测试( (及相应的调试及相应的调试) )使软件达到预定的要求。使软件达到预定的要求。此阶段产生的文档:测试计划、测试报告此阶段产生的文档:测试计划、测试报告软件生存期软件生存期3 3软件维护软件维护时期时期 是软件生存周期的最后一个时期。软件人员是软件生存周期的最后一个时期。软件人员在这一时期的工作,主要是做好软件维护。维在这一时期的工作,主要是做好软件维护。维护的目的,是使软件在整

15、个生存周期内保证满护的目的,是使软件在整个生存周期内保证满足用户的需求和延长软件的使用寿命。足用户的需求和延长软件的使用寿命。维护的种类有:改正性维护、适应性维护、完维护的种类有:改正性维护、适应性维护、完善性维护和预防性维护。善性维护和预防性维护。软件开发模型软件开发模型1.瀑布模型瀑布模型:定义:传统软件工程方法学的软件过程,基本上可定义:传统软件工程方法学的软件过程,基本上可以用瀑布模型实现以用瀑布模型实现特点:特点:1 1 阶段间具有阶段间具有顺序性顺序性和和依赖性依赖性 2. 2.推迟实现推迟实现的观点的观点 3. 3.质量保证质量保证的观点的观点瀑布模型的成功在于它基本上是一种瀑布

16、模型的成功在于它基本上是一种文档驱动文档驱动的模的模型。型。 软件计划软件计划软件需求分析软件需求分析软件系统设计软件系统设计 软件编码软件编码 软件测试软件测试软件运行、维护软件运行、维护定 义定 义阶段阶段开 发开 发阶段阶段维 护维 护阶段阶段软件需求说明书软件需求说明书软件设计说明书软件设计说明书源程序清单源程序清单测试报告测试报告软件维护报告软件维护报告 瀑布模型瀑布模型的的优点优点是是: 约束约束软件开发人员采用规范的开发方法软件开发人员采用规范的开发方法; 严格严格规定每个阶段必须提交的文档规定每个阶段必须提交的文档; 要求要求每个阶段的产品都要经过严格的质量审查。每个阶段的产品

17、都要经过严格的质量审查。 缺点缺点: 缺乏缺乏灵活性后一阶段出现的问题需要通过前一灵活性后一阶段出现的问题需要通过前一阶段的重新确认来解决,主要是因为:开发初阶段的重新确认来解决,主要是因为:开发初期必须明确需求、确定需求后需要相当长的时期必须明确需求、确定需求后需要相当长的时间才能得到软件最初版本,不利于修改。间才能得到软件最初版本,不利于修改。2. 2. 快速原型模型快速原型模型 快速原型为软件开快速原型为软件开发人员与用户一起进行发人员与用户一起进行需求分析,进行快速设需求分析,进行快速设计,建造原型,原型由计,建造原型,原型由用户评估,进一步修改用户评估,进一步修改原型,再次进行设计。

18、原型,再次进行设计。迭代这个过程,逐步使迭代这个过程,逐步使原型满足用户需要。原型满足用户需要。快速原型模型快速原型模型快速分析快速分析需求说明需求说明构造原型构造原型原型原型运行原形运行原形评价原型评价原型修改意见修改意见修修改改修改原型修改原型修改说明修改说明需求分析需求分析需求说明需求说明设计设计设计说明设计说明编码编码源程序源程序测试测试软件产品软件产品维护维护原型模型的应用原型模型的应用 快速原型模型的主要优点有:快速原型模型的主要优点有: (1) 快速原型模型法可以得到良好的需求定义,能够有效快速原型模型法可以得到良好的需求定义,能够有效处理用户的模糊需求,开发者和用户得到充分的协

19、作。处理用户的模糊需求,开发者和用户得到充分的协作。 (2) 快速原型模型系统可作为培训环境,有利于用户培训快速原型模型系统可作为培训环境,有利于用户培训和开发同步,用户参与开发的过程也是学习的过程。和开发同步,用户参与开发的过程也是学习的过程。 (3) 软件产品的开发过程基本上是线性顺序过程;软件产品的开发过程基本上是线性顺序过程; (4)快速原型模型可以低风险开发变化较大的计算机系统。快速原型模型可以低风险开发变化较大的计算机系统。 (5)快速原型模型使系统更易维护、对用户更友好。快速原型模型使系统更易维护、对用户更友好。 (6)快速原型使总的开发费用有所降低,开始时间缩短。快速原型使总的

20、开发费用有所降低,开始时间缩短。快速原型模型的主要缺点快速原型模型的主要缺点 容易主次颠倒,开发者往往不熟悉应用领域,常容易主次颠倒,开发者往往不熟悉应用领域,常常将次要部分当做主要部分,作出不符合用户要常将次要部分当做主要部分,作出不符合用户要求的原型。求的原型。 原型迭代不收敛于开发者的最初目标,增加了更原型迭代不收敛于开发者的最初目标,增加了更改的次数。改的次数。 原型过快收敛于用户的最初需求集合,而忽略了原型过快收敛于用户的最初需求集合,而忽略了其他方面的问题其他方面的问题 资源规划和管理较为困难,更新文档工作量繁重。资源规划和管理较为困难,更新文档工作量繁重。3.增量模型 瀑布模型是

21、一种整体开发模型。在开发过程中,瀑布模型是一种整体开发模型。在开发过程中,用户看不到软件是什么样子,只有开发完成后,用户看不到软件是什么样子,只有开发完成后,整个软件才全部展现现在用户面前。这时如果用整个软件才全部展现现在用户面前。这时如果用户发现有不满意的地方,为时已晚。户发现有不满意的地方,为时已晚。 增量模型是一种非整体开发的模型。软件在该模增量模型是一种非整体开发的模型。软件在该模型中是型中是“逐渐逐渐”开发出来的,开发出一部分,向开发出来的,开发出一部分,向用户展示一部分,可让用户及早看到部分软件,用户展示一部分,可让用户及早看到部分软件,及早发现问题。或者先开发一个及早发现问题。或

22、者先开发一个“原型原型”软件,软件,完成部分主要功能,展示给用户并征求意见,然完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。后逐步完善,最终获得满意的软件产品。编码1测试1确定1需求分析软件设计增量一编码2测试2确定2编码N测试N确定N增量二增量N增量模型 (1)部分整体)部分整体 需求分析、设计阶段按瀑布模型的整需求分析、设计阶段按瀑布模型的整体方式开发;体方式开发;(2)部分增量)部分增量 编码和测试阶段按增量方式开发;编码和测试阶段按增量方式开发; 先开发出软件的一个部分先开发出软件的一个部分 用户满意并确定后,再开发出软件的另一个部分用户满意并确定后,再

23、开发出软件的另一个部分 如此循序渐进、逐步增量,如此循序渐进、逐步增量, 最终实现整个系统最终实现整个系统(3)明显特点)明显特点 开发过程中用户可以及早看到部分软件开发过程中用户可以及早看到部分软件功能、发现问题,以便在开发其它部分时及时解决问功能、发现问题,以便在开发其它部分时及时解决问题。题。 模型的特点模型的特点增量模型具有较大的灵活性,适合于软件需求不明确、增量模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。软件开发采用增量设计方案有一定风险的软件项目。软件开发采用增量模型时应具有以下条件:模型时应具有以下条件: (1)软件开发过程中,需求可能发生变化,用户

24、接受分)软件开发过程中,需求可能发生变化,用户接受分析阶段交付;析阶段交付;(2)分析设计人员对应用领域不熟悉,难以一步到位;)分析设计人员对应用领域不熟悉,难以一步到位;(3)项目风险较高;)项目风险较高;(4)用户可以参与到整个软件开发过程中;)用户可以参与到整个软件开发过程中;(5)使用面向对象语言或第四代语言;)使用面向对象语言或第四代语言;(6)软件公司自己已经有较好的类库和构件库)软件公司自己已经有较好的类库和构件库增量模型适应范围增量模型适应范围 4.螺旋模型螺旋模型 为了克服瀑布模型为了克服瀑布模型的不足,在软件开的不足,在软件开发中引入了风险分发中引入了风险分析。析。 风险是

25、软件开发不风险是软件开发不可忽视的不利因素,可忽视的不利因素,它影响软件开发过它影响软件开发过程或软件产品的质程或软件产品的质量。软件风险分析量。软件风险分析的目标是在造成危的目标是在造成危害之前及时分析风害之前及时分析风险,制定对策,减险,制定对策,减少风险造成的危害。少风险造成的危害。 螺旋模型优点螺旋模型优点是:是: (1) 有利于已有软件的重用;有利于已有软件的重用; (2) 有助于把软件质量作为软件开发的一个重要目有助于把软件质量作为软件开发的一个重要目标;标; (3) 减少了过多测试或测试不足所带来的风险;减少了过多测试或测试不足所带来的风险; 螺旋螺旋模型缺点模型缺点是是要求许多

26、客户接受和相信风险分析并做出相关反要求许多客户接受和相信风险分析并做出相关反应是不容易的,往往适应于内部的大规模软件开应是不容易的,往往适应于内部的大规模软件开发。发。 需要软件开发人员具备风险分析和评估的经验,需要软件开发人员具备风险分析和评估的经验,否则将会带来更大的风险。否则将会带来更大的风险。5.喷泉模型 喷泉模型克服了瀑布喷泉模型克服了瀑布模型不支持软件重用和模型不支持软件重用和多项开发活动集成的局多项开发活动集成的局限性。喷泉模型使开发限性。喷泉模型使开发过程具有过程具有迭代性迭代性和和无间无间隙性隙性。系统某些部分常。系统某些部分常常重复工作多次,常重复工作多次, 相关相关功能在

27、每镒迭代中随之功能在每镒迭代中随之加入演化的系统。无间加入演化的系统。无间隙是指在分析、隙是指在分析、 设计和设计和实现等开发活动之间不实现等开发活动之间不存在明显的边界。存在明显的边界。实 现软 件 设 计系 统 设 计分 析构件开发构件开发重用构件库重用构件库面向对象分析面向对象分析软件需求软件需求检索构件库检索构件库需求开发需求开发面向对象设计面向对象设计系统实现开发系统实现开发目标系统目标系统OOA原理原理OOD原理原理基于面向对象的模型6.智能模型 智能模型把瀑布模型和专家系统结合在一智能模型把瀑布模型和专家系统结合在一起。该模型在开发的各个阶段上都利用了起。该模型在开发的各个阶段上

28、都利用了相应的专家系统来帮助软件人员完成开发相应的专家系统来帮助软件人员完成开发工作,使维护在系统需求说明一级上进行。工作,使维护在系统需求说明一级上进行。为此,建立了各阶段所需要的知识库,将为此,建立了各阶段所需要的知识库,将模型、相应领域知识和软件工程知识分别模型、相应领域知识和软件工程知识分别存入数据库,以软件工程知识为基础的生存入数据库,以软件工程知识为基础的生成规则构成的专家系统与含有应用领域知成规则构成的专家系统与含有应用领域知识规则的其他专家系统相结合,识规则的其他专家系统相结合, 构成了该构成了该应用领域的开发系统。应用领域的开发系统。用户概念用户概念软件需求分析软件需求分析软

29、件系统设计软件系统设计软件编码软件编码软件测试软件测试软件运行、维护软件运行、维护支持维护的专家系统支持维护的专家系统支持测试的专家系统支持测试的专家系统支持设计的专家系统支持设计的专家系统支持需求分析的专家系支持需求分析的专家系统统智能模型图智能模型的特点 智能模型以瀑布模型与专爱系统的综合应用为基础。智能模型以瀑布模型与专爱系统的综合应用为基础。该模型通过应用系统的知识和规则帮助设计者认识该模型通过应用系统的知识和规则帮助设计者认识一个特定的软件的需求和设计,这些专家系统已成一个特定的软件的需求和设计,这些专家系统已成为开发过程的伙伴,并指导开发过程。为开发过程的伙伴,并指导开发过程。 将

30、软件工程知识从特定领域分离出来,这些知识随将软件工程知识从特定领域分离出来,这些知识随着过程范例收入知识库,产生规则,在接受软件工着过程范例收入知识库,产生规则,在接受软件工程技术的基础上被编码成专家系统,用来辅助软件程技术的基础上被编码成专家系统,用来辅助软件工程的开发。在使用过程中,软件工程专家系统与工程的开发。在使用过程中,软件工程专家系统与其他领域的应用知识的专家系统连接起来,形成了其他领域的应用知识的专家系统连接起来,形成了特定软件系统,为开发一个软件产品所应用。特定软件系统,为开发一个软件产品所应用。智能模型的优点 (1) 通过领域的专家系统,可使需求说明更通过领域的专家系统,可使

31、需求说明更完整、准确和无二义性完整、准确和无二义性 (2) 通过软件工程专爱系统,提供一个设计通过软件工程专爱系统,提供一个设计库支持,在开发过程中成为设计者的助手。库支持,在开发过程中成为设计者的助手。 (3) 通过软件工程知识和特定应用领域的知通过软件工程知识和特定应用领域的知识和规则的应用来提供开发的帮助。识和规则的应用来提供开发的帮助。智能模型的缺点: (1) 建立适合于软件设计的专家系统是非常困建立适合于软件设计的专家系统是非常困难的,超出了目前的能力,是今后软件工程的难的,超出了目前的能力,是今后软件工程的发展方向,要经过相当长的时间才能取得进展。发展方向,要经过相当长的时间才能取

32、得进展。 (2) 建立一个既适合软件工程又适合应用领域建立一个既适合软件工程又适合应用领域的知识库也是非常困难的。的知识库也是非常困难的。 (3) 目前的状况是在软件开发中正在应用目前的状况是在软件开发中正在应用AI技技术,在术,在CASE工具系统中使用专家系统,用专家工具系统中使用专家系统,用专家系统来实现测试自动化,在软件开发的局部阶系统来实现测试自动化,在软件开发的局部阶段有所进展。段有所进展。7.基于构件的开发模型基于构件的开发模型基于构件的开发模型优点:基于构件的开发模型优点: 充分体现了软件复用的思想,降充分体现了软件复用的思想,降低了开发风险和成本。低了开发风险和成本。 可以快速

33、交付所开发的软件。可以快速交付所开发的软件。基于构件的开发模型缺点:基于构件的开发模型缺点:由于某些商业构件是不能进行修改由于某些商业构件是不能进行修改的,系统的演化将受到一定程度的的,系统的演化将受到一定程度的限制。限制。可行性研究可行性研究 问题定义问题定义一、一、 问题定义的内容问题定义的内容包括:明确问题的背景、开发系统的现状、包括:明确问题的背景、开发系统的现状、开发的理由和条件、开发系统的问题要求、总体开发的理由和条件、开发系统的问题要求、总体要求、问题的性质、类型范围、要实现的目标、要求、问题的性质、类型范围、要实现的目标、功能规模、实现目标的方案、开发的条件、环境功能规模、实现

34、目标的方案、开发的条件、环境要求等等,然后写出问题定义报告(或称系统定要求等等,然后写出问题定义报告(或称系统定义报告),以供可行性分析阶段使用。义报告),以供可行性分析阶段使用。可行性研究可行性研究 二、二、 问题定义的步骤问题定义的步骤在问题定义阶段,系统分析员要深入现场,在问题定义阶段,系统分析员要深入现场,阅读用户写的书面报告、听取用户对开发系统的阅读用户写的书面报告、听取用户对开发系统的要求、调查开发系统的背景理由。还要与用户负要求、调查开发系统的背景理由。还要与用户负责人反复讨论,以澄清模糊的地方、改正不正确责人反复讨论,以澄清模糊的地方、改正不正确的地方。最后写出双方都满意的问题

35、定义报告,的地方。最后写出双方都满意的问题定义报告,并确定双方是否可进行深入系统可行性研究的意并确定双方是否可进行深入系统可行性研究的意向。向。可行性研究的任务 回答是否可行回答是否可行 最短时间最短时间 最小代价最小代价 四个方面的可行性四个方面的可行性 技术可行性技术可行性 经济可行性经济可行性 社会可行性社会可行性 人的可行性人的可行性可行性研究可行性研究 一般说来,研究可行性应该从下述几方面进行:一般说来,研究可行性应该从下述几方面进行:(1 1)技术可行性:指使用现有的技术能否完成这)技术可行性:指使用现有的技术能否完成这个项目。考虑的问题:用什么技术保证完成个项目。考虑的问题:用什

36、么技术保证完成预期预期功能、软件质量和开发效率。功能、软件质量和开发效率。(2 2)经济可行性:指通过对软件开发项目进行成)经济可行性:指通过对软件开发项目进行成本本/ /效益估计,以确定软件系统可能带来的经济效益估计,以确定软件系统可能带来的经济效益能否超过研制和维护此系统所需的费用。效益能否超过研制和维护此系统所需的费用。(3 3)社会因素的考虑:软件开发是否会侵犯他人、)社会因素的考虑:软件开发是否会侵犯他人、集体或国家的利益,是否违反国家的法律并可能集体或国家的利益,是否违反国家的法律并可能由此而承担法律责任。由此而承担法律责任。可行性研究可行性研究 成本成本/ /效益分析效益分析成本

37、成本/效益分析的目的,是从经济角度评价开效益分析的目的,是从经济角度评价开发一个新项目是否可行、是否划算,从而帮助使发一个新项目是否可行、是否划算,从而帮助使用部门的负责人正确地作出是否投资于这项开发用部门的负责人正确地作出是否投资于这项开发的决定。的决定。 一、成本估计一、成本估计 1代码行技术:通常先根据经验和历史数据来估代码行技术:通常先根据经验和历史数据来估计实现一个功能所需要的源程序行数,然后用每计实现一个功能所需要的源程序行数,然后用每行代码的平均成本乘以行数就可以确定软件的成行代码的平均成本乘以行数就可以确定软件的成本。本。可行性研究可行性研究 2 2任务分解技术:首先把软件开发

38、工程分解为若任务分解技术:首先把软件开发工程分解为若干个相对独立的任务,再分别估计每个单独的开干个相对独立的任务,再分别估计每个单独的开发任务的成本,最后累加起来得出软件开发工程发任务的成本,最后累加起来得出软件开发工程的总成本。估计每个任务的成本时,通常先估计的总成本。估计每个任务的成本时,通常先估计完成该项任务所需要使用的人力(以人月为单完成该项任务所需要使用的人力(以人月为单位),再乘以每人每月的平均工资而得出每个任位),再乘以每人每月的平均工资而得出每个任务的成本。划分任务时最常用的办法是按开发阶务的成本。划分任务时最常用的办法是按开发阶段进行。段进行。3. 自动成本估算:应用软件工具

39、进行。自动成本估算:应用软件工具进行。可行性研究可行性研究 二、二、 度量效益的方法度量效益的方法 1货币的时间价值货币的时间价值货币的时间价值通常用利率的形式表示。假设货币的时间价值通常用利率的形式表示。假设年利率为年利率为i,如果现在存入如果现在存入P元,则元,则n年后可以得到年后可以得到的钱数为:的钱数为: FP(1十十i)n这也就是这也就是P元钱在元钱在n年后的价值。反之,如果年后的价值。反之,如果n年后能收入年后能收入F元钱,那么这些钱的现在的价值是:元钱,那么这些钱的现在的价值是: PF (1十十i)n可行性研究可行性研究 2投资回收期投资回收期所谓投资回收期就是使累计的经济效益等

40、于所谓投资回收期就是使累计的经济效益等于最初投资所需要的时间。显然,投资回收期越短最初投资所需要的时间。显然,投资回收期越短就能越快获得利润,这项工程也就越值得投资。就能越快获得利润,这项工程也就越值得投资。3纯收入纯收入纯收入就是在整个生命周期之内系统累计经纯收入就是在整个生命周期之内系统累计经济效益(折合成现在值)与投资之差。这相当于济效益(折合成现在值)与投资之差。这相当于比较投资开发一个软件系统和把钱存在银行中比较投资开发一个软件系统和把钱存在银行中(或贷给其他企业)这两种方案的优劣。(或贷给其他企业)这两种方案的优劣。循环循环可行性研究的步骤1. 复查系统规模和目标2. 研究现有系统

41、功能3. 导出新系统模型4. 重新定义问题5. 导出和分析各种可选解决方案6. 推荐行动方针7. 草拟开发计划8. 书写文档提交审查1 复查系统规模和目标 问题定义阶段的成果 系统规模和目标报告书 复查任务 改正含糊的、二义的描述 改正不正确的描述 核查系统限制和约束2 研究现有系统功能 分析现有系统 高层系统流程图 确定系统功能 比较新旧系统 新系统必须完成旧系统的基本功能 新系统必须改正旧系统存在问题 新系统必须比旧系统增收入、减支出3 导出新系统模型 旧系统逻辑模型 新系统目标和规模 逻辑模型描述工具 数据流图数据流图 数据字典数据字典 用例图用例图4 重新定义问题 复查问题定义、规模和

42、目标 根据新系统模型 分析员误解 用户遗漏 重新定义问题 循环(定义,分析,求解,重定义)5 导出和分析可选解决方案 从逻辑模型导出物理系统方案 不同角度 多个方案 分析各种可选方案 技术可行性 操作可行性 经济可行性 为可行方案制定初步进度计划6 推荐行动方针 得出可行性研究结果 继续开发 终止项目 推荐解决方案 成本/效益7 草拟开发计划 为推荐方案确定开发计划 进度 开发人员 硬件设备 软件工具 各阶段成本估计8 书写文档提交审查 可行性研究报告 各步骤结果 推荐方案 开发计划等可行性研究报告内容 系统概述:说明开发的系统名称。提出单位和开发单位; 可行性研究的前提:系统目标,要求,约束

43、和限制,可行性研究的准则; 对现有系统的分析:处理流程、图示说明现有系统的处理流程和数据流程,以及现有系统存在的问题 系统需求:主要功能,主要性能及其要求 建议系统:系统目标,处理流程,系统结构,技术,投资效益可行性,法律可行性; 其他方案:国内外同类型方案的比较; 指定下一阶段的预算 结论性意见需求分析需求分析 需求分析的任务需求分析的任务需求分析的需求分析的任务任务就是准确地回答就是准确地回答“系统必系统必须做什么须做什么?”这个问题,是通过这个问题,是通过系统分析员系统分析员与与用户用户一起商定,清晰、准确、具体地描述软一起商定,清晰、准确、具体地描述软件产品必须具有的件产品必须具有的功

44、能功能、性能性能、运行规格运行规格等等要求。软件需求分析阶段的目的是澄清用户要求。软件需求分析阶段的目的是澄清用户的要求,并把双方共同的理解明确地表达成的要求,并把双方共同的理解明确地表达成一份书面文档一份书面文档软件需求规格说明书软件需求规格说明书。需求分析的具体任务需求分析的具体任务 (1)确定软件系统的综合需求)确定软件系统的综合需求 功能需求功能需求 性能需求:处理速度、存储容量、响应时间、安全限性能需求:处理速度、存储容量、响应时间、安全限制等。制等。 环境需求:环境需求:软硬件、网络、外设软硬件、网络、外设 如机型、操作系统等;如机型、操作系统等; 可靠性需求:不发生故障的概率;可

45、靠性需求:不发生故障的概率; 安全保密需求,用户界面需求,安全保密需求,用户界面需求, 资源使用需求。可能资源使用需求。可能的要求:扩展的要求:扩展需求分析的具体任务需求分析的具体任务(2)分析系统的数据需求)分析系统的数据需求需要哪些数据、数据间的关系、数据本身的需要哪些数据、数据间的关系、数据本身的性质和结构等。建立数据模型(如实体关系模性质和结构等。建立数据模型(如实体关系模型)。型)。(3)导出软件系统的逻辑模型:数据流图、数)导出软件系统的逻辑模型:数据流图、数据字典。据字典。(4)修正系统开发计划)修正系统开发计划(5)开发原型系统验证软件需求分析的正确性)开发原型系统验证软件需求

46、分析的正确性(6)编写软件需求规格说明书)编写软件需求规格说明书需求分析的过程需求分析的过程需求分析阶段可分为四个过程:调查研究、需求分析阶段可分为四个过程:调查研究、分析与综合、书写需求分析的文档和评审。分析与综合、书写需求分析的文档和评审。 (1)调查研究)调查研究系统分析员协同程序员向用户做需求调查,系统分析员协同程序员向用户做需求调查,阅软件计划中的可行性报告和项目开发计划报阅软件计划中的可行性报告和项目开发计划报告,访问系统现场,并由此确定当前系统必须告,访问系统现场,并由此确定当前系统必须做什么,并获得当前系统的具体模型,用数据做什么,并获得当前系统的具体模型,用数据流图或流图或I

47、POIPO图表示出来图表示出来。 需求分析的过程需求分析的过程(2)分析与综合)分析与综合分析员需从分析员需从数据流数据流和和数据结构数据结构出发,逐步细化所有的软出发,逐步细化所有的软件功能,找出系统中各元素之间的件功能,找出系统中各元素之间的联系联系、接口特征接口特征和和设计上设计上的限制的限制,分析它们能否满足功能要求,是否合理。依据功能,分析它们能否满足功能要求,是否合理。依据功能需求、性能需求、运行环境需求等,剔除其中不合理的部分,需求、性能需求、运行环境需求等,剔除其中不合理的部分,增加其需要的部分。最终综合成系统的解决方案后,给出目增加其需要的部分。最终综合成系统的解决方案后,给

48、出目标系统的标系统的详细逻辑模型详细逻辑模型。常用的分析方法:常用的分析方法: 面向数据流的结构化分析方法、面向数据结构的面向数据流的结构化分析方法、面向数据结构的jacksonjackson方法和结构化数据系统开发方法、面向对象的分析方法。方法和结构化数据系统开发方法、面向对象的分析方法。需求分析的过程需求分析的过程 (3) 书写需求分析的文档书写需求分析的文档 把分析的结果用正式的文档记录下来,作把分析的结果用正式的文档记录下来,作为最终软件配置的一个组成成分。应该完成下为最终软件配置的一个组成成分。应该完成下述四份文档资料:述四份文档资料:系统规格说明系统规格说明 、数据需求数据需求 、

49、用户系统描述用户系统描述 、修正的开发计划修正的开发计划 。(4) 需求分析评审需求分析评审作为需求分析阶段的复查手段,在需求分析作为需求分析阶段的复查手段,在需求分析的最后一步,应该对功能的正确性、完整性和的最后一步,应该对功能的正确性、完整性和清晰性,以及其他需求给予评价。清晰性,以及其他需求给予评价。需求分析的原则需求分析的原则(1)能够表达和理解问题的信息域和功能域。)能够表达和理解问题的信息域和功能域。(2)能够对问题进行分解和不断细化,建立问题)能够对问题进行分解和不断细化,建立问题的层次结构。的层次结构。 (3)能够给出系统的逻辑视图和物理视图。)能够给出系统的逻辑视图和物理视图

50、。结构化分析方法结构化分析方法结构化分析方法(结构化分析方法(Structured Analysis,简称简称SA方法)是方法)是70年代中期提出的一种面向年代中期提出的一种面向数据流数据流按按照软件内部照软件内部数据传递、变换数据传递、变换的关系采用的关系采用自顶向下、自顶向下、逐步求精逐步求精进行需求分析的方法。进行需求分析的方法。结构化分析方法适用于分析大型的数据处理结构化分析方法适用于分析大型的数据处理系统,特别适用于企事业管理系统。系统,特别适用于企事业管理系统。结构化分析方法通常与设计阶段的结构化设结构化分析方法通常与设计阶段的结构化设计方法(计方法(Structured Desi

51、gned,简称简称SD方法)衔接方法)衔接起来使用。起来使用。结构化分析方法结构化分析方法结构化分析方法中使用的工具主要包括:结构化分析方法中使用的工具主要包括:其中数据流图用以表达系统内数据的运其中数据流图用以表达系统内数据的运动情况;数据词典用以定义系统中的数据;动情况;数据词典用以定义系统中的数据;结构化语言、判定表和判定树都是用以描结构化语言、判定表和判定树都是用以描述数据流的加工的工具。述数据流的加工的工具。数据流图数据流图DFD数据流图从数据流图从数据传递数据传递和和加工加工的角度,以图形的方式刻画的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。数据流从输入到输出的移动变

52、换过程。1 1、数据流图的基本图形元素、数据流图的基本图形元素(1)数据流:数据流:是一组数据。在数据流图中数据流用是一组数据。在数据流图中数据流用带箭头的线表示,在其线旁标注数据流名。带箭头的线表示,在其线旁标注数据流名。(2)加工:加工:是对数据流执行的某种操作或变换。在是对数据流执行的某种操作或变换。在数据流图中加工用圆圈表示,在圆圈内写上加工名。数据流图中加工用圆圈表示,在圆圈内写上加工名。(3)文件:文件:是按照某种规则组织起来的、长度不限是按照某种规则组织起来的、长度不限的数据。在数据流图中文件用一直线表示,在线段旁的数据。在数据流图中文件用一直线表示,在线段旁注上文件名。注上文件

53、名。(4)数据流的源点和终点数据流的源点和终点:在数据流图中用方框表:在数据流图中用方框表示,在框内写上相应的名称。示,在框内写上相应的名称。数据流图数据流图2、由外向里画数据流图的步骤、由外向里画数据流图的步骤 (1)确定系统的输入输出:由于系统究竟包)确定系统的输入输出:由于系统究竟包括哪些功能可能一时难于弄清楚,可使范围尽括哪些功能可能一时难于弄清楚,可使范围尽量大一些,把可能有的内容全部都包括进去。量大一些,把可能有的内容全部都包括进去。此时,应该向用户了解此时,应该向用户了解“系统从外界接受什么系统从外界接受什么数据数据”、“系统向外界送出什么数据系统向外界送出什么数据”等信息,等信

54、息,然后,根据用户的答复画出数据流图的外围。然后,根据用户的答复画出数据流图的外围。数据流图数据流图 (2)由外向里画系统的顶层数据流图)由外向里画系统的顶层数据流图首先,将系统的输人数据和输出数据用一连串首先,将系统的输人数据和输出数据用一连串的加工连接起来。在数据流的值发生变化的地方的加工连接起来。在数据流的值发生变化的地方就是一个加工。接着,给各个加工命名。然后,就是一个加工。接着,给各个加工命名。然后,给加工之间的数据命名。最后,给文件命名。给加工之间的数据命名。最后,给文件命名。 (3)自顶向下逐层分解,绘出分层数据流图)自顶向下逐层分解,绘出分层数据流图对于大型的系统,为了控制复杂

55、性,便于理解,对于大型的系统,为了控制复杂性,便于理解,需要采用自顶向下逐层分解的方法进行,即用分需要采用自顶向下逐层分解的方法进行,即用分层的方法将一个数据流图分解成几个数据流图来层的方法将一个数据流图分解成几个数据流图来分别表示。分别表示。数据字典数据字典数据字典的任务就是对于数据流图中所出现的所有被数据字典的任务就是对于数据流图中所出现的所有被命名的图形元素在数据字典中作为一个词条加以定义,使命名的图形元素在数据字典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。得每一个图形元素的名字都有一个确切的解释。 数据字典的内容包括:图形元素的名字、别名或编号、数据字典的内容

56、包括:图形元素的名字、别名或编号、分类、描述、定义、位置等。分类、描述、定义、位置等。数据字典中所有的定义都应是严密的、精确的,不可数据字典中所有的定义都应是严密的、精确的,不可有半点含混,不可有二义性。有半点含混,不可有二义性。u 处理逻辑处理逻辑u 外部实体外部实体u 数据存储数据存储u 数据流数据流u 数据项数据项u 数据结构数据结构符符 号号 含含 义义 解解 释释.,.|. . m.n(.)“.”. 被被定定义义为为 与与 或或 或或 重重复复 重重复复 可可选选 基基本本数数据据元元素素 连连结结符符例例如如,x=ab,表表示示 x由由 a和和 b 组组成成。 例例如如,x=a,

57、b,x=a|b,表表示示 x由由 a或或由由 b 组组成成。例例如如,x=a,表表示示 x由由 0个个或或多多个个 a组组成成。例例如如,x=3a8,表表示示 x中中至至少少出出现现 3次次 a, 至至多多 出出现现 8次次 a。例例如如,x=(a),表表示示 a可可在在 x中中出出现现,也也可可不不出出现现。例例如如,x=“a”,表表示示 x为为取取值值为为 a的的数数据据元元素素。例例如如,x=1.9,表表示示 x可可取取 1到到 9之之中中的的任任一一值值。 总体设计总体设计总体设计又称为概要设计或初步设计,它总体设计又称为概要设计或初步设计,它的基本目的就是回答的基本目的就是回答“概括

58、地说,系统应该概括地说,系统应该如何实现如何实现?”这个问题。在总体设计阶段,应这个问题。在总体设计阶段,应划分出组成系统的物理元素划分出组成系统的物理元素程序、文件、程序、文件、数据库、人工过程和文档等,并确定系统中数据库、人工过程和文档等,并确定系统中每个程序由哪些模块组成以及这些模块相互每个程序由哪些模块组成以及这些模块相互间的关系。间的关系。总体设计总体设计的过程的过程总体设计通常由总体设计通常由系统设计(确定方案)系统设计(确定方案)和和结构设计(确定软件结构)结构设计(确定软件结构)两两个阶段组成。个阶段组成。系统设计阶段确定系统的具体实现方案,结系统设计阶段确定系统的具体实现方案

59、,结构设计阶段确定软件的结构。构设计阶段确定软件的结构。 总体设计总体设计实施总体设计的过程如下实施总体设计的过程如下: 1设想供选择的方案设想供选择的方案 2选取合理的方案选取合理的方案 3推荐最佳方案推荐最佳方案 4功能分解功能分解 5 5设计软件结构设计软件结构6数据库设计数据库设计7制定测试计划制定测试计划 8书写文档书写文档 9审查和复审审查和复审 总体设计总体设计总体设计总体设计的图形工具的图形工具一、层次图一、层次图 层次图(也称层次图(也称H图)是在总体设计阶段最图)是在总体设计阶段最常使用的图形工具之一,它常用于常使用的图形工具之一,它常用于描绘软件描绘软件的层次结构的层次结

60、构。层次图中的每个方框代表一个。层次图中的每个方框代表一个模块,方框间的连线表示模块间的调用关系模块,方框间的连线表示模块间的调用关系。 总体设计总体设计二、二、HIPOHIPO图图 HIPO图实际上由图实际上由H图和图和IPO图两部分组成。图两部分组成。H图图即层次图即层次图,为了能使,为了能使HIPO图具有可跟踪性,在图具有可跟踪性,在H图图里除了最顶层的方框之外,每个方框都加了编号;里除了最顶层的方框之外,每个方框都加了编号;和和H H图中的每个方框相对应,有一张图中的每个方框相对应,有一张IPOIPO图描述这个图描述这个方框代表的模块的处理过程。方框代表的模块的处理过程。IPOIPO图

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论