《软件工程》 课后思考题

第一章 软件工程概述

1. 结合你之前的工程经验以及任正非致员工信,谈谈你对软件工程的看法。

随着科技的发展,软件开发的需求量以及开发规模都在不断地增大,规模越大的软件工程,各方面需要考虑的问题就越多,所耗费的人力物力就越大。我认为软件工程的作用就是运用一系列科学的方法,在满足各方面需求并保证软件效率的前提下,统筹管理好开发过程的每一步,以最少的人力物力耗费来实现期望的目标。

2.软件开发就是编码么?谈谈你对软件开发的本质的认识。

编码是软件开发的一部分,也是程序员们的工作。我认为软件开发的过程中除了编码以外,更重要的是开发人员和客户的一个不断地交流,随着开发过程的进行,客户的需求也许会发生变化,弄清楚了为什么要写代码,要写怎样的代码,实现怎样的功能,才能够更好地实现预期的目标。

3.举例说明软件的特点有哪些?

  1. 软件开发与硬件研制相比,更依赖于开发人员的业务素质、智力、人员的组织、合作和管理。
  2. 大型软件仍然存在着潜伏的错误。
  3. 软件产品开发成功后,只需对原版软件进行复制,即可生产出任意多的同样的产品。
  4. 还有,软件在使用过程中的维护工作比硬件要复杂得多。
  5. 由于软件不是物理产品,所以它不会磨损和老化

4.什么是软件危机?软件危机出现的原因及解决手段有哪些?

软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。

出现软件危机的原因主要有:

  1. 软件本身独有的特点确实给开发和维护带来了困难
  2. 软件开发和维护过程不规范
  3. 缺乏软件开发的经验和有关软件开发数据的积累
  4. 轻视,人们在制定计划时总会有一些天马行空的想法和要求,轻视是一个最大的错误。
  5. 忽视软件需求分析的重要性、忽视软件的可理解性、文档不完备、轻视软件的可维护性、过分强调编码技巧等等方面。
  6. 用户与开发人员的沟通问题,从而技术人员获取的需求不够全面。

解决手段:
  在软件工程理论的指导下,建立起较为完备的软件工业化生产体系,形成强大的软件生产能力 。软件标准化与可重用性得到了工业界的高度重视,在避免重用劳动,可以缓解软件危机。

5.软件工程的要素有哪些,各有什么作用?

软件工程的三种基本要素是方法、工具过程

  1. 软件工程方法(method)为建造软件提供技术上的解决方法(“如何做”)。目前使用得最广泛的方法是传统方法(结构化方法)和面向对象方法。
  2. 工具为方法的运用提供自动的或半自动的软件支撑环境。
  3. 过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

第三章 软件过程模型

1.简述软件过程、软件生存周期、软件过程模型(软件生存周期模型)三者之间的概念区别。

  1. 软件过程:软件过程为一个为建造高质量软件所需完成的任务的框架,即形成软件产品的一系列步骤,包括中间产品、资源、角色及过程中采取的方法、工具等范畴。
  2. 软件生存周期:指软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段。
  3. 软件过程模型:是一种开发策略,该策略针对软件工程的各个阶段提供了一套范形,使工程的进展达到预期的目的。

2.软件过程就是软件开发过程么?为什么?

不是,软件过程是指软件整个生命周期,从需求获取、需求分析、设计、实现、测试、发布和维护一个过程模型。一个软件过程定义了软件开发中采用的方法,但软件过程还包含该过程中应用的技术——技术方法和自动化工具。

3.请选择两个常见的软件过程模型,谈谈你对他们的理解?并进行比较

  1. 瀑布模型:就像是瀑布从上往下流一样,必须等前一阶段的工作完成之后,才能开始后一阶段的工作。并且每一个阶段的输出文档就是就是后一阶段的输入文档,因此,只有前一阶段的输出文档正确后,后一阶段的工作才能得到正确结果。同时,早期犯下错误后改正错误的代价更低,越到后期,改正错误的代价就越高。适用于需求确定,无大的需求变更,工作能够采用线性的方式完成的软件。
  2. 增量模型:融合了瀑布模型的基本成分和原型实现的迭代特征,软件开发过程中,将软件系统按功能分解为许多增减构件,并以构件为单位逐个地完成,并都被集成到系统之中。客户对每个增量的使用和评估都作为下一个增量发布的新特性和功能。适用于既定的商业要求期限之前不可能找到足够的开发人员的情况。

瀑布模型的优点

  • 有利于大型软件开发过程中人员的组织、管理。
  • 有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。

瀑布模型的缺点

  • 开发过程一般不能逆转,否则代价太大;
  • 实际的项目开发很难严格按该模型进行;
  • 客户往往很难清楚地给出所有的需求,而该模型却要求如此。
  • 软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。

瀑布模型的使用范围

  • 用户的需求非常清楚全面,且在开发过程中没有或很少变化;
  • 开发人员对软件的应用领域很熟悉;
  • 用户的使用环境非常稳定;
  • 开发工作对用户参与的要求很低。

增量模型的优点

扫描二维码关注公众号,回复: 12691915 查看本文章
  • 采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源;
  • 如果核心产品很受欢迎,则可增加人力实现下一个增量;
  • 可先发布部分功能给客户,对客户起到镇静剂的作用。

增量模型的缺点

  • 并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构;
  • 增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。

增量模型的使用范围

  • 进行已有产品升级或新版本开发,增量模型是非常适合的;
  • 对完成期限严格要求的产品,可以使用增量模型;
  • 对所开发的领域比较熟悉而且已有原型系统,增量模型也是非常适合的。

4.根据你当前所在的团队项目,你更倾向于选择哪一种软件过程模型?为什么?

瀑布模型,项目规模比较小,项目的需求也比较清晰,开发过程地用户的依赖较小。

猜你喜欢

转载自blog.csdn.net/m0_46144891/article/details/114433476