【软考系统规划与管理师笔记】第2篇 信息技术知识1
目录
1 软件工程
1.1 软件需求分析与定义
1.2 软件设计、测试与维护
1.3 软件质量保证及质量评价
1.4 软件配置管理
1.5 软件过程管理
1.6 软件复用
2 面向对象系统分析与设计
2.1 面向对象设计的基本概念
2.2统一建模语言与可视化建模
3. 应用集成技术
3.1 数据库与数据仓库
3.2 WebServices技术
3.3 JavaEE 架构和J2EE架构
3.4 NET 架构
3.5 软件中间件
1 软件工程
1.1 软件需求分析与定义
软件的需求必须是可以验证的,无法验证的需求没有意义,这也是目前很多公司推进测试参与设计的原因,避免有些需求实现之后发现无法测试,导致重做。
扩展,很多公司在前期设计时经常拉很多人如产品、开发、测试、运维开会,导致会议很多,很多程序员不喜欢开这样的会(准确的说是不喜欢白天开这样的会议,晚上自己实现代码),但是如果提高一点视觉,这样的会从公司层面来说是非常有必要,而且整体成本较低的一种模式,会议本身也是一种项目实施工作。
需求分析的目标:检测和解决需求之间的冲突,发现系统的边界,描述系统的需求。
1.2 软件设计、测试与维护
软件设计:根据软件需求,产生一个软件内部结构的描述,并将其作为软件构造的基础。通过软件设计,描述出软件架构及相关组件之间的接口;然后,进一步详细地描述组件,以便能构成这些组件。
通过软件设计得到要实现的各种不同模型,并确定最终方案。其可以划分为软件架构设计(也叫作高层设计)和软件详细设计两个阶段。
软件测试:为了评价和改进产品质量、识别产品的缺陷和问题而进行的活动。
测试不再只是一种仅在编码阶段完成后才开始的活动。现在的软件测试被认为是一种应该包括在整个开发和维护过程中的活动,它本身是实际产品构造的一个重要部分。 软件测试伴随开发和维护过程,通常可以在概念上划分为单元测试、集成测试和 系统测试3个阶段。
软件维护:将软件维护定义为需要提供软件支持的全部活动。这些活动包括在交 前完成的活动,以及交付后完成的活动。交付前要完成的活动包括交付后的运行计划 和维护计划等。交付后的活动包括软件修改、培训、帮助资料等。
软件维护有如下类型:
①更正性维护——更正交付后发现的错误;
②适应性维 护——使软件产品能够在变化后或变化中的环境中继续使用;
③完善性维护——改进交付后产品的性能和可维护性;
④预防性维护——在软件产品中的潜在错误成为实际错误前,检测并更正它们。
1.3 软件质量保证及质量评价
软件的质量包括:内部质量、外部质量和使用质量三部分(记住即可)
验证与确认的概念(CMMI中的概念,在翻译过程中导致有些难以理解)
验证过程:尝试确保活动的输出产品构造正确,即活动的输出产品满足活动的规范说明。
确认过程:则试图确保构造了正确的产品,即产品满足其特定的目的
1.4 软件配置管理
软件的配置管理活动包括:软件配置管理计划、软件配置标识、软件配置控制、软件配置状态记录、软件配置审计、软件发布管理与缴费等活动
扩展:在学校里搞代码开发时,往往不太重视软件的工程化特别是配置管理,但是在工作中软件的配置管理非常重要!配置管理计划、标识、版本发布未必要多么复杂,但是要有,特别是要实用、可控、可追溯,相信很多读者读经历过上线产品版本错误导致问题回溯的痛苦吧,特别是创业型公司对于代码和版本的控制更是重视。
1.5 软件过程管理
包括以下5个方面(与PMP非常类似,毕竟软件过程管理也是项目管理的一种)
- 项目启动与范围定义
- 项目规划
- 项目实施
- 项目监控与评审
- 项目收尾与关闭
1.6 软件复用
软件复用是指利用已有软件的各种有关知识构造新的软件,以缩减软件开发和维护的费用。复用是提高软件生产力和质量的一种重要技术。我们经常使用的开源框架例、标准库、中间件都是可复用技术的典型产品,早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领 域知识、开发经验、设计决策、架构、需求、设计、 代码和文档等一切有关方面。
2 面向对象系统分析与设计
2.1 面向对象设计的基本概念
对象:对象由一组属性和对组属性进行的操作构成
对象的三个基本要素:对象标识、对象状态、对象行为
类:类是现实中实体的形式化描述,类将实体的属性和操作封装在一起。
类相当于产品的设计图,对象相当于产品
Car |
-type:String -color:String |
+run() |
抽象:通过特定的实例抽取共同特征以后形成概念的过程。抽象是一种单一化的描述,强调给出与应用相关的特性,抛弃不相关的特性。对象是现实世界中某个实体的抽象,类是一组对象的抽象。
封装:将相关的概念组成一个单元模块,并通过一个名称来引用它。面向对象封装是将数据和基于数据的操作封装成一个整体对象,对数据的访问或修改只能通过对象对外提供的接口进行。例如类面向对象语言中(如C++)的private成员变量,需要通过成员函数才能修改,这种思想对于提升软件的质量非常有帮助,是简单而伟大的软件开发思想。
继承:表示类之间的层次关系(父类与子类),这种关系使得某类对象可以继 承另外一类对象的特征,继承又可分为单继承和多继承。
多态:使得在多个类中可以定义同一个操作或属性名称,并在每个类中可以有 不同的体现。多态使得某个属性或操作在不同的时期可以表示不同类的对象特性。 如图所示,Rectangle和Circle都继承于Shape,对于Shape而言,会有getArea() 的操作。但Rectangle和Circle的getArea()方法的实现是完全不一样的,这就体现了多 态的特征。
接口:描述对操作规范的说明,其只说明操作应该做什么,并没有定义操作如何做。可以将接口理解成为类的一个特例,它规定了实现此接口的类的操作方法,把真正的实现细节交由实现该接口的类去完成。
接口实现了屏蔽内部干扰,实现接口的类后续内部升级,只要接口不变就不影响,相当于一块自留地
2.2统一建模语言与可视化建模
统一建模语言(Unified Modeling Language,UML)用于对软件进行可视化描述、 构造和建立软件系统的文档。需要注意的是,UML是一种可视化的建模语言,而不是编程语言。这个在选择题的选项中经常出现。
在UML中,使用各种不同的符号元素画成图形,用以表示系统的结构和行为。 UML图提供了对系统进行建模的描述方式,主要包括:
- 用例图(Use Case Diagram)
- 类图(Class Diagram)
- 对象图(Object Diagram)
- 组件图(Component Diagram)
- 部署图(Deployment Diagram)
- 状态图(State Diagram)
- 序列图(Sequence Diagram)
- 协作图(Collaboration Diagram)
- 活动图(Activity Diagram)等
RUP(Rational Unified Process)是使用面向对象技术进行软件开发的最佳实践之一, 是软件工程的过程。
3. 应用集成技术
3.1 数据库与数据仓库
数据库:主要用于事务处理,即OLTP(Transaction),也就是我们常用的面向业务的增删改查操作。常用的数据库有关系库Mysql,Oracle,PostgreSQL,内存库Redis,时序库PI。
数据仓库:主要用于数据分析,即OLAP(Analytics),供上层决策,常见于一些查询性的统计数据。常见的数仓有Greenplum,Hive。基于MYISAM存储引擎的MySQL也是可以用来做数据仓库的。
教材中的定义:数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。
3.2 WebServices技术
Web服务(Web Services)定义了一种松散的、粗粒度的分布计算模式,使用标准的HTTP(S)协议传送XML表示及封装的内容。
Web服务的典型技术包括:
- 用于传递信息的简单对象访问协议(Simple Object Access Protocal,SOAP)
- 用于描述服务的Web服务描述语言(Web Services Description Language,WSDL)
- 用于Web服务注册的统一描述、发现及集成(Universal Description Discovery and Integration,UDDI)
- 用于数据交换的XML
Web服务的主要目标是跨平台的互操作性,
适合使用Web Services的情况包括:跨越防火墙、应用程序集成、B2B集成、软件重用等。
不适合使用Web服务的情况包括:单机应用程序、局域网上的同构应用程序等。
3.3 JavaEE 架构和J2EE架构
JavaEE(Java Platform Enterprise Edition) Java企业版本是最早由Sun公司提出、各厂商共同制定 并得到广泛认可的企业标准。JavaEE概念已经比较老旧,早已被J2EE代替,J2EE的全称是Java 2 Platform Enterprise Edition,它是由SUN公司领导、各厂家共同制定的工业标准,J2EE是市场上主流的企业级分布式应用平台的解决方案(这个也有一定年头了,当然现在还有不少银行、大型企业由于历史问题仍然在使用)
3.4 NET 架构
NET开发框架在通用语言运行环境(Common Language Runtime)基础上,给开发人员提供了完善的基础类库、数据库访问技术及网络开发技术,开发者可以使用多种语言快速构建网络应用。
3.5 软件中间件
中间件(Middleware)是位于硬件、操作系统等平台和应用之间的通用服务。借由中间件,解决了分布系统的异构问题。
通常将中间件分为数据库访问中间件、远程过程调用中间件、面向消息中间件、事务中间件、分布式对象中间件等。
重点介绍一下以下中间件
数据库访问中间件:通过一个抽象层访问数据库,从而允许使用相同或相似的 出 码访问不同的数据库资源。典型技术如Windows平台的ODBC和Java平台的JDBC等。
远程过程调用中间件(Remote Procedure Call,RPC):这是一种分布式应用程序的处理方法。一个应用程序可以使用RPC来“远程”执行一个位于不同地址空间内的过程,从效果上看和执行本地调用相同。典型产品如ICE。
相关文章:

