[架构之路-201]-《软考-系统分析师》- 关键技术 - 结构化分析方法与面向对象分析(分析与设计的区别、pre架构设计、架构前设计)

本文主要是介绍[架构之路-201]-《软考-系统分析师》- 关键技术 - 结构化分析方法与面向对象分析(分析与设计的区别、pre架构设计、架构前设计),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

前言:

一、分析与设计的区别

二、结构化分析方法

2.1  实体关系图:E - R 图 (名词)

2.2. 数据流图(数据的流动)

(1) 顶层图。

(2) 逐层分解。

2.3. 状态转换图(动作)

2.4 数据字典

三、面向对象分析方法

3.1 用例模型

3.2 分析模型

3.2.1 定义概念类

3.2.2 确定类之间的关系

3.2.3 为类添加职责

3.2.4 建立交互图

3.2.5 分析模型的详细程度问题


前言:

结构化分析和面向对象分析,都是一种需求分析的方法和手段,用于把复杂问题分解成简单的问题,把复杂的需求分解成简单的需求,把高层笼统的需求分解成低层细化后的需求。

所谓:需求,就是“what”,是“是什么”?做成“什么样子”,是“目标”,即未来的软件系统长成什么样子?

系统分析不关系怎么做,也不是解决方案。

当然,有时候,客户的需求也提出解决方案,但这并不意味着“需求”关注的“怎么做”。

一、分析与设计的区别

备注:

系统分析又称为目标系统的概念层面设计,因此,需求分析也包含了设计的成分,因此,有点地方,系统分析又称为pre-架构设计。架构前设计!!!

架构设计又称为目标系统的逻辑层设计。

底层设计有称为目标系统的物理层面设计、代码层面设计

二、结构化分析方法

S A 方法的基本思想是自顶向下,逐层分解,把一个大问题分解成若干个小问题,每个小问题再分解成若干个更小的问题。经过逐层分解,每个最低层的问题都是足够简单、容易解决的,于是复杂的问题也就迎刃而解了。在 S A 方法中导出的分析模型如阁11-5所示。

从 图 11-5可以看出, S A 方法分析模型的核心是数据字典,围绕这个核心,有三个层次的模型,分别是数据模型、功能模型和行为模型(也称为状态模型)。

在实际工作中:

  • 一般使用 E - R 图表示数据模型
  • 用 D F D 表示功能模型数据转换模型
  • 用状态转换图 (State TransformDiagram , S T D ) 表示行为模型。

这三个模型有着密切的关系,它们的建立不具有严格的时序性,而是一个迭代的过程。

2.1  实体关系图:E - R 图 (名词)

E-R图,也称为实体关系图,用于显示实体集之间的关系。它提供了一种表示实体类型、属性和连接的方法;用来描述现实世界的概念模型

2.2. 数据流图(数据的流动)

(1) 顶层图。

顶层图是描述系统最高层结构的 D F D , 它的特点是将整个待开发的系统表示为一个加工,将所有的外部实体和进出系统的数据流都画在一张图屮。

例如,图11-6就是一个顶层图的实例,只不过在绘制时做了一些处理,使得它看上去更加直观
易懂。

顶层图用来描述系统有什么输入和输出数据流,与哪些外部实体直接相关,可以把整个系统的范围勾画出来。

(2) 逐层分解。

当完成了顶层图的建模之后,就可以在此基础上进行进一步的分解。对 图 11-6进行分解,在对原有流程了解的基础上,可以得到图11-7。

 图 11-7是在顶层图11-6的基础上做的第一次分解,而在图】1-7中只有一个加工,那就是系统本身,可以将其编号为0。因此,对顶层图进行的分解,其实就是对这个编号为0 的加工进行更细化的描述,在这里引入了新的加工和数据存储,为了能够区分其位于的级别,在这个层次上的加工将以1, 2, 3 为序列进行编号。正是由于这是对加工0 的分解,因此也称为0 层图。可以根据谣要对0 层图上的加工进行类似的再分解,称之为1层图,在 1层图中引入的新加工,其编号规则就是1.1、
1.2、…,以及2.1、2.2、…,依次类推,直到完成分析工作。

2.3. 状态转换图(动作)

大多数业务系统是数据驱动的,所以适合使用 D F D 。但是,实时控制系统却主要是事件驱动的,因此,行为模型是最有效的描述方式。 S T D 通过描述系统的状态和引起系统状态转换的事件,来表示系统的行为。此外, S T D 还指出了作为特定事件的结果将执行哪些动作(例如,处理数据等)。状态是任何可以被观察到的系统行为模式,每个状态代表系统的-•种行为模式。在
S T D 中,用圆形框或椭圆框表示状态,通常在框内标上状态名。状态规定了系统对事件的响应方式。系统对事件的响应可以是做一个(或一系列)动作,也可以是仅仅改变系统本身的状态。 S T D 描述了系统如何在各种状态之间移动。事件是在某个特定时刻发生的事情,它是对引起系统从一个状态转换到另一个状态的外界事件的抽象。例如,内部时钟指明某个规定的时间段己经过去,鼠标移动或单击等都是事件。简而言之,事件就是引起系统状态转换的控制信息。
在 S T D 中,从一个状态到另一个状态的转换用箭头线表示,箭头表明转换方向,箭头线上标上事件名。必要时可在事件名后面加一个方括号,括号内写上状态转换的条件。也就是说,仅当方括号内所列出的条件为真时,该事件的发生才引起箭头所示的状态转换。图 11-8给出了一个在线课程学习的 S T D 示例。

 

2.4 数据字典

