软考高级 | 系统架构设计师笔记(一)

一. 系统规划

1.1 项目的提出与选择

该步骤生成” 产品/项目建议书”.

1.2 可行性研究与效益分析

包括经济可行性/技术可行性/法律可行性/执行可行性/方案选择 5 个部分. 该步骤生 成”可行性研究报告”.

1.3 方案的制订和改进

包括确定软件架构/确定关键性要素?/确定计算体系(NET,J2EE).

1.4 新旧系统分析和比较

根据技术水平和商业价值进行评价, 演化策略有 4 种: 改造/集成/继承/淘汰

移植工作大体上分为计划阶段、 准备阶段、 转换阶段、 测试阶段、 验证阶段。
 

1、 计划阶段, 在计划阶段, 要进行现有系统的调查整理, 从移植技术、 系统内容(是
否进行系统提炼等)、 系统运行三个方面, 探讨如何转换成新系统, 决定移植方法, 确立移
植工作体制及移植日程。
2、 准备阶段, 在准备阶段要进行移植方面的研究, 准备转换所需的资料。 该阶段的作
业质量将对以后的生产效率产生很大的影响。
3、 转换阶段, 这一阶段是将程序设计和数据转换成新机器能根据需要工作的阶段。 提
高转换工作的精度, 减轻下一阶段的测试负担是提高移植工作效率的基本内容。
4、 测试阶段, 这一阶段是进行程序单元、 工作单元测试的阶段。 在本阶段要核实程序
能否在新系统中准确地工作。 所以, 当有不能准确工作的程序时, 就要回到转换阶段重新工
作。
5、 验证阶段, 这是测试完的程序使新系统工作, 最后核实系统, 准备正式运行的阶段。


二. 系统分析与设计


2.1 定义问题与归结模型

目录

一. 系统规划

1.1 项目的提出与选择

1.2 可行性研究与效益分析

1.3 方案的制订和改进

1.4 新旧系统分析和比较

二. 系统分析与设计

2.1 定义问题与归结模型

2.2 需求

2.2.1 需求工程

2.2.2 需求分析

2.3 系统设计(软件设计)

2.4 结构化分析与设计

2.4.1 分析步骤

2.4.2 分析工具

2.4.3 结构化设计

2.4.4 数据流图、 流程图

2.5 面向对象分析与设计

 2.5.1 基本概念

2.5.2 UML(统一建模语言)

2.5.3 用例模型

2.5.4 分析模型

2.5.5 设计模型

2.6 用户界面设计

2.7 工作流设计

2.8 简单分布式计算机应用系统设计

2.8.1 分布式系统开发

 2.8.2 分布式计算架构

2.9 系统运行环境的集成与设计

2.10 系统过渡设计



2.2 需求


2.2.1 需求工程


        需求工程包括需求管理和需求开发。
        需求开发: 包括需求捕获、 需求分析、 编写规格说明书和需求验证 4 个阶段。 需求开
发是努力更清晰、 更明确地掌握客户对系统的需求。
        需求管理: 通常包括定义需求基线、 处理需求变更、 需求跟踪等方面的工作。 而需求管
理则是对需求的变化进行管理的过程。

2.2.2 需求分析

  • 包括内容

  1. 问题识别: 用于发现需求、 描述需求。 预先估计以后系统可能达到的目标。
  2. 分析与综合: 对问题进行分析, 然后在此基础上整合出解决方案。
  3. 编制需求分析文档: 对已经确定的需求进行文档化描述, 该文档通常称为“需求规格说明书” 
  4. 需求分析与评审: 对功能的正确性、 完整性和清晰性, 以及其他需求给予评价。
  • 需求分类 1
  1. 功能需求
  2. 非功能需求
  3. 设计约束
  • 需求分类 2
  1. 业务需求
  2. 用户需求
  3. 系统需求: 包括 功能需求/质量属性/非功能需求/设计约束
  • 需求获取方式
  1. 收集资料
  2. 联合需求计划: 召集多部门开会
  3. 用户访谈: 结构化, 准备好了问题; 非结构化, 随机应变问问题.
  4. 明确访谈目的/ 确:书面(问卷)调查/情节串联板/现场观摩/参加业务实践/阅读历史文档/ 抽样调查

