第一章 软件工程学概述
1.1软件危机
软件危机主要包括下述两方面问题:
(1)如何开发软件以满足对软件日益增长的需求
(2)如何维护数量不断膨胀的已有软件
1.2软件工程:包含技术和管理两方面
1.2.1概念:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件。
1.2.2基本原理
(1)用分阶段的生命周期计划严格管理
(2)坚持进行阶段评审
(3)实行严格的产品控制
(4)采用现代程序设计技术
(5)结果应能清楚地审查
(6)开发小组的人员应小而精
(7)承认不断改进软件工程实践的必要性
1.2.3软件工程方法学
(1)传统方法学
采用结构化技术(结构化分析、设计、实现)来完成软件开发的各项任务。这种方法学开发软件时从对问题的抽象逻辑分析开始,一个阶段一个阶段的顺序开发,即把软件生命周期分为若干个阶段,每个阶段任务相对独立。
(2)面向对象方法学
面向对象把行为和数据看成同等重要的,以数据为主线,把数据和对数据操作紧密结合起来的方法。
1.3软件声明周期
由软件定义、软件开发、软件维护三个时期组成。
软件定义包括:问题定义、可行性研究、需求分析
软件开发:总体设计、详细设计、编码和单元测试、综合测试
软件维护(改正性、适应性、完善性、预防性)
1.4软件过程
为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型、RUP
第二章 可行性研究
2.1可行性研究的任务
技术可行性、经济可行性、操作可行性等
2.2可行性研究过程
(1)复查系统规模和目标
(2)研究目前正在使用的系统
(3)导出新系统的高层逻辑模型
(4)进一步定义问题
(5)导出和评价供选择的解法
(6)推荐行动方针
(7)草拟开发计划
(8)书写文档提交审查
2.3系统流程图
用图形符号以黑盒子形式描绘组成系统的每个部件。
2.4数据流图
描绘信息流和数据从输入移动到输出的过程中所经受的变换。
四种:数据源点、终点,变化数据的处理,数据存储,数据流
2.5数据字典
数据流、数据元素、数据存储、处理
2.6成本 /效益分析
第三章 需求分析
3.1需求分析的任务
3.1.1确定系统的综合要求
功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求、将来可能提出的需求
3.1.2分析系统的数据要求
3.1.3导出系统的逻辑模型
3.1.4修正系统开发计划
3.2与用户沟通获取需求的方法
3.3分析建模与规格说明
3.4实体-联想图(ER图)
数据对象(矩形框)、属性(圆角矩形)、联系(菱形)
3.5数据规范化
通常使用“范式”定义消除数据冗余的程度。第一范式1NF数据冗余程度最大,第五范式(5NF)据冗余程度最小。但
1.范式级别越高,数据存储需要更多的表,存储自身也就越复杂
2.范式级别越高,数据存储结构与基于问题与的结构间的匹配程度随之下降,稳定性较差
3.范式级别越高,访问的表越多,性能将下降
大多数场合使用第三范式比较恰当
3.6状态转换图
3.6.1状态
状态时可以被观察到的系统行文模式,一个状态代表系统的一种行为模式
3.6.2事件
事件是在某个特定时刻发生的事情,它是对引起系统做动作或从一个状态转换到另一个状态的外界事的抽象。即是引起系统做动作或转换状态的控制信息。
3.7其他图形工具
层次方框图、Warnier图、IPO图
3.8验证软件需求
一致性、完整性、现实性、有效性