欢迎来到天天文库
浏览记录
ID:23172249
大小:2.31 MB
页数:63页
时间:2018-11-05
《软件工程李爱萍作业参考答案最终版修改》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第一章1.1什么是软件?软件和程序的区别是什么?答:⑴软件是程序、数据以及开发、使用和维护程序需要的所有文档的完整集合。软件的定义是:计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必须的数据。⑵软件不是程序,程序是软件的一部分。程序是为了解决某个特定问题而用程序设计语言描述的适合计算机处理的语句序列。它是由软件开发人员设计和编码的。程序执行时一般要输入一定的数据,也会输出运行的结果。没有相关文档,仅有程序是不能称之为软件产品的。1.2什么是软件生存周期?划分生存周期的主要原则是什么?答:(1)软件的生存周
2、期是指某一软件项目被提出并着手实现开始,直到该软件报废或停止使用为止所经历的时间。(2)主要原则:各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发过程的组织管理。1.3什么是软件危机?它有哪些主要表现?为什么会产生软件危机?答:(1)软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。(2)主要表现:对软件开发成本和研制进度的估计常常很不精确,导致经费预算经常突破,进度超时完成;由于开发人员常常对用户需求只有模糊的了解以
3、及开发人员和用户又未能及时交换意见,导致已完成的软件不能满足用户的需要;软件产品质量差,可靠性得不到保证;软件产品可维护性差;软件成本在计算机系统总成本中所占的比例逐年上升,软件的发展跟不上硬件的发展;软件开发生产率提高的速度远远跟不上计算机应用速度普及深入趋势,软件发展跟不上用户的要求。(3)产生软件危机的原因:造成软件危机的原因与软件自身的特点有关,也与软件开发人员在开发和维护时采用的生产方式、方法、技术有关。软件是计算机系统中的逻辑部件,软件产品往往规模庞大,结构复杂。给软件的开发和维护带来客观的困难;软件开发的管理
4、困难。由于软件规模大、结构复杂、又具有无形性,导致管理困难,进度控制困难,可靠性无法保证;软件开发费用不断增加,维护费用急剧上升,直接威胁计算机应用的扩大;软件开发技术落后;生产方式落后;开发工具落后,生产效率提高缓慢。另外软件开发人员忽视需求分析的重要性,轻视软件维护也是造成软件危机的原因。1.4什么是软件工程?怎样利用软件工程消除软件危机?答:(1)软件工程是指导计算机软件开发和维护的一门学科(2)首先应该对计算机软件有一个正确的认识,彻底清除“软件就是程序”的错误观念;要使用好的开发技术和方法,并且要不断研究探索更好
5、更有效的技术和方法;要有良好的组织、严密的管理,各类人员要相互配合,共同完成任务,充分认识软件开发不是某种个体劳动的神秘技巧;应该开发和使用好的软件工具,从而有效提高软件生产率。采用“工程化”的思想做指导来解决软件研究中面临的困难和混乱。1.5何谓面向对象软件工程?简述它和传统软件工程的区别与联系?答:(1)以面向对象程序设计为基础的软件工程。(2)传统软件工程是以结构化程序设计为基础,而面向对象软件工程是以面向对象程序设计为基础。与面向过程的软件工程的开发思想相比,面向对象开发方法不再是以功能划分为导向,而是以对象作为整
6、个问题分析的中心,围绕对象展开系统的分析与设计工作。在开发过程方面,面向对象软件工程和传统软件工程一样也是把软件开发划分为分析、设计、编码和测试等几个阶段,但各个阶段的具体工作不同,除了在编码阶段使用的语言不同外,面向对象软件工程为待开发软件确定“类与对象”一般在需求分析阶段进行,设计阶段则主要完成对象内部的详细设计;而在传统软件工程中,将软件设计划分为“总体设计”和“详细设计”,分别完成软件的总体结构图的设计和各个模块内部算法的详细设计。即:传统软件工程开发过程包括需求分析、总体设计、详细设计、面向过程的编码和测试;面向
7、对象软件工程开发过程包括需求分析与对象抽取、对象详细设计、面向对象的编码和测试。1.6什么是软件生存周期模型?试比较本章介绍的四种模型的优缺点,说明每种模型的使用范围答:(1)软件生存周期模型即为软件开发模型,是描述软件开发过程中各种活动如何执行的模型,是软件过程、活动、任务的结构框架。优点缺点适用范围瀑布模型能清晰直观地表达软件开发全过程,明确规定要完成的主要活动和任务,用来作为软件项目工作的基础。只有当分析员能够做出准确的需求分析时,才能得到预期的正确结果。它是一种理想的线性开发模式,缺乏灵活性,特别是无法解决软件需求
8、不明确或不准确的问题。适合于需求很明确的软件项目开发的模型,对于经常变化的项目而言,瀑布模型毫无价值。快速原型模型通过实践让用户了解未来目标系统的概貌,以便判断哪些功能是符合需要的,哪些方面需要改进。反复改进,最终建立完全符合用户需求的新系统。克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。这
此文档下载收益归作者所有