软件工程讲义_第07章 构建分析模型
构建模型教案
构建模型教案教案名称:构建模型教学目标:1. 理解什么是构建模型,并能够解释模型的重要性和应用领域。
2. 学习构建模型的步骤以及与实际问题的联系。
3. 能够运用构建模型的方法解决实际问题,并进行模型的评估和改进。
教学内容:一、引入构建模型作为数学建模的重要手段之一,广泛应用于各个学科领域。
例如在物理学中,通过构建模型可以研究物体的运动规律;在经济学中,构建经济模型可以分析经济变量之间的关系等。
本节课将引导学生了解构建模型的概念和应用场景。
二、概念解释与示例1. 什么是构建模型构建模型是指通过建立数学模型的方式来描述和解释实际问题。
模型是对真实世界的简化和抽象,它可以反映问题的本质和关键因素,并进行定量分析和预测。
例如,在城市交通规划中,可以通过构建交通流模型来评估不同方案的交通拥堵情况。
2. 构建模型的步骤(1) 确定问题和目标:明确需要解决的问题,并制定明确的目标。
(2) 收集数据:收集与问题相关的数据,并进行整理和清理。
(3) 建立假设:根据问题和数据,建立与问题相关的假设。
(4) 建立数学模型:根据问题和假设,选择适当的数学方法和工具,建立数学模型。
(5) 模型求解:运用数学方法和工具,对模型进行求解,得出问题的解答。
(6) 模型评估与改进:对模型进行评估,分析模型的优缺点,并对模型进行改进。
三、案例分析1. 案例一:物体的自由落体(1) 问题描述:一颗物体从高处自由落下,求物体的落地时间和落地速度。
(2) 假设:假设物体仅受重力作用。
(3) 数学模型建立:根据运动学方程,建立物体的自由落体模型。
(4) 模型求解:对模型进行求解,得出物体的落地时间和落地速度。
(5) 模型评估与改进:评估模型的准确性,并分析模型中的假设条件是否合理。
2. 案例二:经济增长模型(1) 问题描述:研究一个国家的经济增长情况,并预测未来的经济走势。
(2) 假设:假设经济增长率与人均GDP、人口增长率等因素相关。
(3) 数学模型建立:根据经济学理论和实际数据,建立经济增长模型。
第9课软件工程基础知识
7.4、系统设计知识
耦合是软件结构中各个模块之间相互关联程度的度量。 非直接耦合:如果两个模块没有没有直接关系,它们之间的联系完全是 通过主程序的控制和调用来实现的。 数据耦合:如果两个模块借助于参数表传递简单数据。 标志耦合:如果两个以上的模块都需要其余某一数据结构子结构时,不 使用全局变量的方式而是用记录传递的方式 控制耦合:如果一模块明显地把开关量、名字等信息送入另一模块,控 制另一模块的功能。 外部耦合:当模块与软件以个的环境有关时就发生外部耦合。例如:输 入输出把一个模块与特定的设备、格式、通信协议耦合在一起。 公共耦合:多个模块引用一全局数据区的模式。例如C语言中的external 数据类型、磁盘文件等都是全局数据区。 内容耦合:一个模块访问另一模块的内部数据;一个模块不通过正常入 口转到另一模块内部;两个模块有部分程序代码重叠;一个模块有多个 入口;
7.4、系统设计知识
内聚是一模块内部各个元素彼此结合的紧密程度的度量 偶然内聚:如果一个模块完成一组任务,这组任务彼此间即使有关系, 其关系也是松散的。 逻辑内聚:把几种逻辑上相关的功能组合在一起,每次被调用时,由传 送给的模块参数来确定该模块应完成哪一种功能。 时间内聚:如果一个模块所包含的任务必须在同一时间间隔内执行,这 个模块属于时间内聚,例如初始化模块。 过程内聚:如果一个模块的处理元素是相关的,而且必须按特定的次序 执行。 通信内聚:如果一个模块的所有功能都通过使用公用数据而发生关系。 顺序内聚:如果一个模块的处理元素是相关的,而且必须顺序执行,通 常一个处理元素的输出数据作为下一下处理元素的输入数据。 功能内聚:如果一个模块包括且仅包括为完成某一具体任务所必须的所 有成份,或者说模块中所有成分结合起来是为了完成一个具体的任务。
软件工程功能分析与概念模型
同步条
同步条:表示引入的信息流同时到达, 引出的信息流被同时触发
初始化
显示
测量
信息流、数据流、信号流
信息流:连接各活动并表示活动间的控制转移
数据流:连接活动与其I/O对象 信号流:连接收发信号与对象
泳道
泳道进一步描述完成活动的对象,并聚合一组活动。活动图是 另一种描述交互的方式,描述采取何种动作,做什么(对象状态 改变),何时发生(动作序列),以及在何处发生(泳道)。 泳道也是一种分组机制。 顾 客 售 货 库 房
适应; 可用泳道技术对同层活动进行活动状态与轨迹分组;
建模要点
活动图对功能分解层次的覆盖关系 ① 活动分割关系:子功能—活动 子功能—活动—动作 ② 每个底层用例可展开为一张活动图 (由单个用例中的相关活动序列组成) ③ 单个活动:由不可再分的相关动作序列组成
用例的活动图表示
1.2.4 常见问题分析
若一个用例中有完全不同的事件流最好把它分解成不同的用例常见问题审查与分析用例表示活动操作或状态用例表示活动操作或状态会员输入用户名验证用户名和密码会员登录include常见问题审查与分析用例表示系统活动用例表示系统活动查询订单建立数据库连接执行sql语句includeinclude常见问题审查与分析用例表示数据的增删改查用例表示数据的增删改查删除用户修改用户增加用户管理员查询用户常见问题审查与分析管理员用户管理管理员用户管理增加用户extend12活动图121活动图的作用122活动图基本概念123活动图建模过程124常见问题分析121活动图的作用活动模型用活动图表示活动模型用活动图表示一种观点认为活动图是一种特殊的状态图一种观点认为活动图是一种特殊的状态图活动图
软件工程模型方法
软件工程模型方法软件工程模型方法软件工程模型是指将软件开发过程中的各个阶段和活动组织起来的一种方法。
它提供了一种规划、管理和控制软件开发的方式,可以帮助团队更加高效地开发软件。
本文将介绍常见的软件工程模型方法,并对每个模型进行细化说明。
1、瀑布模型(Waterfall Model)瀑布模型是软件开发过程中最古老、最经典的模型之一。
它将软件开发过程划分为一系列连续的阶段,如需求分析、设计、编码、测试和维护等。
每个阶段都是线性顺序进行,前一个阶段的结果作为后一个阶段的输入。
这种模型适用于需求稳定、项目时间紧迫的情况。
2、原型模型(Prototype Model)原型模型是通过快速构建原型来确定用户需求的模型。
它首先开发一个初始的简单原型,与用户进行交互,获取反馈意见,然后不断迭代和改进原型,直到满足用户的需求。
原型模型适用于用户需求不明确或需要快速验证想法的情况。
3、增量模型(Incremental Model)增量模型将软件开发过程划分为多个独立的模块,每个模块都是一个完整的、可测试的子系统。
团队先开发核心功能的模块,然后逐步添加新功能,每个增量都经过测试和验证。
这种模型适用于大型项目和需求变化频繁的情况。
4、螺旋模型(Spiral Model)螺旋模型将软件开发过程分为多个迭代周期,每个周期包含风险分析、计划、开发和评估等活动。
团队在每个周期内通过风险评估来决定下一步的工作。
螺旋模型适用于复杂、大规模软件开发项目。
5、敏捷模型(Agile Model)敏捷模型是一种迭代、增量的开发方法,强调团队协作、灵活响应需求变化和频繁交付可工作软件。
常见的敏捷方法包括Scrum、XP和Kanban等。
敏捷模型适用于快速响应市场需求、团队需要灵活合作的情况。
6、DevOps模型DevOps模型是将开发(Development)和运维(Operations)整合在一起的一种方法。
团队通过自动化流程、持续集成和交付等实践,实现软件开发和运维的高效协作。
软件工程课本讲解第7章增量模型(精)
第7章 增量模型
图7.3 (a) 原型;(b) 原型的使用;(c) 开发过程
第7章 增量模型
在图7.3(c)中,实线箭头连接的表示探索型快速原型 模型的开发过程,双线箭头连接的表示实验型快速原型模 型的开发过程,虚线箭头连接的表示演化型快速原型模型 的开发过程。
对于探索型,用原型过程来代替需求分析,把原型作 为需求说明的补充形式,运用原型尽可能使需求说明完整、 一致、准确和无二义性,但在整体上仍采用瀑布模型。
第7章 增量模型
7.2 渐增模型
7.2.1 增量构造模型 增量构造模型如图7.1所示。在该模型中,需求分
析阶段和设计阶段都是按瀑布模型的整体方式开发的, 但是编码阶段和测试阶段是按增量方式开发的。在这 种模型的开发中,用户可以及早看到部分软件功能, 及早发现问题,以便在开发其他软件功能时及时解决 问题。
第7章 增量模型
增量模型和瀑布模型之间的本质区别是:瀑布模型 属于整体开发模型,它规定在开始下一个阶段的工作之 前,必须完成前一阶段的所有细节。而增量模型属于非 整体开发模型,它推迟某些阶段或所有阶段中的细节, 从而较早地产生工作软件。
增量模型是在项目的开发过程中以一系列的增量方 式开发系统。增量方式包括增量开发和增量提交。增量 开发是指在项目开发周期内,以一定的时间间隔开发部 分工作软件;增量提交是指在项目开发周期内,以一定 的时间间隔增量方式向用户提交工作软件及相应文档。 增量开发和增量提交可以同时使用,也可单独使用。
第7章 增量模型
2. 需求是模糊的
对于某些类型的软件系统,如操作系统、编译系统等系统软 件,人们对它们比较熟悉,有长期使用它们的经验,其需求经过 仔细的分析之后可以预先指定。但是,对于大多数经常使用的应 用系统,例如管理信息系统,其需求往往很难预先准确的指定, 也就是说,预先定义需求的策略所做出的假设,只对某些软件成 立,对多数软件并不成立。许多用户对他们的需求最初只有模糊 的概念,想要求一个对需求只有初步设想的人准确无误地说出全 部需求,显然是不切实际的。人们为了充实和细化他们的初步设 想,通常需要经过在某个能运行的系统上进行实践的过程。
模型构建法基础知识点总结
模型构建法基础知识点总结本文将从模型构建的基本流程、常用的模型类型、模型评估以及一些常用的模型构建工具等方面展开介绍,希望能为初学者提供一些帮助。
一、模型构建的基本流程模型构建的基本流程一般包括数据收集、数据清洗和预处理、特征工程、模型选择和训练、模型评估等步骤。
下面将对每个步骤进行具体介绍。
1. 数据收集数据收集是模型构建的第一步,它涉及到从各种数据源中获取数据。
常见的数据源包括数据库、文本文件、网络数据等。
在数据收集过程中需要注意数据的完整性和准确性,以确保后续模型构建的质量。
2. 数据清洗和预处理数据清洗和预处理是模型构建的重要环节。
在这个阶段需要处理缺失值、异常值、重复值等问题,同时还需要对数据进行标准化、归一化、转换等处理。
这些工作能够提高数据的质量,减少模型构建的干扰。
3. 特征工程特征工程是模型构建的关键环节,它涉及到从原始数据中提取和选择最能代表现象或者对预测目标有帮助的特征。
常见的特征工程包括特征选择、特征变换、特征组合等。
4. 模型选择和训练模型选择和训练是模型构建的核心环节。
在这一阶段需要根据业务需求选择合适的模型类型,然后使用训练数据对模型进行训练。
常见的模型类型包括线性模型、决策树、神经网络、支持向量机等。
5. 模型评估模型评估是模型构建的最后一步,它涉及到使用测试数据对训练好的模型进行评估。
常见的评估指标包括准确率、精确率、召回率、F1值等。
二、常用的模型类型在模型构建中,常见的模型类型包括线性回归模型、逻辑回归模型、决策树模型、随机森林模型、支持向量机模型、神经网络模型等。
下面将对每种模型类型进行具体介绍。
1. 线性回归模型线性回归模型是一种用来描述自变量和因变量之间线性关系的模型。
它的表达式为y =w1*x1 + w2*x2 + ... + wn*xn + b,其中w1, w2, ..., wn和b是模型参数。
2. 逻辑回归模型逻辑回归模型是一种用来描述分类问题的模型。
第七章 软件能力成熟度模型
排1.5年到2年)。 ? 根据CMU-SEI的统计,软件企业在引入 CMM
后劳动生产率平均增长了 35%;错误比率平均 减少39%;平均成本回报率为 5:1。
本章内容提要
? 软件过程与过程管理 ? CMMI概述 ? CMMI的成熟度等级及其过程域 ? CMMI的应用 ? PSP,TSP与CMMI
等级5:优化 组织革新与部署
管理级
原因分析与解决
缩写词 ISM OEI IT OPP QPM
OID CAR
5.CMMI的能力等级
? 能力等级 (Capability Level, CL )是指在一 个单独的过程域中执行的良好程度。
? CMMI包括6个能力等级: ?CL0 ,不完整级:过程域的一个或多个目标 没有被满足。 ?CL1 ,已执行级:过程通过转换可识别的输 入工作产品,产生可识别的输出工作产品。 能实现过程域的特定目标。
成熟度等级
关键过程域
等级2:已 需求管理
管理级
项目计划
项目监督与控制
供应商协议管理
度量和分析
过程和产品质量保证
配置管理
等级3:已 需求开发
定义级
技术解决方案
缩写词 REQM PP PMC SAM MA PPQA CM RD TS
4.CMMI的关键过程域(续)
成熟度等级
关键过程域
等级3:已 产品集成
1.CMMI的历史(续)
?IPD-CMM (Integrated systems product Development CMM): 集成系统产品开发 CMM,应用于集成系统产品的开发管理。
软件工程模型方法
软件工程模型方法软件工程模型方法1.概述软件工程是一门关注软件开发的学科,而软件工程模型方法则是指在软件开发过程中,用于规划、管理和控制软件开发活动的一系列方法和模型。
软件工程模型方法可以帮助开发团队高效地组织工作,减少开发过程中的风险,并最终交付高质量的软件产品。
在本文中,我们将介绍几种常见的软件工程模型方法,包括瀑布模型、原型模型、增量模型和敏捷模型。
通过了解这些模型方法的特点和适用场景,开发团队可以根据项目的具体需求选择最合适的模型方法,提升软件开发的效率和质量。
2.瀑布模型瀑布模型是一种顺序性的软件开发模型,包括需求分析、系统设计、编码、测试和发布等阶段,每个阶段的输出作为下一个阶段的输入。
瀑布模型适用于需求稳定、项目周期长且工作流程明确的项目,适合大规模软件开发。
该模型的优势在于清晰的阶段划分和任务分工,开发人员可以按照固定的流程推进开发工作,便于管理和控制。
然而,瀑布模型存在风险,一旦前期需求分析和设计出现问题,后续阶段的工作将受到严重影响。
3.原型模型原型模型是一种通过快速构建原型来获取用户反馈的软件开发模型。
在该模型中,开发团队通过构建一个简化的原型系统来验证功能和用户界面设计,根据用户反馈进行迭代调整,达到用户满意的目标。
原型模型适用于需求不确定、创新性强和用户参与度高的项目。
它可以帮助开发团队更好地理解和满足用户需求,减少开发中的风险。
然而,原型模型需要耗费较多的时间和资源来构建原型系统,同时需要与用户进行密切的合作和交流。
4.增量模型增量模型是一种逐渐构建系统的软件开发模型,将软件系统划分为多个独立的模块,每个模块按照优先级顺序逐步开发和集成。
增量模型适用于需求变化频繁或紧迫,项目周期较短的项目。
该模型的优势在于快速交付可用系统,并且可以在项目进行过程中不断调整需求和优化模块。
同时,增量模型可以提高开发团队的反馈速度和用户满意度。
然而,增量模型也存在一些挑战,如模块集成的复杂性和需求变化带来的项目管理困难。
软件工程 第7章--面向对象设计
§1. OOD准则
5、Cohesion:模块内各个元素彼此结合的紧密程度。 服务内聚(service cohesion):一个服务只完成一个功能。
类内聚(class cohesion):一个类只有一个用途,否则分 解之。
一般-特殊内聚(general-particular cohesion):
17
类构件
类构件:面向对象技术中的“类” 。类构件有3种 重用方式:
–实例重用 –继承重用 –多态重用 1. 可重用类构件应具备的特点 (1) 模块独立性强。具有单一、完整的功能,且经 过反复测试被确认是正确的。是一个不受或很少受 外界干扰的封装体,其内部实现在外面是不可见的。
18
(2) 具有高度可塑性。软构件的应用环境比集成电 路更广阔、更复杂。显然,要求一个软构件能满足 任何一个系统的设计需求是不现实的。因此,可重 用的软构件必须具有高度可裁剪性,必须提供为适 应特定需求而扩充或修改已有构件的机制,而且所 提供的机制必须使用起来非常简单方便。
对象 设计
面向对 象分析
人机界 面设计
任务管 理设计
数据管 理设计
4
§1. OOD准则
§1. OOD准则:优秀软件设计的一个重要特点是 容易维护
回顾:SD准则包括
Modularization Information hiding
Abstraction
Module independence
对于 OOD有类似的准则: 1、Module = Object
• Inheritance —— 无须改动原有代码
13
② 设计重用 —— 当移植系统时
§3. 软件重用
③ 分析重用 —— 当需求未变,而系统结构改变 时(例如将HDIS改为OO实现)
《实用软件工程》第7章 面向对象分析
21
划分主题
B.主题图 上述的主题划分的最终结果能够形成一个完整的对象类图和一个主题图。 主题图一般有如下3种表示方式。 • 展开方式
18
建立对象模型
复杂问题(大型系统)的对象模型 通常由下述5个层次组成:主题层(也称 为范畴层)、类与对象层、结构层、属 性层和服务层,如图所示。
上述5个层次对应着在面向对象分析 过程中建立对象模型的5项主要活动:划 分主题;找出类与对象;识别结构;定 义属性;定义服务。实际上五项活动没 有必要的完成顺序,设计时也不需要严 格遵守自顶向下原则。
12
面向对象分析原则
1.定义有实际意义的对象 特别要注意的是,一定要把在应用领域中有意义的、与所要解决的问题有关系的所有事物作为对象,
既不能遗漏,也不要定义无关对象。 2.模型的描述要规范、准确
强调实体的本质,忽略无关的属性。对象描述应尽量使用现在时态,陈述语句,以保证语义的清晰。 定义对象时还应该描述对象之间的关系及对象的背景信息 3.共享性
27
确定属性
例:多媒体商店销售系统
需要处理的文件:图像文件和声音文件,都拥有名称和唯一编码,作者信息和 格式信息,声音文件还包括文件时长(秒)。 功能:①添加新的媒体文件;
②通过编码查找需要的文件; ③删除指定文件; ④统计系统中文件的数量。
28
确定属性
分析过程:根据文件的信息,图像文件和声音文件的类都需要有属性:id-编码,author-作者, format-格式。为了方便处理,还可加入source-文件位置。由功能①③,应该有按参数构造和按编码 删除的两个方法。此外还有findByld-查找,count-查找两个方法。
软件设计与体系结构课后习题答案(秦航)
牡丹江师范学院--软件工程--朱有富 2015 年 6 月整理
神舟飞船 神州六号飞船
太阳能电池翼 +提供电能()
5.在软件设计过程中,人们需要重点考虑软件系统结构的哪些方面? 人们需要重点考虑①体系结构风格和模式;②领域特定的软件体系结构;③软件产品 线技术;
第二章 1.什么是软件模型?
软件模型是指软件的一种抽象,目前,一般通过非数学模型来描述,本书中将统一基 本单元的抽象称为软件模型。 2.软件模型对软件体系结构的作用是什么?
3
牡丹江师范学院--软件工程--朱有富 2015 年 6 月整理
第一章 1.什么是软件?软件的特点是什么?软件有那些分类? 计算机软件是由专业人员开发并长期维护的软件产品; 特点:
1)软件不是在传统意义上生产制造的,而是由设计开发的; 2)软件不会像硬件那样磨损和老化; 3)随着构件构造模式的发展,软件需要根据实际需求定制; 分类:计算机软件分为 7 个大类: ①系统软件②应用软件③嵌入式软件④科学和工程计 算软件⑤产品线软件⑥人工智能软件⑦Web 应用软件 2.软件设计应该包括哪些要素?软件设计在软件工程中所处的位置和重要性如何? 元素:①分析模型②数据/类设计③体系结构设计④接口设计⑤构件级设计 位置:软件需求分析->需求规格说明->软件设计->设计文档->软件编码…… 重要性: 软件设计是软件工程中形成质量的地方,设计为我们提供了质量评估的软件表示,设 计是我们能够将用户需求准确地转化为软件产品或系统的唯一方法。是所有软件工程 活动和随后的软件支持活动的基础。没有设计,就会有构造不稳定系统的风险。 3.请用自己的话说明软件体系结构。传统的建筑体系结构科学和软件体系结构有何相 似之处?有何不同之处? 软件体系结构是软件系统的基本组织,包含构件、构件之间、构件与环境之间的关系 ,以及相关的设计与演化原则等。 相似之处: 都是所构建系统的计划,都具有确保得到期望的特性,也是所构建系统的描述。 不同之处: 建筑师创建的是相对静止的静态描述而软件体系结构师创建的体系结构描述、代码在 以后将被执行多次,靠许多组件的交互来得到期望结果。
软件工程七版Chapter需求建模场景、信息与类分析PPT课件
.Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright
2009 by Roger Pressman.Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill,
2009 by Roger Pressman.Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill,
2009). Slides copyright 2009 by Roger Pressman.
11
参与者—识别思路
谁使用该系统 谁改变系统的数据 谁从系统获取信息 谁需要系统的支持以完成日常工作任务 谁负责维护、管理并保持系统正常运行 系统需要应付那些硬件设备 系统需要和那些外部系统交互 谁对系统运行产生的结果感兴趣
2009). Slides copyright 2009 by Roger Pressman.
1
经验原则
模型应关注在问题域或业务域内可见的需求,抽象的级 别应该相对高一些。
需求模型的每个元素都应能增加对软件需求的整体理解, 并提出对信息域、功能和系统行为的深入理解。
关于基础结构和其他非功能的模型应推延到设计阶段再 考虑。
2009). Slides copyright 2009 by Roger Pressman.
3
需求分析的元素
基于场景的 模型如: 用例 用户故事
构建分析模型
基数和形态
数据模型必须能够表示在一个给定的关系 中对象出现的次数。 基数是关于一个(对象)的出现次数可以 与另一个(对象)的出现次数相关联的规 格说明。 对于关系的出现,如果没有明确的必要性 或关系是可选的,那么关系的形态是0;如 果关系必须出现一次,那么形态是1。
数据建模
数据建模工具为软件工程师提供表现数据 对象、数据对象的特点和数据对象的关系 的能力。主要用于大型数据库应用系统和 其他信息系统项目,数据建模工具以自动 化的方式创建全面的实体—关系图、数据 对象字典以及相关模型。
为数据对象的实例命名; 描述这个实例; 建立对另一个表中的另一个实例的引用。
另外,必然把一个或多个属性定义为标识 符(主键)。 通过对问题环境的理解可以恰当地确定特 定数据对象的一组属性。
数据对象和OO类
数据对象定义了一个复合的数据项,也就 是说合并一组独立的数据项(属性)并为数 据项集合取个名字(数据对象名)。一个OO 类封装了数据属性但也合并了对这些属性 所定义数据进行处理的操作。另外,类的 定义暗示了一个作为面向对象软件工程方 法一部分的全面的基础设施。类之间通过 消息通信,它可以按层次关系组织并为类 的实例——对象——提供继承属性。
分析模型的元素
图7-3 分析模型的元素
数据建模概念
分析建模通常开始于数据建模。软件工程 师或分析师需要定义在系统内处理的所有 数据对象、数据对象之间的关系以及其他 与这些关系相关的信息。
数据对象
数据对象是几乎任何必须被软件理解的复 合信息的表示。复合信息是指具有若干不 同的特征或属性的事物。 数据对象可能是外部实体、事物、发生或 事件、角色、组织单位、地点或结构。 “数据对象描述”包括了数据对象及其所 有属性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据对象
数据对象只封装数据——在数据对象内没 有对作用于数据的操作的引用。数据可以 表示为如图7-4所示的一张表,表头反映 了对象的属性。表体表示了数据对象的特 定实例。
数据对象的表格表示
图7-4 数据对象的表格表示
数据属性
数据属性定义了数据对象的性质,可以具 有三种不同的特性之一。它们可以用来:
SafeHome系统的初步用例图
图7-6 SafeHome系统的初步用例图
开发活动图
UML活动图通过提供特定场景内交互流的 图形化表示来补充用例。活动图使用圆角 矩形表示一个特定的系统功能,箭头表示 通过系统的流,判定菱形表示判定分支, 水平线意味着并行发生的活动。ACS-DCV 功能的活动图如图7-7所示。
SafeHome实例[14]
编写用例
这个连续的陈述没有考虑其他可能的交互。这种 类型的用例有时被称作主场景。 要完整地理解所描述的功能,必需说明可能的交 互。主场景中的每个步骤将通过如下提问得到评 估:
在这一点,参与者能进行一些其他活动吗? 在这一点,参与者有没有可能遇到一些错误的情况? 在这一点,参与者有没有可能遇到一些其他的行为? 如果有,是什么?
基于场景建模
如果软件工程师了解最终用户(和其他参 与者)希望如何与系统交互,软件团队将 能够更好地、更准确地刻画系统特征,完 成更有针对性的分析和设计模型。使用 UML分析建模,将从开发用例、活动图和 泳道图形式的场景开始。
编写用例
用例捕获信息的产生者、使用者和系统本 身之间发生的交互。 用例从某个特定参与者的角度用简单易懂 的语言说明一个特定的使用场景。但是我 们应该知道:(1)编写什么?(2)写多少? (3)编写说明应该多详细?(4)如何组织说 明?
SafeHome系统ACS-DCV功能的泳道图
图7-8 ACS-DCV功能的泳道图
面向流的建模
面向流的数据建模至今仍是最广泛使用的分析表 达法之一。尽管数据流图及相关的图和信息不是 UML的正式组成部分,但是它们可以补充UML图 并提供对系统需求和流的补充认识。 DFD采取了系统的输入-处理-输出观点。流入软 件的数据对象,经由处理元素转换,最后以结果 数据对象的形式流出软件。数据对象由带标记的 箭头表示,转换由圆圈(也称作泡泡)表示。 DFD使用分层的方式表示,即第一个数据流模型 从整体上表现系统,随后的数据流图改进环境图, 提供每个后续层增加的细节。
编写用例
两个首要的需求工程工作——起始和导 出——提供了开始编写用例所需要的信息。 运用需求收集会议、QFD和其他需求工程 机制确定共利益者,定义问题的范围,说 明整体的操作目标,概述所有已知的功能 需求,描述系统将处理的信息(对象)。 要开始开发用例,应列出特定参与者执行 的功能或活动。这些可以从所需系统功能 的列表中获得,或通过与客户或最终用户 交流获得,或通过评估活动图获得。
分析模型的元素
图7-3 分析模型的元素
数据建模概念
分析建模通常开始于数据建模。软件工程 师或分析师需要定义在系统内处理的所有 数据对象、数据对象之间的关系以及其他 与这些关系相关的信息。
数据对象
数据对象是几乎任何必须被软件理解的复 合信息的表示。复合信息是指具有若干不 同的特征或属性的事物。 数据对象可能是外部实体、事物、发生或 事件、角色、组织单位、地点或结构。 “数据对象描述”包括了数据对象及其所 有属性。
分析模型在系统级描述和软件设计的差距之间 建立桥梁。 重要的是要注意到在系统描述中给出分析模型 的某些元素,并且需求工程的工作实际上是作为 系统工程的一部分开始的。此外,分析模型的所 有元素都可以直接跟踪到设计模型。通常难以区 分这两个重要的建模活动之间的设计和分析工作, 有些设计总是作为分析的一部分进行,而有些分 析将在设计中进行。
面向对象的分析
面向对象的分析(OOA),其目的是定义与 即将解决的问题相关的所有类(以及与其相 关的关系和行为)。为实现这一点,必须完 成如下一些工作:
1、在客户和软件工程师之间必须对基本的用户需求进 行交流。 2、必须确定类(即定义属性和方法)。 3、定义类的层次结构。 4、表现对象与对象的关系(对象连接)。 5、必须为对象行为建模。 6、上述1-5的工作步骤重复迭代直至模型完成。
这些问题的答案导致创建一组次场景,次场景属 于原始用例的一部分,但是表现了可供选择的行 为。
SafeHome实例[15]
编写用例
在很多情况下,不需要创建使用场景的图 形化表示。但是图形化表示可以促进理解, 尤其是当场景比较复杂时。UML为用例提 供了图形化表现的能力。图7-6为 SafeHome系统的初步用例图。
面向对象的概念
属性——说明一个类的数值集合。 类——封装数据和过程的抽象,这些是说明某些 真实世界中的实体的内容和行为所必需的。即类 是一组相似对象的概括说明。 对象——某个特定类的实例。对象具有类的属性 和操作。 操作——也称为方法和服务,表现类的某个行为。 子类——超类的特化,子类可以从超类继承属性 和操作。 超类——也称作基类,是一组相关类的泛化。
SafeHome实例[12]
编写用例
随着和共利益者更多地交谈,需求收集团 队为每个标记的功能开发用例。通常,用 例首先用非正式的描述性风格编写。如果 需要更正式一些,可以使用类似前一章中 提出的某个结构化的形式重新编写同样的 用例。
SafeHome实例[13]
编写用例
描述性用例的一种变形是通过用户活动的 顺序序列表现交互,每个活动由声明性的 语句表示。
基数和形态
数据模型必须能够表示在一个给定的关系 中对象出现的次数。 基数是关于一个(对象)的出现次数可以 与另一个(对象)的出现次数相关联的规 格说明。 对于关系的出现,如果没有明确的必要性 或关系是可选的,那么关系的形态是0;如 果关系必须出现一次,那么形态是1。
数据建模
数据建模工具为软件工程师提供表现数据 对象、数据对象的特点和数据对象的关系 的能力。主要用于大型数据库应用系统和 其他信息系统项目,数据建模工具以自动 化的方式创建全面的实体—关系图、数据 对象字典以及相关模型。
现代软件工程
第7章 构建分析模型
主要内容
需求分析 分析建模的方法 数据建模概念 面向对象的分析 基于场景建模 面向流的建模 基于类的建模 生成行为模型 小结
分析模型
文字记录是极好的交流工具,但并不必然 是表达计算机软件需求的最好方式。分析 建模使用文字和图表的综合形式,以相对 容易理解的方式描绘需求的数据、功能和 行为,更重要的是,可以更直接地评审它 们的正确性、完整性和一致性。 软件工程师使用从客户那里提取的需求构 建模型。
分析建模的方法
软件团队往往选择一种方法并排斥另一种 方法中的所有表示手段。问题不是哪一种 方法最好,而是怎么组合这些表示手段才 能够为共利益者提供最好的软件需求模型 和过渡到软件设计的最有效方法。 分析模型将生成如图7-3所示的每个建模 元素的派生类。然而,不同项目之间,每 个元素的特定内容可能因项目而异。软件 团队必须想办法保持模型的简单性。只有 那些为模型增加价值的建模元素才能使用。
域分析
分析模型通常在特定业务领域内的很多应 用中重复发生。如果用一种方式对这些模 式加以定义和分类,让软件工程师或分析 师识别并复用这些模式,将促进分析模型 的创建。更重要的是,应用可复用的设计 模式和可执行的软件构件的可能性将显著 增加。
域分析
软件域分析是识别、分析和详细说明来自 某个特定应用领域的公共需求,特别是那 些在该应用领域内被多个项目重复使用 的……“面向对象的域分析”是在某个特 定应用领域内,根据通用的对象、类、部 件和框架、识别、分析和详细说明公共的、 可复用的能力。 域分析的目标很简单,就是:查找或创建 那些分析类和(或)能够广泛应用的、共 有的功能和特点,这样就可以复用。
SafeHome系统ACS-DCV功能的活动图
图7-7 ACS-DCV功能的活动图
泳道图
UML泳道图是活动图的一种有用的变形, 可让建模人员表示用例所描述的活动流, 同时指示哪个参与者或分析类对活动矩形 所描述的活动负责。职责由纵向分割图的 并列条形部分表示,就像游泳池中的泳道。 ACS-DCV功能的泳道图如图7-8所示。
需求分析
在整个分析建模过程中,软件工程师的主 要关注点集中在“做什么”而不是“怎么 做”方面。包括:系统处理什么对象?系 统必须执行什么功能?系统显示什么行为? 定义什么接口?有什么约束?
整体目标和原理
分析模型必须实现三个主要目标:
描述客户需要什么; 为软件设计奠定基础; 定义在软件完成后可以被确认的一组需求。
分析模型
必须评审分析建模工作产品的正确性、 完整性和一致性,必须反映所有共利益者 的要求并建立一个可以从中导出设计的基 础。
分析模型
在技术层面上,软件工程开始于一系列的 建模工作,最终生成待开发软件的需求规 格说明和全面的设计表示。分析模型实际 上是一组模型,是系统的第一个技术表示。
分析阶段的目标[DEM79]
域分析的输入和输出
图7-2 域分析的输入和输出
分析建模的方法
一种考虑数据和处理的分析建模方法被称 作结构化分析,其中数据作为独立实体转 换。数据对象建模定义了对象的属性和关 系,操作数据对象的处理建模应表明当数 据对象在系统内流动时处理如何转换数据。 分析建模的第二种方法称作面向对象的分 析,这种方法关注于定义类和影响客户需 求的类之间的协作方式。UML和统一过程 主要是面向对象的。
分析模型
可以使用很多不同格式的图表为信息、功 能和行为需求建模。基于场景的建模从用 户的角度表现系统;面向流的建模在说明 数据对象如何通过处理函数进行转换方面 提供了指示;基于类的建模定义了对象、 属性和关系;行为建模描述了系统状态、 类和事件在这些类上的影响。一旦创建了 模型的雏形,就将不断改进,并分析评估 其清晰性、完整性和一致性。最终的分析 模型将由所有的共利益者确认。