人人范文网 范文大全

《软件工程导论》讲稿

发布时间:2020-03-01 18:05:51 来源:范文大全 收藏本文 下载本文 手机版

《软件工程导论》讲稿

主讲教师:杨怀洲 邮箱:hzyang@xsyu.edu.cn

电话:13228056925

第1章 软件工程学概述

1.1软件危机

1.1.1软件危机的介绍 1.1.2产生软件危机的原因

图1.1引入同一变动付出的代价随时间变化的趋势

1.1.3消除软件危机的途径

1.2软件工程

1.2.1软件工程的介绍

1.软件工程关注于大型程序的构造 2.软件工程的中心课题是控制复杂性 3.软件经常变化

4.开发软件的效率非常重要 5.和谐地合作是开发软件的关键 6.软件必须有效地支持它的用户

7.在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品

1.2.2软件工程的基本原理

1.用分阶段的生命周期计划严格管理 2.坚持进行阶段评审 3.实行严格的产品控制 4.采用现代程序设计技术 5.结果应能清楚地审查

6.开发小组的人员应该少而精

7.承认不断改进软件工程实践的必要性

1.2.3软件工程方法学

1.传统方法学 2.面向对象方法学

1.3软件生命周期

1.问题定义 2.可行性研究 3.需求分析 4.总体设计 5.详细设计

6.编码和单元测试 7.综合测试 8.软件维护

1.4软件过程

1.4.1瀑布模型

图1.2传统的瀑布模型

1.阶段间具有顺序性和依赖性 2.推迟实现的观点 3.质量保证的观点

图1.3实际的瀑布模型

1.4.2快速原型模型

图1.4快速原型模型 1.4.3增量模型

图1.5增量模型

图1.6风险更大的增量模型

1.4.4螺旋模型

图1.7简化的螺旋模型

图1.8完整的螺旋模型

1.4.5喷泉模型

图1.9喷泉模型 1.4.6 Rational统一过程

1.最佳实践

2.RUP软件开发生命周期

图1.10 RUP软件开发生命周期

1.4.7敏捷过程与极限编程

1.敏捷过程 2.极限编程

图1.11 XP项目的整体开发过程

图1.12 XP迭代开发过程

1.4.8微软过程

1.微软过程准则 2.微软软件生命周期

图1.13微软软件生命周期阶段划分和主要里程碑

3.微软过程模型

图1.14微软过程的生命周期模型

第2章 可行性研究

2.1可行性研究的任务 2.2可行性研究过程

1.复查系统规模和目标 2.研究目前正在使用的系统 3.导出新系统的高层逻辑模型 4.进一步定义问题

5.导出和评价供选择的解法 6.推荐行动方针 7.草拟开发计划 8.书写文档提交审查

2.3系统流程图

2.3.1符号 2.3.2例子

图2.1基本符号

图2.2系统符号

图2.3库存清单系统的系统流程图 2.3.3分层

2.4数据流图

2.4.1符号

图2.4数据流图的符号 2.4.2例子

图2.5定货系统的基本系统模型

图2.6定货系统的功能级数据流图

图2.7把处理事务的功能进一步分解后的数据流图 2.4.3命名

1.为数据流(或数据存储)命名 2.为处理命名

2.4.4用途

图2.8这种划分自动化边界的方法暗示以

图2.9另一种划分自动化边界的方法建议 2.5数据字典

2.5.1数据字典的内容

2.5.2定义数据的方法 2.5.3数据字典的用途

2.5.4数据字典的实现

2.6成本/效益分析

2.6.1成本估计

1.代码行技术 2.任务分解技术

3.自动估计成本技术

2.6.2成本/效益分析的方法

1.货币的时间价值

2.投资回收期 3.纯收入 4.投资回收率

第3章 需求分析

3.1需求分析的任务

3.1.1确定对系统的综合要求

1.功能需求 2.性能需求

3.可靠性和可用性需求 4.出错处理需求 5.接口需求 6.约束 7.逆向需求

8.将来可能提出的要求

3.1.2分析系统的数据要求 3.1.3导出系统的逻辑模型 3.1.4修正系统开发计划

3.2与用户沟通获取需求的方法

3.2.1访谈

3.2.2面向数据流自顶向下求精

图3.1面向数据流自顶向下求精过程 3.2.3简易的应用规格说明技术 3.2.4快速建立软件原型

3.3分析建模与规格说明

3.3.1分析建模 3.3.2软件需求规格说明

3.4实体联系图

3.4.1数据对象 3.4.2属性 3.4.3联系

图3.2某校教学管理ER图 3.4.4实体联系图的符号

3.5数据规范化

3.6状态转换图

3.6.1状态

3.6.2事件