2.3 系统设计(软件设计)

 步骤: 概要设计(高层设计)/详细设计(低层设计)
 设计方法: 结构化设计/面向对象设计

2.4 结构化分析与设计


2.4.1 分析步骤


研究物质环境/建立系统逻辑模型/划清人机界限


2.4.2 分析工具


数据流图/数据字典/结构化语言/判定表/判定树
一个数据流图里面有数据流、 加工、 外部实体、 数据存储.因此在描述完数据流图之后,
可紧接着描述数据字典(数据流名称、 来源、 去向、 结构、 组织等)和处理(加工).

2.4.3 结构化设计


概要设计----模块结构图/层次图/HIPO 图(层次+input process output)
详细设计----程序流程图/盒图 NS/PAD 问题分析图/PDL 程序设计语言(伪码)
模块(化)---- 指执行某一特定任务的数据结构和程序代码


外部特征: 模块的接口和功能/
内部特征: 模块的局部数据和程序代码
关键原则: 信息隐蔽/模块独立性(高内聚、 低耦合)


 

 

2.4.4 数据流图、 流程图


数据流图:作为一种图形化工具,用来说明业务处理过程、 系统边界内所包含的功能和系
统中的数据流。 (1 Context 图 / 2 DFD 0 层图)


设计原则:

  • 父图与子图的平衡:子图的输入输出数据流同父图相应加工的输入输出数据流一致。
  •  数据守恒: 指加工的输入、 输出数据流是否匹配, 即每一个加工既有输入数据流又有输出数据流。
  • 守恒加工: 对于同一个加工, 其输入与输出的名字必须不同。
  • 加工细节隐蔽: 父图内部细节留给子图去画。
  • 简化加工之间的关系: 尽量减少加工间输入/输出数据流的数目.

 

 流程图:以图形化的方式展示应用程序从数据输入开始到获得输出为止的逻辑过程,描述处理过程的控制流。

区别数据流图流程图
并行性处理过程可并行某个时间点只能处于一个处理过程
展示流展示数据流展示控制流
计时标准展示全局的处理过程,过程之
间遵循不同计时标准
遵循一致的计时标准
用途系统分析中的逻辑建模系统设计中的物理建模

2.5 面向对象分析与设计


 2.5.1 基本概念


类/对象; 继承/泛化; 多态/重载


2.5.2 UML(统一建模语言)


a 组成

  • 构造块
    • 事物(建模元素)---结构事物/行为事物/分组事物/注释事
    • 关系---关联/依赖/泛化/实现 http://c.biancheng.net/view/1319.html
    • 图 (如下)---(结构)静态模型(类图、 对象图、 包图、 构件图、 部署图、 制品图) / (行为)动态模型( 用例图、 顺序图、 通信图、 定时图、 状态图、 活动图、 交互概览图)
  • 公共机制
    • 规格说明/修饰/公共分类/扩展机制
  • 规则

b 软件架构(4+1 视图模型), (非 UML 特有)

速记: “逻进部实用” , ” 逻进物开场”
 

  • 逻辑视图: 以问题域的语汇组成的类和对象集合。 (功能)
  • 进程视图: 可执行线程和进程作为活动类的建模, 它是逻辑视图的一次执行实例。 (运行). 主要关注一些非功能性需求, 例如, 系统的性能和可用性等。 进程视图强调并发性、分布性、 系统集成性和容错能力。
  • 实现(开发)视图: 对组成基于系统的物理代码的文件和组件进行建模。 (模块组织管理)
  • 部署(物理)视图: 把组件物理地部署到一组物理的、 可计算的节点上。
  • 用例(场景)视图: 最基本的需求分析模型

c 类间关系表示

  • 依赖: 某个类的方法通过局部变量、 方法的参数或者对静态方法的调用来访问另一个类(被依赖类)

  • 关联: (包括一般关联关系、 聚合关系和组合关系). 将一个类的对象作为另一个类的成
    员变量来实现关联关系. 关联可以是双向的, 也可以是单向的。

  • 聚合: 关联关系的一种. 通过成员对象来实现的, 其中成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而独立存在

 

  • 组合: 关联关系的一种, 也表示类之间的整体与部分的关系, 部分对象不能脱离整体对象而存在, 即共存.

  •  泛化: 父类与子类之间的关系

  • 实现: 接口与实现类之间的关系