D F D 描述了系统的分解,即系统由哪几部分组成,各部分之间的联系等,但是,对于数据的详细内容却无法在 D F D 中得到反映。例如,图 11-7中的数据存储“课程”包括哪些内容,在 D F D 中就无法具体、准确地描述。数据字典是在 D F D 的基础上,对 D F D中出现的所有命名元素都加以定义,使得每个图形元素的名字都有一个确切的解释。D F D 和数据字典等工具相配合,就可以从图形和文字两个方面对系统的逻辑模型进行完整的描述。

三、面向对象分析方法

0 0 A 的基本任务是运用 O O 方法,对问题域进行分析和理解,正确认识其中的事物及它们之间的关系,找出描述问题域和系统功能所需的类和对象,定义它们的属性和职责,以及它们之间所形成的各种联系。最终产生一个符合用户需求,并能直接反映问题域和系统功能的 O O A 模型及其详细说明。

0 0 A 模型独立于具体编程语言实现(怎么做),即不考虑与系统具体实现有关的因素,这也是0 0 A 和0 0 D 的区别之所在。

O O A 的任务是“做什么”,0 0 D 的任务是“怎么做”。

3.1 用例模型

S A 方 法 采 用 功 能 分 解 的 方 式 来 描 述 系 统 功 能 , 在 这 种 表 达 方 式 中 , 系 统 功 能 被 分解 到 各 个 功 能 模 块 中 ,通 过 描 述 细 分 的 系 统 模 块 的 功 能 来 达 到 描 述 整 个 系 统 功 能 的 目 的 。
采 用 SA 方 法 来 描 述 系 统 需 求 , 很 容 易 混 淆 需 求 和 设 计 的 界 限 , 这 样 的 描 述 实 际 上 已 经包含了部分的设计在内。因此,系统分析师常常感到迷惑,不知道系统需求应该详细到
何种程度。一个极端的做法就是将需求详细到概要设计,因为这样的需求描述既包含了外部需求也包含了内部设计。 S A 方法的另一个缺点是分割了各项系统功能的应用环境,从各项功能项入手,很难了解到这些功能项如何相互关联来实现一个完整的系统服务的。
从用户的角度来看,他们并不想了解系统的内部结构和设计,他们所关心的是系统所能提供的服务,这就是用例方法的基本思想。用例方法是一种需求合成技术,采用10.2.3节 和 11.2节介绍的技术(方法)获取需求,记录下来,然后从这些零散的要求和期望中进行整理与提炼,从而建立用例模型。

在 O O A 方法中,构建用例模型一•般需要经历4 个阶段,分别是识别参与者、合并需求获得用例、细化用例描述和调整用例模型,其中前三个阶段是必需的。

3.2 分析模型

11.5.2节从用户的观点对系统进行了用例建模,但捕获了用例并不意味着分析的结束,还要对需求进行深入分析,获取关于问题域本质内容分析模型

分析模型描述系统的基本逻辑结构,展示对象和类如何组成系统(静态模型),以及它们如何保持通信,实现系统行为(动态模型)。

为了使模型独立于具体的幵发语言,系统分析师需要把注意力集中在概念性问题而不是软件技术问题上,这些技术的起点就是领域模型。领域模型又称为概念模型或简称为域模型,也就是找到那些代表事物与概念的对象,即概念类。概念类可以从用例模型中获得灵感,经过完善将形成分析模型中的分析类。

每一个用例对应一个类图,描述参与这个用例实现的所有概念类,而用例的实现主要通过交互图来表示。例如,用例的事件流会对应产生一个顺序图,描述相关对象如何通过合作来完成整个事件流,复杂的备选事件流也吋以产生-个或多个顺序图。所有这些图的集合就构成了系统的分析模型。

建立分析模型的过程大致包括定义:概念类、确定类之间的关系、为类添加职责、建立交互图等,

其中有学者将前三个步骤统称为 C R C C C l a s s - Responsibity - Collaborator , 类-责任-协作者)建模。

3.2.1 定义概念类

 

3.2.2 确定类之间的关系

 

 

3.2.3 为类添加职责

 

3.2.4 建立交互图

多个对象的行为通常釆用对象交互来表示 ,U M L 2.0提供的交互图有:

  • 顺序图
  • 交互概览图
  • 通信图
  • 定时图。

每种图出于不同视点对行为有不同的表现能力,其中最常用的是顺序图,几乎可以用在任何系统的场合。顺序图的基本元素有对象、参与者、生命线、激活框、消息和消息路线,其中消息是顺序图的灵魂。当对象行为复杂并存在多种不同状态转换时,还要用到反映对象状态变化的状态图

3.2.5 分析模型的详细程度问题

对于分析模型的详细程度,各种文献说法不一,在实践中的做法也不一样。

有些文献建议只列出类以及类之间的主要关系,不要对关系进行描述,更不要体现类的职责;

而有些文献则认为应该将这些东西都列出來。其实,干巴巴地讨论这个问题是没有任何意义的。

在整个系统开发的过程中,分析模型是不断演变的,应随着幵发的深入加入新的内容,或修改己有内容,逐渐完善,演变完整。最初的分析模型主要是围绕着领域知识进行的,对现实的事物进行建模。而后,则不断地加入设计的元素,最终演变成为运行于计算机上的系统。
总之,模型不是要开发的目标产物,而是开发过程中的一个辅助工作,只要能够利用其帮助团队更好地开发,详细也罢,简约也罢,都是好模型。

这篇关于[架构之路-201]-《软考-系统分析师》- 关键技术 - 结构化分析方法与面向对象分析(分析与设计的区别、pre架构设计、架构前设计)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/658257

相关文章

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施: