软件工程概论笔记(第一章)

教材:软件工程——原理、方法与应用(第3版)

第1章 绪论

1.1 软件和软件危机

1.1.1 软件的定义

软件是能够完成预定功能和性能的可执行的计算机程序和使程序正常执行所需要的数据,加上描述程序的操作和使用的文档

软件 = 程序 + 数据 + 文档

程序是按事先设计的功能和性能要求执行的指令序列
数据是使程序能正常操纵信息的数据结构
文档是与程序开发,维护和使用有关的图文材料

1.1.2 软件的特征

软件是逻辑的而不是物理的,是一种逻辑实体

  1. 软件开发不同于硬件设计

    软件开发的成本很难估计,通常占整个生产成本的大部分

  2. 软件生产不同于硬件制造

    在它的开发过程中没有明显的制造过程

  3. 软件维护不同于软件维修

    软件没有硬件那样的机械磨损,老化问题,但在使用过程中的维护却比硬件复杂的多。如果软件内部的逻辑关系比较复杂或规模比较大,在维护过程中很可能产生新的错误

1.1.3 软件危机

定义:在软件开发和维护过程中所存在一系列严重问题(开发费用超出预算、完成时间拖期、软件可靠性往往随着规模的增长而下降,质量差)

原因(从维护生产两个方面)

  1. 软件维护费用急剧上升,直接威胁计算机应用的扩大

    纠错性维护、完善性性维护、适应性维护

  2. 软件生产技术进步缓慢,是加剧软件危机的重要原因

1.2 软件工程学范畴

宗旨:摆脱软件危机,谋求解决这一危机的方法。
中心思想:把软件当作一种工业产品,用工程的方法进行开发

1.2.1 软件开发方法学

  • 早期的程序设计

    追求程序设计技巧和效率,程序员各行其是,无统一标准

  • 结构化程序设计

    三种基本程序结构,自顶向下、逐步细化的开发方法,形成“结构化分析”、“结构化设计”传统方法

  • 面向对象的程序设计

    引入对象、类、继承等概念,形成构件,达到软件复用的目的

1.2.2 软件工具

帮助开发和维护软件的软件

编译程序、编辑程序、连接程序以及支持他们的计算机操作系统,都属于软件工具

另外还有:分析工具、设计工具、测试工具、维护工具

1.2.3 软件工程环境

方法与工具相结合,再加上配套的软、硬件支持就形成环境。

1.2.4 软件工程管理

软件工程管理的目的,是为了按照进度及预算完成软件开发计划,实现预期的经济和社会效益。它包括成本估算
进度安排、人员组织和质量保证等多方面的内容,还涉及管理学、度量学和经济学等多个学科方面的知识。

一个理想的软件工程环境,应该同时具备支持开发和支持管理两个方面的工具。

1.3 软件工程的发展

1.3.1 3种编程范型

  1. 过程式编程范型

    程序 = 数据结构 + 算法

  2. 面向对象编程范型

    程序 = 对象 + 消息

  3. 基于构件技术的编程范型

    构件:标准化的对象类。

1.3.2 3代软件工程

软件工程的分代

  1. 传统的软件工程

    以结构化的程序设计为基础

  2. 面向对象的软件工程

    以面向对象的程序设计为基础

  3. 基于构件的软件工程

    以软件复用为目标、领域工程为基础

1.4 软件工程的应用

猜你喜欢

转载自blog.csdn.net/weixin_44169557/article/details/106114907