软件危机的产生及解决
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.分析上述说明中的案例,简述什么原因导致了以上情况,应用什么途径消除?
答:这些情况是由软件危机导致的,导致软件工程发生的主要原因为(1)软件的规模越来越大,结构越来越复杂。(2)软件开发管理困难而复杂。(3)软件开发费
用不断增加。(4)软件开发技术落后。(5)生产方式落后。(6)开发工具落后,
生产率提高缓慢。解决软件危机的办法是:(1) 充分吸收和借鉴人类长期以来从
事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取
几十年来人类从事计算机硬件研究和开发的经验教训。在开发软件的过程中努力
作到良好的组织,严格的管理,相互友好的协作。(2) 推广在实践中总结出来
的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服
在计算机系统早期发展阶段形成的一些错误概念和作法。(3) 根据不同的应用
领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工
具集合成一个整体,形成一个很好的软件开发环境。总之为了解决软件危机,
既要有技术措施(方法和工具),又要有必要的组织管理措施
2.简述软件生命周期的划分及任务
答:软件生命周期的具体划分和任务如下
1.问题定义
此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。
2.可行性研究
可行性分析的任务是明确应用项目的开发的必要性和可行性。必要性来自实
现开发任务的迫切性,而可行性则取决于实现应用系统的资源和条件。这项
工作是建立在初步调查的基础上。
3.需求分析
在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。
需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项
目的成功打下良好的基础。"唯一不变的是变化本身。",同样需求也是在整
个软件开发过程中不断变化和深入的,因此我们必须制定需求变更计划来应
付这种变化,以保护整个项目的顺利进行。
4.总体设计
此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设
计,数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设
计将为软件程序编写打下良好的基础。
5.详细设计
详细设计的主要任务是设计每个模块的实现算法、所需的局部数据结构。详
细设计的目标有两个:实现模块功能的算法要逻辑上正确和算法描述要简明
易懂。
6.编码和单元测试
此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中
必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,
提高程序的运行效率。
7.综合测试
在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的
问题并加以纠正。整个测试过程分单元测试、组装测试以及系统测试三个阶
段进行。测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建
立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。
8.软件维护
软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求。要延续软件的使用寿命,就必须对软件进行维护。软件的维护包括纠错性维护和改进性维护两个方面。