软件工程系列笔记说明
博主回顾了本学期学的《软件工程》,配合老师教学内容和自己的理解,对相关知识点进行了梳理,发布了一系列的文章,方便大家学习。如有错误之处,还望大家多多指教 ?
第一章:软件工程概述
什么是软件
- 软件是一系列按照特定顺序组织的计算机数据和指令的集合。
- 一般来讲软件被划分为编程语言、系统软件、应用软件和介于这两者之间的中介软件。
- 其中系统软件为计算机使用提供最基本的功能,但是并不针对某一特定应用领域。
- 而应用软件则恰好相反,不同的应用软件根据用户和所服务的领域提供不同的功能。
- 软件是计算机系统中与硬件相互依存的另一部分,它是包括程序(Program) ,数据(Data)及其相关文档( Document)的完整集合。
软件危机的原因(1968)
一、与软件本身的特点有关
二、与软件开发人员有关
(1)软件生产水平相当程度上取决于软件人员的教育、训练和经验的积累;
(2)大型软件需要许多人合作开发,容易出现理解的差异和错误;
(3)计算机技术和应用发展迅速,知识更新周期加快,软件开发人员变动大。
- 软件的特征
- 复杂:逻辑复杂,开发复杂
- 成本高
- 风险大
- 维护困难
- 模拟软件的三个世界
什么是软件工程
- 定义:
软件工程主要研究软件生产的客观规律性,建立与系统化软件生产有关的概念、原则、方法、技术和工具,指导和支持软件系统的生产活动,以期达到降低软件生产成本 、改进软件产品质量、提高软件生产率水平的目标。
总之:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。
-
目标:
软件工程的目标是:在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。 -
组成:
软件工程方法学包含3个要素:方法、工具和过程。
方法: 是指产生某些结果的形式化过程。
工具: 是用更好的方式完成某件事情的设备或自动化系统,如各种集成开发环境、编译工具、测试工具等。
过程: 生产特定产品的工具和技术的结合
软件开发方法
1)结构化方法
该方法是一种面向数据流的开发方法,其实质就是功能分解和抽象。
- 面向数据结构的软件开发方法
它从目标系统的输入、输出数据结构图入手,导出程序结构,并在此基础上进行详细设计和编程。
3)面向对象软件开发方法
什么是好软件
-
三种方式考虑质量:
产品的质量
过程的质量
商业环境背景下产品的质量 -
McCall 的质量模型
小结
- 软件 =程序+数据+文档
- 软件危机: 原因,现象,办法 (软件工程学)
- 软件工程(学):开发、运行和维护软件的系统方法
- 软件工程3个要素:方法、工具和过程。