软件工程培训讲义_第1页
软件工程培训讲义_第2页
软件工程培训讲义_第3页
软件工程培训讲义_第4页
软件工程培训讲义_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程培训讲义软件工程培训讲义第一章课程回忆第一章课程回忆v知识点回忆:知识点回忆:v软件工程指研究软件生产的一门学科,也就是软件工程指研究软件生产的一门学科,也就是将完整的工程原理应用于经济地生产既可靠又能将完整的工程原理应用于经济地生产既可靠又能在实际机器上有效运行的软件在实际机器上有效运行的软件v软件工程开发、运行、维护和修复软件的系统软件工程开发、运行、维护和修复软件的系统方法方法v软件工程将系统化的、标准的、可度量的方法软件工程将系统化的、标准的、可度量的方法应用于软件的开发、运行和维护的过程,即将工应用于软件的开发、运行和维护的过程,即将工程化应用于软件中程化应用于软件中2第一章

2、课程回忆第一章课程回忆v软件工程为了经济地获得可靠的和能在实际机软件工程为了经济地获得可靠的和能在实际机器上高效运行的软件而确立和使用健全的工程原器上高效运行的软件而确立和使用健全的工程原理方法理方法v软件工程方法学通常指在软件生命周期全过程软件工程方法学通常指在软件生命周期全过程中使用的一整套技术的集合。软件工程方法学包中使用的一整套技术的集合。软件工程方法学包括三个要素:方法、工具和过程括三个要素:方法、工具和过程v软件生存期软件产品或软件系统从设计、投入软件生存期软件产品或软件系统从设计、投入使用到被淘汰的全过程。一般说来,软件生存期使用到被淘汰的全过程。一般说来,软件生存期由软件定义、

3、软件开发和软件维护三个时期组成,由软件定义、软件开发和软件维护三个时期组成,每个时期又可进一步划分成假设干个阶段每个时期又可进一步划分成假设干个阶段3第一章课程回忆第一章课程回忆v软件危机的典型表现软件危机的典型表现v对软件开发本钱和进度的估计常常不很准确对软件开发本钱和进度的估计常常不很准确v用户对用户对“已完成的软件系统不满意的现象经常已完成的软件系统不满意的现象经常发生发生v软件产品的质量往往靠不住软件产品的质量往往靠不住v软件常常是不可维护的软件常常是不可维护的v软件通常没有适当的文档资料软件通常没有适当的文档资料v软件本钱在计算机系统中的比例逐年增加软件本钱在计算机系统中的比例逐年增

4、加v软件开发生产率提高的速度远远跟不上计算机应软件开发生产率提高的速度远远跟不上计算机应用普及速度用普及速度4第一章课程回忆第一章课程回忆v软件工程的本质特性软件工程的本质特性1. 软件工程关注于大型程序的构造2. 软件工程的中心课题是控制复杂性3. 软件经常变化4. 开发软件的效率非常重要5. 和谐地合作是开发软件的关键6. 软件必须有效地支持它的用户7. 在软件工程领域中是由具有一种文化背景的人替有另一种文化背景的人创造产品5第一章课程回忆第一章课程回忆v软件工程中的软件工程中的7条根本原理条根本原理v用分阶段的生命周期方案严格管理用分阶段的生命周期方案严格管理v坚持进行阶段评审坚持进行阶

5、段评审v实行严格的产品控制实行严格的产品控制v采用现代程序设计技术采用现代程序设计技术v结果应能够清楚地审查结果应能够清楚地审查v开发小组的人员应该少而精开发小组的人员应该少而精v成认不断改进软件工程实践的必要性成认不断改进软件工程实践的必要性6第一章课程回忆第一章课程回忆v常用的过程模型常用的过程模型 生命周期模型规定了把生命周期划分成几个阶段及各阶段的执行顺序,因此,也称过程模型 常用的过程模型有瀑布模型、快速原型模型、增量模型和螺旋模型等7第第2章可行性研究章可行性研究v2.1 可行性研究的任务可行性研究的任务v2.2 可行性研究过程可行性研究过程v2.3 系统流程图系统流程图v2.4

