系统分析师案例必备知识点汇总---2023系列文章二

news2024/11/28 4:32:03

求获取 

1、需求获取的技术

用户访

点:具有良好的灵活性,有较宽广的应用范围。

点是:用户忙,信息量大,记录困难,需要沟通技巧。

问卷调查

点:短时间内收集数据。

点:缺乏灵活性,信息不全面,无法了解细节问题。

采样

:加快了数据收集的过程,提高了效率。利用数理统计原理,减少 据收集的偏差。

点:主观性强。

情节串联

点:用户友好、交互性强,对用户界面提供了早期的评审。

点:花费时间,速度慢。

联合需求计划

优点:用户参与,有利于消除矛盾信息

:会议的组织与相关人员的能力。

方法:实地观察、收集资料等 。

四、系统架构设计

1、面向服务的架构 SOA

SOA 一种在计算环境中设计、开发、部署和管理离散逻辑单元 (服务) 模型的方法。关于 服务一些常见的设计原则有:明确定义的接口、自包含和模块化、粗粒度、松耦合、互操 作性。

SOA 紧密相关的技术主要有 UDDI、WSDL、SOAP 和 REST 等,而这些技术都是以 XML 为基础而 展起来的。

UDDI

一描述、发现和集成,提供了一种服务发布、查找和定位的方法,是服务的信 息注规范, 以便被需要该服务的用户发现和使用它。

WSDL

Web 服务描述语言是对服务进行描述的语言。

SOAP

简单象访问协议定义了服务请求者和服务提供者之间的消息传输规范。SOAP 用 XML 来格式化消息,用 HTTP 来承载消息。通过 SOAP,应用程序可以在网络中进 行数据交换和远程过程调用 RPC

REST

表述性状态转移是一种只使用HTTP 和 XML 进行基于 Web 通信的技术,可以降 的复杂性,提高系统的可伸缩性。                                      REST 出了如下一些设计概念和准则:

(1) 网络上的所有事物都被抽象为资源。

(2) 每个资源对应一个唯一的资源标识。

(3) 通过通用的连接件接口对资源进行操作。

(4) 对资源的各种操作不会改变资源标识。

(5) 所有的操作都是无状态的。

2 、微服务

微服是一种架构风格,将单体应用划分成一组小的服务,服务之间相互协作,实现业务功 能每服务运行在独立的进程中,服务间采用轻量级的通信机制协作 (通常是 HTTP/JSON), 服务围绕业务能力进行构建,并且能够通过自动化机制独立地部署。

  微服务有以下优势:

(1) 通过分解巨大单体式应用为多个服务方法解决了复杂性问题。它把庞大的单一模块 分解为一系列的服务,同时保持总体功能不变。

(2) 让每个服务能够独立开发,开发者能够自由选择可行的技术,提供 API 服务。

(3) 微服务架构模式是每个微服务独立的部署。开发者不再需要协调其他服务部署对本 务的影响。这种改变可以加快部署速度

(4) 微服务使得每个服务独立扩展。你可以根据每个服务的规模来部署满足需求的规模。 甚至可以使用更适合于服务资源需求的硬件。

  微服务架构带来的挑战如下:

(1) 并非所有的系统都能转成微服务。

(2) 部署较以往架构更加复杂:系统由众多微服务搭建,每个微服务需要单独部署,从而 加部署的复杂度,容器技术能够解决这一问题。

(3) 性能问题:由于微服务注重独立性,互相通信时只能通过标准接口,可能产生延迟或 用出错。

(4) 数据一致性问题:作为分布式部署的微服务,在保持数据一致性方面需要比传统架构 加困难。

3、C/S 架

 C/S 结构为单一服务器且以局域网为中心 ,所以难以扩展至大型企业广域网或 Internet软、硬件的组合及集成能力有限;它的缺点主要有:

(1) 服务器的负荷太重,难以管理大量的客户机,系统的性能容易变坏;