【软考系统规划与管理师笔记】第2篇 信息技术知识1
目录 1 软件工程 1.1 软件需求分析与定义 1.2 软件设计、测试与维护 1.3 软件质量保证及质量评价 1.4 软件配置管理 1.5 软件过程管理 1.6 软件复用 2 面向对象系统分析与设计 2.1 面向对象设计的基本概念 2.2统一建模语言与可视化建模 3. 应用集成技术 3.1 数据库与…...

【无标题】ELISA-3(加装跟踪装置)—让群体协作更智能!
群体智能是近年来发展迅速的一个人工智能学科领域,通过对蚂蚁、蜜蜂等为代表的社会性昆虫群体行为的研究,实现分布式等智能行为。作为新一代人工智能的重要方向,群体智能通常用于无人机、机器人集群的协同作业。目前,群体智能在基…...

Dubbo源码解析一服务暴露与发现
Dubbo 服务暴露与发现 1. Spring中自定义Schema1.1 案例使用1.2 dubbo中的相关对象 2. 服务暴露机制2.1 术语解释2.2 流程机制2.3 源码分析2.3.1 导出入口2.3.2 导出服务到本地2.3.3 导出服务到远程(重点)2.3.4 开启Netty服务2.3.5 服务注册2.3.6 总结 3. 服务发现3.1 服务发现…...