6、数据流图数据流图v2.5 数据字典数据字典v2.6 本钱效益分析本钱效益分析v2.7 可行性研究报告书写可行性研究报告书写82.1 可行性研究的任务可行性研究的任务v可行性研究的任务是用最小的代价,在尽可能短可行性研究的任务是用最小的代价,在尽可能短的时间内确定问题是否能够解决的时间内确定问题是否能够解决v首先进一步分析和澄清问题意义首先进一步分析和澄清问题意义v分析员应该导出系统的逻辑模型分析员应该导出系统的逻辑模型v从逻辑模型出发,探索出假设干种可供选择的主从逻辑模型出发,探索出假设干种可供选择的主要解法即系统实现方案要解法即系统实现方案v最后仔细研究每种解法的可行性最后仔细研究每种解法的

7、可行性v可行性研究的实质是一次大大压缩简化的系统分可行性研究的实质是一次大大压缩简化的系统分析和设计过程析和设计过程92.1 可行性研究的任务可行性研究的任务v实例讲评实例讲评:两个整数乘法:两个整数乘法10解法解法1unsigned a, b, c;c=a*b;可能会存在溢出问题!可能会存在溢出问题!解法解法2unsigned a, b;int c;c=a*b;不会存在溢出问题!不会存在溢出问题!解法解法3unsigned a, b;long int c;c=a*b;不会存在溢出问题!不会存在溢出问题!但不合理但不合理2.1 可行性研究的任务可行性研究的任务v可行性应该从下述几方面进行:可行

8、性应该从下述几方面进行:v1技术可行性:指使用现有的技术能否完成技术可行性:指使用现有的技术能否完成这个工程,度量一个特定技术信息系统解决方案这个工程,度量一个特定技术信息系统解决方案的实用性及技术资源的可用性的实用性及技术资源的可用性v开发风险分析:最新技术成熟度等开发风险分析:最新技术成熟度等v资源分析:人力消耗、财力消耗、时间消耗等资源分析:人力消耗、财力消耗、时间消耗等v相关技术的开展现有技术能否实现新系统,技相关技术的开展现有技术能否实现新系统,技术难点、建议采用技术的先进性术难点、建议采用技术的先进性112.1 可行性研究的任务可行性研究的任务 2经济可行性:指通过对软件开发工程进

9、行本钱效益估计,以确定软件系统可能带来的经济效益能否超过研制和维护此系统所需的费用。度量系统解决方案的性能价格比。 本钱效益分析 有形本钱、效益 无形本钱、效益 价值和本钱的关系 质量与价值、本钱的关系 价值本钱的均衡122.1 可行性研究的任务可行性研究的任务 3操作可行性 用户使用可行性:公共汽车非接触式感应卡用输入密码或指纹来代替 时间进度可行性 组织和文化上的可行性 4社会因素的考虑:软件开发是否会侵犯他人、集体或国家利益 实质:一次简化的、高层次的、抽象的分析和设计过程!132.1 可行性研究的任务可行性研究的任务v实例讲评:实例讲评:“求一元二次方程的解可行性求一元二次方程的解可行

10、性v问题定义:这是一个简单的数学问题什么问问题定义:这是一个简单的数学问题什么问题,系统要求不高,整系数方程怎样要求,题,系统要求不高,整系数方程怎样要求,用于初中教学哪里应用,解法简单结论如用于初中教学哪里应用,解法简单结论如何何v技术上分析:能,简单技术上分析:能,简单v此方程可以根据判别是此方程可以根据判别是b2-4ac的值来确定方的值来确定方程根的情况,即程根的情况,即b2-4ac0时又两个不等实根,时又两个不等实根,b2-4ac=0时有两个相等的实根,时有两个相等的实根,b2-4ac现有系统的逻辑模型目标系统的逻辑模型新的物理系统232.2 可行性研究过程可行性研究过程v4重新定义问

11、题重新定义问题v1以数据流图、数据字典为根底以数据流图、数据字典为根底v2需要得到用户的认可,防止疏漏、误解需要得到用户的认可,防止疏漏、误解v3这是一个循环过程,直到完全符合系统要这是一个循环过程,直到完全符合系统要求求v5导出和评价供选择的方案导出和评价供选择的方案v1从技术角度解决的不同方案:从技术角度解决的不同方案:eg1:控件和控件和程序:程序:eg2:中断与查询中断与查询242.2 可行性研究过程可行性研究过程 2从操作方面的可行性:管理习惯、行为习惯、人员素质等; 3从经济方面的可行性:开发本钱运行本钱开支变化等 4确定进度表 6推荐方案和行动方针 分析员给出结论给出理由252.

