2023年软件设计师考试必备专题七软件工程专题精.doc
《2023年软件设计师考试必备专题七软件工程专题精.doc》由会员分享,可在线阅读,更多相关《2023年软件设计师考试必备专题七软件工程专题精.doc(71页珍藏版)》请在咨信网上搜索。
1、 系统分析师(软件设计师计算机学科部分经典教材 专题七:软件工程专题1 、软件工程知识1.1 概述软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程。其目的是提高软件生产率、提高软件质量、减低软件成本。软件工程是 1968 年在德国的 NATO 会议上提出的,希望用工程化的原则和方法来克服软件危机;而软件危机就是软件开发和维护过程中的各种问题,由于软件开发阶段缺少好的方法的指导和好的工具的辅助,并且缺少有关的文档,使得大量的软件难以维护。软件生命周期是指由软件定义、软件开发和软件维护等阶段组成的全过程,反映软件生存期内各种工作得组织以及各个阶段如何衔接。
2、下表归纳了软件生存周期各个阶段的任务、参与人员和产生文档。常见的软件开发模型有瀑布模型、演化模型、螺旋模型和喷泉模型等。阶段任务参与人员产生文档软件定义阶段待开发软件要“做什么”系统分析拟定待开发软件的总体规定和用户、项目负责人、系统可合并项目计划书中合用范围,以及与之有关的硬分析员件、支撑软件的规定软件项目计划拟定待开发软件的目的,对其进用户、项目负责人、系统可行性分析报告、项行可行性分析,并对资源分派、 分析员目计划书进度安排等做出合理的计划需求分析拟定待开发软件的功能、性能、 用户、项目负责人、系统需求规格说明书界面等规定,从而拟定系统的逻分析员辑模型软件开发阶段待开发软件“怎么做”概要
3、设计模块分解,拟定软件的结构,模系统分析员、高级程序员 设计说明书、数据说软块的功能和模块间的接口,以及明书、模块开发卷宗件全局数据结构的设计设具体设计设计每个模块的实现细节和局高级程序员、程序员计部数据结构的设计编码用某种程序语言为每个模块编高级程序员、程序员程序清单写程序软件测试发现软件中的错误,并加以纠正 高级程序员或系统分析软件测试计划、软件员(另一部门或单位测试用例说明,软件测试报告软件维护阶段开发后交付使用的软件的维护软件维护使软件适应外界环境的变化、实维护人员维护计划、维护报告现功能的扩充和质量的改善而修改软件软件由计算机程序、数据及文档组成,同时与硬件、数据库人、过程等共同构成
4、计算机系统。软件工程涉及三个要素:方法、工具和过程。重要的软件开发方法有以下几种方法:生命周期法:命周期法认为:每一个软件系统都有一定的生命周期。软件的生命周期是指一个软件系统从其提出、调查到分析、设计和有效使用,直至被淘汰或取代的整个期间。软件生命周期共 16 页 第 1 页系统分析师(软件设计师计算机学科部分经典教材法就是按软件生命周期的各个阶段划分任务,按一定的规则和环节,有效地进行软件开发的方法。通常一个软件系统的生命周期可分为五个阶段:准备阶段、分析阶段、设计阶段、实行阶段、运营与维护阶段原型法:原型法是先根据用户的最重要规定,开发出能实现系统最基本功能的一个原型,再根据用户对原型使
5、用与评价的意见,反复修改完善原型,直到等到用户满意的最终系统为止。原型法分 4 个阶段:拟定用户需求;设计原型;使用、评价原型;修改、完善原型。1.2 软件分析软件开发模型:瀑布模型;演化模型(原型法;螺旋模型;喷泉模型(迭代和无间隙;软件成本模型;可行性分析的任务是从技术上、经济上、使用上、法律上分析需解决的问题是否存在可行的解。需求分析是软件生存周期中相称重要的一个阶段。需求分析重要是拟定待开发软件的功能、性能、数据、界面等规定。具体有以下几点:拟定软件系统的综合规定分析软件系统的数据规定导出系统的逻辑模型修正项目开发计划如有必要,可开发一个原型系统需求分析的基本原则是可以表达和理解问题的
6、信息域和功能域;以层次化的方式进行分解和不断细化;要给出系统的逻辑视图和物理视图;描述软件需求的方法:功能层次模型:一般来讲就是系统的功能图,模块分布图等描述整个系统的功能的分布和功能的层次结构;数据流模型:就是以数据流为着眼点的分析方法得到的模型,重要通过数据在整个系统的流动情况来拟定系统的重要功能主线和流程;控制流模型:通过了解和界定系统中控制线,通过控制流的走向和控制的对象来拟定系统的功能分布和控制与被控制的关系;结构化分析(SA方法是一种面向数据流的需求分析方法,它合用于分析大型数据解决系统。结构化分析方法的基本思想是自顶向下逐层分解,这样做可以把一个大问题分解成若干个小问题,通过多次
7、逐层分解,每个最底层的问题都是足够简朴、容易解决的,这个过程就是分解的过程。结构化方法的分析结果由数据流图 DFD、数据词典和加工逻辑说明几个部分组成。其中,DFD 的基本成分有数据流(data flow、加工(process、文献(file和源/宿(source/sink。画数据流图的基本环节:自外向内、自顶向下、逐层细化、完善求精;数据流图的父图与子图要平衡, 即输入和输出的数据流一致;数据流图中的每个加工至少有一个输入数据流和一个输出数据流;局部的数据存储不画出来,只有当局部数据存储作为某些数据加工之间的数据接口才画出,这有助于信息隐蔽;画数据流的时候不画控制流,两者的区别就是控制流中没
8、有数据;一个加工的数据流与输出流不应当同名;允许一个加工有多条数据流流向另一个加工,也允许一个加工有两个相同的输出流向两个不同的加工;保持数据守恒:一个加工的所有输出数据必须能从该加工的所有的输入流中获得;在整套数据流图中,每个文献都必须既有读文献的数据流也有写文献的数据流;软件开发过程中的软件工程原则(8 个:抽象;自顶向下、逐层细化;信息隐蔽和数据封装;模块化;局部化;拟定性;一致性和标准化;完备性和可验证性;软件工程基本原理(7 个:按软件生存周期分阶段指定计划并认真实行;坚持进行阶段评审;坚持严格的产品控制;共 16 页 第 2 页系统分析师(软件设计师计算机学科部分经典教材使用现代程
9、序设计技术;明确责任,使得工作结果可以得到清楚的审查;用人少而精;不断改善开发过程;1.3 软件设计软件设计原则: 软件设计的原则对提高软件的设计质量有很大的帮助。 抽象抽象是指忽视一个主题中与当前目的无关的那些方面,以便更充足地注意与当前目的有关的方面。过程抽象和数据抽象是常用的两种重要抽象手段。 模块化模块化是指将一个待开发的软件分解成若干个小的简朴的部分模块,每个模块可独立地开发、测试、最后组装成完整的软件。这是一种复杂问题的“分而治之”的原则。模块是指执行某一特定任务的数据结构和程序代码。一个模块有它的外部特性和内部特性。 信息隐蔽信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的
10、成分隐蔽或封装在一个单一的设计模块中,定义每一个模块时尽也许少地显露其内部的解决。信息隐蔽原则对提高软件的可修改性、可测试性和可移植性都有重要的作用。 模块独立模块独立是指每个模块完毕一个相对独立的子功能,并且与其他模块之间的联系简朴。衡量模块独立限度的度量标准有两个:耦合和内聚。耦合是指模块之间联系的紧密限度。耦合度越高则模块的独立性越差。按耦合度从低到高依次有 7种耦合方式。非直接耦合(独立运营数据耦合(用参数表传递简朴数据标记耦合(传递数据结构或者一部分控制耦合(传递的信息涉及控制模块的信息外部耦合(模块与软件之外的环境有关公共耦合(多个模块引用同一全局的数据区内容耦合(访问内部数据,代
11、码重叠或者多个入口内聚是指模块内部各元素之间联系的紧密限度内聚度越低模块的独立性越差。按内聚度从低到高依次有 7种内聚种类。偶尔内聚(模块完毕的多个任务,任务之间的关系松散逻辑内聚(模块完毕逻辑相关的一组任务瞬时内聚(模块的所有任务必须在同一时间间隔内执行过程内聚(模块的解决元素相关并且按照特定的顺序执行通信内聚(模块的所有元素集中在一个数据结构区域上顺序内聚(模块的解决元素相关,必须顺序执行功能内聚(模块完毕单一的功能,各个部分协调工作,并且不可缺少模块分解原则:满足信息隐蔽;尽量内聚度高,模块间偶合度低;模块大小在(50-100 语句;模块调用深度不能过大;模块的扇入(直接调用该模块应尽量
12、大,扇出(直接调用下级模块数不宜过大;设计单入口和单出口的模块;模块的作用域应在控制域之内:作用域:受模块内一个鉴定影响的所有的模块的集合;控制域:该模块自身和被该模块直接或间接调用的所有的模块的集合;模块的功能应是可以预测的,相同输入得到相同输出结构化设计方法结构化设计(SD方法是一种面向数据流的设计方法,它可以与 SA 方法衔接。结构化设计采用结构图(SC来描述程序的结构。其基本成分有模块、调用和输入/输出数据。结构图:共 16 页 第 3 页 系统分析师(软件设计师计算机学科部分经典教材条件调用 循环调用在需求分析阶段用 SA 方法产生了数据流图(DFD。面向数据流的设计可以方便的将 D
13、FD 转换成程序结构图。DFD 从系统的输入数据流到系统的输出数据流的一连串连续变换形成一条信息流。DFD 的信息流大体可分为两种类型:变换流和事务流。与之相应的也存在两种分析,变换分析和事务分析。变换分析是从变换流型的 DFD 导出程序结构图,而事务分析则是从事务流行型的 DFD 导出程序结构图。SD 方法的具体设计环节为:复查并精化数据流图拟定 DFD 的信息流类型根据信息流类型分别将变换流或事务流转换成程序结构图根据软件设计的原则对程序结构图作改善结构化程序设计结构化程序(SP设计采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。结构化程序设计的描述工具重要有图形描述工具、语言描述
14、工具和表格描述工具。常用的图形描述工具有程序流程图、盒图(NS 图和问题分析图(PAD。典型的语言描述工具是 PDL(program design language。典型的表格描述工具是鉴定表和鉴定树。面向数据结构的 Jackson 方法也十分常用:Jackson 方法是以数据结构为设计基础,设计目的是得出对程序解决过程的描述,其设计过程是从描绘数据结构的 Jackson 图推导出描绘程序结构的 Jackson 图。这种方法最适合于具体设计阶段使用。Jackson 方法的具体设计环节为:分析并拟定输入和输出的数据的逻辑结构,并用 Jackson 图表达找出输入数据结构与输出数据结构间有相应关系
15、的数据单元从描述数据结构的 Jackson 图导出描述程序结构的 Jackson 图软件编码:根据具体设计说明书编写程序,为开发项目选择程序设计语言需要考虑的因素有应用领域、算法和计算的复杂性、软件运营环境、用户需求、数据结构和开发人员的水平。软件的设计质量与程序设计语言的技术性能无关,但在程序设计转向程序代码时,转化的质量受语言性能的影响。好的程序应当具有模块化结构,系统应当有较高的模块独立性。从应用领域看,COBOL 适合商业领域;FORTRAN 适合科学计算;PROLOG 和 LISP 适合人工智能领域;SMALLTALK、C+、JAVA 是面向对象语言;C 是开发系统的程序设计语言;例
16、题 1:软件设计中划分模块的一个准则是 A 。两个模块之间的耦合方式中,B 耦合的耦合度最高,C 耦合的耦合度最低。一个模块内部的内聚种类中 D 内聚的内聚度最高,E 内聚的内聚度最低。A: 低内聚低耦合 低内聚高耦合 高内聚低耦合 高内聚高耦合B : 数 据 非 直 接 控制 内容C : 数 据 非 直 接 控制 内容D : 偶尔 逻辑功能 过程E : 偶尔 逻辑功能 过A 3B 4C 2D 3E 1例题 2关于程序模块优化的启发式规则有若干条,以下规则中不符合优化原则的是_B_。假如一个模块调用下层模块时传递一个数据结构,则这种耦合属于_C_。(软件工程(30A.通过模块的合并和分解,减少
17、模块的耦合度,提高模块的内聚性共 16 页 第 4 页系统分析师(软件设计师计算机学科部分经典教材B.提高上层模块的扇出,减少模块调用的层次C.将模块的作用范围限制在模块的控制范围之内D.减少模块之间接口的复杂性,避免“病态连接”(31A.简朴耦合B.直接耦合C.标记耦合D.控制耦合1.4 软件测试对源程序最基本的质量规定是对的性和可靠性,此外还很注重软件的易使用性、易维护性和易移植性。软件测试的工作量约占软件开发总工作量的 40%以上,其目的是尽也许多的发现软件产品(重要是指程序中的错误和缺陷。软件测试是自底向上,逐步集成的过程,低一级测试为上一级测试准备条件;测试的关键是测试用例的设计,其
18、方法可分为两类。白盒测试:白盒测试是根据程序的内部逻辑来设计测试用例,常用的技术是逻辑覆盖,即考察用例测试数据运营被测程序时对程序逻辑的覆盖限度。重要的覆盖标准有 6 种:I. 语句覆盖指选择足够的测试用例,使被测语句的每个语句至少执行一次。II.鉴定覆盖指选择足够的测试用例,使每个鉴定的所有也许结果至少出现一次。III.条件覆盖指选择足够的测试用例,使鉴定中的每个条件的所有也许结果至少出现一次。IV. 鉴定/条件覆盖指选择足够的测试用例,使鉴定中的每个条件的所有也许结果至少出现一次,并且每个鉴定中条件结果的所有也许组合也至少出现一次。V. 条件组合覆盖指选择足够的测试用例,使每个鉴定中条件结
19、果的所有也许组合至少出现一次。VI. 途径覆盖指选择足够的测试用例,使流程图中的每条途径至少通过一次。黑盒测试:黑盒测试时根据规格说明所规定的功能来设计测试用例,它不考虑程序的内部结构和解决过程。常用的黑盒测试技术有:等价类划分边值划分错误猜测软件测试的重要环节有单元测试、集成测试和确认测试。单元测试:重要用来发现编码和具体设计中产生的错误,一般在编码阶段,采用白盒测试。集成测试(也称组装测试:重要用来发现设计阶段产生的错误,是对各模块组装而成的程序进行测试,重要检查模块间的接口和通信,采用黑盒测试。集成测试按集成方式又可提成非渐增式集成和渐增式集成,而渐增式集成又可提成自顶向下集成和自底向上
20、集成。确认测试:检查软件的功能、性能和其他特性是否与用户需求一致,它以需求规格说明书作测试为依据,采用黑盒测试Alpha 测试是在开发者的现场由客户来实行的,从用户角度和环境下进行;Beta 测试是在开发者不在现场下测试,由软件最终用户实行;使用各种测试方法的综合策略:在任何情况下都必须使用边界值分析方法,用这种方法设计出测试用例发现程序错误的能力最强;必要时用等价类划分方法补充一些测试用例;用错误推测法再追加一些测试用例对照程序逻辑,检查已有测试用例的逻辑覆盖限度假如程序的功能说明中具有输入条件的组合情况,则选用因果图法例题:软件测试的目的是 A 。通常 B 是在代码编写阶段可进行的测试,它
21、是整个测试工作的基础。逻辑覆盖标准重要用于 C 。它重要涉及条件覆盖、条件组合(多重条件覆盖、鉴定覆盖、条件及鉴定覆盖、语句覆盖和途径覆盖等几种,其中除途径覆盖外最弱的覆盖标准是 D ,最强的覆盖标准 E 。共 16 页 第 5 页系统分析师(软件设计师计算机学科部分经典教材A: 表白软件的对的性 评价软件质量尽也许发现软件中错误 鉴定软件是否合格B: 系统测试 安装测试 验收测试 单元测试C : 黑 盒 测 试 方 法 白 盒 测 试 方 法 灰 盒 测 试 方法 软件验收方法D、E: 条件覆盖 条件组合覆盖 鉴定覆盖条件及鉴定覆盖 语句覆盖A: B: C: D: E:1.5 软件开发工具与
22、环境(CASE用来辅助软件开发、运营、维护、管理和支持等过程中的活动的软件称为软件工具,通常也称为CASE(计算机辅助软件工程工具。整个软件开发过程要使用很多开发工具,其中涉及分析工具、设计工具、编程工具、测试工具、维护工具等等。软件开发工具是指支持软件产品开发的软件系统,它由软件工具集和环境集成机智构成。工具集涉及支持软件开发相关过程、活动、任务的软件工具;环境集成机智为工具集成和软件开发、维护和管理提供统一的支持。软件开发环境是把一组相关的工具集成在环境中,提供数据集成、控制集成和界面集成等机制。其中:数据集成机制:提供统一的数据模式和数据接口规范,需要互相协同的工具通过这种统一的规范互换
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 软件 设计师 考试 必备 专题 软件工程
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。