软件工程思想概述知识分享

上传人:yuzo****123 文档编号:137576236 上传时间:2020-07-09 格式:PPTX 页数:40 大小:1.15MB
返回 下载 相关 举报
软件工程思想概述知识分享_第1页
第1页 / 共40页
软件工程思想概述知识分享_第2页
第2页 / 共40页
软件工程思想概述知识分享_第3页
第3页 / 共40页
软件工程思想概述知识分享_第4页
第4页 / 共40页
软件工程思想概述知识分享_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《软件工程思想概述知识分享》由会员分享,可在线阅读,更多相关《软件工程思想概述知识分享(40页珍藏版)》请在金锄头文库上搜索。

1、软件工程思想概述,HE系统二处一部 曾利文 2011.3.26,Contents,Sunplus Technology Co.,Ltd.,概述 可行性研究 需求分析 总体设计 实现 维护 面向对象方法学,概 述,Sunplus Technology Co.,Ltd.,软件危机 软件危机是指在计算机软件的开发和维护过程 中所遇到的一系列严重问题。,图1 引入同一变动付出的代价随时间变化的趋势,概 述,Sunplus Technology Co.,Ltd.,软件工程 软件工程方法学 传统方法学 面向对象方法学 软件生命周期 问题定义 问题是什么? 可行性研究问题有解吗? 需求分析必须做什么? 总体

2、设计怎样实现? 详细设计具体实现方案? 编码和单元测试真正实现 综合测试验收 软件维护可持续发展,Sunplus Technology Co.,Ltd.,图3 实际瀑布模型,概 述,Sunplus Technology Co.,Ltd.,快速原型模型,图4 快速原型模型,概 述,Sunplus Technology Co.,Ltd.,增量模型,图5 增量模型,概 述,Sunplus Technology Co.,Ltd.,图6 风险更大的增量模型,概 述,Sunplus Technology Co.,Ltd.,螺旋模型,图7 螺旋模型,概 述,Sunplus Technology Co.,Lt

3、d.,喷泉模型,图8 喷泉模型,概 述,Sunplus Technology Co.,Ltd.,Rational统一过程 Rational统一过程(Rational Unified Process, RUP)是由Rational软件公司推出的一种完整而且完美的软件过程。 最佳实践 迭代式开发 管理需求 使用基于构件的体系结构 可视化建模 验证软件质量 控制软件变更,概 述,概 述,Sunplus Technology Co.,Ltd.,RUP软件开发生命周期,图9 RUP软件开发生命周期,Sunplus Technology Co.,Ltd.,敏捷过程与极限编程 敏捷过程 敏捷过程开发宣言:

4、个体和交互胜过过程和工具 可以工作的软件胜过面面俱到的文档 客户合作胜过合同谈判 响应变化胜过遵循计划 根据上述价值观提出的软件过程统称为敏捷过程,其中最重要的是极限编程 极限编程(eXtrem Programing, XP) “极限”二字的含义是指把好的开发实践运用到极致。,概 述,Sunplus Technology Co.,Ltd.,图10 XP项目的整体开发过程,图11 XP项目的迭代开发过程,概 述,Sunplus Technology Co.,Ltd.,微软过程,图12 微软软件生命周期阶段 划分和主要里程碑,图13 微软过程的生命周期模型,概 述,可行性研究,Sunplus Te

5、chnology Co.,Ltd.,可行性研究的任务 可行性研究目的是确定问题是否有解,并对以后的行动方针提出建议。 可行性研究的过程 复查系统规模和目标 研究目前正在使用的系统 导出新系统的高层逻辑模型 进一步定义问题 导出和评价供选择的解法 推荐行动方针 草拟开发计划 书写文档提交审查,可行性研究,Sunplus Technology Co.,Ltd.,系统流程图 系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工控制的过程,图14 基本符号,可行性研究,Sunplus Technology Co.,Ltd.,数据流图(DFD) 描绘信息流和数据从输入移动到输出的过程中

6、所经受的变换,其中没有任何具体的物理部件,只是描绘数据在软件中流动和被处理的逻辑过程 数据字典 数据字典是关于数据的信息的集合,其作用不言而喻,主要是供人查阅对不了解条目的解释。数据流图和数据字典共同构成系统的逻辑模型,同时构成系统的规格说明,可行性研究,Sunplus Technology Co.,Ltd.,图15 数据流图的符号,需求分析,Sunplus Technology Co.,Ltd.,需求分析的任务 需求分析一般遵守下述准则: 建立数据模型 建立功能模型 建立行为模型 用层次的方式展示细节 确定对系统的综合要求 功能需求 性能需求 可靠性和可用性需求 出错处理需求 接口需求,需求

7、分析,Sunplus Technology Co.,Ltd.,约束 逆向需求 将来可能提出的要求 分析系统的数据要求 导出系统的逻辑模型 通常用数据流图、实体-联系图(ER图)、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。 修正系统开发计划,Sunplus Technology Co.,Ltd.,实体-联系图(entity-relationship) 数据对象 数据对象是对软件必须理解的复合信息的抽象 属性 属性定义了数据对象 的性质 联系 数据对象彼此之间的相互连接的方式,需求分析,图16 某校教学管理ER图,Sunplus Technology Co.,Ltd.,状态转换图 状态

