软件工程重点整理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 结构化程序设计
结构图的基本成分有:模块、调用和数据
模块是指具有一定功能的可以用模块名调用的一组程序语句,如函数、子程序等
它们是组成程序的基本单元
一个模块具有其外部特征和内部特征 实体-关系图 数据流图
状态转换图 数据字典