软件工程—第1章 绪论

本文探讨了软件的定义、特征及其面临的危机,强调了软件开发中技术与管理的重要性。介绍了软件工程的三个编程范型及其比较,并概述了软件工程的三代发展,从传统到面向对象再到基于构件的技术。同时,讨论了软件工程教育中不同代际之间的关系以及各种设计方法的关联。
摘要由CSDN通过智能技术生成

1.1 软件和软件的危机

一、软件的概念

二、软件的特征

三、软件危机

1.2 软件工程学的范畴

 1.3 软件工程学的发展

一、3种编程范型

二、3种编程范型的比较

三、软件工程的分代

1.4 软件工程的教学

一、3代软件工程的相互关系

二、软件工程技术与软件工程管理的关系

三、形式化方法与非形式化方法的关系

四、小程序设计与大程序设计的关系


1.1 软件和软件的危机

一、软件的概念

软件:软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。

程序:程序是为了解决某个特定问题而用程序设计语言描述的适合计算机处理的语句序列。

文档:文档是软件开发活动的记录,主要供人们阅读,既可用于专业人员和用户之间的通信和交流,也可以用于软件开发过程的管理和运行阶段的维护。

二、软件的特征

(1)软件开发不同于硬件设计。

(2)软件生产不同于硬件制造。

(3)软件维护不同于硬件维护。

三、软件危机

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

(2)软件危机的原因

  • 软件维护费用急剧上升,直接威胁计算机应用的扩大。
  • 软件生产技术进步缓慢,是加剧软件危机的重要原因。

1.2 软件工程学的范畴

 1.3 软件工程学的发展

一、3种编程范型

(1)过程式编程范型——程序=数据结构+算法

(2)面向对象编程范型——对象+消息

(3)基于构件技术的编程范型——标准化的对象类

二、3种编程范型的比较

(1)过程式编程范型:着眼于程序的过程和基本控制结构,粒度最小;

(2)面向对象编程范型:着眼于程序中的对象,粒度比较大;

(3)基于构件技术的编程范型:着眼于适合整个领域的类对象,粒度比较大。

三、软件工程的分代

(1)传统软件工程

结构化分析 \rightarrow 结构化设计 \rightarrow 面向过程的编码 \rightarrow 软件测试

(2)面向对象软件工程

OO分析与对象抽取 \rightarrow 对象详细设计 \rightarrow 面向对象的编码与测试

(3)基于构件的软件工程

领域分析和测试计划定制 \rightarrow 领域设计 \rightarrow 建立可复用构件库 

\rightarrow 按“构件集成模型”查找与集成构件

1.4 软件工程的教学

一、3代软件工程的相互关系

3代软件工程并非相互排斥,而是“你中有我,我中有你”。

二、软件工程技术与软件工程管理的关系

技术与管理是软件生产中缺一不可的两个方面,管理离不开度量。

三、形式化方法与非形式化方法的关系

形式化方法:是一种基于数学的开发技术,主要采用数学的方法来描述系统的性质,如程序变换和程序验证等。它的实现难度很大,进展十分缓慢。

非形式化方法:主要运用文本、图、表与符号来描述系统的模型,如结构化设计、面向对象设计和UML语言等。

四、小程序设计与大程序设计的关系

小程序设计是大程序设计的基础,两者都需要软件工程的指导。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甜Q

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值