12、2 可行性研究过程可行性研究过程v7草拟开发方案草拟开发方案v1进度表进度表v2人力资源:系统分析员、程序员、资料员人力资源:系统分析员、程序员、资料员等;等;v3设备资源等设备资源等v8书写文档、提交审查书写文档、提交审查262.3 系统流程图系统流程图v系统流程图是描绘物理系统的传统工具,它的根系统流程图是描绘物理系统的传统工具,它的根本思想是用图形符号以黑盒子的形式描述系统里本思想是用图形符号以黑盒子的形式描述系统里面的每一个部件程序、文件、数据库、表格、面的每一个部件程序、文件、数据库、表格、人工过程等人工过程等v尽管系统流程图使用的某些符号和程序流程图所尽管系统流程图使用的某些符号和

13、程序流程图所用的符号相同,但系统流程图表达的信息再系统用的符号相同,但系统流程图表达的信息再系统中各个部件之间流动的情况,而不是对信息进行中各个部件之间流动的情况,而不是对信息进行加工处理的控制过程加工处理的控制过程272.3 系统流程图系统流程图28v实例讲评实例讲评程序流程图实例程序流程图实例2.3 系统流程图系统流程图292.3 系统流程图系统流程图302.3 系统流程图系统流程图312.3 系统流程图系统流程图32实例讲评:仓库订货管理系统之系统流程图实例讲评:仓库订货管理系统之系统流程图2.3 系统流程图系统流程图v实例讲评实例讲评7:?口算高手口算高手?之系统流程图之系统流程图33

14、2.4 数据流图数据流图v数据流图英文数据流图英文Data Flow Diagram,简称,简称DFDvDFD是一种描述逻辑模型的图形工具,表示数据是一种描述逻辑模型的图形工具,表示数据再系统内的变化再系统内的变化v图中没有任何具体的物理元素,只是描绘信息再图中没有任何具体的物理元素,只是描绘信息再系统中流动和处理的情况系统中流动和处理的情况vDFD从数据传递和加工的角度,以图形的方式刻从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程画数据流从输入到输出的移动变换过程342.4 数据流图数据流图v数据流图中的符号图形元素数据流图中的符号图形元素 正方形:源点或终点 圆角

15、矩形:处理 开口矩形:数据存储 箭头:流动方向352.4 数据流图数据流图v数据流图的根本图形元素数据流图的根本图形元素v1数据流:是一组数据。再数据流图中数据数据流:是一组数据。再数据流图中数据流用带箭头的线表示,在其线旁标注数据流名流用带箭头的线表示,在其线旁标注数据流名v2加工:是对数据流执行的某种操作或变换。加工:是对数据流执行的某种操作或变换。在数据流图中加工用圆圈表示,在圆圈内写上加在数据流图中加工用圆圈表示,在圆圈内写上加工名。工名。v3文件:是按照某种规那么组织起来的、长文件:是按照某种规那么组织起来的、长度不限的数据。在数据流图中文件用一直线表示,度不限的数据。在数据流图中文

16、件用一直线表示,在线段旁注上文件名在线段旁注上文件名v4数据流的源点和终点:在数据流图中用方数据流的源点和终点:在数据流图中用方框表示,在框内写上相应的名称框表示,在框内写上相应的名称362.4 数据流图数据流图v由外向里画数据流图的步骤画法由外向里画数据流图的步骤画法v1确定系统的输入输出确定系统的输入输出v由于系统究竟包括哪些功能可能一时难于弄清楚,由于系统究竟包括哪些功能可能一时难于弄清楚,可使范围尽量大一些,把可能有的内容全部都包可使范围尽量大一些,把可能有的内容全部都包括进去。括进去。v应该想用户了解应该想用户了解“系统从外界接受什么数据,系统从外界接受什么数据,“系统向外界送出什么

17、数据等信息系统向外界送出什么数据等信息v根据用户的答复画出数据流图的外围根据用户的答复画出数据流图的外围372.4 数据流图数据流图v2由外向里画系统的顶层数据流图由外向里画系统的顶层数据流图v首先,将系统的输入数据和输出数据用一连串的首先,将系统的输入数据和输出数据用一连串的加工连接起来加工连接起来v在数据流的值发生变化的地方就是一个加工在数据流的值发生变化的地方就是一个加工v给各个加工命名给各个加工命名v然后,给加工之间的数据命名然后,给加工之间的数据命名v最后,给文件命名最后,给文件命名382.4 数据流图数据流图 3自顶向下逐层分解,绘出分层数据流图 对于大型的系统,为了控制复杂性,便

