首页 > 代码库 > 【整理】软件工程复习提纲(概述)

【整理】软件工程复习提纲(概述)

章鱼小年糕整理,如果有错误欢迎提出,若要二次修改发布,请留言,谢谢^_^!

概念

软件危机:在计算机软件的开发和维护过程中遇到的一系列严重的问题。包含如何开发软件,如何维护已有软件。

软件:计算机程序、方法、规则、相关文档资料以及在计算机上运行时必需的数据

软件工程:①把系统的、规范的、可度量的途径应用到软件开发、运行和维护过程;②研究①中提到的途径。

软件工程方法学(范型):软件生命周期全过程中使用的一套技术方法的集合。最广泛的有传统方法学、面向对象方法学。

传统方法学(生命周期方法学、结构化范型):采用结构化计数来完成软件开发的各项任务,使用适当的软件工具据或软件工程环境来支持结构化技术运用。

软件生命周期:从提出软件产品(项目)开始,直到该软件被淘汰的全过程。

软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

软件生命周期模型:跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。

简答

软件危机的7个典型表现?

  1. 成本进度估计不足。
  2. 客户需求经常变更或无法满足。
  3. 软件质量无法保证或不可靠。
  4. 软件维护无法进行或不可维护。
  5. 软件文档缺少或不合要求。
  6. 软件成本在总成本中占比逐年提升。
  7. 开发生产率的提高速度比计算机应用普及深入速度慢。

 

软件危机出现的原因?

(1)   来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。

(2)   软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。

(3)   供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。

 

软件工程的7个本质特性?

  1. 关注大型程序。
  2. 中心课题是控制复杂性。
  3. 软件经常变化。
  4. 效率非常重要。
  5. 和谐合作是关键。
  6. 有效地支持用户工作。
  7. 为其他领域和文化背景创造产品。

 

软件工程的7条基本原理?

  1. 按生命周期计划严格管理。
  2. 坚持进行阶段评审。
  3. 实行严格的产品控制。
  4. 采用现代程序设计技术。
  5. 结果应能清楚地审查。
  6. 开发小组成员少而精。
  7. 不断改进软件工程实践。

 

分析结构化范型和面向对象范型它们的优缺点?

传统方法学:也称为生命周期方法学或结构化范型。

优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时 间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。

2. 面向对象方法学:

优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作; 促进了软件重用。

 

[记忆]软件生命周期的3个时期、8个阶段?

三个时期:软件定义、设计实现、运行维护。

八个阶段:

  1. 问题定义
  2. 可行性研究
  3. 需求分析
  4. 总体设计
  5. 详细设计
  6. 编码和单元测试
  7. 综合测试
  8. 软件维护

 

举例生命周期模型?

瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型。

 

比较各个生命周期模型的优缺点

瀑布模型

优点:提供了一个使得分析、设计、编码、测试和支持的方法有共同指导的模板。缺点:(1)实际的项目大部分情况难以按照该模型给出的顺序进行,而且这种模型的迭代是间接的,这很容易由微小的变化而造成大的混乱。

(2)经常情况下客户难以表达真正的需求,而这种模型却要求如此,这种模型是不欢迎具有二义性问题存在的。

(3)客户要等到开发周期的晚期才能看到程序运行的测试版本,而在这时发现大的错误时,可能引起客户的惊慌,而后果也可能是灾难性的。

快速原型模型

优点:使用户能够感受到实际的系统,使开发者能够快速地构造出系统的框架。缺点:产品的先天性不足,因为开发者常常需要做实现上的折中,可能采用不合适的操作系统或程序设计语言,以使原型能够尽快工作。

增量模型

优点:(1)人员分配灵活,刚开始不用投入大量人力资源,当核心产品很受欢迎时,可增加人力实现下一个增量。 

(2)当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径,这样就可以先发布部分功能给客户,对客户起到镇静剂的作用。

缺点:(1)至始至终开发者和客户纠缠在一起,直到完全版本出来。(2)适合于软件需求不明确、设计方案有一定风险的软件项目。该模型具有一定的市场。

螺旋模型

优点:对于大型系统及软件的开发,这种模型是一个很好的方法。开发者和客户能够较好地对待和理解每一个演化级别上的风险。缺点:(1)需要相当的风险分析评估的专门技术,且成功依赖于这种技术。

(2)很明显一个大的没有被发现的风险问题,将会导致问题的发生,可能导致演化的方法失去控制。(3)这种模型相对比较新,应用不广泛,其功效需要进一步的验证。该模型适合于大型软件的开发。

【整理】软件工程复习提纲(概述)