【软件工程】软件工程需求分析——面向对象分析

article/2025/11/11 11:07:43

halo~我是bay_Tong桐小白
本文内容是桐小白个人对所学知识进行的总结和分享,知识点会不定期进行编辑更新和完善,了解最近更新内容可参看更新日志,欢迎各位大神留言、指点

软件工程需求分析——面向对象分析

        • 【更新日志】
  • 面向对象分析概述
  • 建立用例模型
  • 建立对象模型(更新中……)
  • 建立动态模型(更新中……)
  • 建立数据模型(更新中……)

【更新日志】

最近更新:

  • 暂无编辑记录,持续更新中……

面向对象分析概述

问题域与系统责任

  • 问题域:在软件工程中,问题域是指被开发系统的应用领域,即在客观世界中由该系统处理的业务范围
  • 系统责任:所开发的软件系统应该具备的职能

面向对象分析(OOA)

强调运用面向对象方法,对问题域和系统责任进行分析和理解,找出描述问题和系统责任所需要的对象,定义对象的属性、操作以及对象之间的关系,建立一个符合问题域、满足用户功能需求的OOA模型

面向对象分析主要活动

  • 与客户进行沟通、了解用户需求、建立需求模型
  • 表示问题域中的对象,分析对象承担的职责
  • 分析对象与对象间的关系
  • 定义对象间的交互

这些活动需要反复迭代,直至模型完成
在这里插入图片描述
面向对象分析的模型

  • 功能模型(用例模型):由用例和场景表示,从用户的角度描述系统的功能,是整个后续工作的基础,也是测试与验收的依据
  • 静态模型(对象模型):由类和对象表示,主要包含面向对象系统中的类、接口及对象等软件的基本组成单元以及它们间的联系
  • 动态模型(交互模型):由活动图、顺序图等表示,描述问题涉及的交互作用和时序

系统范围

建立需求模型时首先要确定系统的范围(即一个系统与系统以外各种事物的分界线),找出系统外与系统交互的事物,然后从这些事物与系统交互的角度,通过用例来描述这些事物怎样使用系统,以及系统向他们提供什么服务

进行面向对象系统分析时,需要建立这样的环境图(也可看成是顶层用例图)来确定系统的边界

建立用例模型

用例:简单说即为对系统的功能描述,用例模型奠定了整个系统软件开发的基础

建立用例模型的目的是提取和分析足够的需求信息,用例模型应能表述用户需要什么,而不涉及系统将如何构造和实现特定细节。

创建用例模型的过程

  • 确定参与者——标识系统将支持的不同类型的用户,可以是人、事件或其它系统
  • 确定需求用例——参与者需要系统提供的完整功能
  • 创建用例图——标识参与者与用例间、用例与用例间的关系

确定参与者

重点放在如何使用系统而不是如何构造系统上,也即进一步明确系统的范围和边界(环境图)。可以从几个方面来识别参与者:

  • 人员或组织,即直接使用系统的人员或组织
  • 外部系统,所有与本系统交互的外部系统都是参与者。两种常见的情况:
    如果正在开发的系统中使用一个已有系统,则这个已有系统被看成是一个外部系统;
    如果一个大系统在任务分解时被划分成几个子系统,则每个子系统的开发者都把其他子系统看成是外部系统
  • 设备,即与系统交互的设备

在这里插入图片描述
确定需求用例

从用户的视角看,一个用例是参与者与系统之间的一次典型的交互作用;从系统内部的视角出发,一个用例代表系统执行的一系列动作,动作的执行结果能够被外部的参与者察觉。可以从以下几个方面获取用例:

  • 从参与者角度获取。识别参与者的责任是尊者参与者与系统交互理由的良好基础
  • 从系统功能的角度获取。完成一项功能的一组动作序列要描述在一个用例中,通常,以用例中的动作为线索能发现其他用例
  • 利用场景获取用例。即仅关注具体的业务活动,确定谁是扮演者,具体做了哪些事情,做这些事情的目的是什么,将本质上相同的场景抽象为一个用例

用例规约描述(规格说明):对用例的完整描述包括用例名称、参与者、前置条件、后置条件、一个主事件流、零到多个备选事件流

  • 前置条件:规定在用例中场景开始之前必须为“真”的条件
  • 后置条件:规定在用例结束后必须为“真”的条件
  • 主事件流:表示正常情况下参与者与系统之间的信息交互及动作序列
  • 备选事件流:表示特殊情况或异常情况下的信息交互及动作序列

每个用例均应给出用例的规格说明

以银行ATM转账用例为例,规约描述如下:
在这里插入图片描述
创建用例图

用例图是若干个参与者和用例以及它们间的关系构成的图形表示

