1.软件危机的概念,内容,原因及消除的途径;
概念:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
内容:软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护不断膨胀的已有软件。
具体地说,软件危机主要有以下一些典型表现:
(1)对软件开发成本和进度的估计常常很不准确;
(2)用户对“已完成的”软件系统不满意的现象经常发生;
(3)软件产品的质量往往靠不住;
(4)软件常常是不可维护的;
(5)软件通常没有适当的文档资料;
(6)软件成本在计算机系统总成本中所占的比例逐年上升;
(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势;
原因:在软件开发和维护的过程中存在这么多严重问题:一方面与软件本身的特点有关;另一方面也和软件开发与维护的方法不正确有关。
(1)软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。
(2)软件不同于一般程序,它的一个显著特点是规模庞大,而且程序复杂性将随着程序的规模的增加而呈指数上升。
(3)目前相当多的软件专业人员对软件开发和维护还有不少糊涂概
念,在实践过程中或多或少地采用了错误的方法和技术,这可能是使软件问题发展成软件危机的主要原因。
(4)对用户要求没有完整准确的认识就匆忙着手编写程序是许多软件开发工程失败的主要原因之一。
2.软件工程的定义,基本原理;
定义:软件工程是指导计算机软件开发和维护的一门工程学科。
基本原理:软件工程的7条基本原理:
(1)用分阶段的生命周期计划严格管理
(2)坚持进行阶段评审
(3)实行严格的产品控制
(4)采用现代程序设计技术
(5)结果应能清楚地审查
(6)开发小组的人员应该少而精
(7)承认不断改进软件工程实践的必要性
3.软降工程方法学的基本概念、内容;
基本概念:把在软件生命周期全过程中使用的一整套开发和管理技术方法的集合成为软件工程方法学,也称为范型。软件工程方法学包含3个要素:方法、工具和过程。
内容:目前使用得最广泛地软件工程方法学,分别是传统方法学和面向对象方法学。
传统方法学也称为生命周期方法学或结构化范型。
面向对象方法学具有下述4个要点。
(1)把对象作为融合了数据及在数据上的操作行为的统一的软件构件。
(2)把所有对象都划分成类。
(3)按照父类(基类)与子类(派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。
(4)对象彼此间仅能通过发送消息互相联系。对象是数据处理的主体,必须向它发消息请求它执行它的某个操作以处理它的数据,而不是从外界直接对它的数据进行处理。
也就是说,对象的所有私有信息都被封装在该对象内,不能从外界直接访问,这就是通常所说的封装性。
4.软件生命周期的具体内容,每一个阶段的任务是什么?结合具体的工程例子来理解做软
件项目主要分那几个阶段。
具体内容:软件生命周期由软件定义、软件开发和运行维护(软件维护)3个时期组成,每个时期又进一步划分成若干个阶段。
软件生命周期每个阶段的任务:
(1)问题定义:问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”
(2)可行性研究:这个阶段要回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?”这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决方法。
(3)需求分析:准确地确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须具备哪些功能。这个阶段的一项重要任务是用正式文档准确地记录对目标系统的需求,这份文档通常称为规格说明书。
计算机软件开发培训
(4)总体设计:这个阶段必须回答的关键问题是:“概括地说,应该怎样实现目标系统?”
总体设计又称为概要设计。
首先,应该设计出实现目标系统的几种可能方案。推荐最佳方案,并制定实现最佳方案的详细计划。如果用户接受所推荐的方案,则应该进一步完成另一项主要任务就是设计程序的体系结构,也就是确定程序由哪些模块组成以及模块间的关系。
(5)详细设计:把总体设计阶段给出的解法具体化,也就是回答关键问题:“应该怎样具体地实现这个系统?”这个阶段的任务不是编写程序,而是设计出程序的详细规格说明。详细设计也称为模块设计,这个阶段将详细的设计每个模块,确定实现模块功能所需要的算法和数据结构。
(6)编码和单元测试:这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。
(7)综合测试:这个阶段的关键任务是通过各种类型的测试(及相应的调试)使软件达到预定的要求。最基本的测试是集成测试和验收测试。
(8)软件维护:维护阶段的任务是通过各种必要的维护活动使系统
持久地满足用户的需求。通常有4类维护活动:改正性维护,也就是诊断和改正在使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的要求改进或扩充软件使它更完善;预防性维护,即修改软件,为将来的维护活动预先做准备。
根据完成任务的性质,把软件生命周期划分为8个阶段。
5.理解几个典型软件过程的内容及其优点与缺点:瀑布模型、增量模型、快速原型模型、
螺旋模型、喷泉模型等;
瀑布模型内容:瀑布模型是带“反馈环”的。
优点:(1)可强迫开发人员采用的规范的方法(结构化技术);(2)严格地规定了每个阶段必须提交的文档;
(3)要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
缺点:瀑布模型是由文档驱动的
(1)开发过程一般不可逆,否则代价太大
(2)实际的项目开发过程很难严格按照模型进行
(3)客户往往很难清楚地给出所有需求,而该模型却要求如此。(4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。快速原型模型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。不带反馈环

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。