《软件工程思想概述.pptx》由会员分享,可在线阅读,更多相关《软件工程思想概述.pptx(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、LOGO软件工程思想概述HEHE系统二处一部系统二处一部曾利文曾利文ContentsContentsSunplus Technology Co.,Ltd.1.1.概述概述2.2.可行性研究可行性研究3.3.需求分析需求分析4.4.总体设计总体设计5.5.实现实现6.6.维护维护7.7.面向对象方法学面向对象方法学概概 述述Sunplus Technology Co.,Ltd.1.1.软件危机软件危机软件危机是指在计算机软件的开发和维护过程 中所遇到的一系列严重问题。图图1 1 引入同一变动付出的代价随时间变化的趋势引入同一变动付出的代价随时间变化的趋势概概 述述Sunplus Technolo
2、gy Co.,Ltd.2.2.软件工程软件工程a)软件工程方法学传统方法学面向对象方法学b)软件生命周期问题定义 问题是什么?可行性研究问题有解吗?需求分析必须做什么?总体设计怎样实现?详细设计具体实现方案?编码和单元测试真正实现综合测试验收软件维护可持续发展概概 述述3.3.基本软件过程基本软件过程a)瀑布模型n特点阶段间具有顺序性和依赖性推迟实现的观点质量保证的观点n优点可强迫开发人员采用规范化方法质量保证小组对文档的审核保证了软件的质量n缺点由文档驱动,不直观 Sunplus Technology Co.,Ltd.图图2 2 传统瀑布模型传统瀑布模型Sunplus Technology
3、Co.,Ltd.图图3 3 实际瀑布模型实际瀑布模型概概 述述Sunplus Technology Co.,Ltd.b)快速原型模型图图4 4 快速原型模型快速原型模型概概 述述Sunplus Technology Co.,Ltd.c)增量模型图图5 5 增量模型增量模型概概 述述Sunplus Technology Co.,Ltd.图图6 6 风险更大的增量模型风险更大的增量模型概概 述述Sunplus Technology Co.,Ltd.d)螺旋模型图图7 7 螺旋模型螺旋模型概概 述述Sunplus Technology Co.,Ltd.e)喷泉模型图图8 8 喷泉模型喷泉模型概概 述
4、述Sunplus Technology Co.,Ltd.4.4.RationalRational统一过程统一过程a)Rational统一过程(Rational Unified Process,RUP)是由Rational软件公司推出的一种完整而且完美的软件过程。b)最佳实践迭代式开发管理需求使用基于构件的体系结构可视化建模验证软件质量控制软件变更概概 述述概概 述述Sunplus Technology Co.,Ltd.c)RUP软件开发生命周期图图9 RUP9 RUP软件开发生命周期软件开发生命周期Sunplus Technology Co.,Ltd.5.5.敏捷过程与极限编程敏捷过程与极限编
5、程a)敏捷过程敏捷过程开发宣言:个体和交互胜过过程和工具可以工作的软件胜过面面俱到的文档客户合作胜过合同谈判响应变化胜过遵循计划根据上述价值观提出的软件过程统称为敏捷过程,其中最重要的是极限编程b)极限编程(eXtrem Programing,XP)“极限”二字的含义是指把好的开发实践运用到极致。概概 述述Sunplus Technology Co.,Ltd.图10 XP项目的整体开发过程图11 XP项目的迭代开发过程概概 述述Sunplus Technology Co.,Ltd.6.6.微软微软过程过程图图12 12 微软微软软件生命周期软件生命周期阶段阶段划分和主要里程碑划分和主要里程碑图
6、13 微软过程的生命周期模型微软过程的生命周期模型概概 述述可行性研究可行性研究Sunplus Technology Co.,Ltd.1.1.可行性研究的任务可行性研究的任务可行性研究目的是确定问题是否有解,并对以后的行动方针提出建议。2.2.可行性研究的过程可行性研究的过程a)复查系统规模和目标b)研究目前正在使用的系统c)导出新系统的高层逻辑模型d)进一步定义问题e)导出和评价供选择的解法f)推荐行动方针g)草拟开发计划h)书写文档提交审查可行性研究可行性研究Sunplus Technology Co.,Ltd.3.3.系统流程图系统流程图系统流程图表达的是数据在系统各部件之间流动的情况,
7、而不是对数据进行加工控制的过程图图1414 基本符号基本符号可行性研究可行性研究Sunplus Technology Co.,Ltd.3.3.数据流图数据流图(DFD)(DFD)描绘信息流和数据从输入移动到输出的过程中所经受的变换,其中没有任何具体的物理部件,只是描绘数据在软件中流动和被处理的逻辑过程4.4.数据字典数据字典数据字典是关于数据的信息的集合,其作用不言而喻,主要是供人查阅对不了解条目的解释。数据流图和数据字典共同构成系统的逻辑模型,同时构成系统的规格说明可行性研究可行性研究Sunplus Technology Co.,Ltd.图图1515 数据流图的符号数据流图的符号需求分析需求
8、分析Sunplus Technology Co.,Ltd.1.1.需求分析的任务需求分析的任务a)需求分析一般遵守下述准则:建立数据模型建立功能模型建立行为模型用层次的方式展示细节b)确定对系统的综合要求功能需求性能需求可靠性和可用性需求出错处理需求接口需求 需求分析需求分析Sunplus Technology Co.,Ltd.约束逆向需求将来可能提出的要求c)分析系统的数据要求d)导出系统的逻辑模型通常用数据流图、实体-联系图(ER图)、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。e)修正系统开发计划Sunplus Technology Co.,Ltd.2.2.实体实体-联系图(联
9、系图(entity-relationshipentity-relationship)a)数据对象数据对象是对软件必须理解的复合信息的抽象b)属性属性定义了数据对象 的性质c)联系数据对象彼此之间的相互连接的方式需求分析需求分析图图1616 某校教学管理某校教学管理ERER图图Sunplus Technology Co.,Ltd.3.3.状态转换图状态转换图状态转换图=状态+事件+符号需求分析需求分析图图17 17 电话系统状态图电话系统状态图Sunplus Technology Co.,Ltd.4.4.层次方框图层次方框图需求分析需求分析图图18 18 层次方框图的一个例子层次方框图的一个例子
10、Sunplus Technology Co.,Ltd.5.5.WarnierWarnier图图Warnier图可以表示信息的逻辑组织,括号中的数字代表该信息的重复次数。需求分析需求分析图图19 19 Warnier Warnier图的一个例子图的一个例子Sunplus Technology Co.,Ltd.6.6.IPOIPO图图需求分析需求分析图图2020 IPO IPO图的一个例子图的一个例子总体设计总体设计Sunplus Technology Co.,Ltd.1.1.设计过程设计过程设想供选择的方案选取合理的方案推荐最佳方案功能分解设计软件结构设计数据库制定测试计划书写文档审查和复审Su
11、nplus Technology Co.,Ltd.1.1.设计原理设计原理a)模块化模块是由边界元素限定的相邻程序元素的序列。过程、函数和宏等都可称为模块。面向对象中的对象及对象内的方法也是模块。模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,集成起来即可构成一个整体。总体设计总体设计图图2121 模块化和软件成本模块化和软件成本Sunplus Technology Co.,Ltd.b)抽象抽象就是抽出事务的本质特性c)逐步求精为了能集中精力解决主要问题而尽量推迟对问题细节的考虑Miller法则:一个人在任何时候都只能把注意力集中在(72)个知识块上d)信息隐藏和局部
12、化应该这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的局部化是指把一些关系密切的软件元素物理地放得彼此靠近总体设计总体设计Sunplus Technology Co.,Ltd.e)模块独立内聚与耦合内聚(Cohesion)是一个模块内部各成分之间相关联程度的度量。耦合(Coupling)是模块之间依赖程度的度量。内聚和耦合是密切相关的,与其它模块存在强耦合的模块通常意味着弱内聚,而强内聚的模块通常意味着与其它模块之间存在弱耦合。模块设计追求强内聚,弱耦合。内聚强度内聚按强度从低到高有以下几种类型:1)偶然内聚如果一个模块的各成分之间毫无关系,
13、则称为偶然内聚。2)逻辑内聚几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。3)时间内聚如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。总体设计总体设计Sunplus Technology Co.,Ltd.4)过程内聚如果一个模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行,则称为过程内聚。5)通信内聚如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。6)顺序内聚如果一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入,则称为顺序内聚。7)功能内聚。模块的所有成分
14、对于完成单一的功能都是必须的,则称为功能内聚。耦合强度耦合的强度依赖于以下几个因素:(1)一个模块对另一个模块的调用;(2)一个模块向另一个模块传递的数据量;(3)一个模块施加到另一个模块的控制的多少;(4)模块之间接口的复杂程度。总体设计总体设计Sunplus Technology Co.,Ltd.耦合按从强到弱的顺序可分为以下几种类型:1)内容耦合当一个模块直接修改或操作另一个模块的数据,或者直接转入另一个模块时,就发生了内容耦合。此时,被修改的模块完全依赖于修改它的模块。2)公共耦合两个以上的模块共同引用一个全局数据项就称为公共耦合。3)控制耦合一个模块在界面上传递一个信号(如开关值、标
15、志量等)控制另一个模块,接收信号的模块的动作根据信号值进行调整,称为控制耦合。4)标记耦合。模块间通过参数传递复杂的内部数据结构,称为标记耦合。此数据结构的变化将使相关的模块发生变化。5)数据耦合模块间通过参数传递基本类型的数据,称为数据耦合。6)非直接耦合模块间没有信息传递时,属于非直接耦合。如果模块间必须存在耦合,就尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,坚决避免使用内容耦合。总体设计总体设计Sunplus Technology Co.,Ltd.2.2.启发规则启发规则a)改进软件结构提高模块独立性b)模块规模应该适中c)深度、宽度、扇出和扇入都应适当d)模块的作用域应该在控制
16、域之内e)力争降低模块接口的复杂程度f)设计单入口单出口的模块g)模块功能应该可以预测总体设计总体设计Sunplus Technology Co.,Ltd.3.3.面向数据流的设计方法面向数据流的设计方法通俗地讲,任何软件都是对输入数据进行处理,所以面向数据流的设计方法理论上可以设计任何软件的结构。通常所说的结构化设计方法(SD方法),就是基于数据流的设计方法。a)变换流信息通常以“外部世界”的形式进入软件系统,经过处理以后再以“外部世界”的形式离开系统总体设计总体设计Sunplus Technology Co.,Ltd.a)事务流这种数据流是以“事务”为中心的。总体设计总体设计图图2222
17、变换流变换流图图2323 事务流事务流1.1.编码编码a)选择编程语言b)选择良好的编程规范c)编写高效代码2.2.测试测试a)测试类型集成测试n自顶向下集成n自底向上集成Alpha和Beta测试白盒测试n逻辑覆盖n控制结构测试黑盒测试n等价划分n边界值分析n错误推测b)单元测试重点模块接口局部数据结构重要的执行通路出错处理通路边界条件Sunplus Technology Co.,Ltd.实实 现现维维 护护Sunplus Technology Co.,Ltd.1.1.决定软件可维护性的因素决定软件可维护性的因素n可理解性 可测试性n可修改性 可移植性n可重用性2.2.软件再工程软件再工程图图2424 软件再工程过程模型软件再工程过程模型Sunplus Technology Co.,Ltd.1.1.面向对象(面向对象(OOOO)定义)定义OO=对象+类+继承+消息2.2.概念概念类(class)实例(instance)消息(message)方法(method)属性(attribute)封装(encapsulation)继承(inheritance)多态性(polymorphism)重载(overloading)面向对象方法学面向对象方法学LOGO
限制150内