软件工程课件第十章
软件工程-第10章第1节图文模板

10.1.3 开发多层次多组元的模型
1. 连续性表示 长期以来,软件人员遇到的主要问题如下: (1) 数据结构与数据处理的分离:即ER图与DFD图的分 离。有人注意到DFD图不适合于长期保存数据,当时解 决的办法是增加一级表示数据结构的图,即ER图,这 种方法使数据及数据处理分离。
10.1.3 开发多层次多组元的模型
10.1.4 定义及符号表示
发送对象
接收对象
图10.11 消息关联的符号表示
谢谢! 西安电子科技大学出版社
资料搜集
(2) 分析与设计的分离:即软件分析用 DFD图、ER图及数据词典来表示,而软件设计的 表示是软件结构图和软件详细设计表示法。它们 的表示截然不同,需要转换。
面向对象的Coad方法使用统一的基本表 示方法来组织数据及数据处理。面向对象的分析 定义问题域的对象和类,反映系统的任务;面向 对象的设计定义附加的类和对象,反映需求的实
10.1.4 定义及符号表示
一般类
具体类1
具体类2
图10.4 分类结构的符号表示
10.1.4 定义及符号表示
3) 组装结构 组装结构也是三种系统组织方法之一,它是 “has a”结构。例如,台灯有一个电灯泡,则 台灯和电灯泡就是这种结构的例子。台灯是整体, 而电灯泡则是台灯的组成部分之一。组装结构的 表示如图10.5所示。整体类放在图的顶部,部分 类放在图的下端,用线把它们连起来,用三角形 表示这是一个组装结构的形式。连线上的数字和
10.1.2 控制复杂性原则
1. 抽象 抽象是为了集中研究问题而忽略那些与问
题无关的部分的一种方法。抽象有过程抽象和数据 抽象两种。
过程抽象常表示为“功能/子功能”抽象, 将处理过程分解成多个子步骤,是一种基本的处理 复杂性的方法。但是使用这种分解来构成一个设计 多少有点随意性和易变性,但可在一定范围内用来
《软件工程》第10章 软件维护

北京大学远程教育课程
Software Engineering_Chapter10-2
问题定义
计划 时期 可行性论证 及软件计划
需求分析
概要设计 开发 时期
详细设计Байду номын сангаас
编码
测试 运行时期 运行/维护
北京大学远程教育课程
Software Engineering_Chapter10-3
本章主要内容
• 10.1 软件维护的定义,目标与任务 • 10.2 软件维护的类型 • 10.3 软件的可维护性
北京大学远程教育课程
Software Engineering_Chapter10-13
10.2.1 改正性维护(续)
• 实践表明,软件测试和排错不可能完全暴露并改正一个大 型软件系统中的所有错误。 • 经过统计分析,在典型的市场销售的软件包中,还有缺陷 的代码行约占代码总行数的3%。正式投入使用的软件中 含有错误是不足为奇的,即使是已运行多年的软件。 • 改正性维护举例:
北京大学远程教育课程
Software Engineering_Chapter10-6
10.1.3 软件维护的任务
• 一个软件开发机构60%的精力用在维护现有的软件上。随 着产品的增加,这个比例还将不断提高。不仅当前的软件 版本要维护,仍在使用的旧版本和即将投入使用的新版本 也将需要维护。 • 在软件整个运行周期中,不仅要解决原有问题,还要解决 修改过程中产生的新问题。因此软件维护是一个无穷尽的 过程。
Software Engineering_Chapter10-18
10.2.4 预防性维护
• 维护人员不要单纯等待用户提出维护的请求,而应该选择 那些还能使用数年、目前虽能运行,但不久就须作重大修 改或加强的软件,进行预先的维护。预防性维护可以改善 软件的可维护性,减少今后对它们维护时所需要的工作量。
软件工程ppt课件第10章面向对象分析

