软件工程资料

一、单选题1. 为了提高测试的效率,应该( D )A、随机地选取测试数据B、取一切可能的输入数据作为测试数据C、在完成编码后制定软件的测试计划D、选择发现错误可能性大的数据作为测试数据2. 与设计测试数据无关的文档是( D ) A、需求说明书B、设计说明书C、源程序D、项目开发设计3. 结构设计是一种应用最广泛的系统设计方法,是以( B )为基础、自顶向下、逐步求精和模块化的过程A、数据流B、数据流图C、数据库D、数据结构4. 概要设计的结果是提供一份( A ) A、模块说明书B、框图C、程序D、数据结构5. 需求分析是由分析员经了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型并写出( B )A、模块说明书B、软件规格说明书C、项目开发计划D、合同文档6. 注释是提高程序可读性的有效手段,好的程序注释占到程序总量的( D )A、1/6 B、1/5 C、1/4 D、1/37. PAD(Problem Analysis Diagram)图是一种( B )工具。

A、系统描述B、详细设计C、测试D、编程辅助8. 排错一般是在测试发现错误后进行,其中找到错误位置占排错总工作量的( A )。

A、95%B、5%C、50%D、20%9.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的( A ) 。

A、总貌B、细节C、抽象D、软件的作者10. 分析员是( B )。

A、用户中系统的直接使用者B、用户和软件人员的中间人C、软件的编程人员D、用户和软件人员的领导11.在软件开发中,有利于发挥集体智慧的一种做法是( A )。

A、设计评审B、模块化C、主程序员制D、进度控制12.在开发软件时,( A )可用来提高程序员的工作效率。

A、程序开发环境B、操作系统的作业管理功能C、编译程序的优化功能D、并行运算的大型计算机二、多选题1. 数据流图的3种成分为①、②和③,②是数据流中①的变换,③用来存储信息,④对①、②、③进行详细说明,用⑤对③进行详细描述。

(E,I,B,G,H )①②③④⑤A、消息B、文书C、父母D、数据流E、加工流2. 文档是软件开发人员、软件管理人员、维护人员、用户以及计算机之间的①,软件开发人员在各个阶段以文档作为前段工作成果的②和后段工作的③(B,E,F )①②③A、接口B、桥梁C、科学D、继续E、体现F、基础3. 单独测试一个模块时,有时需要一个①程序①被测试的模块。

有时还要有一个或几个②模块模拟由被测试模块调用的模块。

(B,D )①A、理解B、驱动C、管理D、传递②A、子(Sub)B、仿真(Initation)C、栈(Stack)D、桩(Stub)4. 在结构化程序设计思想提出以前,在程序设计中曾强调程序的①。

现在,与程序的①相比,人们更重视程序的②。

(F,E )①②A、安全性B、专用性C、一致性D、合理性E、可理解性F、效率5. 软件测试中,白箱方法是通过分析程序的①来设计测试实例的方法,除了测试程序外,还适用于对②阶段的软件文档进行测试。

黑箱方法是根据程序的③来设计测试实例的方法,除了测试程序外,它也适用于④阶段的软件文档进行测试。

(B,B,C,D )①③A、应用范围B、内部逻辑C、功能D、输入数据②④A、编码B、软件详细设计C、软件概要设计D、需求分析6.(1)在软件生命期中,①阶段所需工作量最大,约占70%;(E,B,B,B,C )(2)结构化分析方法产生的系统说明书由一套②、一本数据字典和一组小说明及补充材料组成;(3)软件的③一般由两次故障平均间隔时间和故障平均恢复时间来度;(4)采用④且编写程序,可提高程序的可移植性:(5)仅依据规格说明书描述的程序功能来设计测试实例的方法称为⑤。

①A、分析B、设计C、编码D、测试E、维护②A、因果图B、分层数据流图C、PAD图D、程序流程图③A、可维护性B、可靠性C、效率D、互理解性④A、机器语言B、宏指令C、汇编语言D、高级语言⑤A、白箱法B、静态分析法C、黑箱法D、人工分析法三、填空题1. 在结构化分析中,( 数据字典) 用于详细地定义数据流图中的成分。