(2) 数据安全性不好。因为客户端程序可以直接访问数据库服务器,那么,在客户端计 的其他程序也可想办法访问数据库服务器,从而使数据库的安全性受到威胁。

二层 C/S 架构相比,在三层 C/S 架构中,增加了一个应用服务器。可以将整个应用逻辑 留在应用服务器上,而只有表示层存在于客户机上。这种客户机称为瘦客户机。三层 C/S 构将应用系统分成表示层、功能层和数据层三个部分。

与传统二层架构相比,三层 C/S 架构具有以下优点:

(1) 允许合理地划分三层的功能,使之在逻辑上保持相对独立性,从而使整个系统的逻 结构更为清晰,能提高系统的可维护性和可扩展性

(2) 允许更灵活、有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特 上分适应于结构清晰的三层,并且这些平台和各个组成部分可以具有良好的可升级性和开 放性。

(3) 系统的各层可以并行开发,各层也可以选择各自最适合的开发语言,使之能并行且 效地进行开发,达到较高的性能价格比。对每一层的处理逻辑的开发和维护也会更容易些  (4) 利用功能层可以有效地隔离表示层与数据层,未授权的用户难以绕过功能层而利用数 据库具或黑客手段去非法地访问数据层,这就为严格的安全管理奠定了坚实的基础。

B/浏器/服务器 (Browser/Server, B/S) 架构是三层 C/S 架构的一种实现方式,其具体结 构为“浏览器/Web 服务器/数据库服务器” 。B/S 架构利用WWW 浏览器技术,结合浏览器脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节 了开发成本。

  1. MVC

  模型:执行业务流程 (不包括输入输出) ,存储业务数据。模型不依赖于视图和控制器,

提高了架构的灵活性

  图:展示模型中的数据,用户的同一份数据可以通过不同的视图以不同的方式展示。

必须了解模型中的数据结构,对模型有很强的依赖性,但是模型对于视图则没有依 性。

 

  控制器:把模型接收的事件和用户输入的数据转化为对模型方法的调用。控制器对用户

行为作出解释,并决定调用模型的哪个方法。

使MVC 模式来设计表现层,可以有以下的优点。

(1) 允许多种用户界面的扩展。在 MVC 模式中,视图与模型没有必然的联系,都是通过控 制器生关系,这样如果要增加新类型的用户界面,只需要改动相应的视图和控制器即可, 而模型则不需发生改动。

(2) 易于维护。控制器和视图可以随着模型的扩展而进行相应的扩展,只要保持一种公 接口,控制器和视图的旧版本也可以继续使用。

(3) 功能强大的用户界面。用户界面与模型方法调用组合起来,使程序的使用更清 晰,可 友好的界面发布给用户。

6、MVP

 

MVP 的优点包括:

(1) 低耦合。模型与视图完全分离,可以修改视图而不影响模型。

(2) 可以更高效地使用模型,因为所有的交互都发生在一个地方—Presenter 内部。

(3) 复用性好。可以将一个 Presenter 用于多个视图,而不需要改变 Presenter 的逻辑。 个特性非常的有用,因为视图的变化总是比模型的变化频繁。

(4)可测试性好。如果把逻辑放在 Presenter 中,就可以脱离用户接口来测试这些逻辑(单

测试) 。

7、MVVM

 

MVVM 是由 MVP 进化而来,MVVM 模式基本上与 MVP 相同,只是把 MVP 中的 P 变成了 VM,即 ViewModelMVVM 中的数据可以实现双向绑定,当 Model 变化时,View-Model 会自动更新, View 也会自动变化。很好做到数据的一致性,不用担心,在模块的这一块数据是这个值 在另块就是另一个值了。所以 MVVM 模式有些时候又被称作:model-view-binder 模式。  MVVM 框架比较适合逻辑复杂的前端项目,比如一些管理系统等。

8、轻量级架构

  1. SSH:指的是 Struts2(做前端控制器),Spring(管理各层的组件),Hibernate(负责持

化层)

  1. SSM:指的是 SpringMVC(做前端控制器),Spring(管理各层的组件),Mybatis(负责持

化层)

