自考_软件工程复习资料
- 格式:doc
- 大小:32.00 KB
- 文档页数:3
可编辑修改精选全文完整版一、单选题(共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涉及了软件工程的基本概念、方法和技术等内容。
下面将对该课程的考点进行总结,以帮助考生更好地备考和复习。
二、考点总结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 软件开发过程软件开发过程包括需求分析、设计、编码、测试和部署等阶段,每个阶段都需要遵循相应的规范和流程。
《软件工程》复习重点通过对使用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月《软件工程》全国自考考题一、单项选择题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、结构化分析方法给出了一种能表达功能模型的工具是______。
一,第一章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软件生产率、软件质和量远远满足不了社会发展的需求,成为社会、经济发展的制约因素,人们通常把这一现象称为软件危机
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的部署模型。
包括节点主动类
第六章软件测试。