2. 耦合性和内聚性是衡量( 模块独立性)的两个定性的标准。

3. 黑盒法测试时,如果选择的测试用例需考虑输入条件的各种组合,应采用( 因果图)法进行测试。

4. 提高程序的可理解、可修改、可测试的程度,就意味着增强软件件的( 可维护性)5. 从数据流图导出初始模块结构图,主要是通过( 变换)和( 事务) 两项技术。

6. 结构化程序设计是一种程序设计技术,它采用( 自顶向下,逐步求精) 的设计方法和顺序、选择、循环三种基本控制结构构造常态程序。

7. 结构化分析方法中,数据流图的四种基本成分为加工源点或终点、(数据流)和,( 文件)8. 从模块内外的联系来看,结构化设计的要求是( 模块内联系大,模块间联系小) 。

四、简答题1、什么是软件危机?产生软件危机的原因?2、软件生存周期包含哪六个阶段?3、软件开发与写程序有什么不同1. 软件开发技术的进步未能满足发展的要求。

在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。

产生原因:⑴软件规模越来越大,结构越来越复杂。

⑵软件开发管理困难而复杂。

⑶软件包开发费用不断增加。

⑷软件开发技术落后。

⑸生产方式落后,仍采用手工方式。

⑹开发工具落后,生产率提高缓慢。

2.六个阶段: 1、软件项目计划 2、需求分析和定义 3、软件设计4、编码5、测试6、运行和维护3. 软件包含程序,程序是软件的一部分。

软件是程序、数据及其相关文档的完整集合。

程序只是为了实现软件的功能和性能要求而编写的指令序列。

一、单选题1. 软件的( A )设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。

A、概要B、抽象C、逻辑D、规划2. 模块本身的内聚是模块独立性的重要度量因素之一,在七类内聚中,( D )具有最强内聚的一类是。

A、顺序性内聚B、过程性内聚C、逻辑性内聚D、功能性内聚3. Jackson设计方法是由英国的M.Jackson提出的,它是一种面向( C )的设计方法。

A、对象B、数据流C、数据结构D、控制结构4. 结构化程序设计思想的核心是要求程序只由顺序、循环和( A ) 三种结构组成。

A、分支B、单入口C、单出口D、有规则GOTO5. 源程序的版面文档要求应有变量说明、适当注释和( B ) 。

A、框图B、统一书写格式C、修改记录D、编程日期6. 在软件工程中,软件测试的目的是( B )。

A、试验性运行软件B、发现软件错误C、证明软件是正确的D、找出软件中全部错误7. 在软件工程中,当前用于保证软件质量的主要技术手段还是( B ) 。

A、正确性证明B、测试C、自动程序设计D、符号证明8. 在软件工程中,高质量的文档标准是完整性、一致性和( C ) 。

A、统一性B、安全性C、无二义性D、组合性9. 软件(结构)设计阶段文档是( D ) 。

A、系统模型说明书B、程序流程图C、系统功能说明书D、模块结构图和模块说明书10. 软件的维护指的是( A ) 。

A、对软件的改进、适应和完善B、维护正常运行C、配置新软件D、软件开发期的一个阶段11. 逆向工程在软件工程中主要用于( A ) 阶段。

A、分析B、设计C、编码D、维护12.软件工程中,只根据程序的功能说明而不关心程序内部逻辑的测试方法,称为( C )测试。

A、白盒法B、灰盒法C、黑盒法D、综合法二、多选题1. ①是以发现错误为目的的,而②是以定位、分析和改正错误为目的的。

( AB )A、测试B、排序C、维护D、开发2. 请按顺序写出软件生命期的几个阶段、( F,D,C,E,B,A )A、维护B、测试C、详细设计D、概要设计E、编码F、需求分析3. 软件危机出现于①,为了解决软件危机,人们提出了用②的原理来设计软件,这就是软件工程诞生的基础。

