电子教案1

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


程序=数据结构+算法

面向对象程序设计

程序 = 对象 + 消息
共139页 14
面向过程和面向对象的编码
存款 存 款 取 款
取款
帐户余 额
帐 户 余 额
利息结 算
共139页
利 息 结 算
15
两类软件工程方法

传统软件工程

软件分析 → 总体设计 → 详细设计 → 面向 过程的编码 → 测试 软件分析与对象抽取 → 对象详细设计 → 面 向对象的编码 → 测试
共139页 49

面向对象分析工具



数据流图DFD

描述系统逻辑模型

信息在系统中的流动和处理 交流信息的工具 结构化分析和设计的工具

用途

共139页
50
数据流图DFD

组成符号

圆框代表加工 箭头代表数据流向 方框代表源点和终点 双杠表示数据文件或数据库 从高层到低层 分解前后的数据流必须一致 数据流 处理



需求获取的常用方法

联合分析小组

用户代表、领域专家和系统分析员 充分准备,寻找共同语言 循循序渐进、逐步逼近 多个来回
共139页 45

客户访谈


问题分析与确认

分析建模

结构化分析模型 面向对象分析模型 分析模型描述工具

DFD、DD和PSPEC CFD、CSPEC和STD E-R图 用例图,对象-关系图,对象-行为图
收集
盒结构 形式化 正确性 规约 设计 证明 测试计划
共139页
代码生成 与检查
统计性使 认证 用测试
40
净室模型

净室思想

在分析和设计阶段消除错误 在“洁净”状态下实现软件制作 盒结构表示分析和设计 正确性验证

形式化


增量模型
共139页 41
小结

软件开发模型是不断发展的 各种软件开发模型各有优缺点 选用时不必拘泥与某种模型 可组合多种模型 也可根据实际创建新的模型
共139页
32
类Class和实例Instance



相同属性和行为的对象的抽象 特定类所描述的一个具体对象

实例

共139页
33
继承(Inheritance)

子类直接继承父类的数据和操作
家具
桌子
椅子 椅子的实例
衣柜


继承的传递性,单继承、多重继承
共139页 34
多态性Polymorphism

Message:[dest,op,para] Destination Object Operation Parameters
共139页
37
转换模型
形式化开发记录 与 需 求 比 较 后 修正
变换n
形式化 规格说明
变换2 测试 变换1
系统需求
共139页
目标系统
38
转换模型

特点

形式化软件开发方法

状态(静态属性 Attributes) 操作(动态行为 Methods) Identifier Method Set Data Structure Message Interface
共139页 31

对象::=<ID,MS,DS,MI>



对象的特点

以数据为中心 对象是主动的 实现数据封装 本质上有并行性 模块独立性好
共139页
瀑布模型

特点


阶段的顺序性和依赖性 推迟实现的观点 质量保证

存在问题

不适合需求模糊的系统
共139页
21
快速原型模型
需求分析 原型开发
原型评价 用户 反馈 最终系统设计
最终系统实现
共139页
22
快速原型模型

特点


快速开发工具 循环 低成本

种类

渐进型 抛弃型
共139页 23
共139页 46
结构化分析模型
数据对象说明 E-R图
DD 加工说明
DFD图
CFD,STD图 控制说明
共139页
47
面向对象分析模型
属性、操作、协作者
类/对象 模型 使用实例
对象关系模型
对象-行为模型
共139页
48
分析模型描述工具

结构化分析工具


DFD、DD和PSPEC CFD、CSPEC和STD E-R图 用例图,类对象图 对象-关系图 对象-行为图
共139页
42
第三章 软件需求分析


需求分析的任务与步骤 需求获取的常用方法 分析建模 软件需求说明 结构化分析方法 面向对象分析方法
共139页
43
需求分析的任务和步骤

需求分析的任务

建立分析模型 编写需求说明 需求获取 需求提炼 需求描述 需求验证
共139页 44

需求分析的步骤

