自考_软件工程复习资料
软件工程复习资料精选全文完整版
可编辑修改精选全文完整版一、单选题(共20题,40分)1、使用数据流图,并不断细化的需求获取方法是()。
(2.0)A、简易的应用规格说明B、面向数据流自顶向下逐步求精C、访谈D、快速原型法正确答案: B2、Z语言是以()为基础的形式化规格说明语言。
(2.0)A、微积分B、概率C、图形D、一阶谓词演算正确答案: D3、HIPO是指(2.0)A、层次输入处理输出图或表B、层次功能结构图C、功能结构图D、输入处理输出图或表正确答案: A4、高铁调用系统最适宜采用()方法。
(2.0)A、有穷状态机B、 Petri网C、 Z语言D、一阶线性时态逻辑正确答案: B5、假设学生年龄的成绩输入范围为18-25,则根据等价类划分技术,下列划分正确的是()。
(2.0)A、可划分为2个有效等价类,2个无效等价类B、可划分为1个有效等价类,2个无效等价类C、可划分为2个有效等价类,1个无效等价类D、可划分为1个有效等价类,1个无效等价类正确答案: B6、用于并发系统,解决定时问题的形式化方法是()。
(2.0)A、 VDMB、 Z语言C、 Petri网D、一阶线性时态逻辑正确答案: C7、软件生命周期中所花费费用最多的阶段是(2.0)A、需求分析B、软件总体设计C、软件维护D、软件实现正确答案: C8、软件质量保证措施SQA不包括:(2.0)A、复审或评审B、软件测试C、程序正确性证明D、软件代码编写正确答案: D9、希望确定软件实现的功能是否与需求规格说明书一致,需进行()。
(2.0)A、单元测试B、有效性测试C、确认测试D、集成测试正确答案: C10、总体设计不包括:(2.0)A、体系结构设计B、数据库设计C、模块内算法设计D、逻辑数据结构设计正确答案: C11、关于类和对象的说法,正确的是(2.0)A、一个类只能有一个角色B、类的命名必须用动词C、类的所有对象都具有相同的属性和操作D、类是对象的实例,对象是类的抽象正确答案: C12、数据字典的基本功能是(2.0)A、数据库设计B、数据通信C、数据定义D、数据维护正确答案: C13、软件需求规格说明的内容不应该包括(2.0)A、主要功能B、算法的描述C、用户界面及其运行环境D、软件性能正确答案: B14、增量模型在添加新的模块时,有一个要求是()(2.0)A、需要更多的测试B、有足够的开发人员C、软件体系结构开放D、各个模块都要进行评审正确答案: C15、在软件详细设计过程中不采用的工具是(2.0)A、判定表B、PDLC、程序流程图D、DFD正确答案: D16、软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试(2.0)A、结构合理性B、软件外部功能C、程序正确性D、程序内部逻辑正确答案: B17、耦合是模块之间的相对独立性的度量。
自考04735考点总结
自考04735考点总结一、引言自考04735,即《软件工程导论》是自考软件工程专业必修课程之一。
作为软件工程专业的入门课程,04735涉及了软件工程的基本概念、方法和技术等内容。
下面将对该课程的考点进行总结,以帮助考生更好地备考和复习。
二、考点总结1. 软件工程概述•软件工程的定义和特点•软件工程的发展历程•软件危机及其产生的原因•软件工程的目标和任务在这一部分,考生需要了解软件工程的基本概念和发展历程,理解软件工程的重要性以及软件危机的原因,明确软件工程的目标和任务。
2. 软件过程与模型•软件过程的定义和特点•软件过程模型的分类和特点•瀑布模型、原型模型、增量模型、螺旋模型等具体的软件过程模型这一考点要求考生了解软件过程的基本概念和特点,掌握各种常见的软件过程模型的分类和特点,并能够理解各个模型的优缺点。
3. 需求工程•需求工程的定义和重要性•需求获取、需求分析和需求规格说明等过程•需求验证和需求管理考生需要了解需求工程的定义和重要性,掌握需求获取、需求分析和需求规格说明等过程的基本方法和技巧,并了解需求验证和需求管理的基本概念。
4. 软件设计•软件设计的基本原则和方法•结构化设计和面向对象设计•软件结构图、数据字典和程序流程图等设计工具在这一部分,考生需要掌握软件设计的基本原则和方法,了解结构化设计和面向对象设计的基本概念和特点,并能够灵活运用软件设计工具。
5. 软件测试•软件测试的目的和原则•软件测试的基本分类和测试方法•软件测试的工具和技术考生需要了解软件测试的目的和原则,掌握软件测试的基本分类和测试方法,了解软件测试的常用工具和技术。
6. 软件质量与质量管理•软件质量的定义和特点•软件质量的度量和评估•软件质量管理体系和质量保证最后一个考点要求考生掌握软件质量的定义和特点,了解软件质量的度量和评估方法,并了解软件质量管理体系和质量保证的基本原理和方法。
三、总结自考04735考试中,以上列举的六个考点是比较重要的内容,是考试中需要重点关注和准备的部分。
软件工程复习资料精华版
软件工程复习资料软件工程单元一一单项选择1.软件是一种逻辑产品,它的开发主要是〔A 〕。
A研制B拷贝C再生产D复制2.软件生命周期一般包括:软件开发期和软件运行期,下述〔D 〕不是软件开发期所应包含的内容。
A需求分析 B 结构设计C程序编制D软件维护3.以文档作为驱动,适合于软件需求很明确的软件项目的生存周期模型是〔 C 〕。
A喷泉模型 B 增量模型C瀑布模型D螺旋模型4.在软件生存周期中,〔B 〕阶段必须要答复的问题是“要解决的问题是做什么?”。
A详细设计 B 可行性分析和项目开发计划C概要设计D软件测试5.软件产品与物质产品有很大区别,软件产品是一种〔C 〕产品A有形 B 消耗 C逻辑D文档6.〔C 〕把瀑布模型和专家系统结合在一起,在开发的各个阶段上都利用相应的专家系统来帮助软件人员完成开发工作。
A 原型模型 B 螺旋模型 C 基于知识的智能模型 D 喷泉模型7.( B )阶段是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。
A概要设计 B 详细设计 C 编码 D 测试8.以下软件开发模型中,适合于那些不能预先确切定义需求的软件系统的开发的模型是〔A 〕。
A 原型模型B 瀑布模型C 基于知识的智能模型D 变换模型9.以下软件开发模型中,以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型是〔 C 〕。
A 原型模型 B 瀑布模型 C 喷泉模型 D 螺旋模型10.以下软件开发模型中,支持需求不明确,特别是大型软件系统的开发,并支持多种软件开发方法的模型是〔 D 〕。
A 原型模型 B 瀑布模型 C 喷泉模型 D 螺旋模型11.软件特性中,使软件在不同的系统约束条件下,使用户需求得到满足的难易程度称为〔C 〕。
A可修改性B可靠性C可适应性 D 可重用性12.软件特性中,一个软件能再次用于其他相关应用的程度称为〔B 〕。
A可移植性B可重用性 C 容错性 D 可适应性13.软件特性中,〔A 〕是指系统具有清晰的结构,能直接反映问题的需求的程度。
(专升本)自考《软件工程》备考知识点汇总
(专升本)自考《软件工程》备考知识点汇总自考《软件工程》备考知识点汇总软件工程作为一门重要的学科,涵盖广泛的知识点。
对于计划参加自考《软件工程》考试的考生来说,了解并掌握备考知识点是非常重要的。
本文将结合《软件工程》课程大纲,对备考知识点进行汇总与总结,帮助考生有效备考。
一、软件工程概述软件工程的基本概念和原理、软件生命周期、软件过程模型、软件工程发展历程等。
1.1 软件工程的定义和目标软件工程是一门将系统化、规范化和可量化的方法应用于软件的开发、运维和维护的学科。
其目标是提高软件的质量、效率和可靠性。
1.2 软件生命周期软件生命周期包括需求分析、设计、编码、测试、交付、运维等阶段。
每个阶段都具有相应的活动和产出物。
1.3 软件过程模型常见的软件过程模型包括瀑布模型、迭代模型、增量模型、螺旋模型、敏捷开发等。
每种模型都有自己的优缺点,适用于不同的项目和团队。
1.4 软件工程发展历程软件工程的发展经历了不同的阶段,从软件危机到软件工程的产生和发展,包括软件工程的兴起、规范化和认证等。
二、需求分析与设计软件需求分析和设计是软件工程中至关重要的环节,涉及到对用户需求的理解和转化。
2.1 需求分析方法需求分析方法包括面向对象的方法、结构化分析方法、数据流图等,可以帮助开发人员理解用户需求并建立准确的需求规格说明书。
2.2 需求规格说明书需求规格说明书是对软件需求的详细描述和定义,包括功能需求、非功能需求、用户需求等,为软件设计和开发提供依据。
2.3 软件设计原则常见的软件设计原则包括单一职责原则、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则等。
良好的设计原则可以提高软件的可维护性和扩展性。
三、软件开发与编码规范软件开发和编码规范是保证软件质量和可维护性的重要环节,包括选择开发语言、代码风格约定等。
3.1 软件开发过程软件开发过程包括需求分析、设计、编码、测试和部署等阶段,每个阶段都需要遵循相应的规范和流程。
自考02333软件工程复习重点
《软件工程》复习重点通过对使用2011版教材后的真题的分析,试卷的主要分值分布在第3章和第6章,这两章几乎占到50分左右,第1章和第8章的考核知识点相对较少。
本课程的考试题型为:(1)单项选择题,共15小题,每小题2分,共30分(2)填空题,共20个空,每空1分,共20分(3)简答题,共6小题,每小题5分,共30分(4)综合应用题,共2题,每题10分,共20分复习建议:(1)通读教材至少一遍,各章的“本章小结”起码认真读三遍,每一次的考卷上都有直接从“本章小结”中出的题。
(2)以往的综合题多出现在第3章和第6章,一定要多花功夫,力争将历年考题中的综合应用题都做一做。
(3)有的放矢。
在学习的过程中,为了达到“事半功倍”,要学会“舍”。
要用有限的时间去抓重点,对重点内容要进行深入细致的学习。
(4)本复习重点是依据教材整理出来的,尽量将命题过程中可能要考到的知识点涵盖进来,因本课程是知识点的识记、理解、应用相结合,需要大家首先在理解的基础上大量记忆。
第一章绪论第一节软件工程概念的提出与发展1.软件危机(1)速度:软件的发展水平远远滞后于硬件的发展水平,生产率低下,软件制造仍然是一种人工集约生产方式(2)质量:软件的质量低下,不能满足用户的需求、适应性差(3)成本:软件开发成本居高不下软件开发的速度、软件制品的质量、软件开发成本是软件工程的三个核心问题。
2.软件工程的发展近几年,软件复用技术:构件技术、平台技术、需求工程技术、领域分析技术、应用集成技术等。
第二节软件开发的本质1.软件软件=程序+文档2.软件开发的本质:“映射”,即实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。
3.系统建模运用所掌握的知识,通过抽象,给出系统的一个结构。
4.模型模型是一个抽象。
模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述、对系统内各模型元素以及它们之间关系的语义描述。
软件工程自考复习资料参考
軟件工程复习资料一:选择题1:需求分析2:喷泉模型3:SA 4:PAD图5:模块结构图6:Pascal语言7:逻辑内聚8:单元测试9:确认测试10:扇出11:1 12:人工检测13:可理解性,可修改性,可移植性14:设计工具15:喷泉模型二:填空题1:软件工具一般是指为了支持软件人员(开发和维护)活动而使用的软件。
2:任何软件工程项目的基础是(软件需求)。
3:需求阶段的主要任务一般包括需求发现、需求分析、需求认证、最终形成系统的(软件需求规格说明书)。
4:数据流图一般可分为变换型和(事务性)。
5:面向对象分析中,动态模型使用(状态图),作为扫描工具,该图反映了状态和事件的关系。
6:在软件结构的设计中,各个模块之间要求降低耦合性、提高(内聚性)。
7:Jackson方法是一种面向(数据结构)的开发方法。
8:结构化语言是介于(自然语言)。
9:在UML中,扫描系统与外部系统及用户之间交互的图是(用况图)。
10:软件产品在交付使用之前一般要经过(单元测试)、集成测试。
11:子类自动共享父类,属于(继承性)。
12:效率是指处理时间、(存储空间)。
13:调试技术有简单的方法,归纳方法、(演绎法)、和回溯方法。
14:软件维护的内容包括校正性维护、适应性维护、(完善性维护)和预防性维护。
15:软件维护性用七种特性来衡量,分别是(可理解性)、可测性、可修改性、可靠性、可移植性、可使用性。
16:渐增模型是瀑布模型的变种,分为两类:增量构造模型和(演化提交模型)。
17:软件版本控制是属于(软件控制)的活动内容。
18:Rup是基于(UML)的一种软件开发过程框架,两者一起才能称得上是一种软件开发方法学。
19:状态图反映了...(事件与状态)的关系20:软件的生产经历了三个阶段,程序设计、程序系统时代、和(软件工程时代)。
三:简答题1什么是软件生存周期,他可以分为几个阶段。
一个软件从提出开发需求直到该软件报废为止的整个时代。
2024年10月《软件工程》全国自考考题含解析
2024年10月《软件工程》全国自考考题一、单项选择题1、CMMI组织过程改善的成熟度等级中的2级是______。
A.已执行级B.已定义级C.已管理级D.已定量管理级2、软件测试中,白盒测试技术依据的是程序的______。
A.逻辑结构B.输入数据C.状态D.功能3、RUP中,用于捕获系统语境中的一些重要领域对象,其中领域对象表达系统工作环境中存在的事物或发生的事件,领域模型一般采用______。
A.PAD图B.流程图C.类图D.N-S图4、“与所规约的系统执行之间的偏差”是指______。
A.错误B.失效C.故障D.误差5、面向对象方法源于面向对象______。
A.分析B.设计C.建模语言D.编程语言6、下列可用于概念模型和软件模型的动态结构的是______。
A.类图B.对象图C.部署图D.用况图7、下列不属于需求规约的基本性质是______。
A.可重复的B.重要性和稳定性程度C.完整的D.一致的8、在教师科研方案中规定对教授、副教授和讲师分别计算分数,做相应的处理,则根据黑盒测试中的等价类划分技术,下列划分正确的是______。
A.3个有效等价类,3个无效等价类B.3个有效等价类,1个无效等价类C.1个有效等价类,1个无效等价类D.1个有效等价类,3个无效等价类9、软件生存周期是指______。
A.开发软件的全部时间B.使用软件的全部时间C.开发和使用软件的全部时间D.从形成概念开始到最后淘汰让位于新的软件产品的时间10、RUP设计阶段的主要活动不包含______。
A.程序设计B.体系结构设计C.用况设计D.类设计11、指一个模块内部各成分之间相互关联程度的度量是______。
A.耦合B.内聚C.扇入D.扇出12、有效性测试的目标是发现软件实现的功能与下列哪个选项不一致,正确的是______。
A.需求规格说明书B.概要设计说明书C.详细设计说明书D.测试计划13、结构化分析方法给出了一种能表达功能模型的工具是______。
02333自考 软件工程复习资料
一,第一章1.软件工程→1968年的NATO会议上提出解决“软件危机”2.倡导工程原理,原则,方法进行软件开发,以期解决“软危”3.软件工程:用计算机科学理论和技术和工程管理原则方法,按预算,进度满足用户要求的软件产品工程。
4.软工两时间:1. 60-80年代,系统规模,复杂性,关键领域应用,提出了waterfall, C, Pascal, Ada; Jackson方法,结构化方法。
2. 80年代后大量软件的实践,过程支持,软件生产技术,复用技术,生产管理。
《软件和存周期过程》,C++, Eiffel, Smalltalk5.软件=程序+文档,是逻辑实体,“无形”6.程序=处理对象+处理规则7.文档=理解程序所需的阐述性资料8.软件开发的本质:不同抽象层术语+处理逻辑之间的“映射”9.建模的方法:结构化方法,面向对象方法,诸多面向数据结构方法10.模型:待建系统的任意抽象,包括基本能力,特性,或其他方面;抽象上对物理系统的描述,系统边界,关系的主义描述。
11.软件系统模型:1,概念模型(用户)2,软件模型(开发者)a)需求→概念模型b)设计→软件模型c)实现→软件模型d)部署→软件模型12.软件开发有技术和管理上的问题二,第二章1.正确定义问题,是解决问题的基础2.需求是“要予构造”的陈述,描述了软件“能力”“性能参数”“其他性质”3.需求的性质:a)必要b)无歧义c)可测/测量d)可跟踪4.验证需求是不是歧义→需求复审5.需求分类:功能/非功能(性能,外部接口,设计约束,质量属性),6.需求发现:自悟,交谈,观察,小组会,提炼a)自悟要求高,要有想象力/需求不正确b)交谈依赖“正确提问”“揭示本意”/不能认识到合理需求→复审c)观察要有洞察力/客户抵触,客户认为熟悉了业务d)小组会人力资源,良好的需求发现能力,达成共识/客观条件限制,互相矛盾的需求e)提炼要有想像力和需求标识力熟悉技术和法规/无法验证需求是否正确7.需求规约是陈述的正式文档,表达概念模型a)重要性和稳定性程度b)可修改c)完整d)一致8. 需求规约表达:非形式化(规模小,不复杂,小型软件),半形式和形式化(主要为了验证程序正确)9. 需求规约作用:a) 技术合同,产品功能和环境体现b) 管理控制点c) 正式,受控的起点d) 初始测试计划,用户系统操作描述10. 需求规约不是一个设计文档,用于设计的文档,也不是进度和规划文档三,第三章1.软件需求中三挑战:1. 问题空间理解2. 人与人之间通信3. 需求的变化性2.20世纪70年代提出结构化方法3.基本术语1. 数据流程2. 加工3. 数据存储4. 数据源和数据潭4.数据流图DFD P375.按功能分解的设计思想:自顶向下,逐步求精6.数据字典:[=]定义为;[|]或者;[+]顺序;[{}]重复;[m.n]子界7.数据结构3种条目:数据流条目;数据存储条目;数据项条目8.结构化语言是形式化语言和自然语言之间的语言9.判定表;判定树P4311. 图元数7正负212. 15%的错误源自错误的需求13. 总体设计:模块和模块调用14. 总体设计:模块结构图/层次图/HIPO 图P4515. “高内聚,低耦合”16.数据流图分为:变换型和事务型17.模块化,软件分为简单的高内聚低耦合的模块(两部分:接口和模块体)18.耦合:依赖程度的度量。
软件工程复习资料
软件工程复习资料1. 软件工程概述软件工程是一门研究如何构建和维护软件系统的学科。
它涵盖了软件开发的各个方面,包括软件需求、设计、编码、测试、维护等。
本节将对软件工程的基本概念和重要原理进行介绍。
1.1 软件工程的定义软件工程是一种应用工程原理、方法和工具来开发和维护高质量软件的系统工程。
它关注软件开发过程中的各个环节,以提高软件质量和开发效率。
1.2 软件工程的目标软件工程的目标是开发高质量的软件系统,满足用户需求,具备良好的可维护性和可扩展性。
通过采用合适的开发方法和工具,提高软件开发过程的可靠性和效率。
1.3 软件工程的原则软件工程遵循一些重要的原则来指导软件开发过程,包括模块化、抽象、信息隐藏、接口规范、单一职责等原则。
这些原则有助于提高软件质量和可维护性。
2. 软件开发过程软件开发过程是指将软件需求转化为可执行软件的过程。
它包括需求分析、设计、编码、验证和维护等阶段。
本节将介绍常用的软件开发过程模型和相应的方法。
2.1 瀑布模型瀑布模型是一种线性的软件开发过程模型,包括需求分析、设计、编码、测试和维护等阶段。
瀑布模型适用于需求稳定的项目,但不适用于需求频繁变更的项目。
2.2 敏捷开发敏捷开发是一种迭代的软件开发过程模型,强调快速反馈和适应需求变化。
敏捷开发方法包括Scrum、XP等。
它适用于需求不确定或频繁变更的项目。
2.3 增量开发增量开发将软件系统划分为多个增量,每个增量包含了一个或多个功能模块。
每个增量的开发和测试独立进行,逐步完善系统。
增量开发适用于大型项目和复杂项目。
2.4 软件开发过程的选择选择适合项目的软件开发过程模型非常重要。
需要考虑项目的规模、需求的稳定性、团队的能力等因素来决定采用哪种开发过程模型。
3. 软件需求工程软件需求工程是软件工程的一项重要活动,旨在准确捕获用户需求,并将其转化为可执行的软件需求规格。
本节将介绍软件需求的定义、分类和常用的需求获取和分析方法。
软件工程复习资料-完整版
软件工程复习资料-完整版一、概述软件工程是一门关于开发、维护和管理软件的综合学科。
它涵盖了软件开发的各个阶段,包括需求分析、设计、编码、测试和维护。
软件工程的目标是提供高质量的软件,满足用户的需求,同时将开发过程控制在预定的时间和预算范围内。
二、软件生命周期1. 需求分析阶段在需求分析阶段,开发团队与用户沟通,了解用户的需求和期望。
通过需求分析,确定软件的功能和性能要求,制定详细的需求规格说明。
2. 设计阶段在设计阶段,团队根据需求规格说明,设计软件的整体架构和模块。
设计阶段包括概要设计和详细设计,概要设计主要确定软件的整体结构,详细设计则更加具体,包括模块的功能和接口设计。
3. 编码阶段在编码阶段,根据详细设计,实现软件的各个模块。
编码时应遵循编程规范,确保代码的可读性和可维护性。
同时,要进行单元测试,确保每个模块的功能正确。
4. 测试阶段在测试阶段,对软件进行不同层次的测试,包括单元测试、集成测试和系统测试。
单元测试测试各个模块的功能,集成测试测试模块之间的接口,系统测试测试整个系统的功能和性能。
5. 部署和维护阶段在软件开发完成后,需要将软件部署到目标环境中,并进行用户培训。
同时,还需要对软件进行维护和升级,以解决出现的问题和满足用户的需求变化。
三、软件工程的原则1. 模块化将软件划分为多个模块,每个模块负责特定的功能。
模块化能够提高软件的可维护性和复用性,同时有利于团队的协作开发。
2. 可伸缩性软件应该具备可伸缩性,能够满足不同规模和需求的用户。
在设计和实现软件时,需要考虑未来的扩展和升级,保证软件的灵活性。
3. 可测试性软件应该具备可测试性,方便进行各个阶段的测试。
在设计和编码时,需要考虑如何进行自动化测试,提高测试的效率和覆盖率。
4. 可维护性软件应该具备可维护性,方便对软件进行改进、修复和升级。
在设计和编码时,需要遵循良好的编程规范,提高代码的可读性和可维护性。
5. 文档化软件开发过程需要进行详细的文档记录,包括需求文档、设计文档、测试文档等。
软件工程复习资料-完整版
一、选择题:1、用例图中,用来表示用例的符号为( B ) 。
2、协作图中包含的元素包括(A ) 。
A. 对象 B. 链 C. 激活 D. 消息3、在类图中,哪种关系表达整体与部分的关系( D ) 。
A .泛化 B. 实现 C. 依赖 D. 聚合4、下列各种图形符号中,用来表示组成关系的符号为 (B )。
A. B. C. D.5 、(A )工具在软件的详细设计中不能使用。
A . DFD B. N-S 图 C. 流程图 D. PDL6 、 “软件危机”是指 (C )。
A. 计算机病毒的出现B. 利用计算机进行经济犯罪活动C. 软件开发和维护中出现的一系列问题D. 人们过分迷恋计算机系统7 、 快速原型是利用原型辅助软件开发的一种新思想,它是在研究 (A )的方法和技术中产生 的。
A. 需求阶段B. 设计阶段C. 测试阶段D. 软件开发的各个阶段8、从严格意义上讲,下列 4 个选项中属于顺序图的元素是(ABCD ) 。
A.对象B. 参与者C. 消息D. 激活9、下列 UML 图形中, (ABCD )属于 UML 的动态视图。
A. 协作图B. 状态图C. 活动图D. 顺序图10、数据字典是软件需求分析阶段的最重要的工具之一,其最基本的功能是( D ) 。
A. 数据库设计B. 数据通信C. 数据关系描述D. 数据定义11、详细设计与概要设计衔接的图形工具是 (D )。
A. DFD 图B. 程序图C. PAD 图D. SC 图12 、UML 中,大多数建模者把节点分为(AC )A . 设备 B. 构件 C. 处理器 D. 显示器13 、(C)是一种特殊形式的状态机,用于对计算流程和工作流程建模。
A .时间图 B. 流程图 C. 活动图 D. 状态图14 、(A )描述从状态到状态的控制流程,常用来对系统的动态特征进行建模。
A. 状态图B. 序列图C. 协作图D. 活动图15、下列特点属于描述用例的特点的是( D ) 。
自考《软件工程》
软件工程普通是指计算机系统中的程序及其文档。
是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件的工程,或者以此为研究对象的学科。
随着计算机的广泛应用,软件生产率、软件质量远远满足不了社会发展的需求,成为社会、经济发展的制约因素,人们通常把这一现象称为“软件危机”。
软件开辟的本质:不同抽象层术语之间的“映射”,以及不同抽象层处理逻辑之间的“映射”。
软件开辟的基本途径是问题建模。
常用的建模手段有:结构化方法、面向对象方法以及诸多面向数据结构方法等。
所谓模型,简单的说,是待建系统的任意抽象,是特定意图下所确定的角度和抽象层次上对物理系统的描述。
在软件开辟中,软件系统模型大体上可分为两类:概念模型和软件模型。
一是过程方向,即求解软件的开辟逻辑;二是过程途径,即求解软件的开辟手段。
是产品/系统设计、实现以及验证的基本信息源之一,是任何软件工程项目的基础。
规约了系统或者系统构件必须执行的功能,是整个需求的主体。
分为性能需求、外部接口需求、设计约束和质量属性需求。
性能需求规约了一个系统或者系统构件在性能方面必须具有的一些特征;外部接口需求规约了系统或者系统构件必须与之交互的用户、硬件、软件或者数据库元素;设计约束限制了软件系统或者软件系统构件的设计方案的范围;质量属性规约了软件产品所具有的一个性质必须达到其质量方面一个所期望的水平。
是一个软件项/产品/系统所有需求陈述的正式文档,它表达了一个软件产品/系统的概念模型。
需求具有如下 5 个基本性质:①必要的,该需求是用户所要求的;②无歧义的,该需求只能用一种方式解释;③可测的,该需求是可进行测试的;④可跟踪的,该需求可从一个开辟阶段跟踪到另一个阶段;⑤可测量的该需求是可测量的。
需求规约满足以下 4 个基本性质:①重要性和稳定性程度:按需求的重要性和稳定性,对需求进行分级;②可修改的:在无非多地影响其他需求的前提下,可以容易地修改一个单一需求;③完整的:没有被遗漏的需求;④一致的:不存在互斥的需求。
软件工程复习资料选择题简化版
一、单项选择题1.软件开发旳瀑布模型最经典地刻画了软件生命周期旳阶段划分, 而与其最相适应旳软件开发措施是( C )A 构件化措施B 面向对象措施C 构造化措施D 原型化措施2.与软件开发措施亲密有关旳应是支持该措施实行旳软件工具, 将它们有机地集成起来则构成一种( A )A 软件工程环境B 软件开发规范C 软件生产线D 软件开发工具3.软件生命周期一般可以分为两个大旳阶段, 它们分别是( B )A 分析和设计B 开发和运行C 编码和测试D 规划和设计4.软件构造图能描述软件系统旳总体构造, 它应在软件开发旳哪一种阶段提出?( B )A 需求分析B 总体(概要)设计C 详细设计D 代码编写5.软件需求阐明书中应包括多方面旳内容, 下述哪个不是软件需求阐明书中应包括旳内容?( D )A 数据描述B 功能描述C 性能描述D 构造描述6.软件测试措施一般有黑盒测试和白盒测试, 而黑盒测试重要是根据程序旳( C )旳测试。
A 构造B 流程C 功能D 逻辑7、在面向对象中, 为了实现信息隐蔽而把对象旳所有属性内容和服务旳实现过程结合成为一种独立旳实体。
这种数据组织旳构造方式属于( B )。
A 继承B 封装C 构造与连接D 消息8、在软件旳使用过程中, 根据顾客提出旳新增系统功能和改善性能旳规定而对软件进行修改或再开发, 以扩充软件功能、增强软件性能、改善加工效率、提高软件质量旳工作属于( D )。
A 适应性维护B 防止性维护C 改正性维护D 完善性维护9、耦合性用来度量模块之间联络旳次数和强度, 模块之间旳耦合性越低越好, 内聚性越高越好。
下面哪个属于中度耦合( A )。
P191A 数据耦合B 控制耦合C 外部耦合D 内容耦合10、程序测试是一项复杂旳工作, 一般测试者在进行测试中都需要设计( B )。
A 数据构造B 测试实例C 测试阶段D 测试措施1.软件是一种( B )产品。
A 有形B 逻辑C 物质D 消耗2.软件危机旳重要原因有( C )。
【免费下载】软件工程自考复习资料
《软件工程》复习资料第一章绪论1.1软件工程的产生1.1.1软件的特点软件的定义:计算机程序及其说明程序的各种文档软件的特性:(1)软件是一种逻辑产品,它与物质产品有很大的区别(2)软件产品的生产主要是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发研制完成后,通过复制就产生了大量软件产品(3)软件产品不会用坏,不存在磨损、消耗问题(4)软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,大部分产品是“定做”的(5)软件费用不断增加,软件成本相当昂贵1.1.2软件生产的发展1)程序设计时代(1946年~1956年)这个阶段的生产方式是个体手工劳动,使用的工具是机器语言、汇编语言。
开发方法是追求编程技巧,追求程序运行效率程序难读、难懂、难修改硬件特征是价格贵、存储容量小、运行可靠性差软件特征是只有程序、程序设计概念,不重视程序设计方法2)程序系统时代(1956年~1968年)这个阶段的生产方式是作坊式的小集团合作生产,生产工具是高级语言开发方式仍旧靠个人技巧,但开始提出结构化方法硬件特征是速度、容量、工作可靠性有明显提高,价格降低,销售有爆炸性增长软件特征是程序员数量猛增,大量其他行业人员进入这个行业,因为缺乏训练,因而开发人员素质差这时已意识到软件开发的重要性,但开发技术没有新的突破,大量软件开发的需求已提出,但开发人员的素质和落后的开发技术不适应规模大、结构复杂的软件开发,产生了尖锐的矛盾,导致了软件危机的产生3)软件工程时代(1968年至现在)这阶段的生产方式是工程化的生产,使用数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件硬件特征是向超高速、大容量、微型化以及网络化方向发展软件特征是开发技术有很大进步,但是未能获得突破性进展,软件价格不断上升,没有完全摆脱软件危机1.1.3软件危机1.软件危机的产生软件发展到第二阶段末期,软件开发技术的进步跟不上硬件发展的速度2.软件危机的表现(1)经费预算经常突破,完成时间一再拖延(2)开发的软件不能满足用户要求(3)开发的软件可维护性差(4)开发的软件可靠性差3.软件危机的原因(1)软件的规模越来越大,结构越来越复杂(2)软件开发管理困难而复杂(3)软件开发费用不断增加(4)软件开发技术落后(5)生产方式落后(6)开发工具落后1.1.4软件工程1968年北大西洋公约组织的工作会议上首先提出“软件工程”的概念,要用工程化的思想来开发软件1.软件工程定义用科学知识和技术原理来定义、开发、维护软件的一门科学2.软件工程的性质软件工程是一门综合性的交叉学科,涉及计算机科学、工程科学、管理科学、数学等领域计算机科学中的研究成果均可用于软件工程,但计算机科学着重于原理和理论,而软件工程着重于如何建造一个软件系统软件工程要用工程科学中的观点来进行费用估算、制定进度、制定计划和方案软件工程要用管理科学的方法和原理进行软件的生产和管理软禁工程要用数学的方法建立软件开发中各个种模型和各种算法3.软件工程目标目的是成功的建造一个大型软件系统所谓成功,是要达到付出较低的开发成本达到要求的软件功能取得较好的软件性能开发的软件易于移植需要较低的维护费用能按时完成开发任务,及时交付使用开发的软件可靠性高4.软件工程内容主要是软件开发技术和软件管理两个方面软件开发技术中主要研究软件开发方法、软件开发过程、软件开发工具和环境软件开发管理中主要研究软件管理学、软件经济学、软件心理学5.软件工程面临的问题a)软件费用b)软件可靠性c)软件维护d)软件生产率e)软件重用1.2软件工程过程和软件生存周期1.2.1 软件工程过程目的是为各种人员提供一个公共的框架,以便用相同的语言进行交流(1)获取过程(2)供应过程(3)开发过程(4)操作过程(5)维护过程(6)管理过程(7)支持过程1.2.2 软件生存周期指一个软件从提出开发要求开始直到该软件报废为止的整个过程(1)可行性分析和项目开发计划必须要回答的问题是“要解决的问题是什么”,有可行的解决办法吗,如果有需要多少费用多少资源时间明确项目性质明确项目目标明确项目规模确定该问题有没有可行的解决办法指定项目开发计划(2)需求分析确定软件系统必须做什么确定软件系统必须具备哪些功能(3)概要设计把确定的各项功能需求转换成需要的体系结构设计软件的结构,明确该结构的模块组成(4)详细设计为每个模块完成的功能进行具体描述,把功能描述转变为精确地、结构化的过程描述(5)编码把每个模块的控制结构转换成计算机可接受的程序代码,即写成以某种特定程序设计语言表示的“原程序清单”(6)测试保证软件质量的重要手段(7)维护1.3软件生存周期模型、方法和工具1.3.1软件生存周期模型描述软件开发过程中各种活动如何执行的模型1.瀑布模型将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型包括所有的软件生存周期环节,规定了由前至后、相互衔接的固定次序缺点:理想的线性开发模式,缺乏灵活性开发过程中用户看不到软件是什么样子,造成开发方向错误2.增量模型一种非整体开发的模型,软件在该模型中是“逐渐”开发出来的,开发一部分展示一部分,可以及早发现问题。
2021年自考《软件工程》复习资料及试验指导一
2021年自考《软件工程》复习资料及试验指导一《软件工程》是计算机应用专业(本科)非常重要的一门专业课,该课程包罗笔试和试验两部分,并且也是课程设计的科目之一。
学习《软件工程》,考生不仅需要掌握至少一门程序设计语言,还需要对数据结构、数据库、操作系统等课程有必然的了解,可以说综合性很强。
第一章软件工程概论1. 软件工程的目的:倡导以工程的原理、原则和方法进行软件开发,以解决当时出现的软件危机。
2. 软件危机:在计算机软件开发和维护过程中所遇到的一系列问题。
3. 软件及组成:计算机系统中的程序和文档称为软件,程序是计算机任务的处理对象和处理规则的描述,文档是为了理解程序所需的阐述性资料。
4. 软件工程定义:软件工程是一类求解软件的工程,它应用计算机科学、数学及办理科学等原理,借鉴传统工程的原则、方法,创建软件以达到提高质量、降低成本的目的。
其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,办理科学用于计划、资源、质量、成本等办理。
软件工程是一门指导计算机软件开发和维护的工程学科。
5. 软件工程框架及其内容:目标、活动和原则。
软件工程的目标为,生产具有正确性、可用性以及开销合宜的产品。
软件工程活动定义为,生产一个最终满足需求且达到工程目标的软件产品所需要的步骤,主要包罗需求、设计、实现、确认以及支持等活动。
软件工程设计原则为,拔取适宜的开发模型,采用合适的设计方法,提供高质量的工程支持,重视开发过程的办理。
6. 软件工程研究的内容:软件开发模型、软件开发方法、软件过程、软件工具、软件开发环境、计算机辅助软件工程(CASE)、软件经济学等。
7. 软件开发方法学定义:是一种已定义好的技术集和符号表示习惯,来组织软件开发的过程,一般表示为一系列步骤,包罗结构化方法、面向对象方法、Jackson方法等等。
第二章软件开发模型1. 软件开发模型定义:是软件开发全部过程、活动和任务的结构框架。
软件工程自考复习资料-全
软件工程自考复习资料-全第一章绪论一、软件的基本概念1.软件是计算机系统中的程序及其文档。
3.文档一般主要面向管理人员、开发人员、用户、使用维护人员。
4.文档在软件工程中的作用:(1)提高软件开发过程的能见度。
(2)提高开发效率。
(3)某程序设计时代:生产方式是个体手工劳动,使用工具是机器、汇编语言,主要通过汇编来实现,不注重程序设计方法。
某程序系统时代:生产方式是作坊式小集团合作生产,生产工具是高级语言,开始提出结构化方法。
某软件工程时代:生产方式是工程化生产,使用数据库、网络、先进的开发技术和方法。
6.软件既是知识性(逻辑性)工业产品,具有一些独特的特性是:某软件是逻辑产品,具无形性,通过计算机的执行才能体现它的功能和作用。
某软件只会退化,不存在磨损和消耗问题。
某成本主要体现在软件的开发和研制上,可进行大量的复制。
某主要靠脑力劳动生产,开发和维护成本高。
7.软件的主要结构和功能是在分析设计阶段决定的。
8.软件的复杂性主要体现在程序的复杂性,即模块内程序的复杂性。
直接关联到软件的简单和可理解性、开发费用多少、开发周期长短和软件潜伏错误的多少。
二、软件危机1.软件危机是指在软件开发和维护时遇到的一系列难以控制的问题导致的供需矛盾。
出现在软件发展的第二阶段末期,随着第三代计算机的诞生之际。
2.软件危机主要体现在:某软件发展速度跟不上硬件的发展和用户需求。
某软件成本和开发进度不能预先预算,用户不满意。
某软件产品质量差,成本高,可靠性没有保证。
某软件可维护性差,产品没有配套文档。
3.软件危机产生原因:(1)软件规模变大,结构更加复杂。
(2)软件开发管理困难。
(3)软件开发技术和工具落后。
(4)软件开发费用增加。
(5)采用落后的个体手工生产方式开发。
4.解决途径:(1)纠正对软件开发的错误观念。
(2)提高软件工程管理水平,重视文档重要性。
(3)使用好的软件开发工具,研究软件开发技术,规范软件开发流程,提高开发效率。
自考_软件工程复习资料
第一章1软件生产率、软件质和量远远满足不了社会发展的需求,成为社会、经济发展的制约因素,人们通常把这一现象称为软件危机2软件工程定义:软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品工程,或以此为研究对象的学科3软件开发的本质概括为:不同抽象层术语之间的“映射”,以及不同抽象层处理逻辑之间的“映射”两大类技术:过程方向、过程途径。
基本途径:系统建模4所谓模型,是待建系统的任意抽象,其中包括所有的基本能力、特性或其他一些方面,而没有任何冗余的细节。
进一步说,模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述、对系统内各模型元素以及它们之间关系的语义描述5系统模型分为软件模型、概念模型软件模型分为设计模型、部署模型、实现模型第二章软件需求与软件需求规约6一个需求是有关一个“要与构造”的陈述,描述了待开发产品、系统功能上的能力、性能或者其他性质7需求性质:必要的、无歧义的、可测的、可跟踪的、可测量的8需求分类:功能需求、非功能需求(性能、外部接口、设计约束、质量属性需求)9功能需求规约了系统或系统构建必须执行的功能功能需求是整个需求的主体10接口需求分为:用户接口、硬件接口、软件接口、通信接口、内存约束、运行、地点需求11质量属性:可靠性存活性可维护性用户友好性12需求发现技术:自悟交谈观察小组会提炼13需求规约定义,是一个软件项/产品/系统所有需求陈述的正式文档,它表达了一个软件产品/系统概念模型性质:重要性和稳定性程度可修改的完整的一致的14需求规约的作用:需求规约是软件开发组和用户之间一份事实上的技术合同书,是产品功能及其环境的体现对于项目的其余大多数工作,需求规约是一个管理控制点对于产品/系统的设计,需求规约是一个正式的、受控的起始点需求规约是创建产品验收测试计划和用户指南的基础,是基于需求规约一般还会产生另外两个文档(初始测试计划和用户系统操作描述)第三章结构化方法15需求工作挑战:问题空间理解人与人之间的通信需求的变化性16好的需求技术具备特征: 提供方便的通信机制鼓励需求分析人员使用问题空间的术语思考问题,编写文档提供定义系统边界的方法提供支持抽象的基本机制为需求分析人员提供多重可供选择的方案提供天特定的技术化、适应需求变化17结构化方法:结构化分析方法结构化设计方案机构化程序设计方法18数据流加工数据存储数据源和数据潭19需求分析的首要任务是建立系统功能模型工具:数据流图DFD图是一种描述数据变化的图形工具20建模过程:建立系统环境图,确定系统语境自顶向下逐步求精,建立系统层次数据流图定义数据字典描述加工(结构化自然语言判定表判定树)21需求阶段的主要任务是完整地定义问题,确定系统的功能和能力22需求验证验证需求规格说明书的每一单一需求是否满足5个性质(必要性无歧义性可测性可跟踪型可测量性),需求沿着我难过规格说明属否满足4个性质(重要性和稳定性程度可修改型完整性一致性)23结构化设计的主要任务是在需求分析的基础上,定义满足需求所需要的结构,即针对给定的问题,给出该问题的软件解决方案,确定“怎么做”的问题24结构化设计分为总体设计(目标,建立系统的模块结构)和详细设计25模块指软件中具有特定标识的独立成分模块调用指模块之间的一种使用关系26总体设计阶段的基本任务是把系统的功能需求分配到一个特定的软件体系结构中工具(Yourdon模块结构图层次图HIPO图)步骤:将系统的DFD图转化为初始的模块结构图,再基于高内聚低耦合的原则,通过模块化,将初始的模块结构图转化为最终的、可供详细设计使用的模块结构图MSD27模块化模块是执行一个特殊任务的一个过程以及相关的数据结构.由两部分组成:接口、模块体28耦合:不同模块之间相互依赖程度的度量(强到弱内容耦合(直接操作修改另一模块数据)、公共耦合(共用一个全局数据项)、控制耦合(控制信号)、标记耦合(A向BC传递一个公共参数)、数据耦合(通过参数传递数据))29内聚:一个模块内部成分之间的相互关联程度的度量(偶然内聚、逻辑内聚(逻辑相关的功能放一块)、时间内聚(同一时间内执行) 、过程内聚(特定次序执行) 、通信内聚(操作同一数据集)、顺序内聚(一个成分的输出为另一个成分的输入)、功能内聚)30启发式规则:1改进软件结构,提高模块独立性2力求模块规模适中3力求深度宽度扇入扇出适中4尽力使模块的作用域在其控制域之内5尽力降低模块接口的复杂度6力求模块功能可以预测31详细设计的目标是将总体设计阶段所产生的系统高层结构映射为以这些术语所表达的低层结构,也是系统的最终结构32详细设计工具:程序流程图N—S图PAD图PDL伪码33所谓模块化,是指按照高内聚低耦合的设计原则,形成一个相互独立又有较少联系的模块结构的过程,使每个模块具有相对独立的功能/过程34逐步求精是指把要解决问题的过程分解为多个步骤或阶段,每一步是对上一步结果的精化,以接近问题的揭发。
软件工程_自考_复习资料总结1
第1章●软件:计算机程序及说明程序的各种文档。
“程序”是计算任务的处理对象和处理规则的描述;“文档”是有关计算机程序功能、设计、编制、使用的文字或图形资料。
●软件的特点:(1)软件是一种逻辑产品,具有无形性,以程序和文档的形式出现(2)(软件产品)的生产主要是研制(3)~不会用坏,不存在磨损、消耗问题(4)~的生产主要靠脑力劳动,还未摆脱手工开发方式(5)费用不断增加,成本昂贵●软件生产的发展:a程序设计时代45~56生产方式是个体手工劳动,机器语言、汇编语言,方法是追求编程技巧,追求程序运行效率 b程序系统时代(56~68)作坊式的小集团合作生产,工具高级语言,方法:个人技巧开始提出结构化方法 c软件工程时代(68至今)工程化的生产,使用数据库、开发工具及环境,网络,分布式,面向对象技术来开发软件●“软件危机”硬件技术进步,软件不能满足发展的要求,在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
危机表现a经费预算经常突破,完成时间一再拖延b开发的软件不能满足用户要求、可维护性差、可靠性差●危机原因a软件的规模越来越大,结构越来越复杂b软件开发管理困难而复杂、费用不断增加、技术落后、生产方式落后、开发工具落后,生产率提高缓慢●软件工程68北大西洋公约组织用科学知识和技术原理来定义、开发、维护软件的一门学科。
●~性质:它涉及计算机科学、工程科学、管理科学、数学等领域,计算机科学着重于原理和理论,而~着重于如何建造一个软件系统。
~要用工程科学中的观点来进行费用估算、制定进度、制定计划和方案。
~要用管理科学中的方法和原理进行软件生产的管理。
~要用数学的方法建立~中的各种模型和各种算法,如可靠性模型,说明用户需求的形式化模型等。
●~目标:付出较低的开发成本、达到要求的软件功能、取得较好的软件性能、开发的软件易移植、需要的较低的维护费用、能按时完成开发任务,及时交付使用、开发的软件可靠性高●软件工程内容:软件开发技术、~管理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章
1软件生产率、软件质和量远远满足不了社会发展的需求,成为社会、经济发展的制约因素,人们通常把这一现象称为软件危机
2软件工程定义:软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品工程,或以此为研究对象的学科
3软件开发的本质概括为:不同抽象层术语之间的“映射”,以及不同抽象层处理逻辑之间的“映射”两大类技术:过程方向、过程途径。
基本途径:系统建模
4所谓模型,是待建系统的任意抽象,其中包括所有的基本能力、特性或其他一些方面,而没有任何冗余的细节。
进一步说,模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述、对系统内各模型元素以及它们之间关系的语义描述
5系统模型分为软件模型、概念模型软件模型分为设计模型、部署模型、实现模型
第二章软件需求与软件需求规约
6一个需求是有关一个“要与构造”的陈述,描述了待开发产品、系统功能上的能力、性能或者其他性质7需求性质:必要的、无歧义的、可测的、可跟踪的、可测量的
8需求分类:功能需求、非功能需求(性能、外部接口、设计约束、质量属性需求)
9功能需求规约了系统或系统构建必须执行的功能功能需求是整个需求的主体
10接口需求分为:用户接口、硬件接口、软件接口、通信接口、内存约束、运行、地点需求
11质量属性:可靠性存活性可维护性用户友好性
12需求发现技术:自悟交谈观察小组会提炼
13需求规约定义,是一个软件项/产品/系统所有需求陈述的正式文档,它表达了一个软件产品/系统概念模型性质:重要性和稳定性程度可修改的完整的一致的
14需求规约的作用:需求规约是软件开发组和用户之间一份事实上的技术合同书,是产品功能及其环境的体现对于项目的其余大多数工作,需求规约是一个管理控制点对于产品/系统的设计,需求规约是一个正式的、受控的起始点需求规约是创建产品验收测试计划和用户指南的基础,是基于需求规约一般还会产生另外两个文档(初始测试计划和用户系统操作描述)
第三章结构化方法
15需求工作挑战:问题空间理解人与人之间的通信需求的变化性
16好的需求技术具备特征:提供方便的通信机制鼓励需求分析人员使用问题空间的术语思考问题,编写文档提供定义系统边界的方法提供支持抽象的基本机制为需求分析人员提供多重可供选择的方案提供天特定的技术化、适应需求变化
17结构化方法:结构化分析方法结构化设计方案机构化程序设计方法
18数据流加工数据存储数据源和数据潭
19需求分析的首要任务是建立系统功能模型工具:数据流图DFD图是一种描述数据变化的图形工具20建模过程:建立系统环境图,确定系统语境自顶向下逐步求精,建立系统层次数据流图定义数据字典描述加工(结构化自然语言判定表判定树)
21需求阶段的主要任务是完整地定义问题,确定系统的功能和能力
22需求验证验证需求规格说明书的每一单一需求是否满足5个性质(必要性无歧义性可测性可跟踪型可测量性),需求沿着我难过规格说明属否满足4个性质(重要性和稳定性程度可修改型完整性一致性)23结构化设计的主要任务是在需求分析的基础上,定义满足需求所需要的结构,即针对给定的问题,给出该问题的软件解决方案,确定“怎么做”的问题
24结构化设计分为总体设计(目标,建立系统的模块结构)和详细设计
25模块指软件中具有特定标识的独立成分模块调用指模块之间的一种使用关系
26总体设计阶段的基本任务是把系统的功能需求分配到一个特定的软件体系结构中工具(Yourdon模块结构图层次图HIPO图)步骤:将系统的DFD图转化为初始的模块结构图,再基于高内聚低耦合的原
则,通过模块化,将初始的模块结构图转化为最终的、可供详细设计使用的模块结构图MSD
27模块化模块是执行一个特殊任务的一个过程以及相关的数据结构。
由两部分组成:接口、模块体
28耦合:不同模块之间相互依赖程度的度量(强到弱内容耦合(直接操作修改另一模块数据)、公共耦合(共用一个全局数据项)、控制耦合(控制信号)、标记耦合(A向BC传递一个公共参数)、数据耦合(通过参数传递数据))
29内聚:一个模块内部成分之间的相互关联程度的度量(偶然内聚、逻辑内聚(逻辑相关的功能放一块)、时间内聚(同一时间内执行)、过程内聚(特定次序执行)、通信内聚(操作同一数据集)、顺序内聚(一个成分的输出为另一个成分的输入)、功能内聚)
30启发式规则:1改进软件结构,提高模块独立性2力求模块规模适中3力求深度宽度扇入扇出适中4尽力使模块的作用域在其控制域之内5尽力降低模块接口的复杂度6力求模块功能可以预测
31详细设计的目标是将总体设计阶段所产生的系统高层结构映射为以这些术语所表达的低层结构,也是系统的最终结构
32详细设计工具:程序流程图N-S图PAD图PDL伪码
33所谓模块化,是指按照高内聚低耦合的设计原则,形成一个相互独立又有较少联系的模块结构的过程,使每个模块具有相对独立的功能/过程
34逐步求精是指把要解决问题的过程分解为多个步骤或阶段,每一步是对上一步结果的精化,以接近问题的揭发。
是人类解决复杂问题的基本途径之一
35变换性数据流图:具有较明显的输入部分和变换部分之间的界面、变换部分和输出部分之间的数据流图36事物型数据流图:数据到达一个加工T,该加工根据输入数据的值在气候的若干动作序列中选一个来执行
第四章面向对象方法UML
37 UML是一种可视化语言,可用于规约系统的制品、构造系统的制品、建立系统制品文档
38 事物之间的相互依赖饿相互作用,构成了显存的各式各样的系统
39 UML 8个术语类与对象、接口、协作、用况、主动类、构件、制品和节点4个关系术语关联、泛化、实现和依赖
40类是一组具有相同属性、操作、关系语义的对象的描述
41引入可见性的目的是为了支持信息隐蔽这一软件设计原则。
所谓信息隐蔽是指在每个模块中所包含的信息不允许其他不需要这些信息的模块访问
42类在建模中的主要用途:模型化问题域中的概念建立系统的职责分布模型模型化建模中使用的基本类型
43接口只可以被其他的类目使用,而其本身不能访问其他类目。
接口描述类的外部可见操作,通常是该类的一个特定有限行为。
可以使用可见性、并发性、标记值和约束来修饰。
接口不描述其中操作的实现,也没有属性和状态。
接口之间没有关联、泛化、实现和依赖
44协作是一个交互,涉及的三要素:交互各方、交互方式、交互内容
45用况是对一组动作序列的描述,系统执行这些动作应产生对特定参与者有值的、可以观察的结果
46主动类是一种至少有一个进程或线程的类
47构件是系统设计中的一种模块化部件,通过外部接口隐蔽了它的内部实现。
48制品是系统中包含物理信息的、可替代的物理部件。
49节点是在运行时存在的物理元素。
通常表示一种具有记忆能力和处理能力的计算机资源
50关联是类目之间的一种结构关系,是对一组具有相同结构、相同链的描述。
链是对象之间具有特定语义关系的抽象,实现之后的链通常称为对象之间的连接
51泛化是一般性类目(父类超类)和它的较为特殊类目(子类)之间一种关系泛化的4个约束:完整不完整互斥重叠
52细化是类目之间的语义关系,其中一个类目规约了保证另一个类目执行的契约
53依赖是一种使用关系,用于描述一个类目使用另一个类目的信息和服务
54四个术语可以模型化一下关系:结构关系(2种驱动方式以数据驱动以行为驱动)、继承关系、精化关系、依赖关系
55为了控制信息组织的复杂性,UML提供了组织信息的一种通用机制—包,支持形成一些可以管理的部分。
包可以作为模块化和构件化的一种机制。
包是模型元素的一个分组。
一个包本身可以被嵌套在其他包中,并且可以含有子包和其他种类的模型元素(实现:访问、引入)
56UML图形化工具分为两类:结构图(静态模型结构)行为图(动态模型结构)
57类图状态图用况图顺序图
58为了表达概念模型和软件模型,UML提供了13种图形化工具:类图、对象图、构件图、包图、部署图、组合结构图、以及USE CASE图、状态图、顺序图、通信图、活动图、交互概念图、定序图。
前6种静态结构后6动态结构
第五章面向对象方法RUP
59一种软件开发方法至少由3部分组成,一用于表达基本信息的术语二用于组织基本信息的表达格式三是在不同抽象之间进行映射的过程指导
60RUP是基于UML的一种过程框架,为软件开发,即为进行不同抽象层之间映射安排其开发活动的次序,指定任务和需要开发的制品,提供了指导;并对项目中的制品和活动进行监控与度量,提供了相应的准则。
换而言之,RUP比较完整的定义了将用户需求转换成产品所需要的活动集,并提供了活动指南以及对产生相关文档的要求。
61RUP的特点是一种以用况为驱动的、以体系结构为中心的迭代、增量式开发
62RUP的迭代、增量式开发是烟花模型的一个变体、4个阶段:初始、精化构造、移交
63在RUP的每次迭代中都要经历一个核心工作流即需求获取,分析,设计,实现和测试
64RUP采用USE CASE来获取需求做的工作:列出候选需求理解系统语境捕获功能需求捕获非功能需求
65RUP特点:使用了一种公共的思想来思考设计,并使设计可视化给出了有关子系统、设计类和接口的需求支持对实现工作的分解,使之成为一些可以由不同开发组尽可能同时处理、可管理的部分;捕获了软件生存周期中早期的子系统之间的主要接口
66RUP设计方法组成:给出用于表达设计模型中基本成分的4个术语(包括子系统、设计类、接口和用况细化)规约了设计模型的语法,知道模型的表达给出了创建设计模型的过程以及相应的指导
67RUP的设计模型。
主要结构是系统的设计模型
68RUP的部署模型。
包括节点主动类
第六章软件测试。