d 各种图

用例图(系统与外部的交互关系, 详见下一节): 参与者/用例/包含和扩展/通信关联

  • 包图: 表示软件体系结构图
  • 类图: 描述类的内部属性和行为, 以及类集合之间的交互关系;
  • 对象图: 描述一组对象及它们之间的关系;
  • 类关系: 依赖(箭头虚线)/泛化(空心箭头实线)/关联(实线)/聚合(空心菱形实线)
  • 多重性: 如下图, 1 本书籍包含 0 个或者 1 个借阅记录, 即 1 对 0..1

  •  交互图: 表示各组对象如何依某种行为进行协作。 可以用来表示用例的行为。
    • 分类: 顺序图/通信图/定时图

 

  • 状态图: 主要用于描述一个对象在其生存周期的动态行为, 表现一个对象所经历的状态序列,引起状态转移的事件, 以及因状态转移而伴随的动作。 侧重描述行为的结果。(又: 描述一个特定的复杂对象的所有可能状态及其引起状态转移的事件) 

  • 活动图: 用于描述系统的工作流程和并发行为。 活动图可以看作是状态图的特殊形式。 侧重描述行为的动作。 活动图中一个活动结束后将立即进入下一个活动, 而在状态图中状态的转移可能需要事件的触发。

  •  构件图: 一组源代码文件、 二进制代码文件和可执行文件(构件)之间的关系

 

  •  部署图(实施图): 在构件图基础上更进一步地描述系统硬件的物理拓扑结构及在此结构上执行的软件。
    • 组成: 结点和连接 / 构件和接口

2.5.3 用例模型

用例图:用来描述系统需求, 用例图的元素包括参与者、 用例和通信关联。
建模步骤包括 4 步:

  • a 识别参与者
  • b 合并需求获得用例
  • c 细化用例描述
    • 用例名称、简要说明、事件流、非功能需求、前置条件和后置条件、扩展点、优先级
  • d 调整用例模型
    • 用例之间的关系包括 包含/扩展/泛化, 基于这些关系对用例进行调整. 

2.5.4 分析模型


        利用图: 用例图/类图/交互图
        用来描述系统的基本逻辑结构, 展示对象和类如何组成系统(静态模型),以及它们如何
保持通信,实现系统行为(动态模型). 由顶层架构图、 用例与用例图和领域概念模型构成
         步骤:

  • a 定义概念类
  • b 确定类之间的关系
    • 关系包括: 关联/依赖/泛化/聚合/组合/实现
    • 用类图表示
  • c 为类添加职责
    • 成员变量(属性) 和 成员方法
  • d 建立交互图
    • 包括顺序图/交互概览图/通信图/定时图
  • e 分析模型的详细程度问题
     

2.5.5 设计模型


包含: 以包图表示的软件体系结构图; 以交互图表示的用例实现图; 完整精确的类图;
针对复杂对象的状态图; 描述流程化处理的活动图
 

2.6 用户界面设计


黄金法则:置用户于控制之下/减少用户记忆负担/保持界面一致

过程:用户、 任务和环境分析/界面设计/实现/界面确认
 

2.7 工作流设计


流程定义工具
工作流管理系统


2.8 简单分布式计算机应用系统设计


基于实例的协作:对远程实例有较大控制权,小范围内” 近连接” ,常使用代理方式.
基于服务的协作:只能调用远程对象的接口方法,无法创建销毁远程对象.跨平台” 远连
接” .


2.8.1 分布式系统开发


五个逻辑计算层:

  • 表示层实现用户界面;
  • 表示逻辑层为了生成数据表示而必须进行的处理任务, 如输入数据编辑等;
  • 应用逻辑层包括为支持实际业务应用和规则所需的应用逻辑和处理过程, 如信用检查、 数据计算和分析等;
  • 数据处理层包括存储和访问数据库中的数据所需的应用逻辑和命令, 如查询语句和存储过程等;
  • 数据层是数据库中实际存储的业务数据。
     

 2.8.2 分布式计算架构


①分布式表示架构是将表示层和表示逻辑层迁移到客户机, 应用逻辑层、 数据处理层和
数据层仍保留在服务器上;
②分布式数据架构是将数据层和数据处理层放置于服务器, 应用逻辑层、 表示逻辑层和
表示层放置于客户机;
③分布式数据和应用架构是将数据层和数据处理层放置在数据服务器上, 应用逻辑层放
置在应用服务器上, 表示逻辑层和表示层放置在客户机上。

