软件工程自考复习资料.doc
自考_软件工程复习资料
第一章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模块化模块是执行一个特殊任务的一个过程以及相关的数据结构。
软件工程复习资料精选全文完整版
可编辑修改精选全文完整版一、单选题(共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、耦合是模块之间的相对独立性的度量。
软件工程自考复习资料-全
软件工程自考复习资料-全第一章绪论一、软件的基本概念1.软件是计算机系统中的程序及其文档。
3.文档一般主要面向管理人员、开发人员、用户、使用维护人员。
4.文档在软件工程中的作用:(1)提高软件开发过程的能见度。
(2)提高开发效率。
(3)某程序设计时代:生产方式是个体手工劳动,使用工具是机器、汇编语言,主要通过汇编来实现,不注重程序设计方法。
某程序系统时代:生产方式是作坊式小集团合作生产,生产工具是高级语言,开始提出结构化方法。
某软件工程时代:生产方式是工程化生产,使用数据库、网络、先进的开发技术和方法。
6.软件既是知识性(逻辑性)工业产品,具有一些独特的特性是:某软件是逻辑产品,具无形性,通过计算机的执行才能体现它的功能和作用。
某软件只会退化,不存在磨损和消耗问题。
某成本主要体现在软件的开发和研制上,可进行大量的复制。
某主要靠脑力劳动生产,开发和维护成本高。
7.软件的主要结构和功能是在分析设计阶段决定的。
8.软件的复杂性主要体现在程序的复杂性,即模块内程序的复杂性。
直接关联到软件的简单和可理解性、开发费用多少、开发周期长短和软件潜伏错误的多少。
二、软件危机1.软件危机是指在软件开发和维护时遇到的一系列难以控制的问题导致的供需矛盾。
出现在软件发展的第二阶段末期,随着第三代计算机的诞生之际。
2.软件危机主要体现在:某软件发展速度跟不上硬件的发展和用户需求。
某软件成本和开发进度不能预先预算,用户不满意。
某软件产品质量差,成本高,可靠性没有保证。
某软件可维护性差,产品没有配套文档。
3.软件危机产生原因:(1)软件规模变大,结构更加复杂。
(2)软件开发管理困难。
(3)软件开发技术和工具落后。
(4)软件开发费用增加。
(5)采用落后的个体手工生产方式开发。
4.解决途径:(1)纠正对软件开发的错误观念。
(2)提高软件工程管理水平,重视文档重要性。
(3)使用好的软件开发工具,研究软件开发技术,规范软件开发流程,提高开发效率。
软件工程自考复习资料参考
軟件工程复习资料一:选择题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什么是软件生存周期,他可以分为几个阶段。
一个软件从提出开发需求直到该软件报废为止的整个时代。
软件工程_自考_复习资料总结1
第1章●软件:计算机程序及说明程序的各种文档。
“程序”是计算任务的处理对象和处理规则的描述;“文档”是有关计算机程序功能、设计、编制、使用的文字或图形资料。
●软件的特点:(1)软件是一种逻辑产品,具有无形性,以程序和文档的形式出现(2)(软件产品)的生产主要是研制(3)~不会用坏,不存在磨损、消耗问题(4)~的生产主要靠脑力劳动,还未摆脱手工开发方式(5)费用不断增加,成本昂贵●软件生产的发展:a程序设计时代45~56生产方式是个体手工劳动,机器语言、汇编语言,方法是追求编程技巧,追求程序运行效率 b程序系统时代(56~68)作坊式的小集团合作生产,工具高级语言,方法:个人技巧开始提出结构化方法 c软件工程时代(68至今)工程化的生产,使用数据库、开发工具及环境,网络,分布式,面向对象技术来开发软件●“软件危机”硬件技术进步,软件不能满足发展的要求,在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
危机表现a经费预算经常突破,完成时间一再拖延b开发的软件不能满足用户要求、可维护性差、可靠性差●危机原因a软件的规模越来越大,结构越来越复杂b软件开发管理困难而复杂、费用不断增加、技术落后、生产方式落后、开发工具落后,生产率提高缓慢●软件工程68北大西洋公约组织用科学知识和技术原理来定义、开发、维护软件的一门学科。
●~性质:它涉及计算机科学、工程科学、管理科学、数学等领域,计算机科学着重于原理和理论,而~着重于如何建造一个软件系统。
~要用工程科学中的观点来进行费用估算、制定进度、制定计划和方案。
~要用管理科学中的方法和原理进行软件生产的管理。
~要用数学的方法建立~中的各种模型和各种算法,如可靠性模型,说明用户需求的形式化模型等。
●~目标:付出较低的开发成本、达到要求的软件功能、取得较好的软件性能、开发的软件易移植、需要的较低的维护费用、能按时完成开发任务,及时交付使用、开发的软件可靠性高●软件工程内容:软件开发技术、~管理。
软件工程复习资料
软件⼯程复习资料软件⼯程第⼀章⼀、什么是软件?软件(Software)是计算机系统中与硬件相互依存的另⼀部分,它是包括程序(Program),数据(Data)及其相关⽂档(Document)的完整集合。
程序是按事先设计的功能和性能要求执⾏的指令序列数据是使程序能正常操纵信息的数据结构⽂档是与程序开发,维护和使⽤有关的图⽂材料⼆、软件危机原因:与软件本⾝的特点有关(难于维护, 逻辑复杂)与软件开发与维护的⽅法不正确有关:软件≠程序急于求成=拔苗助长各⾃为阵⽆⽅法/学现象:1.成本⾼2.计算机软件和硬件费⽤⽐3.软件质量得不到保证4.由于软件质量问题导致失败的软件项⽬⾮常多5.进度难以控制6.维护⾮常困难办法:软件⼯程(学)三、软件⼯程软件⼯程是应⽤计算机科学、数学及管理科学等原理开发软件的⼯程。
它借鉴传统⼯程的原则、⽅法,以提⾼质量,降低成本为⽬的。
开发、运⾏和维护软件的系统⽅法四、软件⼯程三要素软件⼯程⽅法学包含3个要素:⽅法、⼯具和过程。
五、软件⽣命周期六、软件过程模型瀑布模型瀑布模型适合于⽤户需求明确、完整、⽆重⼤变化的软件项⽬开发。
瀑布模型的成功在很⼤程度上是由于它基本上是⼀种⽂档驱动的模型。
“瀑布模型是由⽂档驱动的”这个事实也是它的⼀个主要缺点。
在项⽬开始的时候,⽤户常常难以清楚地给出所有需求;⽤户与开发⼈员对需求理解存在差异。
实际的项⽬很少按照顺序模型进⾏。
⽤户必须有耐⼼,等到系统开发完成。
缺乏灵活性:因为瀑布模型确定了需求分析的绝对重要性,但是在实践中要想获得完善的需求说明是⾮常困难的,导致“阻塞状态”。
反馈信息慢,开发周期长。
虽然存在不少缺陷,瀑布模型经常被嘲笑为“旧式的”,但是在需求被很好地理解的情况下,仍然是⼀种合理的⽅法。
快速原型模型增量模型增量模型是迭代和演进的过程。
增量模型把软件产品分解成⼀系列的增量构件,在增量开发迭代中逐步加⼊。
每个构件由多个相互作⽤的模块构成,并且能够完成特定的功能。
软件工程复习资料整理
《软件工程》试题参考答案(1)卷一、单向选择题(四选一、每小题3分,共18分)1、需求分析的任务不包括(B)。
A.问题分析B.系统设计C.需求描述D.需求评审。
2、当模块中包含复杂的条件组合,只有( A)能够清晰地表达出各种动作之间的对应关系。
0802A.判定表和判定树C.流程图3、以下不属于逻辑覆盖的是(D)。
1402A.语句覆盖C.条件覆盖B.盒图D 关系图B.判定覆盖D.基本路径4、为适应软件运行环境的变化而修改软件的活动称为( B)。
1501A.纠错性维护B.适应性维护C.改善性维护 D 预防性维护二、填空题(每空2分,共18分)1. 软件可靠性是指在给定的时间间隔内,程序成功运行的(概率)。
01012. 高级语言:独立于机器,面向过程或面向(对象)01013. 软件项目管理的范围主要集中于 3 个P 上,即:People 人员、Problem 问题和(过程)。
02014. 由于维护或在维护过程中其他一些不期望的行为引入的错误称为维护的(副作用)。
15045. 在公式V(G) = E – N + 2 中: E 为程序图G 中边的总数;N 为程序图中结点的总数。
V(G)又称为图 G 的环形(复杂度)0204。
6. 任何一个基于计算机系统都可以用输入-处理-输出(IPO)图来描述,它将该系统转换成一个信息变换模型。
03037. 为提高可交互性一般对所有可能造成损害的用户操作动作,应坚持要求用户(确认),例如,提问“你确实要删除…?”。
12048. 文档是一种数据媒体和其上所记录的(数据)。
0101三、判断题(每小题2分,共24分,错误打X、正确打√)1. 用户对软件需求的描述不准确,往往是产生软件危机的原因之一。
(√)01022. 一个好的开发人员应具备的素质和能力包括善于与周围人员团结协作,建立良好的人际关系,善于听取别人的意见。
(√)02063. 目前的绝大多数软件都不适合于快速原型技术。
软件工程考试资料整理.doc
1.在结构化分析中,—数据字典—用于详细地定义数据流图中的成分。
2.结构化程序设计是一种程序设计技术,它采用—口顶向下、逐步求精—的设计方法和顺序、选择、循环三种基本控制结构构造常态程序。
3.结构化分析方法中,数据流图的四种基木成分为:处理、源点或终点—数据存储和数据流。
4.模块内部的算法设计在结构化方法的—详细设计_阶段进行。
5.定性度量模块独立性的两个标准是内聚性和—耦合性—o6.从模块内外的联系來看,结构化设计的要求是—高内聚低耦合一7.耦合性和内聚性是衡量—模块独立性一的两个定性的标准。
8.在-•段程序中,将多次出现的一组语句设计为一个子程序,供多个部分调用,这种情况出现的内聚称为_偶然内聚_______ 。
9.一个进行学生成绩统汁的模块共功能是先对学生的成绩进行累加,然后求平均值,则该模块的内聚性是—顺序内聚—。
10.在模块结构图中,直接调用某-•模块的其他模块数称为该模块的―扇入数11.在软件开发过程中耍产生大量的信息,要进行大量的修改,—软件配置管理__________ 能协调12.软件开发,并使混乱减到故低程度。
13.软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、可移植性、训使用性和效率。
14.为了便于对照检查,测试用例应由输入数据和预期的筮出範两部分组成•15.软件结构是以模块为基础而组成的一种控制层次结构。
16.在结构化分析屮,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、17.判定树。
18.结构化语言是介于口然语言和形式蚩宜之间的一种半形式语言。
19.第二代CASE工具的特点是支持图形表示的—结构化方法 _____________ 。
如数据流图与结构图。
20.在而向对象方法中,对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。
21.面向对象分析的H的是对客观世界的系统进行建模。
22.为了使应用软件适应计算机环境的变化而_______ 修改软件一的过程称为适应性维护。
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. 软件需求工程软件需求工程是软件工程的一项重要活动,旨在准确捕获用户需求,并将其转化为可执行的软件需求规格。
本节将介绍软件需求的定义、分类和常用的需求获取和分析方法。
2024年下半年《软件工程》全国自考考题含解析
2024年下半年《软件工程》全国自考考题一、单项选择题1、集成化能力成熟度模型(CMMI)中有22个过程域,分为4类:项目管理类、工程类、过程管理类和______。
A.需求管理类B.支持类C.项目包类D.目标类2、下列可用于概念模型和软件模型的动态结构的是______。
A.类图B.对象图C.部署图D.用况图3、下列不属于软件危机的主要表现是______。
A.软件生产效率低B.软件开发没有工具支持C.软件生产质量低D.软件开发缺乏可遵循的原理、原则、方法体系以及有效的管理4、指一个模块内部各成分之间相互关联程度的度量是______。
A.耦合B.内聚C.扇入D.扇出5、在销售管理系统需求文档中出现下列描述,属于设计约束范畴的是______。
A.系统应能产生月销售报表B.系统应在5分钟内计算出给定季度的总销售税C.对要构建的账户接收系统,必须为月财务状况系统提供更新信息D.任取1秒钟,一个特定应用所消耗的可用计算能力平均不超过50%6、RUP中,用于捕获系统语境中的一些重要领域对象,其中领域对象表达系统工作环境中存在的事物或发生的事件,领域模型一般采用______。
A.PAD图B.流程图C.类图D.N-S图7、需求规约的基本性质包括重要性和稳定性程度、一致的、完整的和______。
A.可修改的B.可复用的C.可测试的D.无歧义的8、软件工程在20世纪60年代末到80年代初获得的主要成果有______。
A.CASE产品B.面向对象语言C.瀑布模型D.软件生存周期过程9、使用用况图可以实现业务建模和系统建模,而得到业务模型和系统模型之间具有的关系是______。
A.整体/部分B.一般/特殊C.功能/过程D.静态/动态10、下列不属于创建一个系统的类图步骤是______。
A.模型化待建系统中的概念,形成类图中基本元素B.模型化待建系统中的各种关系,形成该系统的初始关系C.模型化系统中的接口,不需给出该系统的最终类图D.模型化逻辑数据库模式11、在教师科研方案中规定对教授、副教授和讲师分别计算分数,做相应的处理,则根据黑盒测试中的等价类划分技术,下列划分正确的是______。
软件工程复习资料-完整版
一、选择题: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 ) 。
软件工程复习资料文档
软件工程复习材料一、考试复习范围:1、软件工程基本概念、基本原理2、需求分析,结构化分析、面向对象分析,结构化分析建模、面向对象分析建模3、软件设计,结构化程序设计,概要设计、详细设计4、软件测试二、考试题型:单项选择题、简答题、综合应用题(要求会画:数据流图、软件结构图、用例图、类图、N-S盒图、PAD图)三、复习内容:1、什么是软件危机?人们把软件开发和维护中的各种问题称为“软件危机”。
2、软件危机主要包含哪两方面的问题?①如何开发软件以满足软件日益增长的需求。
②如何维护数量不断增长的已有软件。
3、软件危机的表现有哪些?①对软件开发成本和进度的估算很不准确。
②用户对完成的软件很不满意。
③软件产品的质量很不可靠。
④没有完整的文档。
⑤软件成本比重上升。
⑥软件开发生产效率低下,软件开发技术进步落后与需求的增长,造成“供不应求”的局面。
4、什么是软件工程?软件工程的定义:采用工程的概念、原理和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。
5、.软件工程包括3个要素有哪些?方法、工具和过程。
6、软件生命周期各阶段有哪些?软件生命周期包括:软件定义、软件开发、软件维护三个时期。
其中:软件定义包括:问题定义、可行性研究、需求分析阶段;软件开发包括:总体设计、详细设计、编码、软件测试阶段。
7、需求分析的任务有哪些?需求分析的任务主要有两个方面:①通过对问题及环境的理解、分析和综合,建立分析模型。
②在完全弄清用户对软件系统的确切要求的基础上,用“软件需求规格说明书”把用户的需求表达出来。
8、软件系统需求分类是哪些?软件系统需求可以分为功能需求、非功能需求和领域需求:1)功能需求描述系统所预期提供的功能或服务。
即定义系统应该做什么,系统要求输入什么信息,输出什么信息,以及如何将输入变换为输出。
它由开发的软件类型、软件未来的用户以及开发的系统类型决定。
软件工程复习资料(提纲+答案)
软件工程复习资料(提纲+答案)第一章软件工程的实质1、什么是软件?由什么组成?软件:是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档组成的完整集合。
可以写作为:软件=程序+数据+文档。
2、什么是软件危机?为什么会产生?(原因)软件危机:指的是在计算机软件的开发和维护过程中所遇到的一系列严重的问题。
原因:用户需求不明确、缺乏正确的理论指导、软件规模越来越大、软件复杂度越来越高3、为什么要进行软件开发?4、软件工程的三段论?三段论:软件项目管理论、软件项目开发论、软件过程改进论5、软件工程生存期模型概念、类型、每种类型的特点?答:软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。
软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段或机动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。
常见的软件生存周期模型有瀑布模型、V模型、原型模型、增量式模型、螺旋式模型。
6、了解复用的原则第二章软件项目的需求分析1、需求分析的主要任务?(基本任务)答:需求分析阶段的基本任务是要准确的定义新系统的目标,满足用户需要,回答系统必须“做什么”的问题。
本阶段要主要有以下几方面工作:(1)问题识别,双方确定对问题的综合需求,包括:功能需求、性能需求、用户界面需求,以及可靠性、安全性、可维护性等方面的需求。
(2)建立模型,对获取的需求,进行分析细化,划分系统功能,确定系统构成,并建立系统的逻辑模型。
(3)编写文档,也就是完成“需求规格说明书”的编写工作。
2、需求分析分两大块(功能与非功能)功能需求描述系统所预期提供的功能或服务。
非功能需求是对系统提供的服务或功能给出的约束。
包括时间约束、开发过程的约束、标准等。
3、(P27)需求建模的基本方法?答:关联模型、行为模型(数据流模型和状态机模型)、数据模型、面向对象模型、结构化模型(技术:数据流图(DFD)、数据字典(DD)、系统流程图)以及其他方法(如原型法、功能列表等)4、结构化方法的代表?(P29)7状态图活动图8、理解好数据流图为什么要分层?9、UML中常用的9种图?(P32 把包图去掉)静态图:类图、对象图、构件图、实施图和包图。
(完整word)《软件工程》自考02333_重点难点汇集
《软件工程》串讲讲义应考指导一、课程介绍1、课程性质《软件工程》是全国高等教育自学考试计算机及应用(独立本科段)的一门专业课。
软件工程是研究软件开发的一门课程,其主要内容包括:软件开发所需要的过程、活动和任务,以及这些活动和任务的组织、实施和管理。
2、指定教材本课程指定教材为《软件工程》,全国高等教育自学考试指导委员会组编,王立福主编,机械工业出版社出版,2011年版。
新版教材与2000年版相比,无论是内容还是内容的组织,都有了很大的变化。
整个知识体系、章节安排、内容选取都不一样,这是考生一定要注意的。
新版教材的内容组织特点主要体现在:基于对软件开发本质的认识,讲解软件工程的两大技术问题:一是开发逻辑,二是开发途径。
开发逻辑涉及软件生存周期过程、软件生存周期模型(有关过程、活动和任务的组织框架)以及项目软件生存周期的规划与监控。
开发途径涉及结构化方法和面向对象方法,以及支持软件评估所需要的软件测试技术等。
3、章节体系本课程共有8章:第1章:回答什么是软件开发的本质第2章:软件需求与软件需求规约第3章:结构化方法第4章:面向对象方法—UML第5章:面向对象方法-RUP第6章:软件测试。
第7章:软件生存周期过程及管理第8章:集成化能力成熟度模型CMMI二、考情分析1.历年真题的分布情况由于教材刚刚经过改版,新教材刚经过2011年10月、2012年01月、2012年10月三次考试. 通过对2011年10月、2012年01月这两次真题的分析,各章所占分值的分布情况如下表所示:25%左右.第1章和第8章的考核知识点相对较少.2.题型分析本课程的考试题型分为:(1)单项选择题,共15小题,每小题2分,共30分(2)填空题,共20个空,每空1分,共20分(3)简答题,共6小题,每小题5分,共30分(4)综合应用题,共2题,每题10分,共20分3.复习方法(1)以教学大纲为准绳。
自学考试的原则是:考试范围既不超出大纲又不超出教材范围。
【免费下载】软件工程自考复习资料
《软件工程》复习资料第一章绪论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.增量模型一种非整体开发的模型,软件在该模型中是“逐渐”开发出来的,开发一部分展示一部分,可以及早发现问题。
自考_软件工程复习资料
第一章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逐步求精是指把要解决问题的过程分解为多个步骤或阶段,每一步是对上一步结果的精化,以接近问题的揭发。
08《软件工程》复习提纲.doc
1.填空(每题1分,10题,10分)(1)计算机软件是指计算机系统中的程序及其文档。
pagel(2)在软件发展的第二阶段,由于软件规模的日益增大,设计与编制程序的工作方式逐步从个体方式转向合作方式。
page2(3)需求分析主要解决开发软件要“做什么”的问题。
page8(4)软件设计主要解决待开发软件“怎么做”的问题。
page8(5)1990年我国颁布了《中华人民共和国著作权法》,其中将计算机软件作为著作权法的保护对象。
page44(6)模块独立性比较强的模块应是高内聚低耦合的模块。
page70(7)在结构化分析与设计方法中,模块的内聚度和耦合度是判断结构好坏的主要标准。
page75(8)数据流图用于软件系统的功能建模,描述系统的输入数据流如何经过一系列的加工,逐步变成系统的输出数据流,这些对数据流的加工实际上反映了系统的某种功能或子功能。
page87(9)一个模块的员出是指该模块直接调用的模块数目。
pagell7(10)一个模块的虜△是指能直接调用该模块的模块数目。
pagell7(11)模块的影响范围是指受该模块中决策(如判定条件)影响的所有其他模块。
pagellS(12)模块的控制殖围是指该模块自身以及它可直接或间接调用的所有模块。
pagellS(13)人机界面设计的好坏已成为人们衡量软件可用性的标准之一。
page231(14)系统响应时间是指从用户执行某个控制动作(如按回车键或单击鼠标)到软件做出响应(期望的输出或动作)的时间。
page242(15)一个测试用例由测试输入数据和预期结果组成。
page263(16)等价类是指输入域的某个子集,该子集中的每个输入数据对接露软件中的错误都是等效的。
page277(17)a测试是由一个用户在开发者的场所进行的,软件在开发者对用户的指导下进行测试。
page293(18)经a测试后的软件成为B版软件。
page293(19)B测试是软件的最终用户在一个或多个用户场所进行的,开发者通过不在测试现场。
自考《软件工程》
软件工程普通是指计算机系统中的程序及其文档。
是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件的工程,或者以此为研究对象的学科。
随着计算机的广泛应用,软件生产率、软件质量远远满足不了社会发展的需求,成为社会、经济发展的制约因素,人们通常把这一现象称为“软件危机”。
软件开辟的本质:不同抽象层术语之间的“映射”,以及不同抽象层处理逻辑之间的“映射”。
软件开辟的基本途径是问题建模。
常用的建模手段有:结构化方法、面向对象方法以及诸多面向数据结构方法等。
所谓模型,简单的说,是待建系统的任意抽象,是特定意图下所确定的角度和抽象层次上对物理系统的描述。
在软件开辟中,软件系统模型大体上可分为两类:概念模型和软件模型。
一是过程方向,即求解软件的开辟逻辑;二是过程途径,即求解软件的开辟手段。
是产品/系统设计、实现以及验证的基本信息源之一,是任何软件工程项目的基础。
规约了系统或者系统构件必须执行的功能,是整个需求的主体。
分为性能需求、外部接口需求、设计约束和质量属性需求。
性能需求规约了一个系统或者系统构件在性能方面必须具有的一些特征;外部接口需求规约了系统或者系统构件必须与之交互的用户、硬件、软件或者数据库元素;设计约束限制了软件系统或者软件系统构件的设计方案的范围;质量属性规约了软件产品所具有的一个性质必须达到其质量方面一个所期望的水平。
是一个软件项/产品/系统所有需求陈述的正式文档,它表达了一个软件产品/系统的概念模型。
需求具有如下 5 个基本性质:①必要的,该需求是用户所要求的;②无歧义的,该需求只能用一种方式解释;③可测的,该需求是可进行测试的;④可跟踪的,该需求可从一个开辟阶段跟踪到另一个阶段;⑤可测量的该需求是可测量的。
需求规约满足以下 4 个基本性质:①重要性和稳定性程度:按需求的重要性和稳定性,对需求进行分级;②可修改的:在无非多地影响其他需求的前提下,可以容易地修改一个单一需求;③完整的:没有被遗漏的需求;④一致的:不存在互斥的需求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程自考复习资料第1章软件:计算机程序及说明程序的各种文档。
“程序〃是计算任务的处理対象和处理规则的描述;“文档〃是有关计算机程序功能、设计、编制、使川的文字或图形资料。
软件生产的发展:程序设计时代,程序系统时代,软件工程时代。
软件工程:用科学知识和技术原理來定义、开发、维护软件的一门学科。
软件工程性质:它涉及计算机科学、工程科学、管理科学、数学等领域,计算机科学着重于原理和理论,而软件工程着重于如何建造一个软件系统。
软件工程要川工程科学中的观点來进行费川估算、制定进度、制定计划和方案。
软件工程要用管理科学屮的方法和原理进行软件生产的管理。
软件工程要用数学的方法建立软件开发中的各种模型和各种算法,如可靠性模型,说明用户需求的形式化模型等。
软件工程研究的主要内容是软件开发技术和软件开发管理两个方血在软件开发技术屮,主要研究软件开发方法、软件开发过程、软件开发工具和环境。
在软件开发管理中,主要是研究软件管理学、软件经济学、软件心理学等。
软件工程面临的问题:软件费用;软件可靠性;软件维护;软件生产率;软件重用。
软件工程过程:获取过程;供应过程;开发过程;操作过程;维护过程;管理过程;支持过程。
软件牛存周期:可行性分析和项目开发计划;需求分析;概要设计;详细设计;编码;测试; 维护。
软件生存周期模型是描述软件开发过程屮各种活动如何执行的模型。
瀑布模型是将软件牛存周期各个活动规定为依线性顺序连接的若干阶段的模型。
增量模型是一种非整体开发的模型。
瀑布模型是一种整体开发的模型螺旋模型将瀑布模型与增量模型结合起來,加入了风险分析,用于复杂的大型软件开发;分为儿个螺旋周期:第一,制定计划;第二,风险分析;第三,开发实施;第四,用户评估。
喷泉模型是一种以用户需求为动力,以对象作为驱动的模型,适合于血向对象的开发方法。
喷泉模型使开发过程具冇迭代性和无间隙性。
基本知识的模型又称智能模型,它把瀑布模型和专家系统结合在一起。
变换模型是一种适合于形式化开发方法的模型。
从软件需求形式化说明开始,经过一系列变换,最终得到系统的目标程序。
软件开发方法:结构化方法由结构化分析、结构化设计、结构化程序设计构成。
它是一种面向数据流的开发方法。
结构化方法总的指导思想是白顶向下、逐步求精。
它的基木原则是功能的分解与抽象, 它是软件工程中最早出现的开发方法,特别适合于数据处理领域的问题。
Jackson方法是一种而向数据结构的开发方法。
维也纳开发方法(VDM)是一种形式化的开发方法,软件的需求用严格的形式语言描述。
面向对象的开发方法包括面向对象分析、面向对象设计、面向对象实现。
面向对象开发方法有Booch方法、Coad 方法笫2章软件可行性研究的冃的就是用最小的代价在尽町能短的时间內确定该软件项H是否能够开发,是否值得去开发。
注意,可行性研究的目的不是去开发一个软件项目,而是研究这个软件项冃是否值得去开发,其中的问提能否解决。
可行性研究实质上是要进行一次简化、压缩了的需求分析、设计过程,耍在较高层次上以较抽象的方式进行需求分析和设计过程。
可行性研究的任务技术可行性:对要开发项目的功能、性能、限制条件进行分析,确定在现有的资源条件下, 技术风险冇多大,项II是否能实现。
包括:开发的风险;资源的冇效性;技术;开发人员在评估技术可行性时,一旦估计错误,将会出现灾难性后果。
经济可行性包括成本一一效果分析、公司经营长期策略、开发所需的成本和资源、潜在的市场前景。
社会可行性包括:合同、责任、侵权、用户组织的管理模式及规范,其他一些技术人员常常不了解的陷阱等。
典型的可行性研究有下列步骤:确定项FI规模和FI标;研究正在运行的系统:建立新系统的高层逻辑模型;导出和评价各种方案;推荐可行的方案;编写可行性研究报告。
可行性研究报告的主要内容:引言;可行性研究前提;对现有系统的分析;所建议系统的技术可行性分析;所建议系统的经济可行性分析;社会因素可行性分析;其他可供选择方案; 结论意见。
成木一一效益分析首先是估算将要开发的系统的开发成木,然后与可能取得的效益进行比较和权衡。
效益分有形效益和无形效益两种。
有形效益可以用货币的时间价值、投资回收期、纯收入等指标进行度量;无形效益主耍从性质上、心理上进行衡量,很难直接进行量的比较。
投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。
项目的纯收入,也就是在整个生存周期Z内的累计经济效益(折合成现在值)与投资Z差。
项目开发计划:项目概述;实施计划;人员组织及分工;交付期限。
第3章在进行可行性研究和软件计划以后,如果确认开发一个新的软件系统是必要的而且是可能的,那么就进入需求分析阶段。
需求分析是指,开发人员要准确理解用户的要求,进行细致的调杳分析,将用户非形式的需求陈述转化为完整的需求定义,再山需求定义转换到相应的形式功能规约(需求规格说明)的过程。
它的难点主要体现在以下几个方面:问题的复杂性;交流障碍;不完备性和不一致性;需求易变性。
需求分卡斤的基本任务是要准确地定义新系统的目标,为了满足用八需要,回答系统必须“做什么〃的问题。
木阶段要进行以下几方面的工作:问题识別:功能需求;性能需求;环境需求;用八界血需求分析与综合:导出软件的逻辑模型编写文档:需求规格说明书;初步用户使用手册;确认测试计划;修改完善软件开发计划。
结构化分析(SA)是血向数据流进行需求分析的方法。
SA方法利用图形等半形式化的描述方式表达需求,简明易懂,用它们形成需求说明书中的主要部分。
这些描述工貝是:数据流图;数据字典;描述加工逻辑的结构化语言,判定表、判定树。
“数据流图(DFD)〃描述的分解,即描述系统山哪儿部分组成,各部分之间有什么联系等等。
“数据字典"定义了数据流图中每一个图形元素。
结构化语言、判定表或判定树则详细描述数据流图中不能被再分解的每一个加工。
数据流是数据在系统内传播的路径,因此山一•组成分固定的数据项组成。
加工(乂称数据处理)。
対数据流进行某些操作或变换。
数据存储(又称文件),指暂时保存的数据,它可以是数据库文件或任何形式的数据组织。
数据源点或终点:是本软件系统外部环境中的实体,统称外部实体。
数据字典(DD)就是用來定义数据流图中的各个成分的貝体含义的,它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。
数据字典的内容及格式数据项是组成数据流和数据存储的最小元素。
数据流条冃;数据存储条H;数据项条Fh加工条口数据字典屮的加工逻辑主要描述该加工“做什么〃,即实现另工的策略,而不是实现加工的细节,它描述如何把输入数据流变换为输出数据流的加工规则。
加工逻辑也称为“小说明〃,描述加工逻辑一般用以下三种工具:结构化语言、判定表、判定树。
结构化语言是介于自然语言和形式语言之间的一种半形式语言。
它的结构可分成外层和内层两层:外层用来描述控制结构,采用顺序、选择、重复三种基本结构;内层对于顺序执行和循环执行的动作,用结构化语言描述。
对于存在多个条件复杂组合的判断问题,用判定表和刎定初。
IDEFO:用来描述系统的功能活动及其联系,建立系统的功能模型。
IDEF1:用来描述系统的信息及其联系,建立系统的信息模型。
IDEF2:用来进行系统模拟,建立系统的动态模型。
传统的SA方法主要用于数据处理方而的问题,主要工具DFD体现了系统〃做什么〃的功能,但它仅是一个静态模型,没有反映处理的顺序,即控制流程。
形式化方法是将需求规格说明用形式规约语言来描述。
典型的冇基于模型的Z语言及VDM 开发方法。
第4章在软件需求分析阶段,已经搞清楚了软件“做什么〃的问题,并把这些需求通过规格说明书描述了出來,这也是冃标系统的逻辑模型。
进入了设计阶段,要把软件“做什么〃的逻辑模型变换为“怎么做〃的物理模型,即着手实现软件的需求,并将设计的结果反映在“设计规格说明〃文档中,软件设计是一个把软件需求转换为软件表示的过程,最初这种表示只是描述了软件的总的体系结构,称为软件概要设计或结构设计。
然后对结构进一步细分,称为详细设计或过程设计。
概要设计的基本任务:1设计软件系统结构(简称软件结构)一一采用某种设计方法,将一个复朵的系统按功能划分成模块;确定每个模块的功能;确定模块之间的接口,即模块之间传递的信息;评价模块结构的质量。
软件结构设计是以模块为基础的,在需求分析阶段,已经把系统分解为层次结构。
设计阶段, 以需求分析的结果为依据,从实现的角度进一步划分为模块,并组成模块的层次结构。
2数据结构及数据库设计数据库的设计指数据存储文件的设计(概念设计、逻辑设计、物理设计)数据库的“概念设计〃、“逻辑设计〃分别对应于系统开发屮的“需求分析〃与“概要设计〃,而数据库的“物理设计吗模块的“详细设计〃相对应。
3编写概要设计文档(概要设计说明书、数据库设计说明书、用户手册、修订测试计划,对测试策略、方法、步骤提出明确要求。
)4评审:对设计部分是否完整地实现了需求屮规定的功能、性能等要求,设计方案的可行性, 关键的处理及内外部接口定义止确性、冇效性,各部分Z间的一致性等等都一一进行评审。
模块的棊本属性:接口指模块的输入与输出;功能指模块实现什么功能;逻辑描述内部如何实现要求的功能及所需的数据;状态指该模块的运行环境,即模块的调用与被调用关系。
功能、状态与接口反映模块的外部特性,逻辑反映它的内部特性。
模块化是指解决一个复朵问题时自顶向下逐层把软件系统划分为若干模块的过程。
模块完成—个特定的了功能,所冇的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。
开发一个大而复杂的软件系统,将它进行适当的分解,不但可降低其复杂性,还可减少开发工作量,从而降低开发成本,提高软件生产率,这就是模块化的依据。
抽象是认识复杂现象过程屮使用的思维工具,即抽出事物木质的共同的特性而暂不考虑它的细节,不考虑其他因索。
通过抽彖,可以确定组成软件的过程实体。
通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的存取限制。
信息隐蔽指在设计和确定模块时,使得一个模块内部包含的信息(过程或数据),对于不需要这些信息的具他模块來说,是不能访问的。
模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单,两个定性的度量标准一一耦合性和内聚性。
耦介性也称块间联系。
指软件系统结构中各模块间相互联系紧密程度的一种度量。
模块Z间联系越紧密,其耦合性就越强,模块的独立性则越差。
模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。
无直接耦合数据耦合标记耦合控制耦合公共耦合内容耦合(低一一高)1无直接耦合2数据耦合指两个模块Z问有调用关系,传递的是简单的数据值,相当于高级语言的值传递。
3标记耦合指两个模块Z间传递的是数据结构,如高级语言中的数组名、记录名、文件名等这些名字即标记,其实传递的是这个数据结构的地址。