华软的软件工程复习题2.docx
- 文档编号:12284374
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:18
- 大小:889.49KB
华软的软件工程复习题2.docx
《华软的软件工程复习题2.docx》由会员分享,可在线阅读,更多相关《华软的软件工程复习题2.docx(18页珍藏版)》请在冰豆网上搜索。
华软的软件工程复习题2
软件危机
是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
产生于软件发展的第二阶段(软件系统阶段)末期。
软件危机---主要表现
对软件开发成本和进度的估计不准确
用户不满意
软件质量不高、可靠性差
软件常常不可维护、错误难以改正
缺乏适当的文档资料
软件成本占系统总成本的比例逐年上升(1985----90%)
软件开发速度跟不上计算机发展速度
归结为主要为三方面----“时间、成本、质量”
软件危机--原因1
软件规模日渐庞大(数量、功能、成本、质量、时间)
软件开发的管理困难。
逻辑部件而不是物理部件。
在写出程序代码并在计算机运行之前,软件开发过程的进展情况较难衡量,软件开发的质量也较难评价。
因此,管理和控制软件开发过程相当困难。
开发人员错误的观念、方法和技术
重编程、轻需求。
生产方式落后:
个体手工方式。
开发技术落后。
开发工具落后
软件危机---原因2
忽视软件开发前期的需求分析
开发过程缺乏统一的、规范化的方法论的指导
文档资料不齐全或不准确
忽视与用户之间、开发组成员之间的交流
忽视测试的重要性
不重视维护或由于上述原因造成维护工作的困难
需求变化预料不足
软件生存期技术》定义的软件过程
过程元素之间的关系
标准软件过程体系结构图
软件生命周期
它是指一个软件从提出开发要求开始到该软件报废为止的整个时期(生存过程)。
从时间角度,把整个周期划分为若干个阶段(步骤),每个阶段有明确的任务,然后再逐步完成每个阶段的任务
软件从孕育、诞生、成长、成熟、衰亡的生存过程
软件生存期各阶段
一般可分为六个步骤/阶段:
1.制定计划(Planning)
2.需求分析和定义(RequirementAnalysisandDefinition)
3.软件设计(SoftwareDesign)
4.程序编写(Coding/Programming)
5.软件测试(Testing)
6.运行/维护(Running/Maintenance)
线性顺序模型
瀑布模型
瀑布模型--特点
❑优点:
❑提供了软件开发的基本框架,比靠“个人技艺”开发好的多。
❑严格活动序列,严格阶段成果评审,有利于大型软件开发过程的人员的组织和管理
❑缺点:
对用户需求变更的响应较困难。
❑初始阶段较长,用户极大的耐心,需求的不确定性;
❑后期阶段时,需求错误、设计及实现错误才出现
❑适用:
需求明确、大型的项目。
瀑布模型变化1
瀑布模型变化2
快速应用开发模型RAD1
快速应用开发模型RAD2
RAD模型--特点
优点:
开发时间短
缺点:
多团队开发协调困难;了解需求困难;不注意小细节
原型模型1
原型模型2
原型模型----特点
●优点:
●成品的用户满意度高。
用户参与,需求不断完善
●缺点
●软件的“临时版本”,未考虑性能需求
●进度控制、质量检验较难,技术方案未必最优,会导致开发过程的不可收敛性
●系统结构通常较差,连续的变更损坏了系统的结构
●适用:
●中小规模、生存期短的系统,知识型系统
●用户定义了一组一般性目标,但不能标识出详细的输入、处理及输出需求
●开发者可能不能确定算法的有效性、操作系统的适应性或人机交互的形式
●当你的客户有一个合理的需求,但对细节则没有任何线索时,先开发一个原型系统是一个好的选择
●渐增模型
●以尽早占领市场为目的,逐步发布版本;
●可有计划地管理技术风险
●螺旋模型
●不同版本、不同形式的不断进化;
●需要高水平的风险评估技术
●并发开发模型
●由用户要求、管理决策和评审结果驱动;
●每一个软件工程活动触发活动网络的状态变迁;
需求分析定义
●需求分析是前面需求获取阶段的继续,通过对所获取的信息进一步加工获得对系统的更精确描述,成为转换成需求规格说明的直接信息元。
需求分析任务
需求分析过程图示
需求分析方法
●结构化分析
●面向对象分析
用例图
泛化
当多个用例共同拥有一种类似的结构和行为的时候我们可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。
包含
包含是指基本用例(baseusecase)会用到包含用例(inclusion),具体地讲,就是将包含用例的事件流插入到基础用例的事件流中。
包含用例是可重用的用例──多个用例的公共用例。
扩展
顺序图(时序图)
类图
☐类图描述的是对象之间的结构静态关系,用于软件系统的静态建模。
☐类图是显示一组类、接口、协作以及它们之间关系的图。
用于对系统静态设计视图建模。
☐类图通常包含下述内容:
类;接口;协作;关联关系;依赖;泛化
依赖
泛化
类的设计与类图
缺陷池
☐这种方法中,我们将使用两个池,例如池X和池Y来跟踪缺陷
☐现在,让池X中的缺陷数为Dx,池Y中的缺陷数为Dy
☐软件中发现的唯一缺陷总数如下:
☐唯一缺陷总数=Dx+Dy-在X和Y中发现的缺陷数
☐软件中的缺陷总数可以估计为:
☐缺陷总数=(Dx*Dy)/在X和Y中发现的缺陷数
☐X池-----475错误
☐Y池-----370错误
☐有125个缺陷同时出现在X、Y池中
☐唯一缺陷总数=475+370-125=720
☐缺陷总数=475*370/125=1406
☐可能剩余缺陷=1406-720=686
☐隐藏缺陷686/1406=48.79%
复习题目
一、单项选择题(20选10)
1.结构化分析的主要描述手段有(B)。
A.系统流程图和模块图B.DFD图、数据词典、加工说明
C.软件结构图、加工说明D.功能结构图、加工说明
2.用于表示模块间的调用关系的图叫(D)。
A.PADB.SCC.N-SD.HIPO
3.在(B)模型中是采用用例驱动和架构优先的策略,使用迭代增量建造方法,软件“逐渐”被开发出来的。
A.快速原型B.统一过程C.瀑布模型D.螺旋模型
4.常用的软件开发方法有面向对象方法、面向(A)方法和面向数据方法。
A.过程B.内容C.用户D.流程
5从工程管理的角度来看,软件设计分两步完成(D)。
A.①系统分析②模块设计B.①详细设计②概要设计
C.①模块设计②详细设计D.①概要设计②详细设计
7.程序的三种基本结构是(B)。
A.过程、子程序、分程序B.顺序、条件、循环
C.递归、堆栈、队列D.调用、返回、转移
8.SD方法衡量模块结构质量的目标是(C)。
A.模块间联系紧密,模块内联系紧密B.模块间联系紧密,模块内联系松散
C.模块间联系松散,模块内联系紧密(低耦合,高内聚)D.模块间联系松散,模块内联系松散
9.为提高软件测试的效率,应该(C)。
A.随机地选取测试数据B.取一切可能的输入数据作为测试数据
C.在完成编码后制定软件测试计划D.选择发现错误可能性大的数据作为测试数据
10.(D)测试用例发现错误的能力较大。
A.路径覆盖B.条件覆盖C.判断覆盖D.条件组合覆盖
11.软件需求分析应确定的是用户对软件的(A)。
A.功能需求和非功能需求B.性能需求C.非功能需求D.功能需求
12.下列各种图可用于动态建模的有(C)。
A.用例图B.类图C.序列图D.包图
13.软件过程模型有瀑布模型、(B)、增量模型等。
A.概念模型B.原型模型C.逻辑模型D.物理模型
14.面向对象的分析方法主要是建立三类模型,即(D)。
A.系统模型、ER模型、应用模型 B.对象模型、动态模型、应用模型
C.E-R模型、对象模型、功能模型 D.对象模型、动态模型、功能模型
15.测试的分析方法是通过分析程序(B)来设计测试用例的方法。
A.应用范围B.内部逻辑C.功能D.输入数据
16.软件工程是研究软件(B)的一门工程学科。
A.数学B.开发与管理C.运筹学D.工具
17.需求分析可以使用许多工具,但(C)是不适合使用的。
A.数据流图B.判定表C.PAD图D.数据字典
18.划分模块时,一个模块内聚性最好的是(A)。
A.功能内聚B.过程内聚C.信息内聚D.逻辑内聚
19.软件可移植性是用来衡量软件的(D)的重要尺度之一。
A.效率B.质量C.人机关系D.通用性
20.软件配置管理是在软件的整个生存周期内管理(D)的一组活动。
A.程序B.文档C.变更D.数据
1可行性研究有哪些步骤?
1)确定项目规模和目标;
2)研究现行系统(如果存在);
3)建立系统的高级逻辑模型,用系统流程图或数据流图(DFD图)描述;
4)提高实现高层逻辑模型的各种方案,并对各方案进行评价;
5)推荐可行的方案;
6)编写可行性报告;
2什么是软件生存周期?
软件生存周期模型有哪些?
答:
软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。
主要模型包括:
瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型。
3软件质量保证措施有那些?
1)以客户对于质量的需求为基础,对项目开发周期的各个阶段,建立质量目标;
2)定义质量度量以衡量项目活动的结果,协助评价有关的质量目标是否达到;
3)确定质量活动;
4)执行已经确定的质量活动;
5)评价质量
4什么是软件开发方法?
有哪些主要方法?
答:
软件开发方法是一种使用早已定义好的技术集及符号表示习惯来组织软件生产过程的方法,其方法一般描述成一系列的步骤,每一个步骤都与相应的技术和符号相关。
主要方法有:
1)结构化开发方法
2)面向数据结构的开发方法
3)原型化开发方法
4)面向对象的开发方法
5结构化分析的步骤有哪些?
1)建立当前系统的具体模型
2)抽象出当前系统的逻辑模型
3)建立目标系统的逻辑模型
4)为了对目标系统进行完整的描述,考虑人机界面和其他一些问题
6什么是软件维护?
它有哪些类型?
软件维护是指软件系统交付使用以后,为了改正软件运行错误,或者因新的需求而加入新功能的修改软件的过程。
它的类型有:
完善性维护,适应性维护,纠错性维护,预防性维护。
7软件测试的步骤有哪些?
1单元测试,分别完成每个单元的测试任务,以确保每个模块能正常工作2集成测试,把已测试的模块组装起来,进行集成测试3确认测试,完成集测试以后,要对开发工作初期制定的确认准则进行检验4系统测试,完成确认测试以后,给出的应该是合格的软件产品,为了检验能否与系统的其他部分协调工作,需要进行系统测试5验收测试,检验软件产品质量的最后一道工序是验收测试
8试述用户界面设计应考虑的因素。
答:
(1)可实用性。
要求使用简单,用户界面中所用术语的标准化和一致性,具有help功能。
快速的系统响应和低的系统成本,具有容错能力。
(2)灵活性。
考虑用户的特点,能力,知识水平;提供不同的系统响应时间,提供根据用户需求制定和修改界面,
(3)界面的复杂性与可靠性
9评价模块分割好坏的标准有哪些?
模块分割好坏的标准有2个定性准则:
藕合性和内聚性。
耦合性用于描述模块之间联系的紧密程度;内聚性用于描述模块内部联系的紧密程度。
模块分割时耦合越松越好,内聚性愈强愈好
10UML有那些图?
答:
用例图:
从用户角度描述系统功能,并指出各功能的操作者
静态图:
表示系统的静态结构,包括类图,对象图,包图
行为图:
描述系统的动态模型和组成对象间的交互关系,包括状态图,活动图
交互图:
描述对象间的交互关系,包括顺序图,合作图
实现图:
用于描述系统的物理实现,包括构件图,部件图
5、原型模型与演化模型的异同分析(5分)
答:
原型模型
优点:
成品的用户满意度高。
用户参与,需求不断完善
缺点:
a软件的“临时版本”,未考虑性能需求
b进度控制、质量检验较难,技术方案未必最优,会导致开发过程的不可收敛性
c系统结构通常较差,连续的变更损坏了系统的结构
适(使)用:
a中小规模、生存期短的系统,知识型系统
b用户定义了一组一般性目标,但不能标识出详细的输入、处理及输出需求
c开发者可能不能确定算法的有效性、操作系统的适应性或人机交互的形式
d当你的客户有一个合理的需求,但对细节则没有任何线索时,先开发一个原型系统是一个好的选择
演化模型
优点:
易于预测、管理、控制使用的资源
缺点:
有可能消弱结构和设计
适(使)用:
a用户需求不明确
b设计用户界面
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 复习题