软件工程概论Word格式.docx
- 文档编号:17389207
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:36
- 大小:170.66KB
软件工程概论Word格式.docx
《软件工程概论Word格式.docx》由会员分享,可在线阅读,更多相关《软件工程概论Word格式.docx(36页珍藏版)》请在冰豆网上搜索。
内容:
研究内容包括开发技术和开发管理两个方面。
开发技术主要研究:
软件开发方法,开发过程,开发工具和环境。
开发管理主要研究:
软件管理学,软件经济学,软件心理学。
7.概括地说,软件生存期由软件定义、软件开发和运行维护三个时期组成,每个时期又可划分为若干个阶段
(1)定义时期的主要任务是解决“做什么”的问题。
它通常又被分为三个阶段,问题定义、可行性研究和需求分析
(2)开发时期的主要任务是解决“如何做”的问题。
通常由概要设计、详细设计、编码和测试四个阶段组成(3)维护时期的主要任务是使软件持久地满足用户的需要。
通常有四类维护活动:
改正性维护,也就是诊断和改正在使用过程中发现的软件错误;
适应性维护,即修改软件为将来的维护活动预先做准备;
完善性维护,即根据用户的要求改进或扩充软件使它更完善;
预防性维护,即修改软件为将来的维护活动预先做准备。
8.什么是软件生存周期模型?
有哪些主要模型?
生存周期模型:
描述软件开发过程中各种活动如何执行的模型。
对软件开发提供强有力的支持,为开发过程中的活动提供统一的政策保证,为参与开发的人员提供帮助和指导,是软件生存周期模型化技术的基础,也是建立软件开发环境的核心。
主要有:
瀑布模型,增量模型,螺旋模型,喷泉模型,基于知识的模型,变换模型。
9.什么是软件生存周期?
它有哪几个活动?
软件生存周期:
一个软件从提出开发要求开始直到该软件报废为止的整个时期。
包括:
可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。
10.瀑布模型的特点如下?
(1)阶段具有顺序性和依赖性
(2)推迟实现的观点(3)质量保证的观点。
11.瀑布模型的优点是?
(1)可强迫开发人员采用规范化的方法
(2)严格地规定了每个阶段必须提交的文档(3)要求每个阶段交出的所有产品都必须是经过验证的。
12.瀑布模型的缺点是?
(1)由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要
(2)瀑布模型只用于开始时需求已确定的情况。
13.快速原型模型的优点是?
(1)有助于满足用户真实需求
(2)原型系统已经通过与用户的交互而得到验证,据此产生的规格说明文档能够正确地描述用户需求(3)软件产品的开发基本上是按线性顺序进行(4)因为规格说明文档正确地描述了用户需求(5)开发人员通过建立原型系统已经学到了许多东西(6)快速原型的本质是“快速”。
14.增量模型的优点是?
(1)能够在较短的时间内向用户提交一些有用的工作产品
(2)逐步增加产品的功能可以使用户有较充裕的时间学习和适应新产品(3)项目失败的风险较低(4)优先级最高的服务首先交付,然后再将其他增量构件逐次集成进来。
15.螺旋模型的优点是?
(1)对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发一个重要目标
(2)减少了过多测试或测试不足所带来的风险(3)在螺旋模型中,维护只是模型的另一个周期。
16.螺旋模型的缺点是:
?
螺旋模型是风险驱动的,因此要求软件开发人员必须具有丰富的风险评估经验和这方面的专门知识,否则将出现真正的风险:
当项目实际上正在走向灾难时,开发人员可能还以为一切正常。
17.螺旋线上的每个循环可划分为四个象限,分别表达了四个方面的活动?
(1)目标设定—定义在该阶段的目标,弄清对过程和产品的限制条件,制定详细的管理计划,识别项目风险,可能还要计划与这些风险有关的对策
(2)风险会计与弱化—针对每个风险进行详细分析,设想弱化风险的步骤(3)开发与验证—评价风险之后选择系统开发模型(4)计划—评价开发工作,确定是否继续进行螺旋线的下一个的循环。
18在统一过程中有5个核心工作流,即需求、分析、设计、实现和测试工作流;
统一过程有4个阶段,分别是初始阶段、细化、构造阶段和移交阶段。
19.SWEBOK指南的目标是?
(1)促使软件工程本体知识成为世界范围的知识
(2)澄清软件工程与其他相关学科(3)反映软件工程学科内容的特征(4)确定软件工程本体知识的各个专题(5)为相应的课程和职业资格认证材料的编写奠定基础。
20.软件工程知识体系指南的内容?
SWEBOK指南将软件工程知识体系划分为10个知识域,分为两类过程。
一类是开发与维护过程,包括软件需求、软件设计、软件构造、软件测试和软件维护;
另一类是支持和组织过程,包括软件配置管理、软件工程管理、软件工程过程、软件工程工具与方法、软件质量。
21.软件产品的特性是什么?
⑴是一种逻辑产品,与物质产品有很大的区别⑵软件产品的生产主要是研制,生产成本主要在开发和研制,开发研制完成后,通过复制就产生了大量软件产品⑶软件产品不会用坏,不存在磨损,消耗⑷生产主要是脑力劳动,还末完全摆脱手工开发方式,大部分产品是"
定做"
的⑸开发软件的费用不断增加,致使生产成本相当昂贵。
22.软件生产有几个阶段?
各有何特征?
⑴程序设计时代:
这个阶段生产方式是个体劳动,使用的生产工具是机器语言,汇编语言⑵程序系统时代:
这个阶段生产方式是小集团合作生产,使用的生产工具是高级语言,开发方法仍依靠个人技巧,但开始提出结构化方法⑶软件工程时代:
这个阶段生产方式是工程化的生产,使用数据库﹑开发工具﹑开发环境﹑网络﹑分布式﹑面向对象技术来开发软件。
23.软件工程面临的问题是什么?
软件工程需要解决的问题:
软件的费用,可靠性,可维护性,软件生产率和软件的重用。
24.什么是软件开发方法?
有哪些主要方法?
使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。
通过使用成功的软件开发方法,在规定的投资和时间内,开发出符合用户需求的高质量的软件。
结构化方法,JACKSON方法,维也纳开发方法﹙VDM﹚,面向对象开发方法。
25.快速原型的分类、特点及使用策略?
分类:
探索型、实验型、进化型
特点:
尽快向用户提供一个可在计算机上运行的目标系统的模型,以便使用户和开发者在目标系统应该“做什么”这个问题上尽可能快地达成共识。
使用策略:
废弃策略和追加策略。
26.软件工程的目标?
第2章软件工程方法与工具
1.软件工程的三种要素是什么?
各自作用是什么?
软件工程方法学包含3个要素:
方法、工具和过程。
(1)软件工程方法(method)为建造软件提供技术上的解决方法
(2)工具为方法的运用提供自动的或半自动的软件支撑环境(3)过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
2.形式化方法的主要特点是?
(1)软件需求规格说明被细化为用数学记号表达的详细的形式化规格说明
(2)设计、实现和单元测试等开发过程由一个变换开发过程代替。
3.类是具有相同操作功能和相同的数据格式的对象的集合与抽象。
4.封装是利用抽象数据类型将数据和基于数据的操作封装在一起。
5.消息是一个对象向另一个对象传递的信息,有4类消息?
(1)发送对象请求接收对象服务
(2)发送对象激活接收对象(3)发送对象询问接收对象(4)发送对象仅传送信息给接收对象。
6.面向对象的软件开发方法?
(1)Booth方法
(2)Rumbaugh方法(3)Coad和Yourdon方法(4)Jackbson方法(5)Wirfs-Brock方法。
7.UML的特点?
(1)统一标准
(2)面向对象(3)可视化,表达能力强大(4)独立于过程(5)容易掌握使用(6)与编程语言的关系。
8.软件工具的概念?
软件工具是指能支持软件生存周期中某一阶段的需要而使用的软件工具。
9.软件工具的分类?
软件工具按软件过程的活动来进行分类:
(1)支持软件开发过程的工具。
主要有需求分析工具、设计工具、编码工具、排错工具、测试工具等
(2)支持软件维护过程的工具。
主要有版本工具、文档分析工具、信息库开发工具、逆向工程工具、再工程工具等(3)支持软件管理过程和支持的工具,主要有项目管理工具、配置管理工具、软件评价工具等。
10.软件开发过程中的常用软件工具有哪些?
(1)需求分析工具(按所采用的系统开发方法,分为:
结构化图形工具箱,面向对象模型化工具及分析工
具)
(2)设计工具(对应于概要设计活动和详细设计活动,分为概要设计工具和详细设计工具)(3)编码工具与排错工具(4)测试工具(分为程序单元测试工具、组装测试工具和系统测试工具)。
11.Rose的特点?
(1)Rose支持三层结构方案
(2)Rose产品为大型软件工程提供了可塑性和柔韧性极强的解决方案(3)ROSE支持UML、OOSE及OMT(4)支持大型复杂项目(5)与多种开发环境无缝集成。
12.Rose的系统主菜单窗口分为7个区域?
系统主菜单、标准工具栏、图形工具栏、浏览器窗口、文档窗口、应用窗口和日志窗口。
13.可行性研究有哪些步骤?
⑴确定项目规模和目标;
⑵研究正在运行的系统⑶建立新系统的高层逻辑模型⑷导出和评价各种方案⑸推荐可行方案⑹编写可行性研究报告。
14.可行性研究过程包括哪些?
(1)复查系统规模和目标
(2)研究目前正在使用的系统(3)导出新系统的高层逻辑模型(4)进一步定义问题(5)导出和评价供选择的解法(6)推荐行动方针(7)草拟开发计划(8)书写文档提交审查。
第3章软件需求获取与结构化分析方法
1.需求获取的任务?
(1)发现和分析问题,并分析问题的原因/结果关系
(2)与用户进行各种方式的交流,并使用调查研究方法收集信息(3)按照三个成分即数据、过程和接口观察问题的不同侧面(4)将获取的需求文档化,形式有用例、决策表、决策树等。
2.需求获取的过程?
(1)开发高层的业务模型
(2)定义项目范围和高层需求(3)识别用户类和用户代表(4)获取具体的需求(5)确定目标系统的业务工作流(6)需求整理与总结。
3.需求获取应遵循的原则?
(1)深入浅出的原则
(2)以流程为主线的原则。
4.具体需求的来源来自以下几种途径?
(1)与用户进行交流
(2)现有产品或竞争产品的描述文档(3)系统需求规格说明(4)当前系统的问题报告和改进要求(5)市场调查和用户问卷调查(6)观察用户如何工作。
5.什么是数据流图?
其作用是什么?
数据流图(DFD):
以图形的方式描述数据在系统中流动和处理的逻辑过程。
只反映系统必须完成的逻辑功能,是一种功能模型。
6.建立决策表的步骤如下?
(1)列出与一个具体过程有关的所有处理
(2)列出过程执行期间的所有条件(3)将特定条件取值组合与特定的处理相匹配,消去不可能发生的条件取值组合(4)将右部每一纵列规定为一个处理规则相匹配,即对于某一条件取值组合将有什么动作。
7.SRS和DRD的质量要求?
要编制一份好的SRS(软件需求规格说明)和DRD(数据需求说明),必须使其具有完整性、无歧义性、一致性、可验证性、可修改性、可追踪性等特性。
8.在需求评审实施过程中可能会遇到的风险包括?
(1)需求评审的参与者选取不当
(2)评审规模过大(3)评审组规模过大(4)评审时间过长。
9.什么是数据字典?
作用是什么?
共有哪些条目?
数据字典(DD)用来定义数据库流图中的各个成分的具体含义。
有以下四类条目:
数据流,数据项,数据存储,基本加工。
10.某图书管理系统有以下功能:
⑴借书:
输入读者借书证。
系统首先检查借书证是否有效,若有效,对于第一次借书的读者,在借书证上建立档案。
否则,查阅借书文件,检查该读者所借图书是否超过10本,若已达10,拒借,末达10本,办理借书(检查库存,修改库存目录并将读者借书情况录入借书文件。
)
⑵还书:
从借书文件中读出与读者有关的记录,查阅所借日期,如超期(3个月)作罚款处理。
否则,修改库存目录与借书文件。
⑶查询:
通过借书文件,库存目录文件查询读者情况﹑图书借阅及库存情况,打印统计表。
解:
11.某银行的计算机储蓄系统功能是:
将储户的存户填写的存款单或存款单输入系统,如果是存款,系统记录存款人姓名﹑住址﹑存款类型﹑存款日期﹑利率等信息,并打印出存款单给储户;
如果是取款,系统计算清单给储户。
请用DFD,IDEF0描绘该功能的需求,并建立相应数据字典。
12.一个考务处理系统的要求如下,试画出该系统的数据流图。
(1)对考生送来的报名表进行检查;
(2)对合格的报名表编好准考证号码后将准考证送给考生,并将汇总后的考生名单送给阅卷站;
(3)对阅卷站送来的成绩表进行检查,并根据考试中心指定的合格标准审定合格者;
(4)填写考生通知单(内容包含考试成绩及合格∕不合格标志),送给考生;
(5)按地区、年龄、文化程度、职业、考试级别等进行成绩分类统计及试题难度分析,产生统计分析表。
(1)顶层数据流图
(2)第1层数据流图
(3)第2层数据流图
加工1子图:
加工2子图:
13.什么是需求分析?
需求分析阶段的基本任务是什么?
需求分析:
开发人员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。
基本任务:
⑴问题识别:
双方确定对问题的综合需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求⑵分析与综合,导出软件的逻辑模型⑶编写文档:
包括编写"
需求规格说明书"
"
初步用户使用手册"
确认测试计划"
修改完善软件开发计划"
。
14.什么是结构分析方法?
该方法使用什么描述工具?
结构化分析:
简称SA,面向数据流进行数据分析的方法。
采用自顶向下逐层分解的分析策略。
顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。
中间层则是从抽象到具体的过渡。
使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑。
15.结构化分析方法通过哪些步骤来实现?
⑴了解当前系统的工作流程,获得当前系统的物理模型⑵抽象出当前系统的逻辑模型⑶建立目标系统的逻辑模型⑷作进一步补充和优化。
16.从哪些方面验证软件需求的正确性?
(1)一致性所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾
(2)完整性需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能(3)现实性指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。
对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性(4)有效性必须证明需求是正确有效的,确实能解决用户面对的问题。
第4章结构化设计方法
1.结构化设计方法可以分为两类?
一类是根据系统的数据流进行设计,称为面向数据流的设计,或称过程驱动的设计;
另一类是根据系统的数据结构进行设计,称为面向数据结构的设计,或称数据驱动的设计。
2.在设计中引入灵活性的方法有?
(1)降低耦合并提高内聚
(2)建立抽象(3)不要将代码写死(4)抛出异常(5)使用并创建可复用的代码。
3.结构化软件设计的主要任务?
结构化软件设计的主要任务是要解决“如何做”的问题,要在需求分析的基础上建立各种设计模型,并通过对设计模型的分析和评估来确定这些模型是否能够满足需求。
4.结构化设计方法的实施要点是?
(1)首先研究、分析和审查数据流图
(2)然后根据数据流图决定问题的类型(3)由数据流图推导出系统的初始结构图(4)利用一些启发式原则来改进系统的初始结构图,直到得到符合要求的结构图为止(5)根据分析模型中的实体-关系图和数据字典进行数据设计,包括数据库设计或数据文件的设计(6)在上面设计的基础上,并依据分析模型中的加工规格说明、状态转换图及控制规格说明进行过程设计(7)制定测试计划。
5.软件设计的原则?
(1)分而治之
(2)模块独立性(模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而与软件系统中其他模块的接口是简单的)(3)提高抽象层次(抽象是指忽视一个主题中与当前目标无关的方面,以便更充分地注意与当前目标有关的方面)(4)复用性设计(5)灵活性设计(保证软件灵活性设计的关键是抽象)。
6.一般地,模块可以按照在软件系统中的功能划分为4种类型?
(1)传入模块:
传入模块的功能是取得数据或输入数据,经过某些处理,数据可能被输出到系统的外部,也可能会输出到其他模块做进一步的处理,但最终的目标是输出到系统的外部
(2)传出模块:
传出模块的功能是输出数据,在输出之前可能进行某些处理,数据可能被输出到系统的外部(3)变换模块:
变换模块也叫加工模块,它从上级调用模块取得数据,进行特定的处理,转换成其他形式,再将加工结果返回给调用模块(4)协调模块:
协调模块本身一般不对数据进行加工。
7.变换分析方法由以下4步组成?
(1)重画数据流图
(2)区分有效输入、有效输出和中心变换部分(3)进行一级分解,设计上层模块(4)进行二级分解,设计输入、输出和中心变换部分的中、下层模块。
8.基于数据流方法的设计过程?
(1)复查并精化数据流图
(2)确定数据流图中数据流的类型,典型的数据流类型有变换数据流和事务型数据流(3)导出初始的软件结构图:
根据数据流类型,应用变换型映射方法或事务型映射方法得到初始的软件结构图(4)逐级分解:
对软件结构图进行逐级分解(5)精化软件结构:
使用设计度量和启发式规则对得到的软件结构进一步精化(6)导出接口描述和全局数据结构:
对每一个模块,给出进出该模块的信息。
9.重画数据流图应注意以下几个要点?
(1)以需求分析阶段得到的数据流图为基础重画数据流图时,可以从物理输入到物理输出或者相反
(2)在图上不要出现控制逻辑(3)不要去关注系统的开始和终止(4)省略每一个加工框的简单例外处理(5)当数据流进入和离开一个加工框时,要仔细地标记它们,不要重名(6)如有必要,可以使用逻辑运算符*(表示逻辑与)和
(表示异或)(7)仔细检查每层数据流的正确性。
10.事务分析方法的步骤如下?
(1)识别事务源
(2)规定适当的事务型结构(3)识别各种事务和它们定义的操作(4)注意利用公用模块(5)对每一事务,或联系密切的一组事务,建立一个事务处理模块(6)对事务处理模块规定它们的全部细节模块。
11.软件模块结构的改进方法?
(1)模块功能的完善化
(2)消除重复功能,改善软件结构(3)模块的作用范围应在控制范围之内(4)尽可能减少高扇出结构,随着深度增大扇入(5)避免或减少使用病态连接(6)模块的大小要适中。
12.应限制使用如下3种病态连接?
(1)直接病态连接
(2)公共数据域病态连接(3)通信模块连接。
13.用户界面应具备的特性?
(1)可使用性:
用户界面的可使用性是用户界面设计最重要的目标
(2)灵活性:
考虑到用户的特点、能力、知识水平,应当使用接口满足不同用户的要求(3)可靠性:
用户界面的可靠性是指无故障使用的间隔时间。
14.接口设计主要包括3个方面?
模块或软件间的接口设计;
软件与其他软硬件系统之间的接口设计;
软件与人之间的交互设计。
15.通常,用户可以分为4种类型?
(1)外行型:
以前从未使用过计算机系统的用户
(2)初学型:
这类用户尽管对新的系统不熟悉,但对计算机还有一些经验(3)熟练型:
对一个系统有相当多的经验,能够熟练操作的用户(4)专家型:
这一类用户与熟练型用户相比,他们了解系统的内部构造,有关于系统工作机制的专业知识,具有维护和修改基本系统的能力。
16.人机交互的设计有若干准则,包括?
(1)一致性
(2)操作步骤少(3)不要“哑播放”(4)提供Undo功能(5)减少人脑的记忆负担(6)提高学习效率。
17.文件的组织方式?
(1)顺序文件
(2)直接存取文件(3)索引顺序文件(4)区分文件(5)虚拟存储文件。
18.以下几种情况适合于选择文件存储?
(1)数据量较大的非结构化数据
(2)数据量大,信息松散(3)非关系层次化数据(4)对数据的存取速度要求极高的情况(5)临时存放的数据。
19.过程描述工具分为以下3类?
(1)图形工具—把过程的细节用图形方式描述出来
(2)表格工具—用一张表来表达过程的细节(3)语言工具—用某种类高级语言来描述过程的细节。
20.结构化程序设计主要的原则有?
(1)使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑
(2)选用的控制结构只准许有一个入口和一个出口(3)程序语句组成容易识别的块,每块只有一个入口和一个出口(4)复杂结构应该用基本控制结构进行组合嵌套来实现(5)语言中没有的控制结构,可用一段等价的程序段模拟(6)严格控制GOTO语句(7)在程序设计过程中,尽量采用自顶向下和逐步细化原则,由粗到细,一步步展开。
21.伪代码具有以下特点?
(1)有固定的关键字外语法,提供全部结构化控制结构、数据说明和模块特征
(2)内语法使用自然语言来描述处理特性,为开发者提供方便,提高可读性(3)有数据说明机制,包括简单的与复杂的数据结构(4)有子程序定义与调用机制,用以表达各种方式的接口说明。
22.自顶向下、逐步求精方法的优点?
(1)自顶向下、逐步求精方法符合人们解决复杂问题的普遍规律,可提高软件开发的成功率和生产率
(2)用先全局后局部、先整体后细节、先抽象后具体的逐步求精的过程开发出来的程序具有清晰的层次结构(3)程序自顶向下,逐步细化,分解成树形结构(4)程序清晰和模块化,使得在修改和重新设计一个软件时,可复用的代码最大(5)程序的逻辑结构清晰,有利于程序正确性证明(6)每一步工作仅在上层结点的基础上做不多的设计扩展,便于检查(7)有利于设计的分工和组织工作。
23.N—S图有以下几个特点?
(1)图中每个矩形框都是明确定义了的功能域,以图形表示,清晰可见
(2)它的控制转移不能任意规定,必须遵守结构化程序设计的要求(3)很容易确定局部数据和全局数据作用域(4)很容易表现嵌套关系。
24.概要设计评审的检查内容如下?
(1)系统概述
(2)系统描述和可追踪性(3)是否对需求分析中不完整、易变动、潜
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 概论