3.6.3符号

图3.3状态图中使用的主要符号

3.6.4例子

图3.4电话系统的状态图 3.7其他图形工具

3.7.1层次方框图

图3.5层次方框图的一个例子

3.7.2 Warnier图

图3.6 Warnier图的一个例子

3.7.3 IPO图

图3.7 IPO图的一个例子

图3.8改进的IPO图的形式

3.8验证软件需求

3.8.1从哪些方面验证软件需求的正确性 3.8.2验证软件需求的方法

1.验证需求的一致性 2.验证需求的现实性

3.验证需求的完整性和有效性

3.8.3用于需求分析的软件工具 第4章 形式化说明技术

4.1概述

4.1.1非形式化方法的缺点 4.1.2形式化方法的优点 4.1.3应用形式化方法的准则

4.2有穷状态机

4.2.1概念

图4.1保险箱的状态转换图

4.2.2例子

图4.2电梯按钮的状态转换图

图4.3楼层按钮的状态转换图

图4.4电梯的状态转换图

4.2.3评价

4.3 Petri网

4.3.1概念

图4.5 Petri网的组成

图4.6带标记的Petri网

4.3.2例子

1.电梯按钮

2.楼层按钮

图4.7图4.6的Petri网在转换t1被激发后的情况

图4.8图4.7的Petri网在转换t2被激发后的情况

图4.9含禁止线的Petri网

图4.10 Petri网表示的电梯按钮

4.4 Z语言4.4.1简介

1.给定的集合 2.状态定义

3.初始状态 4.操作

图4.11Petri网表示楼层按钮

图4.12Z格S的格式

图4.13Z格Button_State

图4.14操作Push_Button的Z规格说明

图4.15操作Floor_Arrival的Z规格说明

4.4.2评价

第5章 总体设计

5.1设计过程

1.设想供选择的方案 2.选取合理的方案 3.推荐最佳方案 4.功能分解 5.设计软件结构 6.设计数据库 7.制定测试计划 8.书写文档 9.审查和复审

5.2设计原理

5.2.1模块化

图5.1模块化和软件成本

5.2.2抽象 5.2.3逐步求精 5.2.4信息隐藏和局部化 5.2.5模块独立

1.耦合 2.内聚

5.3启发规则

1.改进软件结构提高模块独立性 2.模块规模应该适中

3.深度、宽度、扇出和扇入都应适当 4.模块的作用域应该在控制域之内

图5.2模块的作用域和控制域

5.力争降低模块接口的复杂程度 6.设计单入口单出口的模块 7.模块功能应该可以预测

5.4描绘软件结构的图形工具

5.4.1层次图和HIPO图

图5.3正文加工系统的层次图

图5.4带编号的层次图(H图) 5.4.2结构图

图5.5结构图的例子——产生最佳解的一般结构

图5.6判定为真时调用A,为假时调用B

图5.7模块M循环调用模块A、B、C 5.5面向数据流的设计方法

5.5.1概念

1.变换流 2.事务流

3.设计过程

图5.8变换流

图5.9事务流

图5.10面向数据流方法的设计过程

5.5.2变换分析

1.例子 2.设计步骤

图5.11数字仪表板系统的数据流图

图5.12具有边界的数据流图

图5.13第一级分解的方法

图5.14数字仪表板系统的第一级分解

图5.15第二级分解的方法

图5.16未经精化的输入结构

图5.17未经精化的变换结构

图5.18未经精化的输出结构

图5.19精化后的数字仪表板系统的软件结构

5.5.3事务分析

图5.20事务分析的映射方法

5.5.4设计优化

第6章 详细设计

6.1结构程序设计

图6.1 3种基本的控制结构

图6.2其他常用的控制结构

6.2人机界面设计

6.2.1设计问题

1.系统响应时间 2.用户帮助设施 3.出错信息处理 4.命令交互 6.2.2设计过程 6.2.3人机界面设计指南

1.一般交互指南 2.信息显示指南 3.数据输入指南

6.3过程设计的工具

6.3.1程序流程图 6.3.2盒图

图6.3程序流程图中使用的符号

图6.4盒图的基本符号

6.3.3PAD图

图6.5PAD图的基本符号

图6.6使用PAD图提供的定义功能来逐步求精的例子 6.3.4判定表

6.3.5判定树 6.3.6过程设计语言

图6.7用判定树表示计算行李费的算法 6.4面向数据结构的设计方法

6.4.1Jackson图

1.顺序结构 2.选择结构

图6.8A由B、C、D 3个元素顺序组成

图6.9根据条件A是B或C或D中的某一个

3.重复结构

图6.10A由B出现N次(N≥0)组成

6.4.2改进的Jackson图

