目录
第一章 | 软件工程概述
【软件的特性】
-
软件 = 程序 + 数据 + 文档
-
程序:计算机可以接受的一系列指令,运行时可以提供所要求的功能和性能。
-
数据:使得程序能够适当地操作信息的数据结构。
-
文档:描述程序的研制过程、方法和使用的图文资料。
-
-
软件的特性:复杂性 | 一致性 | 可变性 | 不可见性 等固有的内在特性,使得软件开发过程变得难以控制,这是造成软件开发困难的根本原因。
-
复杂性:软件是 Complex 的。
注意: Complex != Complicated。 Complex:由许多相互关联的简单部分组成 | Complicated:没有被很好地理解或解释
-
一致性:软件不能独立存在,需要依附于一定的环境(如硬件、网络以及其他软件)
软件必须遵从人为的惯例并适应已有的技术和系统
-
可变性:软件需要随接口不同而改变,随时间推移而变化,而这些变化是不同人设计的结果其他系统
-
不可见性:软件是安装在硬件里的,人不可能通过硬件看到里面的软件。
-
【软件危机】
-
软件危机的产生:软件 复杂性 | 一致性 | 可变性 | 不可见性 等固有的内在特性,使得软件开发过程变得难以控制,这是造成软件开发困难的根本原因。
-
软件危机的示例:软件项目的平均成功率大概在30%左右、大概有一半左右的项目,超出预算和最后期限或者存在缺陷
【软件工程】
-
软件工程的提出:1968年北大西洋公约组织(NATO)召开国际会议,提出“软件工程”概念和术语。
-
什么是工程?工程是将理论和知识应用于实践的科学,以便经济有效地解决问题。
-
软件工程的发展:
-
软件工程的概念【重点】-
广义的软件工程:通过应用计算机科学、项目管理和其他领域的技术和实践来创建和维护软件应用程序。
-
软件工程是关于人们在受限的团队中工作,为他们的客户创造价值。
-
软件工程的定义:①在软件的开发、操作和维护中应用一种系统的、有纪律的、可量化的方法,也就是工程学在软件上的应用
②方法的研究,如①。
-
-
软件工程 VS 程序
-
程序(Programming):把给定的蓝图给实现出来!
-
软件工程(Software engineering):是理解业务问题,提出解决方案的想法,并设计解决方案的“蓝图”!
-
-
软件工程的目的:
软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。
【软件开发基本策略(要素)】
-
软件工程的基本要素:过程、方法、工具
-
软件开发的基本流程:获取需求 → 设计软件 → 实现软件的编写 → 确认与测试 → 上线与维护
-
软件工程方法:面向过程(算法为基本构造单元)、面向对象(类为基本构造单元)、面向构件(构件为基本构造单元)、面向服务(将软件构件化)
-
面向对象:尽量模拟人类习惯的思维方式,描述问题的问题空间与实现解法的解空间在结构上尽可能一致
-
软件工程方法:
-
软件工程工具:需求开发、软件设计、软件构造、软件测试、软件维护、开发管理
【软件工程基本原理】
【单元测试题】
选择题
判断题
由于今天个人计算机不断发展壮大,人们不再采用软件团队的开发方式。 F
大多数软件产品在其生命周期中不需要增强功能。 F
一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。 F
大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。 T
购买大多数计算机系统所需的硬件比软件更昂贵。 F
由于软件是产品,因此可以应用其他工程制品所用的技术进行生产。 F