2.9 系统运行环境的集成与设计


软件运行环境: 包括 系统运行的设备/操作系统/网络配置
集中式系统: 单计算机结构/集群结构/多计算机结构
分布式系统: 基于网络
C/S 结构: 如数据库/网络打印服务系统/网络游戏
多层结构 3: 扩展了 C/S, 由存储数据的数据库服务器作为数据层、 实现商业规则的程
序作为逻辑层、 管理用户输入输出的视图层
Internet、 Intranet、 Extranet


2.10 系统过渡设计


直接过渡/并行过渡/阶段过渡

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/573631.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java Web-Spring AOP

AOP的概念 AOP:面向切面编程,面向方法编程。简单理解就是对特定方法的扩充的思想 例如我们要在特定方法进行方法的执行时间判断,我们假如去使用在每个方法去进行业务逻辑扩充,这样就太繁琐了,而使用AOP就可以简化操作。Spring A…

mybatis中<if>条件判断带数字的字符串失效问题

文章目录 一、项目背景二、真实错误原因说明三、解决方案3.1针对纯数字的字符串值场景3.2针对单个字符的字符串值场景 四、参考文献 一、项目背景 MySQL数据库使用Mybatis查询拼接select语句中进行<if>条件拼接的时候&#xff0c;发现带数字的或者带单个字母的字符串失效…

vue基础教程(7)——构建项目级首页

同学们可以私信我加入学习群&#xff01; 正文开始 前言一、页面结构二、侧边栏三、主体部分总结 前言 前面我们学习了vue的路由和登录页搭建&#xff0c;本文将和大家共同学习首页的搭建。 首页示例如图&#xff1a; 很多项目经验比较少的同学&#xff0c;一般都是对某些语…

架构师系列-消息中间件(八)- RocketMQ 进阶(二)-生产端消息保障

5. RocketMQ消息保障 下面我们详细说下如何保障消息不丢失以及消息幂等性问题 5.1 生产端保障 生产端保障需要从一下几个方面来保障 使用可靠的消息发送方式注意生产端重试生产禁止自动创建topic 5.1.1 消息发送保障 5.1.1.1 同步发送 发送者向MQ执行发送消息API时&#xff0…

springBoot集成flowable

前言 Flowable可以十分灵活地加入你的应用/服务/构架。可以将JAR形式发布的Flowable库加入应用或服务&#xff0c;来嵌入引擎。 以JAR形式发布使Flowable可以轻易加入任何Java环境&#xff1a;Java SE&#xff1b;Tomcat、Jetty或Spring之类的servlet容器&#xff1b; JBoss…

网工内推 | 上市公司网络运维,大专可投,NA/NP认证优先

01 珠海世纪鼎利科技股份有限公司 招聘岗位&#xff1a;网络运维工程师 职责描述&#xff1a; 1、负责服务器安装、维护和设备管理&#xff1b; 2、负责应用系统的部署&#xff0c;升级&#xff0c;维护&#xff1b; 3、分析网络数据&#xff0c;排查网络故障及事务的应急响应…

百度网盘svip白嫖永久手机2024最新教程

百度网盘&#xff08;原名百度云&#xff09;是百度推出的一项云存储服务&#xff0c;已覆盖主流PC和手机操作系统&#xff0c;包含Web版、Windows版、Mac版、Android版、iPhone版和Windows Phone版。用户将可以轻松将自己的文件上传到网盘上&#xff0c;并可跨终端随时随地查看…

【C语言】红黑树详解以及C语言模拟

一、红黑树的性质二、红黑树的旋转操作三、红黑树的插入操作四、红黑树的删除操作五、红黑树的应用六、C语言模拟红黑树七、总结 红黑树是一种自平衡二叉查找树&#xff0c;它能够保持树的平衡&#xff0c;从而确保查找、插入和删除的最坏情况时间复杂度为O( l o g n log_n log…

软考-系统集成项目管理中级--项目人力资源管理(输入输出很重要!!!本章可能包含案例题)

