大学计算机基础 第6节-软件工程.pptx
文本预览下载声明
1
2018-6-16
第六章 软件工程
2
2018-6-16
6.1 软件工程的基本概念
什么是软件?
软件=程序+数据+文档
程序:指令序列;
数据:程序所处理的内容;
文档:记录开发、维护和使用过程的资料。
3
2018-6-16
6.1 软件工程的基本概念
由此可见,软件由两部分组成:
一是机器可执行的程序和数据;
二是与软件开发、运行、维护、使用相关的文档。
4
2018-6-16
6.1 软件工程的基本概念
软件危机(主要针对大型复杂软件的开发)
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
成本高
质量差
用户不满意
进度无法控制
经典案例:IBM S/360操作系统(失败),共有4000多个模块,约100万条指令,投入5000人年,耗资数亿美元,结果还是延期交付。在交付使用后的系统中仍发现大量(2000个以上)的错误。
5
2018-6-16
6.1 软件工程的基本概念
软件危机产生的原因
客观原因:软件系统复杂度越来越高;
主观原因:缺乏管理和规范的开发方法
6
2018-6-16
6.1 软件工程的基本概念
软件工程
为了解决软件危机;
1968年西德召开的北大西洋公约组织(NATO)会议上首次提出“软件工程”的概念。
软件工程是:
把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程化应用于软件
7
软件的生命周期
软件也有一个孕育、诞生、成长、成熟、衰亡的生存过程。我们称其为计算机软件的生命周期。
所谓软件的生命周期,是指软件产品从提出、实现、使用、维护直到最后停止使用退役的全过程。
分为3个时期,8个阶段
软件定义时期:包括问题定义、可行性研究、需求分析
软件开发时期:包括系统设计、详细设计、编码、测试
软件维护时期:包括运行维护
6.1 软件工程的基本概念
8
软件的生命周期
(瀑布模型)
9
软件生命周期各阶段的任务
1、问题定义
主要目标:回答“要解决什么问题”,给出软件系统的总目标和总要求。
最终要提交关于问题性质、工程规模和目标的报告书。
10
2、可行性研究:
主要任务:从多个角度分析,确定上一阶段定义的问题是否有可行的解决办法。
分析的角度包括3个方面:
经济可行性
技术可行性
社会可行性
11
3、需求分析:
(1)主要任务:不是去解决问题(怎么做),而是准确全面地定义目标系统必须要具备哪些功能。具体讲是确定待开发软件的数据、功能、性能、界面等要求。最后编写软件需求规格说明书。
(2)需求分析采用的方法——SA方法
SA(Structured Analysis,结构化分析方法)是20世纪70年代中期由E.Yourdon等人倡导的一种面向数据流的分析方法。
12
②SA方法的主要工具——数据流图和数据字典
数据流图(DFD,Data Flow Diagram)
*功能:描绘信息在系统中的流动和处理情况,能够反映出系统逻辑模型。
*图中使用如下符号:
数据流:
数据处理:
处理名
外部实体:
数据存储:
外部实体名
13
DFD—学生成绩管理系统
1.画顶层数据流图
14
2.画第二层数据流图
15
3.画第三层数据流图
16
17
数据字典(DD,Data Dictionary)
*功能:对数据流图中出现的被命名的图形元素的确切解释。
18
(3)软件需求规格说明书(SRS)
内容:
完整的信息描述、详尽的功能说明、合理的检验标准以及其他相关要求
作用
便于用户和开发人员之间的交流
反映了问题的结构,可以作为软件开发的基础和依据
作为测试的依据
19
4、概要设计(总体设计):
(1)任务:确定软件系统的结构,进行模块划分,确定每个模块的功能、接口及模块间的调用关系,并对全局数据结构进行设计。并编写概要设计说明书
(2)模块化:
把系统程序划分成若干个模块,每个模块完成一个子功能,模块既独立,相互之间又有一定的联系。
20
课程成绩管理系统
编辑成绩
查询成绩
成绩统计
录入课程成绩
修改成绩
删除成绩
查询课程
查询上课班级
查询学生成绩
平均分
成绩排名
成绩分段
21
(3)耦合与内聚
作用:评价软件概要设计质量好坏的标准,它们衡量系统设计中模块的划分是否合理,模块是否独立性强。
耦合:表示模块之间相互依赖的程度,是对模块之间相互依赖程度的衡量。
内聚:模块内部各成分之间相互关联的程度。
22
(4)设计模块时的一般原则
要求模块之间的耦合度要尽量弱,而内聚要尽可能强。
“高内聚,低耦合”
23
5、详细设计:
(1)主要任务:具体考虑每个模块如何实现,为概要设计中的每一模块确定算法和
显示全部