注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Oracle专业打杂

定会重回巅峰……

 
 
 

日志

 
 

软件工程之问答题1  

2012-09-18 13:10:21|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1、什么是软件工程?为什么会出现软件工程?
[答]:概括地说,软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过实践考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。
2、软件工程的基本目标,三要素及其具体内容。
[答]:目标:
1、付出较低的开发成本;
2、达到要求的软件功能;
3、取得较好的软件性能;
4、开发的软件易于移植;
5、需要较低的维护费用;
6、能按时完成开发任务,及时完成开发任务,及时交付费用;
7、开发的软件可靠性高成本、生产力和质量;
三要素:方法、工具和过程。
其中,方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;
工具是为运用方法二提供的自动的或半自动的软件工程支撑环境;
过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
3、什么是软件原型,用在什么场合?
[答]:快速原型就是快速建立起来的旨在演示目标系统主要功能的程序。构建原型的要点是,它应该实现用户看得见的功能(例如屏幕显示或打印报表),省略目标系统的“隐含”功能(例如修改文件)。
快速原型应该具备的第一个特性是“快速”。快速原型的目的是尽快向用户提供一个可在计算机上运行的目标系统的模型,以便使用户和开发者在目标系统应该“做什么”这个问题上尽可能快地达成共识。因此,原型的某些缺陷是可以忽略的,只要这些缺陷不严重地损害原型的功能,不会使用户对产品的行为产生误解,就不必管它们。
快速原型应该具备的第二个特性是“容易修改”。如果原型的第一版不是用户所需要的,就必须根据用户的意见迅速地修改它,构建出原型的第二版,以更好地满足用户的需求。
原型是软件开发人员与用户沟通的强有力工具,因此有助于所开发出的软件产品满足用户的真实需求。
4、什么是软件危机?它有哪些典型表现?为什么会出现软件危机?怎样用软件工程消除软件危机?
[答]:软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。
软件危机的典型表现:
(1) 对软件开发成本和进度的估计常常很不准确。
(2) 用户对已完成的软件不满意的现象时有发生。
(3) 软件产品的质量往往是靠不住的。
(4) 软件常常是不可维护的。
(5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。
(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。
(7) 开发生产率提高的速度远跟不上计算机应用普及的需求。
软件危机出现的原因:
(1) 来自软件自身的特点
是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。
(2) 软件开发与维护的方法不当
忽视需求分析;认为软件开发等于程序编写;轻视软件维护。
(3) 供求矛盾将是一个永恒的主题
面对日益增长的软件需求,人们显得力不从心。
消除软件危机的途径:
(1) 对计算机软件有一个正确的认识(软件≠程序)
(2) 必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目
(3) 推广使用在实践中总结出来的开发软件的成功技术和方法
(4) 开发和使用更好的软件工具
5、可行性研究包括哪几方面(每方面解决什么问题),研究得到的文档和结论是什么?
[答]:一般说来,至少应该从下述4个方面研究每种解法的可行性:
(1)技术可行性 使用现有的技术能实现这个系统吗?
(2)经济可行性 这个系统的经济效益能超过它的开发成本吗?
(3)操作可行性 系统的操作方式在这个用户组织内行得通吗?
(4)法律可行性 从法律、社会效益等更广泛的方面研究
得到的文档是 可行性研究报告
经过定义问题、分析问题、提出解法的反复过程,最终提出一个符合系统目标的高层次的逻辑模型。然后根据系统的这个逻辑模型设想各种可能的物理系统,并且从技术、经济和操作等各方面分析这些物理系统的可行性。最后系统分析员提出一个推荐的行动方针,提交用户和客户组织负责人审查批准。(研究的结果是一份可行性研究的各个步骤的工作结果的文档——可行性研究报告,它包含了工程是否能继续进行下去和分析员的推荐方案;)
6、需求分析的任务是什么?分析得到的成果(文档)是什么?包含哪些内容?
[答]:1.确定对系统的综合要求;2.分析系统的数据要求;3.导出系统的逻辑模型;4.修正系统开发计划。
需求规格说明书。
7、软件需求通常包括哪些方面?各类需求一般包含内容有哪些(举例说明)?
[答]:软件需求规格说明书是需求分析阶段得出的最主要的文档,描述了系统的数据要求、功能需求、性能需求、可靠性和可用性要求、出错处理需求、接口需求、约束、逆向需求以及将来可能提出的要求。
8、为什么要进行需求分析?
[答]:通过需求分析,明确用户对目标软件系统在功能、性能、行为、设计约束等方面的期望,回答软件系统“必须做什么”。
9、数据流图,ER图,程序流程图,系统流程图什么时候产生,作用是什么?
[答]:数据流图:描绘数据在软件中流动和被处理的逻辑过程;
ER图:用来建立数据模型;
程序流程图:是进行流程程序分析过程中最基本的工具;
系统流程图:系统流程图是概括地描绘物理系统的传统工具。
10、数据流的划分。
[答]:1、变换流:信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;
2、事务流:这种数据流是“以事务为中心的”,数据沿输入通路到达一个处理T,这个处理输入数据的类型在若干个动作序列中选出一个来执行。
11、数据流图怎么转换成软件结构图?
[答]:面向数据流的设计方法定义了一些不同的“映射”,利用这些映射可以把数据流图变换成软件结构。面向数据流的设计方法把信息流映射成软件结构,信息流的类型决定了映射的方法。
12、结构化分析、结构化设计的实质是什么?
[答]:结构化分析就是一种建立模型的活动,通常建立数据模型、功能模型和行为模型等三种模型。使用数据流程图、数据字典、结构化语言、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档-需求规格说明书。结构化体现在将软件系统抽象为一系列的逻辑加工单元,各单元之间以数据流发生关联。
13、结构化设计(SD)方法(面向数据流的设计方法)中,如何将分析的结果(数据流图)逐层分解、转换成设计的初步结果(软件层次图)?
[答]:第1步:复查基本系统模型
第2步:复查并精化数据流图
第3步:确定数据流图具有变换特性还是事务特性
第4步:确定输入流和输出流的边界,从而孤立出变换中心
第5步:完成“第一级分解”
第6步:完成“第二级分解”
第7步:使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化
14、如何看待模块划分的合理性,模块划分的质量依据是什么?
[答]:根据每个模块的成本和接口成本确定的软件总成本最低。
15、耦合和内聚的具体分类及使用原则。
[答]:耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。包括数据耦合、控制耦合、特征耦合、公共环境耦合、内容耦合。
内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。简单地说,理想内聚的模块只做一件事情。包括:功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚。
16、测试的目的。测试的步骤,过程。
[答]:为了发现程序中的错误而执行程序的过程,测试阶段的根本目标是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。
1、 模块测试;2、子系统测试;3系统测试;4、验收测试;5、平等运行。
17、白盒测试和黑盒测试的内容,各用于哪些阶段?
[答]:白盒测试照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。
黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。白盒测试在测试过程的早期阶段进行,而黑盒测试主要用于测试过程的后期。
18、软件测试的目标,文档和可维护性之间的关系。
[答]:文档是响软件可维护性的决定因素.由于长期使用的大型软件系统在使用过程中必然会经受多次修改,所以文档在软件的可维护性上不可缺少的因素。
19、什么是软件维护、维护分哪四种类型、其含义分别是什么、在维护工作中占得比例如何?
[答]:所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修正软件的过程。
维护分为四种类型:
(1) 改正性维护:把整断和改正错误的过程称为改正性维护
(2)适应性维护:为了和变化的环境适当的配合而进行的修改软件的活动
(3)完善性维护:在使用软件的过程中用户常常提出新增功能或修改已有功能的建议,为了满足这类要求的活动
(4)预防性维护:为了改进将来的可维护性或可靠性;
(2)
完善性维护:50%~66% 改正性维护:17%~21% 适应性维护:18%~25% 其他维护:4%
20、什么是软件的可维护性?决定软件可维护性的因素有哪些?造成软件难以维护的原因有哪些?
[答]:软件的可维护性:维护人员理解、改正、改动或改进这个软件的难易度。
决定软件可维护性的五个因素:(1)可理解性(2)可测试性(3)可修改性(4)可移植性(5)可重用性
21、CMM的基本思想是什么?CMM的五个等级。
[答]:CMM(能力成熟度模型)的基本思想是:由于问题是由人们管理软件过程的方法不当引起的,所以新软件技术的运用并不会自动提高软件的生产率和质量。CMM有助于软件开发机构建立一个有规律的、成熟的软件过程。改进后的软件过程将开发出质量更好的软件,使更多的软件项目免受时间延误和费用超支之苦。
1、初始级:处于1级成熟度的软件机构,其过程能力是不可预测的,其软件过程是不稳定的,产品质量只能根据相关人员的个人工作能力而不是软件机构的过程能力来预测;
2、可重复级:软件项目的策划和跟踪是稳定的,已经为一个有纪律的管理过程提供了可重复以前成功实践的项目环境。软件项目工程活动处于项目管理体系的有效控制之下,执行着基于以前项目的准则且合乎现实的计划;
3、已定义级:管理活动和工程活动都是稳定的,软件开发的成本和进度以及产品的功能和质量都受到控制,而且软件产品的质量具有可追溯性,这种能力是基于在软件中对已定义的过程模型的活动、人员和职责都有共同的理解;
4、已管理级:软件过程是可度量的,软件过程在可度量的范围内运行。这一级的过程能力允许软件机构在定量的范围内预测过程和产品质量趋,在发生偏离时可以及时采取措施予以纠正,并且可以预期软件产品是高质量的;
5、优化级:软件过程是可优化的。软件机构能够持续不断地改进其过程能力,既对现行的过程实例不断地改进和优化,又借助于所采用的新技术和新方法来实现未来的过程改进。
22、假设你被指定为项目负责人,你的任务是开发一个应用系统,该系统类似于你的小组以前做过的那些系统,只不过规模更大且更复杂一些。客户已经写出了完整的需求文档。你将选用哪种项目组结构?为什么?你打算采用哪种软件过程模型?为什么?
[答]:由于待开发的应用系统类似于以前做过的系统,开发人员已经积累了较丰富的经验,没有多少技术难题需要攻克。为了减少通信开销,充分发挥技术骨干的作用,统一意志统一行动,提高生产率,加快开发进度,项目组的组织结构以基于主程序员组的形式为宜。
针对待开发的系统,客户已经写出了完整的需求文档,项目组又有开发类似系统的经验,因此,可以采用广大软件工程师熟悉的瀑布模型来开发本系统。
23、为什么会存在一个软件最大规模?
[答]:Ltot = P(L - l(P - l)^r),随着P值增加,Ltot将从0增大到某个最大值,然后再下降,因此,存在一个最佳的项目组规模Popt,这个规模的项目组其总生产率最高。
24、在结构化分析中,建模的核心是什么?3种模型分别是什么,分别用什么工具来描述?
[答]:模型的核心是数据字典,它描述了所有的在目标系统中使用的和生成的数据对象。
(1)、数据模型,用实体-联系图描述;
(2)、功能模型,用数据流图描述;
(3)、行为模型,用状态转换图描述。
25、什么是软件质量?它主要包括哪三方面的内容?
[答]:软件质量就是“软件与明确地和隐含地定义的需求向一致的程度”。更具体地说,软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品但都应该具有的隐含特征相一致的程度。
它包括三方面含义:
(1)软件需求是度量软件质量的基础,与需求不一致就是质量部高;
(2)指定的开发标准定义了一组指导软件开发的准则,如果没有遵守这些准则,肯定会导致软件质量不高;
(3)通常,有一组没有显式描述的隐含需求(例如,软件应该是容易维护的)。如果软件满足明确描述的需求,但却不满足隐含的需求,那么软件的质量仍然是值得怀疑的;
26、什么是软件配置项、什么是软件配置(包含的内容)、什么是基线(在什么时候产生)?
[答]:软件配置项:在软件过程中产生的程序、数据、文档软件配置项包含内容:
1、计算机程序(源代码和可执行程序);
2、描述计算机程序的文档(供技术人员或用户使用);
3、数据(程序内包含的或在程序外的)。
基线:是一个软件配置管理概念,它有助于人们在不严重妨碍合理变化的前提下来控制变化。IEEE把基线定义为:已经通过了正式复审的规格说明或中间产品,它可以作为进一步开发的基础,并且只有通过正式的变化控制过程才能改变它。
  评论这张
 
阅读(163)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017