软件工程重点整理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程重点

(吐血整理——林新发)

红色的是重点中的重点

前面数字是课本页码

第一章概论

1 什么是计算机软件

计算机软件指计算机系统中的程序及其文档

3软件的特点

(1)软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算

(2)软件是被开发的或被设计的,它没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大

(3)软件的使用没有硬件那样的机械磨损和老化问题

4软件的分类

(1)系统软件(如操作系统、编译程序等)、

(2)支持软件(如数据库管理系统、网络软件、软件开发环境等)、

(3)应用软件(如实时软件、嵌入式软件、科学和工程计算软件、事务处理软件、人工智能软件等)

6软件工程定义

软件工程是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法制作软件的工程

7生存周期

软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存周期

软件生存周期大体可分为如下几个活动:计算机系统工程、需求分析、设计、编码、测试、运行和维护

12能力成熟度模型CMM(了解一下)

初始级、可重复级、已定义级、已管理级、优化级

18瀑布模型(重)

系统工程、需求分析与规约、设计与规约、编码与单元测试、集成测试系统测试、运行与维护

第二章系统工程

41系统工程的任务

(1)识别用户的要求,确定待开发软件的总体要求和范围,

(2)系统建模和模拟

(3)进行成本估算,做出进度安排

(4)进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中作出选择。

(5)生成系统规格说明书

42可行性分析

(1)经济可行性(成本、效益、货币的时间价值、投资回收期、纯收入)

(2)技术可行性(风险分析、资源分析、技术分析)

(3)法律可行性

第三章需求工程

48软件需求

指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。

包括:功能需求、性能需求、用户或人的需求、环境需求、界面需求、文档需求、数据需求、资源使用需求、安全保密要求、可靠性需求、软件成本消耗与开发进度需求、其他非功能需求

50需求获取方法与策略(重)

建立顺畅的通信途径、访谈与调查、观察用户操作流程、组成联合小组、用况

51 图3.2

53 创建用况模型的主要步骤

(1)确定谁会直接使用该系统,即参与者(Actor)

(2)选取其中一个参与者

(3)定义该参与者希望系统做什么,参与者希望系统作的每件事将成为一个用况

(4)对每件事来说,何时参与者会使用系统,通常会发生什么,这就是用况的基本过程

(5)描述该用况的基本过程

54需求分析原则(重)

1.必须能够表示和理解问题的信息域

2.必须能够定义软件将完成的功能

3.必须能够表示软件的行为(作为外部事件的结果)

4.必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细节

5.分析过程应该从要素信息移向细节信息

第四章结构化分析与设计

62第三段第一句概念(重)

软件设计是把软件需求变换成软件表示的过程,主要包含两个阶段:软件体系结构设计阶段和部件级设计阶段

64软件设计的过程(重)

制定规范、体系结构和接口设计、数据/类设计、部件级(过程)设计、编写设计文档、设计评审

65设计的原则

抽象与逐步求精、模块化、信息隐藏、模块独立(高内聚低耦合)

68内聚耦合

内聚是一个模块内部各个元素彼此结合的紧密程度的度量

耦合是模块之间的相对独立性(互相连接的紧密程度)的度量

76图形表示法(重)

程序流程图、N-S图、PAD

81 PDL的例子(重重重重重,有编程大题,可用中文写)

PROCEDURE spellcheck IS 查找错拼的单词

BEGIN

split document into single words

把整个文档分离成单词

lood up words in dictionary

在字典中查这些单词

display words which are not in dictionary

显示字典中查不到的单词

create a new dictionary 造一新字典

END spellcheck

外语法(关键字)、内语法(自然语言)

第五章结构化分析与设计(重点章)

86抽象和分解

抽象:从作为整体的软件系统开始(第一层),每一抽象层次上只关注于系统的输入输出分解:将系统不断分解为子系统、模块……

随着分解层次的增加,抽象的级别越来越低,也越接近问题的解(算法和数据结构)

自顶向下逐层分解充分体现了分解与抽象的原则

87 图5.2

88数据流图(DFD )(重重

)

91数据流图画法

1画出系统的输入和输出(顶层图)

2画出系统内部(0层图)

3画出加工内部(1~n 层图)

4重复第3步,直至每个尚未分解的加工都足够简单(即不必再分解)

97分层DFD 的一致性和完整性

一致性:父图与子图平衡、数据守恒、局部文件

完整性:1每一个加工至少有一个输入数据流和一个输出数据流

2在整套分层数据流中,每个文件应至少有一个加工读该文件,有另一个加工

写该文件

3分层DFD 中的每个数据流和文件都必须命名(除了流入或流出文件的数据),

并保持与数据字典一致

4分层DFD 中的每个基本加工都应该有一个加工规约

115结构图

名词解释:SA 结构化分析 SD 结构化设计 SP 结构化程序设计

结构图的基本成分有:模块、调用和数据

模块是指具有一定功能的可以用模块名调用的一组程序语句,如函数、子程序等

它们是组成程序的基本单元

一个模块具有其外部特征和内部特征 实体-关系图 数据流图

状态转换图 数据字典

相关文档
最新文档