§3.建立 Object Model
⑤派生关联:即可用其它关联定义的冗余关联
总行拥有多台ATM 分行提供分行计算机和柜员终端 储户拥有账户 总行由各个分行组成 分行保管账户 总行拥有中央计算机 现金兑换卡访问账户 储户拥有现金兑换卡 分行雇用柜员
分行计算机处理事务 分行计算机维护账户 柜员终端与分行计算机通信 柜员输入事务 事务修改账户 ATM与中央计算机通信 在ATM上输入事务 中央计算机确定事务与分行的对应关系
④标明阶数(可能经常变动,不要花太多时间)
中央计算机
分行计算机
现金兑换卡
总 行
分 行
拥有
分行 代码
组成
通信
1+
通信
拥有
柜员终端
柜员事务
分 行
通信
1+
1+
拥有
1+
雇用
输入
1+
1+
输入
账 户
修改
1+
储 户
保管
1+
拥有
1+
远程事务
ATM
拥有
1+
1+
1+
访问
1+
1+
修改
授权
1+
输入
1+
§3.建立 Object Model
筛选时依下列标准删除:
、通信链路、事务日志
冗余
无关
笼统
属性
操作 既可为名词又可为动词的词,应慎重考虑。
实现
第1步:收集 ——
§3.建立 Object Model
2、确定关联 结构层
① 需求陈述中涉及objets的动词短语:
软件工程全ppt课件

程方法开发出成本低、可靠性好并在机器上能高
韩
效运行的软件,为今后从事软件开发和维护打下
静
坚实的基础。
萍
2019/10/20
哈
尔
滨
工
课程主要内容
业 大 学
本课程比较全面、系统地介绍软件工程的概念、技术 与方法。
主要内容包括:软件工程概述、软件生存周期及软件
需求分析、软件设计方法、软件测试技术等。
通过本课程的学习,使学生能真正的从中了解软件开
韩
静 萍
检索教材 帐本是 否有该 教材
开购书发 票和购 书单
购书单 购书发票
2019/10/20
哈
计算机售书系统流程图
尔
滨
工
学生
1---学生各学期用书数据库
业
2---教材存量数据库
大
购书单
学
终端
结束
购书发票
韩
审查并
静 萍
开发票
购书单
到书库 领书
1
2
2019/10/20
练
哈
习
请画出由下列文字描述的系统流程图
研制期限 产品规模(源代码行数)
微型
1
1-4周
约500行
小型
1
1-6周
约2000行
韩
中型
2-5
1-2年
5000-50000行
静
大型
5-20
2-3年
5万-10万行
萍
甚大型
100-1000
4-5年
100万行
极大型
2000-5000 5-10年
1000万行
2019/10/20
哈
尔
第十章.形式化描述

• 图10-6
10.3 行为描述
• 代数方法适合于描述操作独立于对象状态 的接口 • 假如某个操作的结果依赖于先前操作的结 果,结果将非常复杂, • 因此在行为描述的采用基于模型的方法 • 常见的方法有VDM方法,B方法,Z方法
• 软件的形式化描述 • 使用一种规范语言,其词汇,语法和语义 都是有严格定义的
• • • • • 1.非形式化方法的缺点 矛盾,指一组相互冲突的陈述。 二义性,指读者可以用不同方式理解的陈述。 含糊性,几乎不可避免地会出现含糊性。 不完整性,不完整性可能是在系统规格说明 中最 常遇到的问题之一。 • 抽象层次混乱, 指在非常抽象的陈述中混进 了一 些关于细节
• 2.形式化的优点 • (1)有能力在需求系统需求中揭示问题和暴露
图10-5 代数描述的结构
描述体的四个组成部分
• 介绍 ——用来声明被定义的尸体种类(类型名) • 描述部分——用于对操作的非形式化描述 • 标记部分——定义对象类或抽象数据类型的接口 语法 • 公理部分——通过一组刻画抽象数据类型的行为 特征的公理来定义操作的定义。
子系统接口的形式化描述的开发过 程的各项活动
问题二义性 • (2)数学能够简洁准确地描述物理现象、对象或 动作的结果,因此是理想的建模工具。 • (3)可以在不同的软件工程活动之间平滑地过渡。 • (4)它提供了高层确认的手段,可以使用数学的 方法证明,设计符合规格说明,程序代码正确地 实现了设计结果
《软件工程》PPT课件