每个系统通常都有一个总体用例图,若总体用例图过于复杂,则可以创建多个用例图,每个用例图关注系统的某一方面,事实上用例建模是围绕参与者创建,且往往不是一次就能完成的,需要多次迭代、逐步完善

需要注意的是:

  • 参与者和用例之间的连线并不表示信息流,仅代表用例同用例及参与者之间的相互联系
  • 参与者和用例间的箭头表示在这一关系中哪一方是交互的主动发起者,箭头所指方式交互的被动接受者

用例图建好后,下一步应建立初步的类图,之后对于关键的用例需要建立顺序图、活动图等

建立对象模型(更新中……)

在系统分析阶段,对象建模的主要任务是建立问题域的概念模型,即描述现实世界中问题域类与对象以及他们之间的关系

复杂问题(大型系统)的对象模型应由5个层次组成:主题层(也称范畴层)、类-对象层、结构层、属性层、服务层,与此对应的5项主要活动:划分主题、确定类与对象、确定结构、确定属性、确定服务
在这里插入图片描述
这5项活动的抽象层次不同,在实际面向对象分析时,总体上是按照自顶向下的顺序进行的,但不需要严格遵守这种原则,也无需彻底完成一项工作后再开始另外一项工作

建立动态模型(更新中……)

动态模型描述与操作时间和顺序有关的系统特征、影响更改的事件、事件的序列、事件的环境以及事件的组织

在UML中动态模型的描述工具有顺序图、协作图、活动图、状态图等

建立数据模型(更新中……)

数据模型是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提供一个抽象的框架

数据模型所描述的内容有三部分,分别是数据结构、数据操作和数据约束

  • 数据结构:数据模型中的数据结构主要描述数据的类型、内容、性质以及数据间的联系等。数据结构是数据模型的基础,数据操作和约束都建立在数据结构上。不同的数据结构具有不同的操作和约束
  • 数据操作:数据模型中数据操作主要描述在相应的数据结构上的操作类型和操作方式
  • 数据模型中的数据约束主要描述数据结构内数据间的语法、词义联系、它们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容

由类图可自动生成数据库表

持续更新中……
我是桐小白,一个摸爬滚打的计算机小白


http://chatgpt.dhexx.cn/article/yhU7kW6h.shtml

相关文章

[软件工程] 面向对象设计