有哪些工具软件一旦用了就离不开?
💖前言 目前,随着科技的快速发展,电脑已经进入了许许多多人的生活 ,在平日的学习、工作和生活里,我们会用的各种各样的强大软件。市面上除了某些大公司开发在强大软件,还有各路大神开发具有某些功能的强大…...

ObjectARX如何判断点和多段线的关系
目录 1 基本思路2 相关知识点2.1 ECS坐标系概述2.2 其他点坐标转换接口2.3 如何获取多段线的顶点ECS坐标 3 实现例程3.1 接口实现3.2 测试代码 4 实现效果 在CAD的二次开发中,点和多段线的关系是一个非常重要且常见的问题,本文实现例程以张帆所著《Objec…...

四、DRF序列化器create方法与update方法
上一章: 二、Django REST Framework (DRF)序列化&反序列化&数据校验_做测试的喵酱的博客-CSDN博客 下一章: 五、DRF 模型序列化器ModelSerializer_做测试的喵酱的博客-CSDN博客 一、背景 1、创建请求,post,用户输入…...

洛谷P8792 最大公约数
[蓝桥杯 2022 国 A] 最大公约数 题目描述 给定一个数组,每次操作可以选择数组中任意两个相邻的元素 x , y x, y x,y 并将其中的一个元素替换为 gcd ( x , y ) \gcd(x, y) gcd(x,y),其中 gcd ( x , y ) \gcd(x, y) gcd(x,y) 表示 x x x 和 y…...