问题定义(续)
系统全部弄清楚了。还有一些人可能会给你展示一些企业的十分详 尽的管理示图,如物资流管理图、生产管理图、计划财务管理图等。 因为他们也可能认为,只要分析员把这些图看懂了,就会对他们要 建立的系统搞清楚了。
但是,在问题定义阶段千万不要陷入到这些表格和图纸中。因为不 管是表格还是图纸,其中都包含了大量的、只有用户才能懂的术语。 当然,并不是说在问题定义阶段,这些图纸表格没有一点作用。对 一些关键性的语汇可以请用户讲清楚,这样有利于问题定义的准确 性。
快速原型(续)——类型之三
为了保证软件产品的质量,在总体设计和详细设计过程中,用 原型来验证总体结构或某些关键算法。如果设计方案验证完成后就 将原型丢弃,则构造原型的工具不必与目标系统的生产环境一致。 如果想把原型作为最终产品的一部分,原型和目标系统可使用同样 的程序设计语言。
快速原形的开发过程
问题定义的目的是要在短时间内,对用户的要求有一个比较准确的 估计,对要实现的系统规模做到胸中有数。但仅有这些还不够,还 要搞清用户不打算干什么,在这个系统中哪些内容不用实现。工作 的宗旨是搞清要做什么并划清要实现的系统的范围边界。
在完成问题定义的过程中,用户在一开始,可能会给你大堆大堆的 表格,因为他们可能认为只要把表格给你讲清楚,你就会对这个
系统定义与用户 需求分析
原型设计 编码
完善原 型
测试原 型
产品系统的设 计实现
第三课时
喷泉模型 软件重用模型
第一章第三课时
喷泉模型
基于喷泉模型,Hodge等人提出将软件开发过程
划分为概念模型分析、系统设计、对象设计与实现、
测试和系统组装集成等五个阶段,它也体现出分析
和设计之间的重叠 ①概念模型分析:这个阶段主
软件工程第十章形式化方法优秀课件

所谓集合,乃是有某些可以相互区分的如何对象, 如数、变量、函数、字母、数字、图、语言、程序、 事件等,或者没有任何对象,汇集在一起所组成的 整体。
➢ 例10--2:一个包含4个元素的自然数集合: {1,3,5,7}
➢ 例10--3:包含五种程序设计语言的名字的集合: {C ,C++, Pascal, Basic, FORTRAN }
形式化规约语言的语法域通常基于从标准集合 论符号和谓词演算导出的语法。
10.2有限状态机(FSM)
很多实时系统,特别是实时控制系统,其整个 分析机制与系统的状态有相当大的关系。有限 状态机由有限的状态和相互之间的转移构成, 在任何时候只能处于给定数目的状态中的一个。
当接收到一个输入事件时,状态机产生一个输 出,同时也可能伴随着状态的转移。主要有两 种方法来建立有限状态机,一种是"状态转移 图",另一种是"状态转移表",分别用图形方式 和表格方式建立有限状态机。
软件工程第十章形式化 方法
第十章 形式化方法
形式化方法提供了规约环境的基础,它使得所 生成的分析模型比用传统的或面向对象的方法 生成的模型更完整、一致和无二义性。集合论 和逻辑符号的描述设施使得我们可以创建清晰 的关于事实的陈述。
支配形式化方法的基本概念是:数据不变式、 状态、离散数学、序列相关联的符号体系、形 式化规约语言。
4.没有队列元素包含相同的块号。 5.已用块和未用块的集合将是组成文件的块的 总集。
6.在已用块集合中没有重复的块号。
10.1.4 形式化规约语言 形式化规约语言通常由三个主要的成分构成:
(1)语法,定义用于表示规约的特定符号; (2)语义,帮助定义用于描述系统的“对象的全 域(universe of objects)”; (3)一组关系,定义确定出哪个对象真正满足规 约的规则。
《软件工程实用教程》第10章 软件工程标准与文档