形式化需求规格说明 变换技术

程序自动生成技术 确保正确
共139页
39
净室模型
增量1 需求
收集
盒结构 形式化 正确性 规约 设计 证明 测试计划
代码生成 与检查
统计性使 认证 用测试
增量2 需求
收集
盒结构 形式化 正确性 规约 设计 证明 测试计划
代码生成 与检查
统计性使 认证 用测试
增量n 需求

概念



不同类层次共享一个方法名 相同的参数特征和返回值类型 多种不同实现 C++中虚函数实现 动态联编
共139页
35
重载Overloading

函数重载



同一作用域 多个名字相同的函数 参数特征不同 静态联编

运算符重载
共139页
36
消息Message

对象间的交互手段 形式:
半分钟 时钟 半分钟数据 半小时 工控机 处理 实时数 据显示 半小时数据 班数据
翻屏
共139页 63
STD

描述软件状态变迁 符号表示

矩形---系统状态 箭头---状态转变方向 规则表达式---事件/触发行为
状 态1 事件/触发行为 状 态2
共139页
64
STD例子
空闲/采集 采集 物品经过/计数 PLC计数 20秒到/翻屏 实时翻屏 生成最新数据/翻屏 半小时到/工控处理
DFD中所有元素的定义的集合 内容

数据流 数据流分量 数据存储 处理(一般不用DD描述)
共139页
54
数据字典DD

定义数据的方法

自顶向下分解数据 顺序:A+B 选择:[A|B] 重复:1{A}5 可选: (A)
共139页 55

数据元素的组合方式

数据字典DD

DD的用途


分析阶段的交流工具 包含控制信息 数据库设计的基础

例子

P41例3.6
共139页
56
加工说明

加工说明PSPEC

说明DFD中的每个加工 结构化语言 判定表 判定树

描述工具

共139页
57
加工说明—例子

结构化语言

P42-43, 例3.7,3.8 P44, 例3.9

判定树

技术措施

共139页
12
软件工程学的范畴

软件工程学

指导计算机软件开发和维护的工程学科 工程管理+开发技术 软件开发方法学 软件工具 软件工程环境 软件管理学 软件经济学 软件度量学

软件开发技术


软件工程管理

共139页
13
两种程序设计方法

程序设计的两次飞跃
结构化程序设计
软件工程-原理、方法与应用
电子教案
48学时(32理论+16理论)
共139页
1
课程安排

理论

内容:基本原理、方法和技术 形式:讲授、自学、讨论 内容:构造一个应用系统(包括分析、设计、 编码、测试) 形式:分组、分阶段文档、编码、集成

实践


共139页
2
软件工程的主要内容



判定表

P44, 例3.9
共139页
58
CFD和CSPEC

适合实时系统的分析 与DFD和PSPEC类似 和DFD与PSPEC配合使用 表示控制流和控制加工
共139页
59
CFD和DFD的关系
加工模型 输入数据
DFD
控制输入
输出数据
加工激活信号
PSPEC
控制模型
CFD
数据条件
控制输出

共139页 5
软件的特征

软件是逻辑的,而不是物理的



软件开发与人关系密切 软件开发成本大 软件生产是简单的拷贝 软件不会磨损和老化 软件受环境影响大 软件维护易产生新的问题
共139页
6
软件开发的发展过程
计算机应用发展 软件数量多 规模大 软件成本高 质量低
个体化软件开发方法
软件维护困难

面向对象软件工程

共139页
16
软件工程的应用

软件工程指导中小型软件 软件工程指导大型软件 软件工程的成就 软件工程的局限
共139页
17
第二章 软件开发模型

传统开发模型

瀑布模型(waterfall model) 快速原型模型(rapid prototype model) 增量模型(incremental model) 螺旋模型(spiral model) 构件集成模型(component integration model) 转换模型(transformational model) 净室模型(cleanroommodel ) 共139页
半分钟到/传送
传送
工控处理
共139页
65
E-R图

