【软件工程导论】第一章软件工程概述笔记

前言:

感谢各位大佬的无私分享,感谢各位大佬的默默帮助。

注:
1.参考资料:《软件工程导论》(第6版,张海潘 牟永敏 编著)
2.电子资料下载 [ 提取码 : if42 ]
本电子资料不得用于任何商业用途。仅仅提供学习,交流用途,本博客不承担任何相关责任)

~ ~ ~ Oops:本文内容来自于对《软件工程导论》(第6版,张海潘 牟永敏 编著),仅为个人学习记录,所以一下的学习观点只限于自己的知识层面。如涉及版权问题请版权方联系我。

文章目录

        • 前言:
        • 正文
          • 1.软件危机 (software crisis):
          • 2.软件危机主要的表现形式
          • 3.产生软件危机的原因
          • 4.消除软件危机的途径
          • 5.对一个工程的理解
          • 6.软件的概念
          • 7.软件工程的概念
          • 8.软件工程的本质特征
          • 9.软件工程的基本原理
          • 10.软件工程方法学
          • 11.软件工程的生命周期
          • 12.软件开发模型
          • 13.敏捷过程
          • 14.极限编程
        • 总结

正文

1.软件危机 (software crisis):

是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。即“两低一高” 【问题:质量低、效率低、成本高。】
​ 软件危机也成为“软件萧条(depression)”或“软件困扰(affliction)”

2.软件危机主要的表现形式
  1. 开发成本和进度估计不准。
  2. 用户对已完成的系统软件不满意。
  3. 软件的质量往往靠不住。
  4. 软件常常是不可维护的。
  5. 软件通常没有适合的文档资料。
  6. 软件的成本在逐年的上升。
  7. 软件开发的生产率滞后于硬件和计算机应用普及的趋势。
3.产生软件危机的原因
  1. 与软件的本身特点有关
    1. 软件不同于硬件,是逻辑部件而不是物理部件。
      ​ 缺乏可见性,难于测试,管理和控制开发过程困难。不会由于过长时间的使用 而被“损耗”,难以维护。
    2. 软件不同于一般程序,规模庞大,而且程序复杂性随着程序规模的增加而呈指数上升。
  2. 和软件开发和维护的方法不正确有关
    1. 对软件的开发和维护有关的错误认识和做法。
      ​ 忽视软件需求分析的重要性,认为软件开发就是写程序 ,轻视软件维护
    2. 对软件开发过程与方法的知识与应用。
      ​ 软件开发要经历一个漫长的时期(编程占10-20%)。程序仅是完成软件配置的一个组成部分,软件开发方法要有利于软件维护。
4.消除软件危机的途径
  • 对计算机软件的正确认识。
  • 认识到软件开发不是一个人的独角戏,而是有一群组织良好,管理严密,各类人员协同配合,共同完成的 工程项目。
  • 推广使用成功的软件开发技术和方法。
  • 开发和使用更好的软件开发工具。

    总之,消除软件危机,需要技术措施和必要的组织管理措施。
5.对一个工程的理解

​ 大事件, 施工的过程,工程学科 。 施工过程: 分析 -> 设计 -> 实现 ->维护

6.软件的概念
  • 定义: 软件 = 程序 + 文档 + 数据
    • 软件: 计算机程序和有关的数据和文档的完整集合。
    • 程序:计算机中可以完成某项功能的可执行指令序列。
    • 数据:程序能适当处理的信息,具有某个适用的数据结构。
    • 文档:开发,使用,维护 程序所需要的图文材料。
7.软件工程的概念

​ 通俗的说: 软件工程是一门指导计算机软件开发和维护的学科
 ​  ​  ​  ​ (1)NATO定义:软件工程就是为了经济地获得可靠的且能在机器上有效地运行的软件,而建立和使用 完善的工程原理
​  ​  ​  ​  ​ (2)IEEE定义:①把系统的、规范的、可度量的途径应用到软件开发、运行和维护过程;②研究①中提 到的途径

8.软件工程的本质特征

​  ​  ​  ​  ​ (1)软件工程关注于大型程序的构造。

​  ​  ​  ​  ​ (2)软件工程的中心课题是 控制软件开发过程中的复杂度。

​  ​  ​  ​  ​ (3)软件经常变化。

​ ​  ​  ​  ​ (4)开发软件的效率非常重要。

​  ​  ​  ​  ​ (5)和谐的合作开发是开发软件的关键。

​  ​  ​  ​  ​ (6)软件必须有效的支持他的用户。

​  ​  ​  ​  ​ (7)在软件工程领域中通常由具有一种文化背景的人替具有另一种具有文化背景的人创造产品。

9.软件工程的基本原理

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

10.软件工程方法学

​ 三个要素:1.方法2.工具3.过程。
​ 目前使用最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。

11.软件工程的生命周期

​ 软件生命周期由软件定义软件开发、和运行维护三个时期组成,每个时期又可进一步划分成若干个阶段。(三个时期八个阶段) 三个时期八个阶段:
​  ​  ​  ​  ​ 三个时期:软件定义、软件开发、运行维护
​  ​  ​  ​  ​ 八个阶段:(1)问题定义 (2).可行性研究 (3).需求分析 (4).概要设计 (5).详细设计 (6).编码和单元测试 (7).综合测试 (8).软件维护

12.软件开发模型

(1)瀑布模型:文档驱动、线性迭代、一次交付。

(2)快速原型:需求驱动、快速构建、演示产品。

(3)增量模型:构件驱动、逐步构建、分批交付。

(4)螺旋模型:风险驱动。

(5)喷泉模型:面向对象、迭代开发。

各种模型说明

13.敏捷过程

敏捷过程

宣言:
(1)个体和交互胜过过程和工具 (2)可以工作的软件胜过面面俱到的文档 (3)客户合作胜过合同谈判 (4)响应变化胜过遵循计划

14.极限编程

“极限”二字的含义是把好的开发实践运用到极致。
极限编程的有效实践:
(1)客户作为开发团队的成员 (2)使用用户素材 (3)短交付周期 (4)验收测试 (5)结对编程 (6)测试驱动开发 (7)集体所有 (8)持续编程 (9)可持续的开发进度 (10)开放的工作空间 (11)及时调整计划 (12)简单的设计 (13)重构 (14)使用隐喻。

总结

​1.理解软件危机的概念,表现形式,原因。
2. 理解软件工程的基本概念和基本原理,生命周期。
3. 理解 软件到底是什么。
4. 了解软件开发的模型。


参考博文:

​ https://blog.csdn.net/guttaoqibao/article/details/77970581

​ http://www.wodefanwen.com/lhd_2lvlr7ikeb8c83h0eor6_1.html

https://wiki.mbalib.com/wiki/%E7%80%91%E5%B8%83%E6%A8%A1%E5%9E%8B

你可能感兴趣的:(软件工程导论)