( C,B )①A、50年代末B、60年代初C、60年代末D、70年代初②A、运筹学B、工程学C、软件学D、数字4. 块间联系和块内联系是评价程序结构质量的重要标准。

联系的方式、共用信息的作用、共用信息的数量和界面的( C,B,A,A,B,A ) ①等因素决定了联系的大小;在块内联系中,②系最强。

结构设计方法的总则是使每个模块执行③功能,模块间传递④参数,模块通过⑤语句调用其他模块,而且模块间传递的参数应尽量⑥①A、友好地B、坚固性C、清晰性D、安全性②A、偶然性B、功能性C、通讯性D、顺序性③A、一个B、多个C、尽量多D、尽量少④A、数据性B、控制性C、混合性⑤A、直接调用B、Call语句C、中断D、宏调用⑥A、少B、多5.软件设计阶段可划分为①设计阶段和②设计阶段,用结构化设计方法的最终目的是使③,用于表示模块间调用关系的图叫④①② ( F,D,C,C ) A、逻辑B、程序C、特殊D、详细E、物理F、概要③A、块间联系大,块内联系大B、块间联系大,块内联系小C、块间联系小,块内联系大D、块间联系小,块内联系小④A、PAD B、HCP C、SC D、SADTE、HIPO F、NS6. 结构设计方法中提出了判定作用范围和模块的控制范围两个概念,二者的正确关系应该是:①是②的子集。

( A,B ) ①②A、作用范围B、控制范围三、填空题1. 在需求分析中,可从有关问题的简述中提取组成数据流图的基本成分。

通常问题简述中的动词短语将成为数据流图中的(加工(或处理))成分。

2. 如果两模块间的通信信息是若干个参数,而每个参数是单一的数据项,则称这种耦合性为(数据)耦合。

3. 如果按用户要求增加新功能或修改已有的功能而进行的维护工作,称为(完善性维护)4. 在系统设计时,当数据流图中数据的流动路径几乎是线性时,应采用(变换中心)策略设计系统结构图。

5. 由底向上渐增式是在测试层次结构的大型软件时常用的一种方法。

用由底向上渐增式方法对软件进行测试时,需要为每个模块准备一个(驱动模块),它的作用是调用被测的模块。

6. 现有一个计算类型的程序,它的输入只有一个Y,其范围是-50≤Y≤50。

现采用黑盒法进行测试,设计了一组测试用例:-100,100,0。

设计这组测试用例的方法是(等价分类)。

7. 现有一种软件开发方法,它将软件开发过程分成以下阶段:需求分析、原型开发和评价、系统设计和系统实现。

这种软件开发方法称为(原型法)。

8. 如果某个程序的输入数据的可能值划分为n个合理等价类、m个不合理等价类,这些等价类均为数轴上的一个有限敬意范围,则采用边缘值测试方法至少需要(2(m+n))个测试用例。

9. 模块内部的算法设计在结构化方法的(详细设计)阶段进行。

10. 在数据流图中,用以表示软件系统之外的人员、设备等外部实体的基本的基本成分(元素)称为(外部项)。

合集下载

软件工程复习资料精选全文完整版

软件工程复习资料精选全文完整版