【SpringBoot集成Nacos+Dubbo】企业级项目集成微服务组件,实现RPC远程调用
文章目录 一、需求环境/版本 二、须知2.1、什么是RPC?2.2、什么是Dubbo?2.3、什么是Nacos? 三、普通的SpringBoot项目集成微服务组件方案(笔者给出两种)方案一(推荐)1、导入maven依赖࿰…...

MySQL主从同步(开GTID)
目录 一、搭建简单的主从同步 二、mysql删除主从(若没有配置过可以不用进行这一步) 1、停止slave服务器的主从同步 2、重置master服务 三、开启GTID 1、Master配置 2、Slave配置 一、搭建简单的主从同步 GTID原理:http://t.csdn.cn/g…...

打造精细化调研,这些产品榜上有名,你用了吗?
调查问卷是一种流行的数据收集工具,研究人员、营销人员和企业使用它来征求目标受众的反馈意见。调查问卷工具使创建、分发和分析调查问卷的过程变得更加简单和高效。想要做好一份调查问卷,选择一款好用的工具是少不了的。不过,在众多的问卷工…...
[golang gin框架] 37.ElasticSearch 全文搜索引擎的使用
一.全文搜索引擎 ElasticSearch 的介绍,以及安装配置前的准备工作 介绍 ElasticSearch 是一个基于 Lucene 的 搜索服务器,它提供了一个 分布式多用户能力的 全文搜索引擎,基于 RESTful web 接口,Elasticsearch 是用 Java 开发的,并作为 Apach…...

赋的几个发展阶段
赋,起源于战国,形成于汉代,是由楚辞衍化出来的,也继承了《诗经》讽刺的传统。关于诗和赋的区别,晋代文学家陆机在《文赋》里曾说: 诗缘情而绮靡,赋体物而浏亮。 也就是说,诗是用来抒发主观感情…...

Model-Free TD Control: Sarsa
import time import random # 相对于Q 效果会差一些 class Env():def __init__(self, length, height):# define the height and length of the mapself.length lengthself.height height# define the agents start positionself.x 0self.y 0def render(self, frames50):fo…...

CloudBase CMS的开发注意事项
引言 在进行基于云开发的微信小程序开发时为了减轻工作量打算用CloudBase CMS来减轻工作量,随后去了解并体验了CloudBase CMS的使用,总体来说还有些许问题没有解决,对减轻后台管理工作并没有起到很大的作用。 项目情景 使用CloudBase CMS来管…...

大佬联合署名!反对 ACL 设置匿名期!
夕小瑶科技说 原创 作者 | 智商掉了一地、Python 近日,自然语言处理领域的多位知名学者联合发起了一项反对 ACL 设置匿名期的联合署名行动,包括著名学者 William Wang 和 Yoav Goldberg 在内,还有Christopher Potts、Hal Daume、Luke Zettl…...

【JavaSE】Java基础语法(十四):Static
文章目录 概述特点与应用注意事项为什么一个静态方法中只能访问用static修饰的成员? 概述 Java中的static是一个修饰符(也可称关键字),可以用于修饰变量、方法和代码块。 特点与应用 static修饰的成员具有以下特点: 被类的所有对…...

1.Linux初识
在 Linux 系统中,sudo 是一个重要的命令,可以允许普通用户以管理员权限来运行特定的命令。通过 sudo 命令,普通用户可以暂时获取管理员权限,执行需要管理员身份才能执行的操作。 下面是一些关于 sudo 命令的用法: 以管…...

进程(二)
这一节我们写个MFC剪切板程序 1.下载相应的组件 工具->工具视图,因为之前已经下载过一部分了,这里如果创建MFC报错的话,就要把没下载的补上 此项目需要MFC库 解决方法 2.创建MFC程序 3.打开资源视图,直接在菜单栏顶部搜索…...