用于对复杂数据的用作数据分析和建模 实体、属性和关系 组成符号

演化开发模型


面向对象开发模型


形式化开发模型


18
软件生存周期

计划时期

问题定义 可行性分析 需求分析 软件设计 编码 测试

开发时期
Leabharlann Baidu

运行时期

软件维护
共139页 19
瀑布模型
问题定义
计划时期
可行性研究 需求分析 软件设计 编 码
开发时期


维 护
20
运行时期


软件工程的基本概念 软件开发模型 软件开发各阶段的任务、技术、方法 传统方法、面向对象方法 软件工程管理 软件质量保证 软件工程环境
共139页 3
第一章 绪论
一、软件与软件危机 二、软件工程学 三、传统软件工程和面向对象软件工程 四、软件工程的应用
共139页
4
软件
程序、软件与软件产品 独唱-->小合唱-->合唱-->万人大合唱 | | | 简单程序 较复杂程序 软件 软件定义: 软件=程序+数据+文档 程序:按事先设计的功能和性能需求执行的指令 序列 数据:是程序能正常操纵信息的数据结构 文档:与程序开发、维护和使用有关的图文材料
软件危机
软件工程
共139页
7
软件危机

定义
计算机软件的开发和维护过程所遇到的一系列严重问 题

表现

对软件开发成本和进度的估算很不准确 用户很不满意 质量很不可靠 没有适当的文档 软件成本比重上升 供不应求:软件开发生产率跟不上计算机应用迅速 深入的趋势
共139页 8
硬件/软件成本变化趋势

分层



命名

共139页
51
DFD练习—售书系统


购书单
教材 购销 系统
缺书单
领书单
进书通知
书 库 保 管 员
共139页
52
DFD练习—售书系统
F1教材存量表
学 购书单

1 销 领书单 售
进书通知
2 采 购 进书通知
缺书单
书库 保管 员
F2缺书登记表
共139页 53
数据字典DD

100%
硬件
软件
0%
1955 1970 1985
9 共139页
软件技术进步落后于需求增长
共139页
10
软件危机

原因

客观:软件本身特点

逻辑部件 规模庞大 忽视需求分析 错误认为:软件开发=程序编写 轻视软件维护

主观:不正确的开发方法



共139页
11
软件危机

解决途径

组织管理

工程项目管理方法 软件开发技术与方法 软件工具
CSPEC
共139页
控制输入
60
CFD的符号表示
控制信息或事件
引用控制说明
共139页
61
DFD和CFD例子---DFD
光电管 采集
信号
计数 传送
实时数 据显示
半分钟数据
半小时数据
班数据
工控机 处理
班数据 处理
共139页
62
DFD和CFD例子---CFD
物品经过 光电管 采集 信号 某型号累加 计数 传送 人工驱动信息 班数据 处理
增量模型
增量1 规格说明 设计 实现和集成 交付客户
增量2
规格说明
规格说明
设计
设计
实现和集成
实现和集成
交付客户
交付客户
增量3
增量n
规格说明
设计
共139页
实现和集成
交付客户
24
增量模型

增量

小而可用的软件 在前面增量的基础上开发后面的增量 每个增量的开发可用瀑布或快速原型模型 迭代的思路

特点


特点



面向对象 基于构件库 融合螺旋模型特征 支持软件开发的迭代方法 软件重用
共139页
29
面向对象的基本概念

对象Object 类Class 继承Inheritance 消息Message 面向对象

对象+类+继承+消息通信
共139页
30
对象Object

客观世界中的实体
共139页
25
螺旋模型
共139页
26
螺旋模型

特点

瀑布模型+快速原型+风险分析 迭代过程 确定目标,选择方案,选定完成目标的策略 风险角度分析该策略 启动一个开发阶段 评价前一步的结果,计划下一轮的工作
共139页 27

一个螺旋式周期

构件集成模型
共139页
28
构件集成模型
相关文档
最新文档