18、于理解,需要采用自顶向下逐层分解的方法进行,即用分层的方法将一个数据流图分解成几个数据流图来分别表示 DFD可以用来表示一个系统或软件在任何层次上的抽象。较大型软件系统DFD分成多层子图,父图概念,可以表示数据流和功能的进一步的细节392.4 数据流图数据流图v实例讲评:仓库订货系统数据流图实例实例讲评:仓库订货系统数据流图实例402.4 数据流图数据流图412.4 数据流图数据流图422.4 数据流图数据流图432.4 数据流图数据流图442.4 数据流图数据流图v实例讲评:实例讲评:?口算高手口算高手?的输入输出的输入输出452.4 数据流图数据流图v实例讲评:实例讲评:?口算高手口算高手

19、?顶层数据流图顶层数据流图462.4 数据流图数据流图v实例讲评:实例讲评:?客房管理客房管理?输入输出输入输出472.4 数据流图数据流图v实例讲评:实例讲评:?客房管理系统客房管理系统?局部局部DFD482.4 数据流图数据流图v绘制数据流图的本卷须知绘制数据流图的本卷须知v合理细化合理细化v分层细化时必须保持信息的连续性分层细化时必须保持信息的连续性v注意处理的编号和适当地命名注意处理的编号和适当地命名v画数据流而不是控制流画数据流而不是控制流v先考虑稳定状态先考虑稳定状态v忽略琐碎的枝节忽略琐碎的枝节492.4 数据流图数据流图7. 随时准备重画8. 注意程序流程图与数据流图的区别。数

20、据流图描绘所有可能,而不应该描绘出现某个数据流的条件9. 数据流图根本要点是要答复“作什么,而不是“怎样作502.4 数据流图数据流图10.命名:直接影响到数据流图的可理解性 1为数据流数据存储命名:代表整个数据流内容切忌空洞必要时考虑重新分解 2为处理命名:先数据流,后处理代表整个功能及物动词宾语一般只包含一个动词必要时考虑重新分解512.5 数据字典数据字典v数据字典英文数据字典英文Data Dictionary,简称,简称DDvDD定义:对于数据流图中所出现的所有被命名定义:对于数据流图中所出现的所有被命名的图形元素作为一个词条加以定义,使得每一个的图形元素作为一个词条加以定义,使得每一

21、个图形元素的名字都有一个确切的解释图形元素的名字都有一个确切的解释vDD是对所有与系统相关的数据元素的一个有组是对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间和系统分析员对于输入、输出、存储成分和中间计算有共同的理解。计算有共同的理解。522.5 数据字典数据字典vDD是一种描述逻辑模型的工具是一种描述逻辑模型的工具vDD是数据的信息集合,是对数据流图中包含的是数据的信息集合,是对数据流图中包含的所有元素的定义的集合所有元素的定义的集合vDD的内容包括:图形元素的名字、别名或编号

22、、的内容包括:图形元素的名字、别名或编号、分类、描述、定义、位置等分类、描述、定义、位置等v典型的典型的DD包括:包括: 一般信息:名字、别名、描述等 定义:数据类型、长度、结构等532.5 数据字典数据字典 使用特点:值范围,使用频率 使用方法:输入输出本地网络条件值等 控制信息:来源用户使用它的程序使用权改变权等 分组信息:复结构附属结构物理位置等542.5 数据字典数据字典v使用使用DD的目的的目的 查阅不了解的条目的解释 尽量减少出现别名 DD中所有的定义都应是严密的、精确的,不可有半点含混,不可有二义性 数据流图和数据字典共同构成系统的逻辑模型552.5 数据字典数据字典v数据字典数

23、据字典DD中常用符号的含义中常用符号的含义562.5 数据字典数据字典 数据字典中定义数据的方法: 自定向下分解数据 数据元素组成方式类型 顺序选择重复可选 数据字典的用途:分析阶段的重要工具 数据字典的实现: 全人工过程 全自动化过程 混合过程572.5 数据字典数据字典v数据字典与数据流图之间关系数据字典与数据流图之间关系v数据流图描述了系统的数据流图描述了系统的“分解分解v依靠依靠“字典来说明各个成分的含义字典来说明各个成分的含义v数据流图中所有名字的定义就构成了一本字典数据流图中所有名字的定义就构成了一本字典v数据流图和字典结合在一起构成了数据流图和字典结合在一起构成了“需求说明书需求

