软件工程期末考试简答题汇总
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1什么是软件工程?基本原理有哪些?
软件工程是指导计算机软件开发和维护的工程学科。
用分阶段的生命周期计划管理、坚持阶段评审、实行严格产品控制、采用现代设计技术、结果审查、开发小组人员少而精、并不断改进方法。
2成本_效益分析可用哪些指标进行度量?(写出公式)
可用投资回收期、纯收入、投资回收率指标,通过P=F/(1+i)n计算求得。
3什么是数据流图?其中的基本符号各表示什么含义?画出定货系统基本数据流图。
用符号描绘信息在系统中流动的情况,源点、终点、处理、数据存储、数据流。
4非渐增式测试与渐增式测试有什么区别?
两种都用于集成测试。渐增式是把下一个要测试的摸块同已经测试好的模块结合起来进行测试,每次增加一个模块。非渐增式先分别测每个模块,再把所有模块按设计要求放在一起结合成所要的程序。
5试从基本符号和设计方法分析HC图与JACKSON图异同点
答:HC图是面向DFD,而JACKSON图是面向数据结构的。符号省略。
6软件测试的目的是什么?
测试的目的是为了发现错误.
7结构化程序设计的思想是什么?
答:自上而下,逐步求精
8请解释极限编程和自适应软件开发,并说明其异同?
答:极限编程和自适应软件开发都属于敏捷过程模型。极限编程是应用最广泛的敏捷过程(2分)。按照计划、设计、编码和测试四个框架活动组织。极限编程建议一系列新颖和有力的技术,保证敏捷团队创建能力体现客户指定优先级特征和功能的频繁软件开发(2分)。自适应软件开发强调人的合作和团队的组织,按思考、协作和学习的三个框架活动组织,其使用迭代过程。该过程由自适应循环计划、相对严格的需求收集方法和一个迭代开发循环构成(2分)。
9需求工程的起始阶段,需求工程师的主要工作是?
答:需求工程的起始阶段,工程师的主要工作为:
1)建立基本的问题需求(2分)
2)定义最重要的项目约束以及陈述主要的特征和功能(2分)
3)与共利益的各方建立基本的谅解(2分)
10请画出“在餐厅使用信用卡付费”这一活动的完整用例图?
11分析说明结构化分析和面向对象分析的区别?
答:分析建模的目标是创建各种表现形式,以描述软件信息、功能和行为的需求(2分)。为实现这一目标,可采用结构化分析和面向对象分析方法(1分)。结构化分析把软件看作信息装换器,辅助软件工程师识别数据对象、对象间的联系以及这些数据对象流经软件处理功能时转换的方式(2分)。面向对象分析就是检查定义为一组用例的问题域,尽量提取定义问题的类(1分)。
12请简要给出评价软件设计质量的标准?
答:评价软件设计质量的标准如下:
1)设计必须实现所有包含在分析模型中的明确需求,以及用户期望的所有隐含需求(2分)
2)对于那些生成代码的人和那些进行代码测试以及随后维护软件的人而言,设计必须是可读、可理解的指南(2分)
3)设计必须提供软件的全貌,从实现的角度水明数据域、功能域和行为域(2分)
13一个良好的设计类需要满足四个特点,请详细描述这四个特点?
答:一个良好的设计类需要满足:
1)完整性和充分性(1分)
2)原始性(2分)
3)高内聚性(2分)
4)低耦合性(1分)
14软件项目估算内容与步骤
15面向对象设计的准则是什么?有哪5个层次和4个部分?
准则:模块化、抽象、信息隐蔽、高内聚、低耦合、可重用
16简述软件工程目标和面临的主要问题。
目标:支付较低的开发成本、达到要求的软件功能、获取较好的软件性能、开发的软件易于移植、需要较低的维护费用、能按时完成开发任务,几时交付使用、开发的软件可靠性高
面临的主要问题是:软件费用软件可靠性软件维护软件生产率软件重用。
17简述软件工程过程。
软件工程过程是为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。软件工程过程通常包含四种基本的过程活动:
P(Plan):软件规格说明。规定软件的功能及其运行的限制;
D(Do):软件开发。产生满足规格说明的软件;
C(Check):软件确认。确认软件能够完成客户提出的要求;
A(Action):软件演进。为满足客户的变更要求,软件必须在使用的过程中演进。
事实上,软件工程过程是一个软件开发机构针对某一类软件产品为自己规定的工作步骤,它应当是科学的、合理的,否则必将影响到软件产品的质量。
18简述模块独立性的原则。
模块独立性是指软件系统中每个模块只涉及软件要求的具体子功能,而和软件系统中其他的模块接口是简单的
模块独立性的概念是模块化、抽象、信息隐蔽和局部话概念的直接结果
由耦合和内聚2个标准度量
19简述结构化程序设计方法的基本要点
1.采用自顶向下,逐步求精的程序设计方法在需求分析,概要设计中,都采用了自顶向下,逐层细化的方法。
2.使用三种基本控制结构构造程序任何程序都可由顺序、选择、重复三种基本控制结构构造。
1)用顺序方式对过程分解,确定各部分的执行顺序。
2)用选择方式对过程分解,确定某个部分的执行条件。
3)用循环方式对过程分解,确定某个部分进行重复的开始和结束的条件。
4)对处理过程仍然模糊的部分反复使用以上分解方法,最终可将所有细节确定下来。
3.主程序员组的组织形式
20简述软件生命周期开发方法的基本过程及每个阶段的任务。
(1)问题定义阶段,尽可能清楚地描述问题,搞清楚要解决的问题是什么;(2)可行性研究阶段,主要是确定待解的问题是否有可行的解决办法。需要做经济可行性分析、技术可行性分析、操作可行性分析和法律可行性分析;
(3)需求分析阶段,主要是确定目标系统必须具备的功能。通常用数据流图、数据字典和简要的算法表示系统的逻辑模型。
(4)总体设计阶段,从总体上解决问题,确定可实现的方案,并设计出软件的层次结构图;
(5)详细设计,把解法具体化,确定如何具体地实现这个系统。针对每个模块设计相应的算法;
(6)编码和单元测试阶段,把详细设计的结果翻译成选定的语言所写的程序,并对每个模块进行单元测试。
(7)测试阶段,系统地设计测试用例,尽可能多地发现软件中的错误,并调试改正软件中的错误;
(8)软件维护阶段,主要目的是通过修改软件使所开发的软件能够持久地满足用户的需要。
21复印机的工作流程大致如下:
未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令:如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告,等待维修人员来排除故障,故障排除后回到闲置状态。试用状态转换图描绘复印机的行为。
从问题陈述可知,复印机的状态主要有闲置、复印、缺纸和卡纸。引起状态转换的事件主要是复印命令、完成复印命令、发现缺纸、装满纸、发生卡纸故障和排除了卡纸故障