面向对象设计 面向对象设计一、 面向对象设计的准则(一) 模块化(二) 抽象(三) 信息隐藏(四) 弱耦合对象之间的耦合可分为两大类:(1) 交互耦合(2) 继承耦合 (五…

软件集成测试策略有哪些,面向对象的集成测试与传统的软件集成测试有什么不同?分别有哪些策略?...

满意答案 jijg你 2014.01.23 采纳率:56% 等级:9 已帮助:568人 提到面向对象的集成测试,就首先要搞清楚面向对象的集成有什么特征,是与传统软件集成有什么区别。 面向对象软件的三个主要特征是:封装、继承和多态。封…

Java面向对象浅谈

作者简介 作者名:编程界明世隐 简介:CSDN博客专家,从事软件开发多年,精通Java、JavaScript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注&…

面向对象测试与传统软件测试有何异同,面向对象软件测试与传统测试有何区别...

由于面向对象技术具有封装、继承、多态等新的特性,带来了传统程序设计所不存在的错误,导致原来行之有效的软件测试技术对面向对象技术开发的软件有些力不从心。 面向对象软件测试与传统软件测试有以下不同: 测试关注的对象不同 传统测试的对象…

面向对象软件测试

面向对象技术涉及到的核心概念 1、对象:是一种对特定的数据以及业务逻辑代码继续封装的可操作实体。2、消息:某些对象请求执行操作的一个请求就是消息,消息机制是面向对象应用的关键。3、接口:一组行为或操作的集合,它…

JavaScript获取完整当前域名

window.location.protocol"//"window.location.host; // 返回https://mp.csdn.netwindow.location.host; //返回url 的主机部分,例如:mp.csdn.net window.location.hostname; //返回mp.csdn.net window.location.href; //返回整个url字符串…

php获取当前页面链接_php怎么获取当前完整url地址

对于PHP学习者来说,应该都知道$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。显然PHP获取当前页面的完整url地址,主要就用到$_SERVER这个系统变量。 下面我们就通过具体的示例给大家介绍PHP获取…

php获取域名方法,PHP实现获取域名的方法有哪些?

PHP实现获取域名的方法有哪些?这篇文章主要介绍了PHP实现获取域名的方法。使用php获取域名的方法很多,有用变量、正则、有字符接取方面的函数的都可以,但云服务器网(yuntue.com)小编今天就过来分享的是很简单的四种方法,当然也是比较实用的,也是效率比较高的;实例总结了常…

php 获取当前域名

当前url&#xff1a;http://localhost:805/test/helloworld.php echo SERVER_NAME&#xff1a;.$_SERVER[SERVER_NAME]; //获取当前域名&#xff08;不含端口号&#xff09; echo <p>;echo HTTP_HOST&#xff1a;.$_SERVER[HTTP_HOST];//获取当前域名 &#xff08;含端…

Element ui table表格内容超出隐藏显示省略号

element ui官方文档上面有个参数 :show-overflow-tooltip"true" 给el-table-column设置:show-overflow-tooltip"true"属性可以使单元格超出的内容被隐藏显示为...当鼠标移入时单元格的上方会弹出一个tooltip来显示单元格的所有内容。 <el-table v-loa…

element Descriptions 内容超出隐藏 Tooltip展示完整内容

使用 el-descriptions 时&#xff0c;可能会出现内容过长导致换行的情况&#xff0c;如图 这样会导致整体很不美观&#xff0c;所以封装了一个组件来解决此问题 效果图 当内容过长时会隐藏超出部分&#xff0c;鼠标移上去Tooltip展示全部内容&#xff0c;内容未超出的&#xf…

文字超出隐藏

1.单行文字 <html><head><meta charset"utf-8"><style>#row{display: block;/* 必备的四个条件 */width:100px;/*宽度 */overflow: hidden;/*超出隐藏*/white-space: nowrap;/* 强制不换行 */text-overflow:ellipsis;/*文字隐藏的格式 */}&l…

溢出超出DIV边框的内容自动隐藏方法

CSS样式实现溢出超出DIV边框宽度高度的内容自动隐藏方法 平时我们布局时候&#xff0c;有的文字内容多了会超过溢出我们限制的高度&#xff0c;有的图片会撑破DIV&#xff0c;让网页错位变乱。 这样我们就需要解决如何使用CSS来超出设置CSS宽度和CSS高度的内容自动隐藏掉&…

css单行/多行文本溢出隐藏 /超出隐藏

1、单行文本 - 溢出隐藏 div {width: 100px; &#xff08;固定宽度&#xff09;overflow:hidden; //超出的文本隐藏text-overflow:ellipsis; //用省略号显示white-space:nowrap; //不换行&#xff08;文字不允许换行&#xff0c;单行文本&#xff09; } 实现效果&a…

数字图像处理——图像质量评价(Python)

简单的按照评价指标公式&#xff0c;计算出待评价图像与标准图像之间的评价指标值&#xff0c;评价公式如下图&#xff1a; M和N表示图像的尺寸&#xff0c;L表示图像的灰度取值范围&#xff0c;对于8bit的灰度图像而言取L255 实验数据如下所示&#xff1a; 标准图像 待评价…

图像质量评价matlab实现(含代码)

这篇是上两篇的一个延续吧&#xff0c;对偏振HSI伪彩色图像融合增强效果的一个评价 代码里面包含了很多种评价方式&#xff0c;附带一个评价说明&#xff0c;链接如下&#xff1a; 图像质量评价指标&#xff08;全&#xff09;&#xff0c;可结合blog-机器学习文档类资源-CSD…

基于Python的无参考图像质量评价

源码下载地址&#xff1a;https://download.csdn.net/download/sheziqiong/85602575 源码下载地址&#xff1a;https://download.csdn.net/download/sheziqiong/85602575 无参考图像质量评价 简介 参考RankIQA中的方法&#xff0c;将回归问题转化为分类回归的 问题&#xff…

图像质量评价方法综述

图像质量评价综述 1、背景介绍 图像是人类感知和机器模式识别的重要信息源&#xff0c;其质量对所获取信息的充分性和准确性起着决定性的作用。然而&#xff0c;图像在获取、压缩、处理、传输、显示等过程中难免会出现一定程度的失真。如何衡量图像的质量、评定图像是否满足某种…

基于matlab的有参考图像质量评价,使用多种算法进行图像质量评价仿真

目录 1.算法概述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法概述 图像质量评价&#xff08;Image Quality Assessment,IQA&#xff09;是图像处理中的基本技术之一&#xff0c;主要通过对图像进行特性分析研究&#xff0c;然后评估出图像优劣&#xff0…

图像质量评价数据库与常见评价算法总结

一、图像质量评价数据库 常用的评价数据库有LIVE、CSIQ、TID2008/2013、MICT、IVC、A57、WIQ等&#xff0c;包含参考图像以及对应失真图像的主观评价分数。 LIVE&#xff1a;由德克萨斯大学的图像与视频工程实验室(Laboratory for Image and Video Engineering,LIVE)开发&…