图6.11改进的Jackson图 6.4.3Jackson方法

图6.12表示输入输出数据结构的Jackson图

图6.13描绘统计空格程序结构的Jackson图

图6.14把操作和条件分配到程序结构图的适当位置

6.5程序复杂程度的定量度量

6.5.1McCabe方法

1.流图

图6.15把程序流程图映射成流图

图6.16由PDL翻译成的流图

图6.17由包含复合条件的PDL映射成的流图

2.计算环形复杂度的方法 3.环形复杂度的用途

6.5.2 Halstead方法

6.6小结

第7章 实现

7.1编码

7.1.1选择程序设计语言 7.1.2编码风格

1.程序内部的文档 2.数据说明 3.语句构造 4.输入输出 5.效率

7.2软件测试基础

7.2.1软件测试的目标 7.2.2软件测试准则 7.2.3测试方法 7.2.4测试步骤

1.模块测试 2.子系统测试 3.系统测试 4.验收测试 5.平行运行 7.2.5测试阶段的信息流

图7.1测试阶段的信息流

7.3单元测试

7.3.1测试重点

1.模块接口 2.局部数据结构 3.重要的执行通路 4.出错处理通路 5.边界条件

7.3.2代码审查 7.3.3计算机测试

图7.2正文加工系统的层次图 7.4集成测试

7.4.1自顶向下集成

图7.3自顶向下结合

7.4.2自底向上集成

图7.4自底向上结合 7.4.3不同集成测试策略的比较 7.4.4回归测试

7.5确认测试

7.5.1确认测试的范围 7.5.2软件配置复查 7.5.3Alpha和Beta测试

7.6白盒测试技术

7.6.1逻辑覆盖

1.语句覆盖

图7.5被测试模块的流程图

2.判定覆盖 3.条件覆盖

4.判定/条件覆盖 5.条件组合覆盖 6.点覆盖 7.边覆盖 8.路径覆盖 7.6.2控制结构测试

1.基本路径测试

图7.6求平均值过程的流图

2.条件测试 3.循环测试

图7.73种循环 7.7黑盒测试技术

7.7.1等价划分

7.7.2边界值分析 7.7.3错误推测

7.8调试 7.8.1调试过程

图7.8调试过程

7.8.2调试途径

1.蛮干法 2.回溯法 3.原因排除法

7.9软件可靠性

7.9.1基本概念

1.软件可靠性的定义 2.软件的可用性

7.9.2估算平均无故障时间的方法

1.符号 2.基本假定

3.估算平均无故障时间 4.估计错误总数的方法

第8章 维护

8.1软件维护的定义 8.2软件维护的特点

8.2.1结构化维护与非结构化维护差别巨大

1.非结构化维护 2.结构化维护

8.2.2维护的代价高昂 8.2.3维护的问题很多

8.3软件维护过程

1.维护组织 2.维护报告 3.维护的事件流

图8.1维护阶段的事件流

4.保存维护记录 5.评价维护活动

8.4软件的可维护性

8.4.1决定软件可维护性的因素

1.可理解性

2.可测试性

3.可修改性

4.可移植性

5.可重用性

8.4.2文档

1.用户文档 2.系统文档

8.4.3可维护性复审

8.5预防性维护 8.6软件再工程过程

图8.2软件再工程过程模型

1.库存目录分析 2.文档重构 3.逆向工程 4.代码重构 5.数据重构 6.正向工程 第9章 面向对象方法学引论

9.1面向对象方法学概述

9.1.1面向对象方法学的要点 9.1.2面向对象方法学的优点

1.与人类习惯的思维方法一致 2.稳定性好 3.可重用性好

4.较易开发大型软件产品 5.可维护性好

9.2面向对象的概念

9.2.1对象

1.对象的形象表示

图9.1对象的形象表示

2.对象的定义

图9.2用自动机模拟对象

3.对象的特点 9.2.2其他概念

1.类(cla) 2.实例(instance) 3.消息(meage) 4.方法(method) 5.属性(attribute) 6.封装(encapsulation) 7.继承(inheritance)

图9.3实现继承机制的原理

8.多态性(polymorphism) 9.重载(overloading) 9.3面向对象建模 9.4对象模型

9.4.1类图的基本符号

1.定义类

图9.4表示类的图形符号

2.定义属性 3.定义服务

9.4.2表示关系的符号

1.关联

图9.5普通关联示例

软件工程导论总结报告

软件工程导论试题

卷软件工程导论

软件工程导论教案

教案软件工程导论

软件工程导论试题

软件工程导论填空题总结

软件工程导论期末试题

软件工程导论试题(打印)

软件工程导论试题(打印)

《软件工程导论》讲稿
《《软件工程导论》讲稿.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档