本章历年考题分值统计 本章重点常考知识点汇总清单(学握部分可直接理解记忆) 10、项目沟通管理计划一般应包括以下内容:(掌握)12上59&#xff0c;10下59&#xff0c;13上53&#xff0c;13上57,14下58&#xff0c;15下58&#xff0c;16上59 考题 (1)干系人的沟通需求。 (2)针对沟…

爬虫抓取网站数据

Fiddler 配置fiddler工具结合浏览器插件 配置fiddler Tools--Options 抓包技巧 谷歌浏览器开启无痕浏览,使用SwitchyOmega配置好代理端口 Ctrl x 清理所有请求记录,可以删除指定不需要日志方便观察 设置按请求顺序 观察cookie,观察请求hesder cookie和row返回结果 Swit…

C++/QT + Mysql + Tcp 企业协作管理系统

目录 一、项目介绍 二、项目展示 三、源码获取 一、项目介绍 1、项目概要&#xff1a;C/S架构、数据库Mysql、C、QT&#xff1b;支持实时通信、局域网内通信&#xff0c;可多个客户端同时登录&#xff1b; 2、&#xff08;Server&#xff09;管理端&#xff1a;用户管理、…

科技云报道:AIGC掀算力需求革命,边缘计算将不再“边缘”

科技云报道原创。 随着以大模型为代表的AIGC时代拉开序幕&#xff0c;算力需求持续爆发&#xff0c;AI与边缘深度融合已是大势所趋&#xff0c;越来越多的企业开始积极布局GenAI。 GenAI技术的商用化部署和应用成为企业竞逐的新阵地&#xff0c;勾勒出大模型从“技术力”转向…

数组模拟几种基本的数据结构

文章目录 数组模拟单链表数组模拟双链表数组实现栈数组模拟队列总结 数组模拟单链表 首先类比结构体存储单链表&#xff0c;我们需要一个存放下一个节点下标的数组&#xff0c;还需要一个存储当前节点的值的数组&#xff0c;其次就是一个int类型的索引&#xff0c;这个索引指向…

挑战一周完成Vue3实战项目硅谷甄选Day1:项目初始化、项目配置、项目集成

一、项目初始化 node v16.4.0以上&#xff08;查看node版本 : node -v&#xff09; pnpm 8.0.0&#xff08;npm i -g pnpm8.0.0&#xff09; 在想创建的位置新建文件夹自己命名 在此文件夹下cmd:pnpm create vite 选择如下配置 Project name&#xff08;项目名称&#xff0…

Java设计模式 _创建者模式_工厂模式(普通工厂和抽象工厂)

一、工厂模式 属于Java设计模式创建者模式的一种。在创建对象时不会对客户端暴露创建逻辑&#xff0c;并且是通过使用一个共同的接口来指向新创建的对象。 二、代码示例 场景&#xff1a;花店有不同的花&#xff0c;通过工厂模式来获取花。 1、普通工厂模式 逻辑步骤&#…

Spring - 5 ( 8000 字 Spring 入门级教程 )

一&#xff1a;Spring IoC&DI 1.1 方法注解 Bean 类注解是添加到某个类上的&#xff0c; 但是存在两个问题: 使用外部包里的类, 没办法添加类注解⼀个类, 需要多个对象, ⽐如多个数据源 这种场景, 我们就需要使用方法注解 Bean 我们先来看方法注解如何使用: public c…

AI-数学-高中-42导数的概念与意义

原作者视频&#xff1a;【导数】【一数辞典】1导数的概念与意义_哔哩哔哩_bilibili .a是加速度&#xff1b;

OpenAI 笔记:获取embedding

1 输入openai的api key from openai import OpenAIclient OpenAI(api_key**) 2 举例 response client.embeddings.create(input"Hello",model"text-embedding-3-small" )print(response.data[0].embedding) 默认情况下&#xff0c;text-embedding-3-s…

配置Linux【虚拟机】与 windows【宿主机】网络互通 (面向小白,简单操作)

1. 启动虚拟机&#xff0c;运行Linux系统 这里我使用 VMware Workstation Pro 来运行Linux系统&#xff08;cent-os7&#xff09;2. 鼠标右键打开终端 3. 输入 cd /etc/sysconfig/network-scripts , 然后输入ls &#xff0c;查看当前目录下的网卡 一般来说&#xff0c;虚拟机的…