软件需求分析与建模 复习
文章目录
- 关于面向对象方法论OOM
- 结构化结构化方法与面向对象方法各自的特点、区别(!!!):
- 什么是面向对象方法,以及其要点?
- OOA&OOD
- OOM中的基本元素是什么?
- 类的主要构成部分
- 类或对象之间的通讯机制:消息
- 对象之间的几种关系及含义:
- 如何区分组合和聚合(!!!)
- OOA & OOD 的三个主要特征
- 单一继承和多重继承的区别
- UML概述
- 什么是UML?
- UML的三大组成部分
- UML的公共机制(不重要)
- UML 4+1 视图( !!!)
- UML中的三种扩展机制
- 逻辑视图的两个组成部分:静态结构,动态行为
- UML中的几种主要关系
- 用例图
- 用例图的基本组成部分:
- 用例之间的几种关系
- 执行者与执行者之间的关系:
- 执行者与用例之间的关系:
- 用例图的作用
- 类图和对象图
- 类图和对象图
- 类中元素的三种可视化规则:
- 聚合和组合之间的区别(见上)
- 组合、聚合、继承 优点缺点
- 抽象类及其特点
- 接口及其特点
- 接口和抽象类的区别( !!!)
- 交互图
- 交互模型包括顺序图和协作图
- 顺序图中消息的4种主要类型(不重要):
- 状态图
- 状态图
- 组合状态和简单状态
- 活动图
- 活动图的作用
- 活动图和交互图的区别
- 活动图与状态图的相同点和区别
- 泳道的作用
- 包图(了解)
- 包图的作用
- 包的三种可视化规则
- 包访问另一个包的两种途径:
- 组件图
- 什么是组件?
- 组件与类之间的区别
- 组件与接口之间的两种关系:
- 部署图
- 部署图的作用
- 结点与组件之间的区别
- 两种不同的节点
- 设计原则(列出3~4种,简单解释!!!)
- 问答题(不会画图,可能让你修改,简答)
- 用例图
- 类图
关于面向对象方法论OOM
结构化结构化方法与面向对象方法各自的特点、区别(!!!):
- 结构化方法的特点:
- 功能分解
- 自顶向下,系统有明确的边界定义
- 数据与操作分离
- 面向对象方法的特点:
- 以对象为基本单位,并不是按功能分解的
- 对象是作为属性和操作的封装体
- 强调面向对象的基本特征:封装,继承(单一继承,多重继承),多态
- 结构化方法与面向对象方法的区别:
- 结构化方法应用函数刻画数据间的关系,而面向对象使用类来表达数据间关系
- 结构化中,数据是死的,全部依赖算法操作,而面向对象,数据是活的,知道自己的信息(属性),并能完成自己的工作(操作)
- 结构化思维更像是一个人在解决所有问题,而面向对象思维更像是一个团队的分工协作
什么是面向对象方法,以及其要点?
- OO方法是基于“对象、类、封装性、继承性、多态性、消息机制等技术特征”的构造系统的软件开发方法
- OO方法以下一些要点:
- 客观世界由具有各种对象组成。
- 所有对象都可以划分为不同的对象类
- 对象类具有层次结构,子类可以继承父类的特性和方法(继承性)
- 对象之间只能通过传递消息构成相互之间的联系(消息机制)
OOA&OOD
OOM中的基本元素是什么?
- 对象(填空)
- 对象一定是某个类的实例化,但不是所有类都能实例化成对象(例如抽象类)(判断)
类的主要构成部分
- 属性、方法(填空)
类或对象之间的通讯机制:消息
- 消息的组成:目标对象的ID+相应的操作+操作对应的参数
对象之间的几种关系及含义:
- 关联(可以是单向的也可以是双向的):
是一种弱的连接关系,不构成完全的依赖关系 - 组合
表示一种强得多的“拥有”关系,在一个组合关系里面,部分和整体的生命周期是一样 - 聚合
是一种强关联关系,表示“拥有”关系或整体与部分的关系 - 依赖
依赖总是单向的,表示一个类依赖于另一个类的定义
如何区分组合和聚合(!!!)
- 组合和聚合都是用来描述部分与整体的关系,主要区别体现在生命周期的不同。
- 如果整体与各个组成部分的生命周期是分开的,各自独立的,这种关系就是聚合关系。即创建整体的时候,各个子对象已经存在,释放这个整体的时候,各自子对象仍然可以独立存在。
- 如果整体与各个组成部分的生命周期是一致的,这种关系就是组合关系。即创建整体的时候,各个子对象也要创建,释放这个整体的时候,各自子对象也跟着释放。
OOA & OOD 的三个主要特征
- 封装
对象是具有封装性的,包含属性和方法,对外屏蔽内部实现细节,通过方法对外提供服务。 - 继承
子类继承父类,子类复用父类的属性和方法 - 多态
不同对象对于同一个消息可以做出不同响应
单一继承和多重继承的区别
- 单一继承:一个子类只能有一个父类 Java
- 多重继承:一个子类同时有多个父类 C++ (会带来二义性)
UML概述
什么是UML?
- 标准建模语言UML是一种建模语言,而不是一种方法,它统一了面向对象建模的基本概念、术语及其图形符号,为人们建立了便于交流的共同语言
UML的三大组成部分
- 基本图形元素
- 建模规则
- 模型图(由UML基本元素按照UML建模规则构成)
UML的公共机制(不重要)
UML 4+1 视图( !!!)
- 用例视图(4+1视图的核心):
用例视图对应着软件生命周期的需求分析阶段
用例视图用来支持软件系统的需求分析,它定义系统的边界,关注的是系统的外部功能的描述。
通常用UML用例图描述 - 逻辑视图:
逻辑视图对应着软件生命周期的软件设计阶段
逻辑视图定义了: 设计词汇的逻辑结构、存在于它们之间的语义联系、设计词汇包括系统的类/协同/接口及其关系
逻辑视图包含的模型图有:类图、对象图、交互图、状态图、活动图 - 实现视图
实现视图对应着软件生命周期的程序编码阶段
实现视图定义逻辑结构的物理实现,包括了设计元素对应的源代码文件、各物理文件之间的关系、存放路径,等等
实现视图包含的模型图有: 部件图、交互图、状态图、活动图 - 进程视图
- 部署视图
部署视图用来描述软件产品在计算机硬件系统和网络上的安装、分发(delivery)、分布
部署视图中,系统的静态特性用部署图描述,动态特性的描述用交互图,状态图,活动图
UML中的三种扩展机制
- 构造型
是对UML词汇(建模元素)的扩充,用来描述和已有的UML建模元素类似,但又对特定的问题领域有特殊意义的建模元素 - 标记值
是对UML建模元素的构成(property)的扩充,用于为此建模元素增加新的规格说明 - 约束
用来扩充UML建模元素的语义,以便增加新的规则或修改已有的规则
逻辑视图的两个组成部分:静态结构,动态行为
- 逻辑视图包含6种图形
- 静态结构(类图、对象图)
- 动态行为(顺序图、协作图、状态图、活动图)
UML中的几种主要关系
- 关联
- 依赖
- 泛化(继承)
- 实现
用例图
用例图的基本组成部分:
- 用例,执行者,系统边界(填空)
用例之间的几种关系
- 包含
两个用例之间,一个用例(基本用例)的行为包含了另外一个用例(包含用例)的行为 - 扩展
扩展关系表示基本用例在扩展点要增加新的行为或功能,以扩展到新用例。 - 泛化
参与者与参与者之间,用例与用例之间存在一般与特殊的关系。
执行者与执行者之间的关系:
- 主要是继承(泛化)关系
执行者与用例之间的关系:
- 关联关系(可能是单向,可能是双向)
用例图的作用
- 用例图主要用在软件生命周期的需求分析阶段,用来描述软件需求模型中的系统功能,通过一组用例可视化地描述软件系统能够给用户提供的功能。
- 用例图可以作为整个系统开发过程中的开发依据,指导和驱动其他模型。
类图和对象图
类图和对象图
- 都是属于逻辑视图,用来描述静态结构的图形
类中元素的三种可视化规则:
- 公有的,私有的,受保护的
聚合和组合之间的区别(见上)
组合、聚合、继承 优点缺点
抽象类及其特点
- 不能够直接实例化成对象的类,其作用是为其他的类描述它们的公共属性和行为,具有至少一组抽象方法的类。
接口及其特点
- 接口就是不带实现的类,只规定类的外部特性。
接口和抽象类的区别( !!!)
- 接口则是对一组具有相同属性和方法的逻辑上不相关的事物的一种抽象,而抽象类是一种类是对一组具有相同属性和方法的逻辑上有关系的事物的一种抽象。
- 接口中只能够有静态的不能被修改的数据成员(static、final变量),而抽象类中没有此限制
- 接口的定义中,方法不能有默认的行为,而抽象类的定义中,我们可以赋予方法默认的行为。抽象类的可以有非抽象的方法。
- 在Java中,一个类可以实现多个接口,但一个类只能使用一次继承关系
- 接口方法默认修饰符是public,抽象方法可以有public、protected和default这些修饰符。
- 从设计层面来说,接口是对行为的抽象,是一种行为规范。而抽象类是对类的抽象,是一种模板设计
交互图
交互模型包括顺序图和协作图
- 顺序图和协作图是作为逻辑视图中用于描述系统中对象的动态行为关系的
- 顺序图关注的是对象之间消息传递的时间先后顺序
- 协作图侧重于对象之间的结构行为和协作关系
- 顺序图和协作图是语义等价的(判断)
- 顺序图可以用来描述对象之间的交互行为(对 判断)
- 状态图可以用来描述多个对象之间的行为关系(错 判断)
顺序图中消息的4种主要类型(不重要):
- 简单消息,同步消息,异步消息,返回消息
状态图
状态图
- 状态图是用来描述事件驱动的系统
- 状态图给出了单个对象在软件生命周期里各个理想的状态,以及引起这些状态发生变迁的外部事件之间的关系
- 状态包括三个部分:名称、变量和活动(了解)
- 三种标准的活动:entry事件、exit事件、do事件(了解)
组合状态和简单状态
- 包含子状态的状态称为组合状态
- 不包含子状态的状态称为简单状态
活动图
活动图的作用
- 描述控制在活动之间的流动,适用于非反应型(非事件驱动型)的系统
活动图和交互图的区别
- 交互图着重表现的是对象到对象的控制流,描述在对象之间传递的消息
- 活动图着重表现活动的控制流,描述在对象之间传递的操作
活动图与状态图的相同点和区别
- 相同点
- 描述图符基本一样
- 可以描述一个系统或在生存期间的状态或行为。
- 可以描述多进程操作中的同步或异步操作的并发行为
- 不同点
- 触发迁移的机制不同
- 描述多个对象共同完成一个操作的机制不同
泳道的作用
- 用于对活动的分组管理的机制,区分了其中的活动的不同职责
- 带有泳道的活动图也可以在软件开发的需求分析阶段用来为业务部门的业务流程的建模上,在需求分析阶段不会用刀交互图或状态图(判断)
包图(了解)
包图的作用
- 提供一种分组管理的机制
包的三种可视化规则
- public、private、protected
包访问另一个包的两种途径:
- access(需要整个路径)、import(把包放进来,就不用加包的名称)
组件图
什么是组件?
- 组件是系统的一个物理的和可替代的组成部分,该组成部分遵循并实现了一组给定的接口。
- 组件属于实现视图
组件与类之间的区别
- 组件存在于物理空间
- 类存在于概念空间
- 抽象的方式不同;
- 抽象的级别不同;
- 访问方式不同;
- 与包的关系
组件与接口之间的两种关系:
- 实现关系:一个组件实现了一个接口
- 依赖关系:一个组件使用了另一个组件通过接口提供的服务
部署图
部署图的作用
- 部署图描述了一个运行时的硬件结点,以及在这些结点上运行的软件组件的静态视图
- 部署图可以描述系统的拓扑结构
结点与组件之间的区别
- 组件用于参与系统的执行,节点执行组件的动态行为
- 组件是逻辑概念的物理包装(是类的具体实现,代表软件的功能),节点是组件存在的物理载体
两种不同的节点
- 处理器:具有计算功能
- 设备:不具备计算功能
设计原则(列出3~4种,简单解释!!!)
- 里氏替换原则LSP:任意父类可以出现的地方,子类也可以出现 !!!!
- 开闭原则OCP:对扩展开发,对修改关闭 !!!!!
- 单一职责原则SRP:类的职责单一 !!!!
- 依赖倒转原则DIP:针对抽象(或接口)编程,而不针对具体编程 !!!!!
- 接口隔离原则ISP:使用多个专门接口要优于使用单一的接口 !!
- 组合聚合原则CRP:优先使用组合或聚合关系,不要过于使用继承关系 !!!!
- 迪米特原则LoD:一个软件实体对其他实体的引用越少越好。 !!!
问答题(不会画图,可能让你修改,简答)
用例图
见用例图ppt 67-74
类图
见静态图ppt 7-8、16-17
软件需求分析与建模 复习相关推荐
- 软件需求分析与建模习题集
第一章 1.面向对象分析与面向对象设计的英文简称? 答案:OOA;OOD 2.采用面向过程的分析方法时,调研需求最先弄清楚有多少业务流程,而采用面向对象的分析方法时,调研需求最先弄清楚有多少部门,多少 ...
- 软件需求分析复习要点
本文根据华南理工大学软件学院<软件需求分析>课程及相关教材<UML和模式应用>总结,作复习回顾用. 这门课知识点很杂,重点掌握GRASP和GoF设计模式. Chapter. 1 ...
- 《软件需求分析 复习 的参考资料》
软件需求分析 复习 的参考资料 内容如下: 一.选择类 1.UML 的 ( B )模型图由类图.对象图.包图.构件图和配置图组成. A. 用例 B. 静态 C. 动态 D. 系统 2.UML的 ( C ...
- 管理信息系统案例分析_7.软件需求最佳实践笔记 | 需求分析与建模(一)
一.需求分析与建模的要点与误区 需求分析到底做什么 需求分析的任务并不是分析系统如何实现用户的需要,这是对需求分析最常见的误解.需求分析实际上是业务分析,也就是选择一种业务导向的线索将零散的需求串起米 ...
- 软件工程复习 第二章 需求分析 需求文档的撰写 需求分析三类建模
2.1需求分析的概念 进行需求分析的原因: 1.需求分析的错误和变更导致软件开发失败占比高(eg:a.缺少用户的输入 b.不完整的需求和规格说明书 c.需求和规格说明书的变更) 2.希望对开发进行引导 ...
- 《软件需求分析(第二版)》期中考试试题总结/复习资料
文章目录 前言 一.单选题 二.判断题 三.简答题 总结 前言 软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素.需求分析是软件定义阶段中的最后 ...
- 图书管理系统需求规格说明文档目录_软件需求分析教与学(教学大纲)
需求分析课程教学大纲 01. 课程说明 课程名称 需求分析 总学时 32 先修课程: 软件工程导论.数据库原理与设计.信息系统基础 02. 课程性质.目的和任务 软件开发一般包括可行性分析.需求分析. ...
- 软件需求分析文档模版
软件需求分析文档模版(转载自国家计算机标准和文件模板) 软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素.需求分析是软件定义阶段中的最后一步,是 ...
- 软件工程之软件需求分析
软件工程之软件需求分析 一.需求分析任务 1.用户需求 2.系统需求 (1)功能需求 (2) 数据需求 (3) 其他需求 二.需求分析过程 三.用户需求获取 1.研究用户 2. 从调查中获取用户需求 ...
最新文章
- idea不区分大小写设置_我的 IntelliJ IDEA 一直都是这么设置的,效果很棒!
- Python3 安装PyMySQL
- php悬浮框,PopupWindow(悬浮框)的基本使用
- wps画流程图交叉弧形_wps画的流程图打印不清晰|wps怎么绘制出立体流程图?wps绘制出立体流程图的方法...
- dd模式和iso模式_ISO的完整形式是什么?
- Dreamweaver网页设计与制作100例:用DIV+CSS技术设计的书法主题网站(web前端网页制作课作业)...
- IntelliJ IDEA 中文语言包插件
- 卡尔滤波算法 java_卡尔曼滤波算法及其代码
- aip通用文档 服务器,为 Rights Management 连接器配置服务器 - AIP | Microsoft Docs
- Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
- VMware Workstation Pro 虚拟机搭建
- 交互设计基本功!5个值得学习的APP交互方式
- Windows10系统如何多开微信程序(上班划水必备)
- LiveGBS流媒体平台国标GB/T28181功能-国标流媒体服务平台作为上级接入海康大华华为宇视等下级平台及摄像头
- Shopex模板机制总览(摘要版)
- [生存志] 第38节 平王东周都洛阳
- 关于计算机的英语作文带翻译100字,求30篇100字英语作文带翻译
- 特征选择/筛选方法总结
- 有道云笔记无法同步至本地电脑解决方法
- vue3 Echarts 绘图工具的使用
热门文章
- linux tc限制网卡速度,在Linux下用tc限制接口带宽
- Nginx安装部署与配置管理
- 开发基于以太坊的区块链底层平台,秘猿科技想做共识数据时代的Oracle
- 随机森林模型_观点速递65|使用随机森林模型模拟短期空气污染效应:基于交通和气象数据...
- 第1关:封装、继承和多态进阶(一)
- uniapp微信小程序外壳内联H5实现支付
- touch.js 移动端的手势识别
- 直接利用解压工具替换SpringBoot打好的Jar包
- Leetcode Q10: Regular Expression Matching
- 把一个人的特点写具体作文_把一个人的特点写具体作文500字五年级