可编辑修改精选全文完整版一、单选题(共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.过程式编程范型2.面向对象编程范型3.基于构件技术的编程范型软件工程的发展时期:(1)传统软件工程或者经典软件工程:开发过程:结构化分析一>结构化设计一>面向过程的编码一>软件测试(2)面向对象软件工程开发过程:OO分析与对象抽取一》对象详细设计一》面向对象编码与测试(3)基于构件的软件工程:以软件复用为目标、领域工程为基础,其开发过程一般包括包括以下阶段:领域分析和测试计划定制一一》领域设计一一》建立可复用构件库一一》按“构件集成模型,,查找与集成构件第二章生存周期什么是软件生存周期?计划阶段:需求分析,软件分析开发阶段:软件设计,编码(测试)软件测试维护阶段:运行维护模型特点和使用场合可行性研究1.经济可行性2.技术可行性3.运行可行性4.法律可行性第三章结构化分析与设计结构化程序设计的特点以及论述(1)整个程序的模块化(2)每个模块只有一个入口和出口(3)每个模块都应能单独执行,且无死循环(4)采用自顶向下,逐步细化的方法SA结构化分析设计(结构化)从内容分:1.系统结构设计2.接口设计3.数据设计4.过程设计按照步骤分:1.概要设计2.详细设计第四章OO与面向对象+UML OO的特征1.抽象2.封装3.继承4.多态为什么用面向对象1.符合人类习惯的思维方式2.提高软件系统的可复用性3.提高软件系统的可扩展性4.提高软件系统的可维护性UML相关知识静态图1.用例图:描述系统功能2.类图:描述系统的静态结构3.对象图:描述系统在某个时期的静态结构4.构件图:描述实现系统的元素的组织5.部署图:描述系统环境元素的配置动态图1.状态图:描述系统元素的状态条件和相应2.时序图:按照时间顺序描述系统元素间的交互3.协作图:按照连接关系描述系统元素间的交互4.活动图:描述系统元素的活动流程第五章需求建模需求分析的步骤1.需求获取2.需求建模3.需求描述4.需求验证面向对象需求建模1.画用例图2.写用例规约3.描述补充规约4.编写术语表第六章需求分析面向对象的需求分析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、软件危机消除的办法:P51、必须充分吸取和借鉴人类长期以来从事各种工程项目所积累的行之有效的原理、概念、技术和方法,特别要吸取几十年来人类从事计算机硬件研究和开发的经验教训。

2、应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在计算机系统早起发展阶段形成的一些错误概念和做法3、应该开发和使用更好的软件工具。

总之,解决软件危机,既要有技术措施,又要有必要的组织管理措施。

5、软件工程的含义:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

6、软件生命周期的过程以及任务。

(1)问题定义(2)可行性研究(3)需求分析(4)总体设计(5)详细设计(6)编码和单元测试(7)综合测试(8)软件维护****************************以上为第一章******************第二章●数据流图有四种成分:源点或终点,处理,数据存储,数据流●画DFD(数据流图)的指导原则:1.符号要使用标准符号2.恰当的命名3.流入流出的数据流的条数一致4.名字要保值一致(平衡)5.遵守加工编号规则6.处理必须既有输入流又有输出流(注意:源点和终点可以相同也可以不同)●数据字典的作用:数据字典(DD)的作用也正是在软件分析和设计过程中给人提供关于数据的描述信息。

●数据字典的内容:(1)、数据流(2)、数据流分量即数据元素(3)、数据存储(4)、处理*********************** *******以上为第二章************************************第三章●实体-联系图(ER)图的概念:ER图中包含了实体、联系和属性3中基本成分,通常用矩形框代表实体,用连接先关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体(或关系)的属性,并用直线吧实体(或关系)与其属性连接起来。

软件工程基础知识考试资料

软件工程基础知识考试资料

软件工程基础知识考试资料1. 软件工程概述软件工程是指应用科学原理和方法,以及工程管理原则,系统地进行软件开发、维护和演化的一种工程学科。

软件工程的目标是提高软件的质量、可靠性、可维护性和可复用性,降低软件开发和维护的成本和时间。

2. 软件生命周期软件生命周期是指软件从概念到退役的全过程,包括需求分析、系统设计、编码、测试、部署、维护等阶段。

常见的软件开发生命周期模型有瀑布模型、迭代模型、敏捷模型等。

2.1 瀑布模型瀑布模型是最早提出的软件开发生命周期模型,它按照线性顺序依次完成需求分析、系统设计、编码、测试和维护等阶段。

瀑布模型的优点是结构清晰,适用于开发稳定的需求;缺点是适应性差,无法应对需求变化。

2.2 迭代模型迭代模型是按照循环迭代的方式完成软件开发的模型,每个迭代周期内包括需求分析、系统设计、编码、测试和维护等阶段。

迭代模型的优点是适应性强,能够应对需求变化;缺点是进度不确定,需求可能会不断变化。

2.3 敏捷模型敏捷模型是一种强调灵活性和迭代开发的软件开发方法。

敏捷开发通过快速迭代、持续交付和团队协作来应对需求的变化。

常见的敏捷开发方法有Scrum、XP、DevOps等。

3. 软件需求工程软件需求工程是软件工程的重要组成部分,主要包括需求获取、需求分析、需求规格说明和需求验证等阶段。

3.1 需求获取需求获取是指从项目相关方获取对软件功能和性能的需求。

常用的需求获取方法有访谈、问卷调查、案例分析等。

3.2 需求分析需求分析是对需求进行细化、整理和优化的过程。

需求分析的目标是明确需求背后的业务逻辑,识别需求的优先级和约束条件。

3.3 需求规格说明需求规格说明是将需求以文档形式记录下来,包括用户需求、功能需求、非功能需求等。

常用的需求规格说明方法有用例图、活动图、状态图等。

3.4 需求验证需求验证是确保软件产品满足用户需求的过程。

常用的需求验证方法有测试、验收和用户反馈等。

4. 软件设计与架构软件设计是指在需求分析的基础上,将系统分解为不同的模块,并定义各模块之间的接口和关系。

软件工程复习资料

软件工程复习资料

软件⼯程复习资料软件⼯程第⼀章⼀、什么是软件?软件(Software)是计算机系统中与硬件相互依存的另⼀部分,它是包括程序(Program),数据(Data)及其相关⽂档(Document)的完整集合。

程序是按事先设计的功能和性能要求执⾏的指令序列数据是使程序能正常操纵信息的数据结构⽂档是与程序开发,维护和使⽤有关的图⽂材料⼆、软件危机原因:与软件本⾝的特点有关(难于维护, 逻辑复杂)与软件开发与维护的⽅法不正确有关:软件≠程序急于求成=拔苗助长各⾃为阵⽆⽅法/学现象:1.成本⾼2.计算机软件和硬件费⽤⽐3.软件质量得不到保证4.由于软件质量问题导致失败的软件项⽬⾮常多5.进度难以控制6.维护⾮常困难办法:软件⼯程(学)三、软件⼯程软件⼯程是应⽤计算机科学、数学及管理科学等原理开发软件的⼯程。

它借鉴传统⼯程的原则、⽅法,以提⾼质量,降低成本为⽬的。

开发、运⾏和维护软件的系统⽅法四、软件⼯程三要素软件⼯程⽅法学包含3个要素:⽅法、⼯具和过程。

五、软件⽣命周期六、软件过程模型瀑布模型瀑布模型适合于⽤户需求明确、完整、⽆重⼤变化的软件项⽬开发。

瀑布模型的成功在很⼤程度上是由于它基本上是⼀种⽂档驱动的模型。

“瀑布模型是由⽂档驱动的”这个事实也是它的⼀个主要缺点。

在项⽬开始的时候,⽤户常常难以清楚地给出所有需求;⽤户与开发⼈员对需求理解存在差异。

实际的项⽬很少按照顺序模型进⾏。

⽤户必须有耐⼼,等到系统开发完成。

缺乏灵活性:因为瀑布模型确定了需求分析的绝对重要性,但是在实践中要想获得完善的需求说明是⾮常困难的,导致“阻塞状态”。

反馈信息慢,开发周期长。

虽然存在不少缺陷,瀑布模型经常被嘲笑为“旧式的”,但是在需求被很好地理解的情况下,仍然是⼀种合理的⽅法。

快速原型模型增量模型增量模型是迭代和演进的过程。

增量模型把软件产品分解成⼀系列的增量构件,在增量开发迭代中逐步加⼊。

每个构件由多个相互作⽤的模块构成,并且能够完成特定的功能。

软工学习资料推荐

软工学习资料推荐软件工程(Software Engineering)是一门研究和应用如何以系统化和规范化的方法去构建、运行、维护和管理软件的学科。

对于软件工程学习者来说,掌握优质的学习资料是非常重要的,它们可以帮助我们深入了解软件工程的理论和实践,提升我们的编程能力和项目管理技巧。

本文将向广大软工学习者推荐一些值得阅读的软工学习资料。

一、软件工程导论1. 《软件工程导论》(Introduction to Software Engineering)- Ian Sommerville这本书是软件工程学习的经典教材,已经成为了许多大学软工专业的教材之一。

作者通过清晰简洁的语言,详细介绍了软件工程的各个方面,包括软件开发过程、需求分析、软件设计、软件测试等。

它不仅适合软件工程专业的学生,也适合其他对软工感兴趣的读者。

2. 《软件工程:实践者的研究方法》(Software Engineering: A Practitioner's Approach)- Roger S. PressmanPressman的这本书是软件工程领域的经典著作之一,对软件开发的整个过程进行了深入的介绍和剖析。

书中包含丰富的案例和实践经验,让读者能够更好地理解软件工程中的实际问题和解决方法。

二、软件需求工程1. 《软件需求工程》(Software Requirements Engineering)- Karl Wiegers、Joy Beatty这本书主要介绍了软件需求工程的理论和实践。

作者通过大量的示例和案例,详细讲解了如何正确地进行需求分析和需求管理,以及如何定义和验证软件需求。

对于从事软件需求工程的工程师和项目经理而言,这本书是一本不可或缺的好资料。

2. 《需求工程:基础》(Requirements Engineering: Fundamentals)- Klaus Pohl、Chris Rupp本书系统地介绍了需求工程的基本概念和方法,帮助读者全面理解需求工程的整个过程。

软件工程复习资料

一、单选题1. 为了提高测试的效率,应该( D )A、随机地选取测试数据B、取一切可能的输入数据作为测试数据C、在完成编码后制定软件的测试计划D、选择发现错误可能性大的数据作为测试数据2. 与设计测试数据无关的文档是( D ) A、需求说明书B、设计说明书C、源程序D、项目开发设计3. 结构设计是一种应用最广泛的系统设计方法,是以( B )为基础、自顶向下、逐步求精和模块化的过程A、数据流B、数据流图C、数据库D、数据结构4. 概要设计的结果是提供一份( A ) A、模块说明书B、框图C、程序D、数据结构5. 需求分析是由分析员经了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型并写出( B )A、模块说明书B、软件规格说明书C、项目开发计划D、合同文档6. 注释是提高程序可读性的有效手段,好的程序注释占到程序总量的( D )A、1/6 B、1/5 C、1/4 D、1/37. PAD(Problem Analysis Diagram)图是一种( B )工具。

A、系统描述B、详细设计C、测试D、编程辅助8. 排错一般是在测试发现错误后进行,其中找到错误位置占排错总工作量的( A )。

A、95%B、5%C、50%D、20%9.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的( A ) 。

A、总貌B、细节C、抽象D、软件的作者10. 分析员是( B )。

A、用户中系统的直接使用者B、用户和软件人员的中间人C、软件的编程人员D、用户和软件人员的领导11.在软件开发中,有利于发挥集体智慧的一种做法是( A )。

A、设计评审B、模块化C、主程序员制D、进度控制12.在开发软件时,( A )可用来提高程序员的工作效率。

A、程序开发环境B、操作系统的作业管理功能C、编译程序的优化功能D、并行运算的大型计算机二、多选题1. 数据流图的3种成分为①、②和③,②是数据流中①的变换,③用来存储信息,④对①、②、③进行详细说明,用⑤对③进行详细描述。

软件工程学习资料

软件工程学习资料在当今信息技术高速发展的时代,软件工程正逐渐成为一门备受关注的学科。

随着人们对软件需求不断增长,对软件开发和维护的要求也越来越高,软件工程学习资料的重要性也愈发凸显。

本文将为大家介绍一些优质的软件工程学习资料,帮助读者在学习软件工程的过程中更好地掌握相关知识。

一、教材和学习手册作为软件工程学习的基础,教材和学习手册是学习软件工程的重要参考资料。

《软件工程导论》是软件工程学习的经典教材,在该书中,作者系统地介绍了软件工程的基本概念、原理和方法,为初学者提供了全面的学习指导。

此外,《软件工程案例教程》和《软件工程经验与教训》等资料也是不错的学习选择。

二、学术论文与期刊学术论文与期刊是了解软件工程领域最新研究成果的重要渠道。

IEEE Transactions on Software Engineering是软件工程领域的顶级期刊,涵盖了软件设计、开发、测试等方面的研究成果。

此外,ACM Transactions on Software Engineering and Methodology、Journal of Software Engineering and Applications等期刊也是不可忽视的学习资源。

三、开放课程和在线学习平台随着互联网的发展,开放课程和在线学习平台为学习者提供了更多选择。

一些知名的大学和研究机构开设了软件工程相关的在线课程,如斯坦福大学的《软件工程导论》课程和麻省理工学院的《软件工程原理与实践》课程。

此外,Coursera、edX和Udemy等在线学习平台上也有丰富的软件工程学习资源可供选择。

四、开源项目和代码库开源项目和代码库是学习软件工程的重要资源之一。

GitHub是全球最大的开源代码托管平台,上面有大量的开源项目和代码可供学习。

通过阅读优秀的开源代码,学习者可以了解到不同领域的软件设计和实现方法,培养自己的编程能力和工程素养。

五、技术博客和论坛技术博客和论坛是软件工程领域交流和分享的重要场所。

软件工程 复习资料

软件工程复习大纲考试主要章节:第一章软件与软件工程第二章软件项目管理第三章计算机系统工程第3.2节第五章面向数据流的分析方法第八章软件设计基础第十四章软件测试其他:上课讲义题型一、选择题(单选或多选)1、软件的主要特性是()A、无形性B、高成本C、包括程序和文档D、可独立构成计算机系统(●软件是一种逻辑产品,具有无形性;●软件产品的生产主要是研制;●软件不存在磨损和老化问题,但存在退化问题;●软件产品的生产主要是脑力劳动;●软件产品的成本非常昂贵,其开发方式目前尚未完全摆脱手工生产方式;● 软件具有“复杂性”,其开发和运行常受到计算机系统的限制。

)2、软件工程三要素()A、技术、方法和工具B、方法、工具和过程C、方法、对象和类D、过程、模型和方法3、包含风险分析的软件工程模型是()A、螺旋模型B、瀑布模型C、增量模型D、喷泉模型4、软件危机的主要表现是()A、软件成本太高B、软件产品的质量低劣C、软件开发人员明显不足D、软件生产率低下5、软件工程的目标()A、易于维护B、低的开发成本C、高性能D、短的开发周期(注意:缩短开发周期是他的目标,但短的开发周期就不是了)6、需求分析的主要目的是(BC)。

A) 系统开发的具体方案B) 进一步确定用户的需求C) 解决系统是“做什么的问题”D) 解决系统是“如何做的问题”7、SA法的主要描述手段有(B)。

A) 系统流程图和模块图B) DFD图、数据词典、加工说明C) 软件结构图、加工说明D) 功能结构图、加工说明8、画分层DFD图的基本原则有(ACD)。

A) 数据守恒原则B) 分解的可靠性原则C) 子、父图平衡的原则D) 数据流封闭的原则9、在E-R模型中,包含以下基本成分(C)。

A) 数据、对象、实体B) 控制、联系、对象C) 实体、联系、属性D) 实体、属性、联系10、画DFD图的主要目的是(A D)。

A) 作为需求分析阶段用户与开发者之间交流信息的工具B) 对系统的数据结构进行描述C) 对目标系统的层次结构进行描述D) 作为分析和设计的工具11、数据字典是数据流图中所有元素的定义的集合,一般由以下四类条目组成(C)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档