软工导论知识框架(六)面向对象分析

2023-11-16

前言:绘制各种类型的图是重点,对于面向对象建模中需要绘制的图总结在第五期中:

软工导论知识框架(五)面向对象方法学


一.分析过程

1.获取需求

  • 与用户交谈,向用户提问题;  
  • 参观用户的工作流程,观察用户的操作;  
  • 向用户群体发调查问卷;  
  • 与同行、专家交谈,听取他们的意见;  
  • 分析已经存在的同类软件产品,提取需求;  
  • 从行业标准、规则中提取需求;  
  • 从Internet上搜查相关资料等。

2.整理需求:书写需求陈述

   需求陈述内容包括问题范围,功能需求,性能需求,应用环境及假设条件。(建模用的蓝本

3.建立模型

面向对象分析模型由三个独立模型组成:

  • 功能模型:指明系统应“做什么”,由用例图表示。
  • 对象模型:描述静态结构, 定义做事情实体,类图和对象图表示。
  • 动态模型:描述交互过程, 由状态图和顺序图表示。

4.书写需求规格说明书

5.复审

二.功能模型

功能模型用用例图表达,研究需求陈述建立用例图:

1.识别外部执行者

2.识别用例

3.建立用例图

4.补充用例描述:为建立对象模型和动态模型打基础

 

三.对象模型

对象模型描述类及相互关系,表达目标系统静态结构。

建立对象模型步骤:

1.确定分析类: 分析模型中,分析类是概念层次上内容,类直接与应用逻辑相关,不关注技术实现。

(1)找出候选分析类    

①边界类:通常,一参与者与一用例间交互或通信关联对应一边界类。    

②控制类:  控制类负责协调边界类和实体类,通常在现实世界没有对应的事物。一般来说,一个用例对应一个控制类。   

 ③实体类:实体类通常是用例中的参与对象,对应着现实世界中“事物”。

非正式分析法实现实体类的识别:需求陈述中的名词。 

(2)筛选出正确的类

① 冗余   

② 无关    

③ 笼统    

④ 属性     

⑤ 操作   

⑥ 实现     事务日志、通信链路。

(如上类型要进一步考虑完成筛选)

2.确定类的关联:

(1)初步确定关联:动词或动词词组、隐含关联、与用户及领域专家讨论补充。

① 直接提取动词短语

② 需求陈述中隐含的关联

③ 根据问题域知识得出的关联

(2)筛选

  ① 已删去类之间关联 

  ② 与问题无关或与实现密切相关的关联删去。

  ③ 瞬时事件    

  ④ 三元关联  : 三个或三个以上对象关联,可分解为二元关联或限定关联。

(3)进一步完善

 ① 正名

 ② 分解

 ③ 补充     

   

 3.划分主题;    

4.确定属性——需求陈述中的名词  

(1)误把类当属性 :独立存在更重要,则应为类。  

(2)误把链属性作为属性 :属性要依赖某关联链存在,则为关联类的属性。  

(3)误把限定当属性:属性值固定下来可减少重数,则应为限定。  

(4)误把内部状态当属性:对象的非公开内部状态不作属性。  

(5)过于细化:忽略对大多数操作都没有影响的属性。  

(6)存在不一致属性:分解两个类。

 5.识别继承

 6.反复修改

 四.动态模型:开发交互式系统,动态模型非常重要

1.编写典型交互行为脚本  

 ①正常情况脚本  

 ②异常情况脚本  

 ③错误情况脚本

2.从脚本中提取事件及相关对象,用顺序图表达  

 

从脚本提取所有外部事件,确定每类事件发送和接收对象。   针对系统中的典型功能,画出顺序图。

3.确定对象状态及状态间转换关系,用状态图描绘

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软工导论知识框架(六)面向对象分析 的相关文章

  • AngularJS 2调用.net core WebAPI的几个坑

    前几天 按照AngularJS2的英雄指南教程走了一遍 教程网址是http origin angular live docs ts latest tutorial 在步骤完成后 又更进一步 在英雄增删改的时候 直接调用 net core的W
  • 关于 clock_gettime() 的一个问题以及解决方法

    在新的2 6x内核上 编译使用这个函数的程序的时候 会发现 如果 gcc lpthead 无法链接成功 原因在于 libpthread so中没有这个函数的实现 但是 libpthread a中有 还有一个librt so librt a中
  • 堆和栈的通俗解释【转】

    数据结构的栈和堆 首先在数据结构上要知道堆栈 尽管我们这么称呼它 但实际上堆栈是两种数据结构 堆和栈 堆和栈都是一种数据项按序排列的数据结构 栈就像装数据的桶或箱子 我们先从大家比较熟悉的栈说起吧 它是一种具有后进先出性质的数据结构 也就是

随机推荐

  • 医院RFID药物跟踪管理解决方案

    1 技术背景 基于 2018年2月6日 药物调配商QuVa Pharma 与Kit Check合作 为其医院药房客户 提供基于RFID药物跟踪管理解决方案 QuVa提供的系统包括Kit Check的 无源 超高频 UHF RFID 标签 该
  • WEB基础-变形动画

    字体图标 IconFont 图标字体也叫字体图标 就是字体做的图标 可以通过设置字体的方式改变图标的样式 受到近些年 扁平化设计 的影响 越来越多的图标都开始使用 IconFont 下载字体图标 首先打开IconFont 阿里巴巴矢量图标库
  • websocket详解

    之前利用websocket以及jQuery做了一个聊天通讯应用 最近在总结整个过程中的一些问题 也借此机会聊聊websocket协议 webSocket本身不存在跨域问题 所以可以利用webSocket来进行非同源之间的通信 webSock
  • pytorch打印模型梯度

    简介 有时候在调试模型训练过程时 我们需要打印模型中参数的梯度 去查看是否存在梯度消失或者梯度爆炸的问题 可以通过在backward之后查看params的grad属性来确认 参考代码如下所示 import torch 定义模型 class
  • Python3 面向对象编程

    好记性不如烂笔头 对之前阅读书籍进行梳理与总结 此文为 Python3面向对象编程 阅读笔记 文章目录 第一章 面向对象设计 第二章 Python对象 第三章 对象相似时 第四章 异常捕获 第五章 何时使用面向对象编程 第六章 Python
  • C# 导出 Excel 方法

    第一种 使用 Microsoft Office Interop Excel dll public void ExportExcel DataTable dt if dt null Microsoft Office Interop Excel
  • 关键词生成器在线-在线免费关键词生成器

    关键词生成 什么是关键词生成 关键词生成就是根据你输入的一个关键词生成成千上百的核心关键词 围绕着你输入的核心词来生成的 优先生成大量用户搜索的关键词 今天就给大家分享一款免费关键词生成工具 关键词生成的来源主要是用户都在搜索的词 相关搜索
  • CentOS-8-x86_64-1905安装

    CentOS 8 x86 64 1905安装 安装前准备 VMware Workstation 点击下载虚拟机软件 VMware Workstation是一款功能强大的桌面虚拟计算机软件 提供用户可在单一的桌面上同时运行不同的操作系统 和进
  • Crazy Thairs【树状数组+高精度+DP思想】

    题目链接 POJ 3378 题意 有N个点 问的是要求组成一个长度为5的上升子序列的组成有多少种 最搞事情的是这道题不用取模 所以 是一定会爆long long的 首先 很容易想到一点就是我们可以开一个dp maxN 5 表示的是 dp i
  • Vagrant学习笔记:搭建K8s集群

    通常情况下 我们在使用VMware VirtualBox这一类虚拟机软件创建虚拟开发环境时 往往需要经历寻找并下载操作系统的安装镜像文件 然后根据该镜像文件启动的安装向导一步一步地安装与配置操作系统 最后还需要从零开始安装开发与运维工具 整
  • 计算机考研复试机试怎么速成,西安电子大学计算机考研复试机试(2019)+ 学长讲解(6)+ 作业...

    学长讲的就是算法笔记的入门算法 作业1 链接 https www nowcoder com questionTerminal 0f64518fea254c0187ccf0ea05019672 来源 牛客网 有一个网络日志 记录了网络中计算任
  • Java各种集合判空总结

    目录 集合判空 CollectionUtils isEmpty推荐 原始判断 isEmpty 其他 数组判空 集合判空 CollectionUtils isEmpty推荐 这个使用到了spring的工具类 需要提前引入依赖 import o
  • 机器学习2018-12-28

    机器学习 组成 主要任务 分类 classification 将实例数据划分到合适的类别中 应用实例 判断网站是否被黑客入侵 二分类 手写数字的自动识别 多分类 回归 regression 主要用于预测数值型数据 应用实例 股价价格波动的预
  • 用编程器免拆夹子刷斐讯K2 K2P解决难搞固件 刷BREED 无损原EEPROM

    文章中放的几个地址都是思路来源 感谢各路大神原帖子的思路 因为我刷机时候没有拍照 只好借用各位大佬的图来说明步骤 我做一下整理会放出本篇刷机流程 很简单 K2 22 6 532 231软件版本已经无解 UBOOT等可以软刷的方式都被堵死 编
  • .NET编程——利用C#实现TCP协议的异步通信Socket套接字(WinForm)

    本文将介绍利用基于TCP通信协议的Socket实现服务器与客户端之间的数据传输 目录 前言 计算机通信 创建服务器 服务器通信 创建客户端 客户端通信 前言 TCP IP Transmission Control Protocol Inte
  • 【编码-校验码】奇偶校验码

    https zhuanlan zhihu com p 26509678 引自原文 1 定义 奇偶校验位 英语 Parity bit 或校验比特 check bit 是一个表示给定位数的二进制数中1的个数是奇数还是偶数的二进制数 奇偶校验位是
  • 炫酷的Android智能下拉刷新框架,值得一看

    1 Android智能下拉刷新框架 SmartRefreshLayout 支持所有的 View AbsListView RecyclerView WebView View 和多层嵌套的视图结构 支持自定义并且已经集成了很多炫酷的 Heade
  • BRDF详解

    光照模型主要分为三类 测量模型 经验模型和基于物理的分析模型 在计算机图形学中介绍的光照模型为经验模型中的Phong模型 也就是本人理解的 根据点距光源的位置 入射角度等信息计算的 反射强度 包括漫反射强度 镜面反射强度 但是Phong模型
  • 《effective c++》笔记

    序 1 object 在 object oriented技术中的真正意义是 物件 物体 而非 对象 目标 导读 1 术语 1 声明式 告诉编译器名称和类型 但略去细节 std size t numDigit int number std命名
  • 软工导论知识框架(六)面向对象分析

    前言 绘制各种类型的图是重点 对于面向对象建模中需要绘制的图总结在第五期中 软工导论知识框架 五 面向对象方法学 一 分析过程 1 获取需求 与用户交谈 向用户提问题 参观用户的工作流程 观察用户的操作 向用户群体发调查问卷 与同行 专家交