1、软件工程复习提纲11、 判定树、判定表的画法。样例:某数据流图中有一个“确定保险类别”的加工,指的是申请汽车驾驶保险时,要根据申请者的情况确定不同的保险类别。加工逻辑为:1、 若申请者年龄小于等于21岁,则额外收费2、若申请者年龄大于21岁且小于等于26岁的女性,适用A类保险3、若申请者年龄小于等于26岁且已婚男性或申请者年龄大于26岁男性,则适用于B类保险4、若申请者小于等于21岁女性 或申请者小于等于26岁男性,则适用于C类保险5、除此以外,其余申请者适用于A类保险。结构化语言:If (sex= =”male”) If (age21 & age=26) If (unmarried) C类保
2、险 Else B类保险 Else B类保险Else if(age=21) C类保险且额外收费 Else A类保险2、 根据问题描述,进行功能建模。-即:用DFD图描绘功能需求。样例1:以去银行取款为例,画出取款过程中数据加工过程各项活动的数据流图。数据源点(终点):储户、计时器等 数据流:取款单。付款通知等 加工:核查、登录、付款 数据存储:帐户、存折画出DFD描述功能需求。样例2:旅行社把预定机票的旅客信息输入到机票预定系统(姓名、年龄、单位、ID号、时间、目的地等)。系统为旅客安排航班,打印出取票通知单(附有应交的款项)。旅客在飞机起飞的前一天凭取票通知单交款取票,系统检验无误,输出机票给
3、旅客。画出DFD描述功能需求。3、度量效益的计算方法度量效益的计算方法(效益=增长收入+节省消耗) (1)货币的时间价值 设年利率为i,现存入P元,n年后可得钱数为F元。 不计复利 F=P*(1+n*i) P=F/(1+n*i) 计复利 F=P*(1+i)n P=F/(1+i)n度量效益的计算方法 (2)投资回收期 累计的经济效益等于最初投资费用所需的时间。 (一般不超过3年) (3)纯收入 生存期内累计的经济效益与投资之差 (若纯收入0,则不值得开发样例:某系统取代了大部分人工设计,每年预期可节省9.6万元,假设软件使用周期为5年,开发这个系统共投入各项成本20万元,问成本/效益?投资回收期
4、?设i=5% 年份 将来值 (1+i)n 现值 累计现值 1 9.6 1.05 9.1429 9.1429 2 9.6 1.1025 8.7075 17.8504 3 9.6 1.1576 8.2928 26.1432 4 9.6 1.2155 7.8979 34.0411 5 9.6 1.2763 7.5219 41.5630投资回收期:20-17.8504/26.143217.8504=2.15/8.29=0.259 2+0.259=2.259年纯收入:41.5630-20=21.563万实例分析 库房MIS系统能每天产生一份订货报告,假定开发该系统需5000元,系统建成后及时订货,消除货
5、品短缺,估计每年能节约2500元,试计算投资回收期和效益。设i=5% 不计复利 1、利用计算货币现在价值的公式,计算系统建成后,5年内每年预计节省的费用的现在价值。 2、计算投资回收期为几年? 3、若项目生存周期为5年,则该项目纯收入为多少? 年份 将来值 (1+i*n ) 现值 累计现值 1 2500 1.05 2381 2381 2 2500 1.1 2273 4654 3 2500 1.15 2174 6828 4 2500 1.2 2083 8911 5 2500 1.25 2000 10911 投资回收期:5000-4654/6828-4654= 346/2174=0.16 2+0.
6、16=2.16年 纯收入:10911-5000=59111. 软件工程研究的目标 生产具有正确性 可用性以及开销合宜的产品 2. 软件工程面临的主要问题 1、对产品的需求不明确造成开发出来的产品不能让人们所满意。2、软件产品的质量往往没有办法保证。3、软件产品缺乏必要的文档资料。4、软件技术跟不上计算机的发展速度。5.软件开发 规模 成本进度估算不足。6、随着用户的需求进行维护很有难度。 3. 软件工程遵循的原则P11 用分阶段的生命周期计划严格管理。 坚持进行阶段评审 实行严格的产品控制 采用现代常年供需设计技术 结果应能清楚的审查 开发小组的人员应该少而精 承认不断改进软件工程实践的必要性
7、。4. 数据流图DFD、数据字典DD的定义及设计步骤 描述数据处理过程的工具从数据传递和加工的以图形的方式来描述输入和输出。成分 数据流 加工 存储 外部实体 画法:自外向内 自顶向下逐步细化 基本步骤数据字典:用来定义数据流图中各个部分的具体含义 以一种标准的无二义性的说明方式 为系统的分析设计 维护提供有关元素一致的详细的描述。5. 软件生存周期的阶段7个阶段 问题定义 可行性分析 需求分析设计阶段包括概要和详细设计 编码 测试阶段先单元测试在整体测试 运行和维护阶段 划分及每个时期的目标和主要任务看书。每个阶段产生的文档型的资料 可行性分析报告 需求分析报告 软件详细设计 软件生存周期定
8、义:从定义开发维护到废弃的组合 6. 软件的定义,组成,软件发展的三个阶段。软件定义: 能够完成预定功能和性能的可执行的指令(计算机程序) 使程序能够适当地操作信息的数据结构 三描述程序的操作和使用的文档。组成:程序与之相关的文档和配置数据 发展的三个阶段:1程序设计2 程序系统 3 软件工程时代 工程化和自动化程序系统的生产方式卓方式小集团 7. 软件工程中用来进行费用估算、制定进度和用于建立软件开发中的各种模型和算法分属于哪一学科。 工程科和数学类8. 软件生存周期的概念从何而来。 生活中的工程类产品和生存周期得来的。9. 软件生存周期的主要模型的特点、区别。P29 软件开发过程中各种活动
9、如何执行的模型。 (螺旋 增量 瀑布)10. 抽象的作用。通过抽象,可以实现的功能。P182 11. 软件开发中发现错误的结果与发现错误的时间关系。越早越好12. 软件维护的主要工作内容。13. 软件测试的种类及分析方法。 14. 软件测试的步骤。 测试步骤 :单元测试 集成测试 整体的确认测试 系统测试15. 软件结构图中几个重要组成部分的作用。 数据流 外部实体 加工 存储16. 模块划分遵循的原则。P185 高内聚松耦合内聚模块独立性的标准之一模块强度的度量模块内部的结合程度。耦合模块与模块之间关联。17. 可行性研究的分类及作用。 经济 操作 技术可行性分析 21:编码风格:源程序文档
10、化 数据说明的方法 语句的结构 输入输出方法 的选择程序编码的时候三种结够:顺序 选择 循环结构化语言:介于自然语言和形式之间的半形式话的语言。 用来加工描述。 没有严格的语法 加工规约分为若干个段落,每个段落可分为内外两层: 外层有严格的语法来描述它的控制结构 如结构化英语中可使用if_then_else、while_do、repeat_until、for_do、case等结构 内层可以用自然语言来描述 允许使用嵌套结构程序设计语言心里特性的表现:1、软件是否简洁 2,顺序性 局部性。传统性 可移植性 歧义性 达到一定的正确性共同特性 心里特性 工程特性 技术特性软件结构图:描述一个软件系统
11、由哪些模块组成,以及模块之间的调用关系可维护性的度量:是否容易测试 稳定性 在利用 可靠性 怎么样修改可以降低损害编码的程度:大量的配置工具。黒盒 证明功能具备不 白盒测试 路径测试 深度:程序结构图中控制的层数,例如图中所示的结构图的深度是5 宽度:程序结构图中同一层次上模块总数的最大值,例如图中所示的结构图的宽度为7 扇出(fan out):该模块直接调用的模块数目。例如,例如图中模块M的扇出是3,模块A的是2,模块B的扇出是1 扇入(fan in):能直接调用该模块的模块数目。例如图中模块G的扇入是1,模块I的扇入是2,模块R的扇入是4一个程序的重用率:扇入 深度和宽度在一定程序上反映了
12、程序的规模和复杂程度 相对而言,如果程序结构图的深度和宽度较大,则说明程序的规模和复杂程度都较大。 模块的扇入扇出会影响结构图的深度和宽度,例如减少模块的扇出,可能导致宽度变小而深度增加 一个模块的扇出过大通常意味着该模块比较复杂,然而扇出太少,可能导致深度的增加 一般情况,一个模块的扇出以39为宜 一个模块的扇入表示有多少模块可直接调用它,它反映了该模块的复用(reuse)程度,因此模块的扇入越大越好上层调用下层软件危机:高要求高成本跟产品的低质量产生的尖锐矛盾。详细设计的。忘记了只能达到运行不出错误 仅仅证明可用可行性定义:可行性分析达到的结论:能用还是不能用度量软件好不好标准:软件需求达
13、到用户的需求 达到正确性。有错误但可以运行 具备了容错能力。可用性不出故障并且可以运行。测试用例 试着输入几个值没有达到规定的字符或例子 输入不允许的值输入的数据和预期的值 是达到一致的结果 输入的数据和预期的输出结果。 判定表的组成元素 条件桩(Condition Stub):列出各种条件的对象,如发货单金额,赊欠天数等,每行写一个条件对象 条件条目(Conditien entry):列出各条件对象的取值,条件条目的每一列表示了一个可能的条件组合 动作桩(action stub):列出所有可能采取的动作,如发出发货单等,每行写一个动作 动作条目(action eutry):列出各种条件组合下
14、应采取的动作发货单金额500500500500赊欠天数60606060发不批准通知发出批准书发出发货单发出赊欠报告判定表的其它形式发货单金额500500 赊欠天数606060发不批准通知发出批准书发出发货单发出赊欠报告“审批发货单”加工的简化判定表 发货单金额5000011发货单金额5001100赊欠天数600101赊欠天数601010发不批准通知发出批准单发出发货单发出赊欠报告“审批发货单”加工的另一种判定表 判定树 本质上与判定表是相同的,只是表示形式不同 例如“审批发货单”加工逻辑的判定树描述入下: 数据字典 数据字典由字典条目组成,每个条目描述DFD中的一个元素 数据字典条目包括:数据
15、流、文件、数据项(组成数据流和文件的数据)、加工、源或宿所有的变量都初始化。总体设计的目的是确定系统的功能和模块结构。软件的维护的内容是什么该怎么去维护。1、 维护报告 2、记录维护数据 3、不能改需求分析 4、重写代码。 使代码更优化。软件测试 白盒和黑盒 静态和动态什么是抽象?通过抽象确定软件的过程实体。抓主要矛盾过程实体 类在结构化分析方法中描述 用数据流图数据字典 判定表 判定树 都是用来描述加工的 描述处理流程的数据字典。软件是逻辑产品。功能和性能体现在运行 执行 需求分析的主要任务确定软件系统必须做什么动作可行性分析 具体解决做什么 能不能做模型特点:SC 使用程序的控制 结构到出的测试用例是白盒测试 深度和宽度在一定程序上反映了程序的规模和复杂程度 相对而言,如果程序结构图的深度和宽度较大,则说明程序的规模和复杂程度都较大。 模块的扇入扇出会影响结构图的深度和宽度,例如减少模块的扇出,可能导致宽度变小而深度增加 一个模块的扇出过大通常意味着该模块比较复杂,然而扇出太少,可能导致深度的增加 一般情况,一个模块的扇出以39为宜 一个模块的扇入表示有多少模块可直接调用它,它反映了该模块的复用(reuse)程度,因此模块的扇入越大越好结构化设计的步骤建立初始结构图对结构图进行改进书写设计文档设计评审
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1