软设(软件工程)41982.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《软设(软件工程)41982.docx》由会员分享,可在线阅读,更多相关《软设(软件工程)41982.docx(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、专题七:软件工程专题1、软件工程知知识1.1概述软件工程是指应应用计算机科科学、数学及及管理科学等等原理,以工工程化的原则则和方法来解解决软件问题题的工程。其其目的是提高高软件生产率率、提高软件件质量、减低低软件成本。软件工程是19968年在德德国的NATTO会议上提提出的,希望望用工程化的的原则和方法法来克服软件件危机;而软软件危机就是是软件开发和和维护过程中中的各种问题题,由于软件件开发阶段缺缺乏好的方法法的指导和好好的工具的辅辅助,而且缺缺少有关的文文档,使得大大量的软件难难以维护。软件生命周期是是指由软件定定义、软件开开发和软件维维护等阶段组组成的全过程程,反映软件件生存期内各各种工作
2、得组组织以及各个个阶段如何衔衔接。下表归归纳了软件生生存周期各个个阶段的任务务、参与人员员和产生文档档。常见的软件开开发模型有瀑瀑布模型、演演化模型、螺螺旋模型和喷喷泉模型等。阶段任务参与人员产生文档软件定义阶段待开发软软件要“做什么”系统分析确定待开发软件件的总体要求求和适用范围围,以及与之之有关的硬件件、支撑软件件的要求用户、项目负责责人、系统分分析员可合并项目计划划书中软件项目计划确定待开发软件件的目标,对对其进行可行行性分析,并并对资源分配配、进度安排排等做出合理理的计划用户、项目负责责人、系统分分析员可行性分析报告告、项目计划划书需求分析确定待开发软件件的功能、性性能、界面等等要求,
3、从而而确定系统的的逻辑模型用户、项目负责责人、系统分分析员需求规格说明书书软件开发阶段待开发软软件“怎么做”软件设计概要设计模块分解,确定定软件的结构构,模块的功功能和模块间间的接口,以以及全局数据据结构的设计计系统分析员、高高级程序员设计说明书、数数据说明书、模模块开发卷宗宗详细设计设计每个模块的的实现细节和和局部数据结结构的设计高级程序员、程程序员编码用某种程序语言言为每个模块块编写程序高级程序员、程程序员程序清单软件测试发现软件中的错错误,并加以以纠正高级程序员或系系统分析员(另另一部门或单单位)软件测试计划、软软件测试用例例说明,软件件测试报告软件维护阶段开发后交付付使用的软件件的维护
4、软件维护使软件适应外界界环境的变化化、实现功能能的扩充和质质量的改善而而修改软件维护人员维护计划、维护护报告软件由计算算机程序、数数据及文档组组成,同时与与硬件、数据据库人、过程程等共同构成成计算机系统统。软件工程程包括三个要要素:方法、工工具和过程。主要的软件件开发方法有有以下几种方方法:生命周期法法:命周期法法认为:每一一个软件系统统都有一定的的生命周期。软软件的生命周周期是指一个个软件系统从从其提出、调调查到分析、设设计和有效使使用,直至被被淘汰或取代代的整个期间间。软件生命命周期法就是是按软件生命命周期的各个个阶段划分任任务,按一定定的规则和步步骤,有效地地进行软件开开发的方法。通常一
5、个软软件系统的生生命周期可分分为五个阶段段:准备阶段段、分析阶段段、设计阶段段、实施阶段段、运行与维维护阶段原型法:原原型法是先根根据用户的最最主要要求,开开发出能实现现系统最基本本功能的一个个原型,再根根据用户对原原型使用与评评价的意见,反反复修改完善善原型,直到到等到用户满满意的最终系系统为止。原型法分44个阶段:确确定用户需求求;设计原型型;使用、评评价原型;修修改、完善原原型。1.2软件分析析 软软件开发模型型:瀑布模型型;演化模型型(原型法);螺旋模型;喷泉模型(迭迭代和无间隙隙);软件成成本模型;可可行性分析的的任务是从技技术上、经济济上、使用上上、法律上分分析需解决的的问题是否存
6、存在可行的解解。 需求分析是是软件生存周周期中相当重重要的一个阶阶段。需求分分析主要是确确定待开发软软件的功能、性性能、数据、界界面等要求。具具体有以下几几点: 确定软软件系统的综综合要求 分析软软件系统的数数据要求 导出系系统的逻辑模模型 修正项项目开发计划划 如有必必要,可开发发一个原型系系统 需求分分析的基本原原则是能够表表达和理解问问题的信息域域和功能域;以层次化的的方式进行分分解和不断细细化;要给出出系统的逻辑辑视图和物理理视图;描述软件需求的的方法:功能层次模型:一般来讲就就是系统的功功能图,模块块分布图等描描述整个系统统的功能的分分布和功能的的层次结构;数据流模型:就就是以数据流
7、流为着眼点的的分析方法得得到的模型,主主要通过数据据在整个系统统的流动情况况来确定系统统的主要功能能主线和流程程;控制流模型:通通过了解和界界定系统中控控制线,通过过控制流的走走向和控制的的对象来确定定系统的功能能分布和控制制与被控制的的关系;结构化分析(SSA)方法是是一种面向数数据流的需求求分析方法,它它适用于分析析大型数据处处理系统。结结构化分析方方法的基本思思想是自顶向向下逐层分解解,这样做可可以把一个大大问题分解成成若干个小问问题,经过多多次逐层分解解,每个最底底层的问题都都是足够简单单、容易解决决的,这个过过程就是分解解的过程。结构化方法的分分析结果由数数据流图DFFD、数据词词典
8、和加工逻逻辑说明几个个部分组成。其其中,DFDD的基本成分分有数据流(ddata fflow)、加加工(proocess)、文文件(fille)和源/宿(souurce/ssink)。n 画数数据流图的基基本步骤:自自外向内、自自顶向下、逐逐层细化、完完善求精;n 数据据流图的父图图与子图要平平衡, 即输输入和输出的的数据流一致致;n 数据据流图中的每每个加工至少少有一个输入入数据流和一一个输出数据据流;n 局部部的数据存储储不画出来,只只有当局部数数据存储作为为某些数据加加工之间的数数据接口才画画出,这有利利于信息隐蔽蔽;n 画数数据流的时候候不画控制流流,两者的区区别就是控制制流中没有数数
9、据;n 一个个加工的数据据流与输出流流不应该同名名;n 允许许一个加工有有多条数据流流流向另一个个加工,也允允许一个加工工有两个相同同的输出流向向两个不同的的加工;n 保持持数据守恒:一个加工的的所有输出数数据必须能从从该加工的所所有的输入流流中获得;n 在整整套数据流图图中,每个文文件都必须既既有读文件的的数据流也有有写文件的数数据流;软件开发过程中中的软件工程程原则(8个个): 抽象; 自顶向向下、逐层细细化; 信息隐隐蔽和数据封封装; 模块化化; 局部化化; 确定性性; 一致性性和标准化; 完备性性和可验证性性;软件工程基本原原理(7个):n 按软软件生存周期期分阶段指定定计划并认真真实
10、施;n 坚持持进行阶段评评审;n 坚持持严格的产品品控制;n 使用用现代程序设设计技术;n 明确确责任,使得得工作结果能能够得到清楚楚的审查;n 用人人少而精;n 不断断改进开发过过程;1.3软件设计计软件设计原则: 软件设计计的原则对提提高软件的设设计质量有很很大的帮助。 抽象抽象是指忽视一一个主题中与与当前目标无无关的那些方方面,以便更更充分地注意意与当前目标标有关的方面面。过程抽象象和数据抽象象是常用的两两种主要抽象象手段。 模块化模块化是指将一一个待开发的的软件分解成成若干个小的的简单的部分分模块,每每个模块可独独立地开发、测测试、最后组组装成完整的的软件。这是是一种复杂问问题的“分而
11、治之”的原则。模块是指执行某某一特定任务务的数据结构构和程序代码码。一个模块块有它的外部部特征和内部部特征。 信息隐蔽信息隐蔽是开发发整体程序结结构时使用的的法则,即将将每个程序的的成分隐蔽或或封装在一个个单一的设计计模块中,定定义每一个模模块时尽可能能少地显露其其内部的处理理。信息隐蔽蔽原则对提高高软件的可修修改性、可测测试性和可移移植性都有重重要的作用。 模块独立模块独立是指每每个模块完成成一个相对独独立的子功能能,并且与其其他模块之间间的联系简单单。衡量模块块独立程度的的度量标准有有两个:耦合合和内聚。耦合是指模块之之间联系的紧紧密程度。耦耦合度越高则则模块的独立立性越差。按按耦合度从低
12、低到高依次有有7种耦合方方式。 非直接接耦合(独立立运行) 数据耦耦合(用参数数表传递简单单数据) 标记耦耦合(传递数数据结构或者者一部分) 控制耦耦合(传递的的信息包括控控制模块的信信息) 外部耦耦合(模块与与软件之外的的环境有关) 公共耦耦合(多个模模块引用同一一全局的数据据区) 内容耦耦合(访问内内部数据,代代码重叠或者者多个入口)内聚是指模块内内部各元素之之间联系的紧紧密程度内聚聚度越低模块块的独立性越越差。按内聚聚度从低到高高依次有7种种内聚种类。 偶然内内聚(模块完完成的多个任任务,任务之之间的关系松松散) 逻辑内内聚(模块完完成逻辑相关关的一组任务务) 瞬时内内聚(模块的的所有任
13、务必必须在同一时时间间隔内执执行) 过程内内聚(模块的的处理元素相相关而且按照照特定的次序序执行) 通信内内聚(模块的的所有元素集集中在一个数数据结构区域域上) 顺序内内聚(模块的的处理元素相相关,必须顺顺序执行) 功能内内聚(模块完完成单一的功功能,各个部部分协调工作作,而且不可可缺少)模块分解原则: 满足信信息隐蔽; 尽量内内聚度高,模模块间偶合度度低; 模块大小小在(50-100语句句); 模块调调用深度不能能过大; 模块的的扇入(直接接调用该模块块)应尽量大大,扇出(直直接调用下级级模块数)不不宜过大; 设计单单入口和单出出口的模块; 模块的的作用域应在在控制域之内内:作用域:受模块块
14、内一个判定定影响的所有有的模块的集集合;控制域:该模块块本身和被该该模块直接或或间接调用的的所有的模块块的集合; 模块的的功能应是可可以预测的,相相同输入得到到相同输出结构化设计方法法结构化设计(SSD)方法是是一种面向数数据流的设计计方法,它可可以与SA方方法衔接。结构化设计采用用结构图(SSC)来描述述程序的结构构。其基本成成分有模块、调调用和输入/输出数据。结构图: 条件调用循环调用用 在需求求分析阶段用用SA方法产产生了数据流流图(DFDD)。面向数数据流的设计计可以方便的的将DFD转转换成程序结结构图。DFFD从系统的的输入数据流流到系统的输输出数据流的的一连串连续续变换形成一一条信
15、息流。DDFD的信息息流大体可分分为两种类型型:变换流和和事务流。与与之对应的也也存在两种分分析,变换分分析和事务分分析。变换分分析是从变换换流型的DFFD导出程序序结构图,而而事务分析则则是从事务流流行型的DFFD导出程序序结构图。SD方法的具体体设计步骤为为: 复查并并精化数据流流图 确定DDFD的信息息流类型 根据信信息流类型分分别将变换流流或事务流转转换成程序结结构图 根据软软件设计的原原则对程序结结构图作改进进结构化程序设计计结构化程序(SSP)设计采采用自顶向下下逐步求精的的设计方法和和单入口单出出口的控制结结构。结构化程序设计计的描述工具具主要有图形形描述工具、语语言描述工具具和
16、表格描述述工具。常用用的图形描述述工具有程序序流程图、盒盒图(NS图图)和问题分分析图(PAAD)。典型型的语言描述述工具是PDDL(proogram desiggn lannguagee)。典型的的表格描述工工具是判定表表和判定树。面向数据结构的的Jacksson方法也也十分常用: Jacckson方方法是以数据据结构为设计计基础,设计计目标是得出出对程序处理理过程的描述述,其设计过过程是从描绘绘数据结构的的Jacksson图推导导出描绘程序序结构的Jaacksonn图。这种方方法最适合于于详细设计阶阶段使用。Jacksonn方法的具体体设计步骤为为: 分析并并确定输入和和输出的数据据的逻辑
17、结构构,并用Jaacksonn图表示 找出输输入数据结构构与输出数据据结构间有对对应关系的数数据单元 从描述述数据结构的的Jacksson图导出出描述程序结结构的Jacckson图图软件编码:根据详细设计说说明书编写程程序,为开发发项目选择程程序设计语言言需要考虑的的因素有应用用领域、算法法和计算的复复杂性、软件件运行环境、用用户需求、数数据结构和开开发人员的水水平。软件的的设计质量与与程序设计语语言的技术性性能无关,但但在程序设计计转向程序代代码时,转化化的质量受语语言性能的影影响。好的程序应该具具有模块化结结构,系统应应该有较高的的模块独立性性。从应用领域看,CCOBOL适适合商业领域域;
18、FORTTRAN适合合科学计算;PROLOOG和LISSP适合人工工智能领域;SMALLLTALK、CC+、JAAVA是面向向对象语言;C是开发系系统的程序设设计语言;例题1:软件设计中划分分模块的一个个准则是A 。两个模块块之间的耦合合方式中,BB耦合的耦合合度最高,CC耦合的耦合合度最低。一一个模块内部部的内聚种类类中D内聚的内聚聚度最高,EE内聚的内聚聚度最低。A: 低内聚聚低耦合 低内聚高耦耦合 高内聚低耦耦合 高内聚高耦耦合B: 数据 非直接 控制 内容C: 数据 非直接 控制 内容D: 偶然 逻辑 功能 过程E: 偶然 逻辑 功能 过A 3 BB 4 C 2 D 3 E 1例题2关
19、于程序模块优优化的启发式式规则有若干干条,以下规规则中不符合合优化原则的的是_B_。如果一一个模块调用用下层模块时时传递一个数数据结构,则则这种耦合属属于_C_。(软软件工程)(30)A通通过模块的合合并和分解,降降低模块的耦耦合度,提高高模块的内聚聚性B提高上层模模块的扇出,减减少模块调用用的层次C将模块的作作用范围限制制在模块的控控制范围之内内D降低模块之之间接口的复复杂性,避免免“病态连接”(31)A简简单耦合B直接耦合C.标记耦合D控制耦合1.4软件测试试对源程序最基本本的质量要求求是正确性和和可靠性,此此外还很注重重软件的易使使用性、易维维护性和易移移植性。软件件测试的工作作量约占软
20、件件开发总工作作量的40%以上,其目目的是尽可能能多的发现软软件产品(主主要是指程序序)中的错误误和缺陷。软件测试是自底底向上,逐步步集成的过程程,低一级测测试为上一级级测试准备条条件;测试的关键是测测试用例的设设计,其方法法可分为两类类。白盒测试:白盒测试是根据据程序的内部部逻辑来设计计测试用例,常常用的技术是是逻辑覆盖,即即考察用例测测试数据运行行被测程序时时对程序逻辑辑的覆盖程度度。主要的覆覆盖标准有66种:I.语句覆盖盖指选择足够的测测试用例,使使被测语句的的每个语句至至少执行一次次。II.判定覆盖盖指选择足够的测测试用例,使使每个判定的的所有可能结结果至少出现现一次。III.条件覆覆
21、盖指选择足够的测测试用例,使使判定中的每每个条件的所所有可能结果果至少出现一一次。IV. 判定/条件覆盖指选择足够的测测试用例,使使判定中的每每个条件的所所有可能结果果至少出现一一次,并且每每个判定中条条件结果的所所有可能组合合也至少出现现一次。V.条件组合合覆盖指选择足够的测测试用例,使使每个判定中中条件结果的的所有可能组组合至少出现现一次。VI. 路径覆覆盖指选择足够的测测试用例,使使流程图中的的每条路径至至少经过一次次。黑盒测试:黑盒测试时根据据规格说明所所规定的功能能来设计测试试用例,它不不考虑程序的的内部结构和和处理过程。常常用的黑盒测测试技术有: 等价类类划分 边值划划分 错误猜猜
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 41982
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内