《软件工程实用教程》第10章软件工程标准与文档软件工程实用教程第10章软件工程标准与文档10.1 软件工程标准10.1.1 软件工程标准的定义软件工程标准是指为了规范和统一软件工程领域的活动、产品和过程而制定的一系列规范和指南。
10.1.2 软件工程标准的分类根据ISO/IEC 12207标准,软件工程标准可以分为四个主要类别:1、过程标准:定义软件工程过程的基本原则和规范,如ISO/IEC 12207标准;2、产品标准:定义软件工程产品的开发、评审和验证要求,如ISO/IEC 9126标准;3、测试标准:定义软件测试的方法、技术和规范,如ISO/IEC 25000标准;4、文档标准:定义软件工程文档的编写和管理规范,如ISO/IEC/IEEE 26515标准。
10.2 软件工程文档10.2.1 软件工程文档的定义软件工程文档是为了记录和传递软件开发过程中各种信息而编写的文件。
10.2.2 软件工程文档的目的主要目的是促进软件工程的沟通、交流和合作,确保软件开发过程能够明确、有序地进行。
10.2.3 软件工程文档的分类根据软件工程过程的不同阶段和功能,软件工程文档可以分为以下几种类型:1、需求文档:描述用户需求、系统规范和功能需求;2、设计文档:描述系统的总体设计、模块划分和接口定义;3、编码文档:描述程序的逻辑结构、算法和源代码;4、测试文档:描述测试计划、测试用例和测试结果;5、用户手册:描述系统的安装、配置和使用方法;6、运维手册:描述系统的运行、监控和维护方法。
10.3 软件工程文档编写规范10.3.1 文档命名规范为了方便管理和查找,软件工程文档应该采用统一的命名规范,一般包括项目名称、文档类型和版本号等信息。
10.3.2 文档格式规范软件工程文档应该采用标准的文档格式,一般包括标题、目录、正文、参考文献和附录等部分。
10.3.3 文档内容规范软件工程文档应该包含清晰、准确、完整的信息,能够满足用户的需求,并且需要经过严格的审核和审查。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
⑴ 选择特定的领域
⑵ 抽取具有最优复用的功能
⑶ 标识该功能 ⑷ 建立领域分析模型
⑸ 定义需求规约,得到由需求规约构件和子配置构成的领域模型
开发可复用构件
– 构件应具有的特征
⑴ 通用性 ⑵ 可变性
在建造构件时,应该提供构件的特化和调整机制。
⑶ 易组装性
• 构件的组装分为同构件的组装和异构件的组装。 • 构件应有良好的封装性和良好的接口。 • 构件间应有松散的耦合度 • 应提供便于组装的机制
收集和分析用户的需求,设计并实现需要另 加的构件,对所提供的可复用构件进行必要 的修改,建造和测试整个应用系统。
面向对象与软件复用
面向对象技术的核心概念是“类”,而类的主要特征 封装、继承和多态,都十分有利于复用。
面向对象方法对软件复用的支持
⑴ OOA模型
OOA模型分基础模型和详细模型,基础模型体现更 高层次的抽象,更容易复用。
软件复用的基本概念
领域工程 基于构件的软件开发 面向对象与软件复用
软件复用的基本概念
软件复用的定义 1983年,Freeman对软件复用给出了 这样的定义: “在构造新的软件系统过程中,对 已存在的软件人工制品的使用技 术。” 开发伴随复用,开发为了复用
领域 工程
领域分析
软件结构开发
可重用构件开发 可复用 构件库
领域模型
结构模型
基于构件 的开发
构件选用 构件调整 构件组合
构件更新 应用 软件
分析
结构设计
构件工程
测试
软件复用的重要性
软件复用的目的是能更快、更好、成 本更低地生产软件产品。 实现软件复用应解决的问题
– 建立支持复用的基础设施(如构件库)。 – 培训工程师和管理者使用复用软件。 – 采用促进软件复用的开发方法(如面向
CBSD改变了软件的生产方式,提高了 软件生产的效率和质量
适应性修改 构件理解 构件库 复合
查询
新系统
把库中的构件集成到应用系统中
应用系统工程
ASE(Application System Engineering) 通过复用构件系统开发某个特定应用系 统的构件工程。
获取需求 分析 设计与实现 测试 打包
⑷ 工具
支持复用的软件工具。 ⑸ OOA过程
⑶ OpenDoc开放式文档接口 OpenDoc是IBM、Apple、Novell等公司推出 的关于复合文档和构件软件的标准。
建立可复用构件库
需要对构件库进行严密的管理、有效的 分类和科学的描述。分类模式如下:
⑴ 枚举分类
通过定义一个层次结构来描述构件。
⑵ 呈面分类
标识出一组基本的描述特征,这些特征为 呈面。呈面可以描述构件的功能、被操作 的数据、构件应用的语境等各种特征,并 根据其重要性区分优先次序。
领域构件的设计框架
⑴ 标准数据 ⑵ 标准接口协议 ⑶ 程序模板
几种流行的构件技术
⑴ COM(Component Object Model)
组件对象模型技术
COM是Microsoft公司开发的一种构件对象模 型,它提供了使用不同厂商生产的对象的规约。 任何人都可以按此标准独立地开发组件和增值 组件,或由若干组件组建集成软件。
这个阶段的主要任务是获得“领域模 型”,领域模型的需求描述为“领域需 求”。
根据领域需求,领域工程师寻找领域的 共性,进而确定软件的可复用构件。
领域分析的步骤:
领 域
技术文件 已有应用 类的分析
领
知
识 源
客户考察
专家提议 目前/未来的需求
领 域 分 析
复用标准 功能模型 需求规约
域 知 识 模 型
统所覆盖的区域。
பைடு நூலகம்
领域中的复用可分为:横向复用和纵向复用
横向复用:指复用不同应用领域中的软件元素,如 标准函数库。
纵向复用:指具有较多公共性的应用领域之间的软 件复用。
纵向复用的领域工程实施的活动:
① 实施领域分析
② 开发可复用的构件 ③ 建立可复用构件库
实施领域分析
领域分析是在特定应用领域寻找最优复 用的过程,它以公共对象、类、子集合 和框架等形式进行标识,然后对它们进 行分析和规约。
⑶ 属性-值分类
为领域中的所有构件定义一组属性,然后赋 给这组属性一组值。通过属性,查找构件。
• 属性-值分类对可使用的属性数量没有限制, 而呈面分类限定不超过7或8个。
• 属性-值分类中的属性没有优先级,而呈面 可以区分优先级。
• 属性-值分类不具有同义词功能,而呈面可 以查找相关的同义词。
基于构件的软件开发
⑵ OOA和OOD的分工 ⑶ 对象的表示
⑷ 一般-特殊结构
⑹ 实例连接
⑸ 整体-部分结构
建议用简单的二元关系表示各种复杂关系和多元关系
⑺ 类模型模板
⑻ 用例
复用技术对面向对象方法的支持
⑴ 类库 人们已经开发了许多基于面向对象语言的编程类库, 有利地支持了源程序级的软件复用。 ⑵ 构件库 构件库可以提炼比对象类粒度更大的可复用构件, 如用例图、交互图等,形式和内容比类库更丰富。 ⑶ 构架库 通过领域分析,建立可重用的OOA模型。
– 应用程序生成器
• 用于对整个软件系统设计的复用。 • 自动化程度高
• 特定的应用程序生成器不宜构造
– 领域特定的软件体系结构的复用
指对特定领域中存在的一个公共体系结构 及其构件的复用。要求对领域有透彻的 理解才能进行领域建模。
特点:① 复用程度高
② 前期投入大
领域工程
领域:是一组具有相似或相近软件需求的应用系
几种流行的构件技术
⑵ CORBA(Common Object Request Broker Achitecture)公共对象请求代理体系结构
CORBA是对象管理组织于1991年发布的一种 基于分布对象技术的公共对象请求代理体系 结构,其目的是在分布式环境下,建立一个 基于对象技术的体系结构和一组规范,实现 应用的集成,使组件在异构环境中可以复用、 移植和互操作。
对象的开发方法)。
– 企业内部采取激励措施。
软件复用的粒度
– 源代码复用
• 在构件库检索到实用的构件,通过设置参数值, 使之具有新的适应性。 • 由于构件经过充分的测试,其可靠性高。 • 但通用性、抽象性较差。
– 软件体系结构复用
• 可复用较大粒度的软件制品
• 因为难以抽象出简明的描述,存放体系 结构的库不宜管理