24、说明书v数据流图中出现的每个数据流名、每一个文件名数据流图中出现的每个数据流名、每一个文件名和每一个加工名在词典中都应该有一个条目给出和每一个加工名在词典中都应该有一个条目给出这个名字的定义这个名字的定义582.5 数据字典数据字典v字典条目的各种类型字典条目的各种类型v数据流数据流v文件文件v数据项指不在分解的数据单位数据项指不在分解的数据单位v加工加工v小说明小说明v数据流图中每一个根本加工即不再进一步被分数据流图中每一个根本加工即不再进一步被分解的加工都必须有一个解的加工都必须有一个“小说明小说明v小说明中应精确描述用户要求一个加工小说明中应精确描述用户要求一个加工“做什么做什么592.

25、5 数据字典数据字典v实例讲评:实例讲评:?口算高手口算高手?字典建模字典建模602.5数据字典数据字典v实例讲评:实例讲评:?客房管理系统客房管理系统?字典建模字典建模612.5 数据字典数据字典v实例讲评:航班词典条目实例实例讲评:航班词典条目实例622.5 数据字典数据字典632.5 数据字典数据字典v实例讲评:实例讲评:?路灯管理系统路灯管理系统?数据字典数据字典v路段控制器信息表路段控制器信息表controller.db:642.5 数据字典数据字典652.6 本钱效益分析本钱效益分析v本钱效益分析的目的,是从经济角度评价开发本钱效益分析的目的,是从经济角度评价开发一个新工程是否可行

26、、是否划算,从而帮助使用一个新工程是否可行、是否划算,从而帮助使用部门的负责人正确地作出是否投资于这项开发的部门的负责人正确地作出是否投资于这项开发的决定决定v本钱估计本钱估计v代码行技术:通常先根据经验和历史数据来估计代码行技术:通常先根据经验和历史数据来估计实现一个功能所需要的源程序行数,然后用每行实现一个功能所需要的源程序行数,然后用每行代码的平均本钱乘以行数就可以确定软件的本钱代码的平均本钱乘以行数就可以确定软件的本钱662.6 本钱效益分析本钱效益分析v任务分解技术:任务分解技术:v首先把软件开发工程分解为假设干个相对独立的首先把软件开发工程分解为假设干个相对独立的任务,再分别估计每

27、个单独的开发任务的本钱,任务,再分别估计每个单独的开发任务的本钱,最后累加起来得出软件开发工程的总本钱最后累加起来得出软件开发工程的总本钱v估计每个任务的本钱时,通常先估计完成该项任估计每个任务的本钱时,通常先估计完成该项任务所需要使用的人力以月为单位,再乘以每务所需要使用的人力以月为单位,再乘以每人每月的平均工资而得出每个任务的本钱。人每月的平均工资而得出每个任务的本钱。v划分任务时最常用的方法是按开发阶段进行划分任务时最常用的方法是按开发阶段进行672.6 本钱效益分析本钱效益分析v度量效益的方法度量效益的方法v货币的时间价值货币的时间价值v货币的时间价值通常用利率的形势表示。假设年货币的

28、时间价值通常用利率的形势表示。假设年利率为利率为i,如果现在存入,如果现在存入P元,那么元,那么n年后可以得年后可以得到的钱数为:到的钱数为:FP1+inv这也就是这也就是P元钱再元钱再n年后的价值。反之如果年后的价值。反之如果n年后年后能收入能收入F元,那么这些钱现在的价值是:元,那么这些钱现在的价值是:v PF1+in682.6 本钱效益分析本钱效益分析v投资回收期:所谓投资回收期就是使累计的经济投资回收期:所谓投资回收期就是使累计的经济效益等于最初投资所需要的时间。显然,投资回效益等于最初投资所需要的时间。显然,投资回收期越短就能越快获得利润,这项工程也就越值收期越短就能越快获得利润,这项工程也就越值得投资得投资v纯收入:纯收入就是再整个声明周期之内系统累纯收入:纯收入就是再整个声明周期之内系统累计经济效益折合成现在值与投资之差。这相计经济效益折合成现在值与投资之差。这相当于比较投资开发一个软件系统和把钱存再银行当于比较投资开发一个软件系统和把钱存再银行中或贷给其他企业这两种方

温馨提示

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

评论

0/150

提交评论