Hibernate 与 Mybatis 区别:

开发方面:Hibernate 开发中,sql 语句已经被封装,直接可以使用;Mybatis 属于半自 动化,sql 需要手工完成。

sql优化方面:对复杂查询的 sql语句进行人工调优的时候,Mybatis 更方便。

③可植性方面:Hibernate 使用时自动生成相应的 sql语句,因此具备良好的数据库移植 Mybatis 中手动编写的 sql语句需要针对不同厂商的数据库进行修改。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python aiohttp 库是否值得学?那必须要掌握呀

aiohttp 是一个基于 asyncio 的异步 HTTP 客户端/服务器库。它提供了一组用于编写高性能异步网络应用程序的工具,包括基于协程的客户端和服务器。 库的安装使用 pip install aiohttp Python aiohttp 库通过 aiohttp 搭建服务器aiohttp 路由aiohttp 中间件aiohttp 发…

【机器学习之模型融合】Blending混合法

前言 Stacking堆叠法基础知识:http://t.csdn.cn/dzAna 1、Blending的基本思想与流程👿 Blending融合是在Stacking融合的基础上改进过后的算法。在之前的课程中我们提到,堆叠法stacking在level 1上使用算法,这可以令融合本身向着损…

好家伙,这几个隐藏功能,太香了

很多小伙伴可能被小畅的问题搞糊涂了,因为很多人只会在电脑上堆砌各种小应用,而忽略了Windows原有的实用功能。 而我们也千万不要小看这些功能,它们说不定能在关键时刻助你一臂之力,帮到你不少忙呢! 那么今天小畅就为大…

MobaXterm连接出现 Network error: Connection timed out 问题解决

MobaXterm连接出现 Network error: Connection timed out: 接前文:CentOS安装, 点此查看文章,安装之后的SSH连接: 解决思路如下: 1、检查虚拟机端是否安装ssh 一般情况是可以自动安装的,直接在终端输入s…

系统分析师案例必备知识点汇总---2023系列文章一

一、系统规划 (视频内容:系统分析师-专业知识模块中的系统规划视频) 1 、可行性研究 经济可行性 技术可行性 法律可行性 用户使用可行性 也称为投资收益分析 或成本效益分析,主 要评估项目的建设成 本、运行成本和项目 建成后可能的经济收 益。 技…

eggjs框架源码解读

文章目录前言Egg进程模型Egg应用程序结构egg运行启动的内幕加载插件扩展内置对象加载中间件加载service加载路由加载配置设置应用信息执行业务逻辑文件加载机制结语前言 eggjs 是阿里在 Nodejs 技术上的一大杰作,也是对开源世界的一大贡献。里面包含了很多技术结晶…

Linux---进程概念

目录 1. 什么是进程? 2. 描述进程---PCB task_struct---PCB的一种 task_ struct内容分类 3. 组织进程 4. 查看进程 通过系统调用获取进程标示符 通过系统调用创建进程---fork初识 1. 什么是进程? 其实,我们启动一个软件&#xf…

SLAM本质剖析番外-李群李代数的微分和导数

0. 简介 这几个月,博主已经从SLAM算法的使用向着算法的数学推导进行了记录和分享,之前也分享了李群李代数关注核心一文,从现象中解释了李群和李代数表达的含义。但是这还不够,所以这次作者作为SLAM本质剖析的番外,来介…

基础数字(一)位运算 哈希(数组中元素出现次数)

目录 力扣剑指 Offer II 070. 排序数组中只出现一次的数字 数组中只出现一次的数(其它数出现k次)_牛客题霸 数组中只出现一次的两个数字_牛客题霸_牛客网 数组中出现次数超过一半的数字_牛客题霸_牛客网 缺失的第一个正整数_牛客题霸_牛客网 力扣剑指…

[杂记]算法:前缀和与差分数组

