软件工程简答题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程简答题:
1什么是软件危机?它有哪些典型表现?为什么会出现软件危机?
我的答案:
软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
它的典型表现有以下几点,1.对软件开发成本和进度的估计常常很不准确。2.用户对“已完成”软件系统不满意的现象经常发生。3.软件产品的质量往往靠不住。4.软件常常是不可维护的。5.软件通常没有适当的文档资料。6.软件成本在计算机系统总成本中所占的比例逐年上升。7.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
软件危机出现的原因有软件本身的特点也和软件开发与维护的方法不正确有关。用户需求不明确,软件开发规模大、复杂度变高,不正确的理论指导是具体原因。
2什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?
我的答案:
软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
本质特性:1.软件工程关注于大型程序的构造。2.软件工程的中心课题是控制复杂性。3.软件经常变化。4.开发软件的效率非常重要。5.和谐地合作是开发软件的关键。6.软件必须有效地支持它的用户。7.在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。
消除软件危机的方法:
(1) 对计算机软件有一个正确的认识(软件≠程序)
(2) 必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目
(3) 推广使用在实践中总结出来的开发软件的成功技术和方法
(4) 开发和使用更好的软件工具
3简述软件生命周期的3个时期和8个阶段。
我的答案:
软件的生命周期:软件定义、软件开发和运行维护
8個階段:問題定義、可行性研究、需求分析、總體設計、詳細設計、編碼和單
元測試、綜合測試、軟件維護
4什么是软件过程?它与软件工程方法学有何关系?
我的答案:
软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型。软件工程方法学是在软件过程中使用的具体的方法,它解决了如何做的问题。
5为什么说分阶段的生命周期模型有助于软件项目管理?
我的答案:
将软件开发过程具体分为3个时期和8个阶段有助于分析各个阶段的问题,做到各个阶段都有不同的侧重,管理起来也更加方便,它使规模大、结构复杂和管理复杂的软件开发变的容易控制和管理,使得每个阶段都有明确的任务,
1
银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并打印出存款存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并打印出利息清单给储户。请用数据流图描绘本系统的功能。(请用绘图软件或office等工具画图后上传附件)
我的答案:
2
考虑一个修改磁带上主文件的系统,文件管理员把修改信息穿孔在卡片上,系统读入穿孔卡片上的信息并按照记录号把修改信息顺序排列好,然后系统逐个读入主文件上的记录,根据记录上的校验码校核每个读入的记录,丢掉出错的记录,按照修改信息修改余下的记录,产生的新文件存储在磁盘上,最后,系统输出一份修改报告供文件管理员参阅。请分层次地画出上述主文件修改系统的数据流图。(请用绘图软件或office等工具画图后上传附件)
我的答案:
1简述软件需求的定义和需求分析的任务
我的答案:
需求分析是当前软件工程中的关键问题,需求分析阶段的任务是:在可行性分析的基础上,进一步了解、确定用户需求。准确地回答“系统必须做什么?”的问题。获得需求规格说明书。还涉及到软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。它还涉及到这些因素和系统的精确规格说明,以及系统进化之间的关系。
需求分析的基本任务包括:
确定对系统的综合要求
分析系统的数据要求
导出系统的逻辑模型
修正系统的开发计划
2获取需求的方法都有哪些?
我的答案:
1.访谈,访谈是最早开始使用的获取用户需求的技术,也是迄今为止仍然广泛使用的需求分析技术,訪談有正式会谈和非正式会谈两种基本形式。
2. 面向数据流自顶向下求精。
3. 简易的应用规格说明技术。这是一种面向团队的收集需求的方法,需要开发者和用户密切合作。
4. 快速建立软件原型。
3在需求分析过程中应建立起哪三个软件系统模型?简述与这三个模型相对应的图形工具。
我的答案:
a)功能模型:表达系统的详细需求,为软件的进一步分析和设计打下基础。在面向对象方法中,用数据流图表示。
b)对象模型:表示静态的、结构化的系统“数据”性质。描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。在面向对象方法中,实体联系图是构件对象模型的核心工具。
c)动态模型:描述系统的动态结构和对象之间的交互,表示瞬时的、行为化的系统的“控制”特性。面向对象方法中,常用状态图、顺序图、合作图、活动图构件系统的动态模型。
4从哪些方面验证软件需求的正确性?
我的答案:
(1) 一致性所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。
(2) 完整性需求必须是完整的,规格說明書应该包括用户需要的每一个功能或性能。
(3) 现实性指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性。
(4) 有效性必须证明需求是正确有效的,确实能解决用户面对的问题。
1详细设计之前先进行总体设计的必要性是什么?
我的答案:
可以站在全局的高度,花较少成本,从较抽象的层次上分析对比多种可能的实现