《消息队列高手课》课程笔记(二)
消息模型:主题和队列有什么区别? 两类消息模型 早期的消息队列,就是按照“队列”的数据结构来设计的。 生产者(Producer)发消息就是入队操作,消费者(Consumer)收消息就是出队也就是…...

以“智”提质丨信创呼叫
随着人工智能、大数据、云计算等新兴技术飞速发展,呼叫中心、全媒体智能客服等现已被广泛应用于多个行业领域。其中,呼叫中心作为政企对外服务的重要窗口,已从“传统电话营销”发展到“智能呼叫中心”阶段,以客户服务为核心&#…...

Pool与PG的说明以及Ceph的IO流程
Pool与PG的说明以及Ceph的IO流程 Pool与PG Ceph中的数据是以对象的形式存储在存储池(pool)中的。每个存储池都被划分为若干个存储组(PG),每个存储组同时也是一个数据分片(shard)。存储组是Ceph用来实现数据的分布式存储和高可用的重要组成部分。每个存储组包含若干…...

20230529_Hadoop_集群操作命令
HDFS_集群操作命令: 一、集群启停命令 # 启动Hadoop的HDFS进程start-dfs.sh# 关闭Hadoop的HDFS进程stop-dfs.sh# 单独关闭某一个进程hadoop-daemon.sh start[/stop] namenode[/datanode/secondarynamenode]二、HDFS文件系统的基本信息 数据的路径表达方式ÿ…...

边缘计算AI硬件智能分析网关V1版的接入流程与使用步骤
我们的AI边缘计算网关硬件——智能分析网关目前有两个版本:V1版与V2版,两个版本都能实现对监控视频的智能识别和分析,支持抓拍、记录、告警等,在AI算法的种类上和视频接入上,两个版本存在些许的区别。V1的基础算法有人…...

【redis】Stream、String 超详细介绍
文章目录 一、Stream1.1 写入数据XADD条目 ID 的格式 1.2 获取数据XRANGE 和 XREVRANGEXREAD 监听新条目非阻塞形式阻塞形式 1.3 消费者组XGROUP 创建消费者组XREADGROUP 通过消费者组消费XACK 确认消息消费者组示例 1.4 XPENDING 和 XCLAIM 认领 其他消费者 的待处理消息XPEND…...

算法基础学习笔记——⑫最小生成树\二分图\质数\约数
✨博主:命运之光 ✨专栏:算法基础学习 目录 ✨最小生成树 🍓朴素Prim 🍓Kruskal算法 ✨二分图 🍓匈牙利算法 ✨质数 🍓(1)质数的判定——试除法 🍓(2&…...

了解信号的传输方式、编码与调制、信道的极限容量
1.了解信号的传输方式、编码与调制、信道的极限容量 笔记来源: 湖科大教书匠:传输方式 声明:该学习笔记来自湖科大教书匠,笔记仅做学习参考 1.1 了解信号的传输方式 串行传输与并行传输 同步传输与异步传输 为什么需要收发双发…...

SpringBoot自动配置原理总结
1、我们需要从主启动类的SpringBootApplication注解开始分析: SpringBootApplication是一个复合注解,进入以后看到主要包括以下三个注解: SpringBootConfiguration EnableAutoConfiguration ComponentScan(excludeFilters { Filter(type …...

【LeetCode: 410. 分割数组的最大值 | 暴力递归=>记忆化搜索=>动态规划 】
🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…...

内核对象和两种同步
概念 Windows 中每个内核对象都只是一个内存块,它由操作系统内核分配,并只能由操作系统内核进 行访问 它的所有者:内核对象的所有者是操作系统内核,而非进程,也就是说当进程退出,内核对象不一定会销毁 法…...

水表远程监控系统有什么功能吗?
水表远程监控系统是通过远程传输水表数据,实现对水表的远程监控和管理的一种智能化系统。它主要具备以下功能: 1.远程抄表功能:通过远程传输技术,实现对水表的远程抄表和监控,无需人工上门抄表,节省人力成本…...