这篇讲一下前缀和与差分数组的关系 1. 前缀和 1.1 一维数组前缀和 前缀和在处理数组中的连续子数组的某一段加和的问题中很有用, 因为是拿空间换时间, 可以将线性复杂度降低为常数时间复杂度. 前缀和的道理很简单, 对于数组arr[i],i0,...,n−1arr[i], i 0, ..., n - 1arr[i…

《Linux Shell脚本攻略》学习笔记-第四章

4.1 简介 本章主要介绍sed、awk、grep、cut等命令,这些工具可以相互结合以满足文本处理需求。 正则表达式是一种基础的模式匹配技术。 4.2 使用正则表达式 正则表达式是由字面文本和具有特殊意义的符号组成的。 1)位置标记 位置标记锚点是标识字符串位置…

Anaconda安装、opencv环境配置、jupyter notebook使用虚拟环境

目录一、Anaconda 的安装二、opencv 3.4.1.15版本安装三、jupyter notebook使用虚拟环境四、运行报错-缺库一、Anaconda 的安装 Anaconda官网:Anaconda Installers Anaconda历史版本:Anaconda Index of 这边建议和我装一样anaconda3 python3.7&#xf…

opencv的图像基本操作(基于jupyter Notebook)

opencv的基本操作cv2是opencv在python中的缩写,函数开头用cv2cv2.imread(cat.jpg) #读入图片cat.jpgcv2.imwrite(mycat.png,img) #图片img保存为mycat.pngcv2.imshow(image,img) #创建窗口,显示图像cv2.waitKey(10000) #等待时间,以 毫秒为单…

整数分解

问题描述 将 3 分解成两个正整数的和, 有两种分解方法, 分别是 312312 和 321321 。注意顺序不同算不同的方法。 将 5 分解成三个正整数的和, 有 6 种分解方法, 它们是 113122113122 131212221311131212221311 。 请问, 将 2021 分解成五个正整数的和, 有多少种分解方法? …

Android大厂面试100题,涵盖测试技术、环境搭建、人力资源

测试技术面试题 1、什么是兼容性测试?兼容性测试侧重哪些方面? 2、我现在有个程序,发现在Windows上运行得很慢,怎么判别是程序存在问题还是软硬件系统存在问题? 3、测试的策略有哪些? 4、正交表测试用例…

Sinutrain下载安装与开启OPC UA---kalrry

Sinumerik下载安装与开启OPC UA---kalrry前言一、安装前准备二、Win7安装1、软件安装2、开启授权3、文件配置4、客户端连接三、Win10/11安装四、启动后使用前言 本教程只适用于 Sinutrain-v4.7 版本,其他版本配置目录有所改变建议安装到默认路径,否则后…

【云原生】k8s安全机制

内容预知 前言 1. 认证(Authentication) 1.1 k8s集群内的三种认证方式 1.2 k8s集群内的认证说明 (1)需要被认证的访问类型 (2)安全性说明 (3)证书颁发的方式 (4&a…

Qt中使用qt自带的函数实现各种进制间的相互转换,easy.

文章目录一.十进制转各种进制第一种:使用QString的静态函数number第二种:使用QString的拼接函数arg二.各种进制相互转换一.十进制转各种进制 第一种:使用QString的静态函数number ①使用QString的静态函数number即可,如我把字符…

嵌入式linux-进程状态与进程关系

1. 进程状态 1.1什么是进程状态 Linux 系统下进程通常存在 6 种不同的状态,分为:就绪态、运行态、僵尸态、可中断睡眠状态(浅度 睡眠)、不可中断睡眠状态(深度睡眠)以及暂停态。 下面我们来一一总结一下&…

数据湖之Hudi基础:入门介绍和编译部署

主要记录下Hudi的概述和打包编译等内容,方便参考 文章目录简介官网发展历史Hudi特性使用场景安装部署编译环境准备编译hudi1.源码包上传到服务器2.修改pom文件3.修改源码兼容hadoop34.手动安装kafka依赖(非必须)5.解决spark模块依赖冲突6.执行…