8、转换图 = 状态 + 事件 + 符号,需求分析,图17 电话系统状态图,Sunplus Technology Co.,Ltd.,层次方框图,需求分析,图18 层次方框图的一个例子,Sunplus Technology Co.,Ltd.,Warnier图 Warnier图可以表示信息的逻辑组织,括号中的数字代表该信息的重复次数。,需求分析,图19 Warnier图的一个例子,Sunplus Technology Co.,Ltd.,IPO图,需求分析,图20 IPO图的一个例子,总体设计,Sunplus Technology Co.,Ltd.,设计过程 设想供选择的方案 选取合理的方案 推荐最佳方

9、案 功能分解 设计软件结构 设计数据库 制定测试计划 书写文档 审查和复审,Sunplus Technology Co.,Ltd.,设计原理 模块化 模块是由边界元素限定的相邻程序元素的序列。过程、函数和宏等都可称为模块。面向对象中的对象及对象内的方法也是模块。 模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,集成起来即可构成一个整体。,总体设计,图21 模块化和软件成本,Sunplus Technology Co.,Ltd.,抽象 抽象就是抽出事务的本质特性 逐步求精 为了能集中精力解决主要问题而尽量推迟对问题细节的考虑 Miller法则:一个人在任何时候都只能把注

10、意力集中在(72)个知识块上 信息隐藏和局部化 应该这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的 局部化是指把一些关系密切的软件元素物理地放得彼此靠近,总体设计,Sunplus Technology Co.,Ltd.,模块独立内聚与耦合 内聚(Cohesion)是一个模块内部各成分之间相关联程度的度量。耦合(Coupling)是模块之间依赖程度的度量。内聚和耦合是密切相关的,与其它模块存在强耦合的模块通常意味着弱内聚,而强内聚的模块通常意味着与其它模块之间存在弱耦合。模块设计追求强内聚,弱耦合。 内聚强度 内聚按强度从低到高有以下几种类型

11、: 1)偶然内聚如果一个模块的各成分之间毫无关系,则称为偶然内聚。 2)逻辑内聚几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。 3)时间内聚如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。,总体设计,Sunplus Technology Co.,Ltd.,4)过程内聚如果一个模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行,则称为过程内聚。 5)通信内聚如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。 6)顺序内聚如果一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个

12、成分的输入,则称为顺序内聚。 7)功能内聚。模块的所有成分对于完成单一的功能都是必须的,则称为功能内聚。 耦合强度 耦合的强度依赖于以下几个因素:(1)一个模块对另一个模块的调用;(2)一个模块向另一个模块传递的数据量;(3)一个模块施加到另一个模块的控制的多少;(4)模块之间接口的复杂程度。,总体设计,Sunplus Technology Co.,Ltd.,耦合按从强到弱的顺序可分为以下几种类型: 1)内容耦合当一个模块直接修改或操作另一个模块的数据,或者直接转入另一个模块时,就发生了内容耦合。此时,被修改的模块完全依赖于修改它的模块。 2)公共耦合两个以上的模块共同引用一个全局数据项就称为

13、公共耦合。 3)控制耦合一个模块在界面上传递一个信号(如开关值、标志量等)控制另一个模块,接收信号的模块的动作根据信号值进行调整,称为控制耦合。 4)标记耦合。模块间通过参数传递复杂的内部数据结构,称为标记耦合。此数据结构的变化将使相关的模块发生变化。 5)数据耦合模块间通过参数传递基本类型的数据,称为数据耦合。 6)非直接耦合模块间没有信息传递时,属于非直接耦合。 如果模块间必须存在耦合,就尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,坚决避免使用内容耦合。,总体设计,Sunplus Technology Co.,Ltd.,启发规则 改进软件结构提高模块独立性 模块规模应该适中 深度、

14、宽度、扇出和扇入都应适当 模块的作用域应该在控制域之内 力争降低模块接口的复杂程度 设计单入口单出口的模块 模块功能应该可以预测,总体设计,Sunplus Technology Co.,Ltd.,面向数据流的设计方法 通俗地讲,任何软件都是对输入数据进行处理,所以面向数据流的设计方法理论上可以设计任何软件的结构。通常所说的结构化设计方法(SD方法),就是基于数据流的设计方法。 变换流 信息通常以“外部世界”的形式进入软件系统,经过处理以后再以“外部世界”的形式离开系统,总体设计,Sunplus Technology Co.,Ltd.,事务流 这种数据流是以“事务”为中心的。,总体设计,图22

15、变换流,图23 事务流,编码 选择编程语言 选择良好的编程规范 编写高效代码 测试 测试类型 集成测试 自顶向下集成 自底向上集成 Alpha和Beta测试 白盒测试 逻辑覆盖,控制结构测试 黑盒测试 等价划分 边界值分析 错误推测 单元测试重点 模块接口 局部数据结构 重要的执行通路 出错处理通路 边界条件,Sunplus Technology Co.,Ltd.,实 现,维 护,Sunplus Technology Co.,Ltd.,决定软件可维护性的因素 可理解性 可测试性 可修改性 可移植性 可重用性 软件再工程,图24 软件再工程过程模型,Sunplus Technology Co.,Ltd.,面向对象(OO)定义 OO = 对象 + 类 + 继承 + 消息 概念 类(class) 实例(instance) 消息(message) 方法(method) 属性(attribute) 封装(encapsulation) 继承(inheritance) 多态性(polymorphism) 重载(overloading),面向对象方法学,Thank You !,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号