【软考系统规划与管理师笔记】第2篇 信息技术知识1

news2024/11/24 16:08:49

目录

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。

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

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

相关文章

低代码平台中的分布式 RPC 框架 (约 3000 行代码)

RPC 是分布式系统设计中不可或缺的一个部分。国内开源的 RPC 框架很多,它们的设计大都受到了 dubbo 框架的影响,核心的抽象概念与 dubbo 类似。从今天的角度上看,dubbo 的设计已经过于繁琐冗长,如果基于现在的技术环境&#xff0c…

Go语言WEB开发[html/template包]

Go语言Web开发 Go语言提供了html/template包来支持模板渲染。Go提供的html/template包对HTML模板提供了丰富的模板语言,主要用于Web应用程序。 模板中的变量 模板中的变量通过{{.}} 来访问。 {{.}} 称为管道和root。 在模板文件内,{{.}}代表当前变量&…

【ROS】ROS2命令行工具详解

1、简介 ROS1中每个功能都使用ros开头的命令行工具&#xff0c;如&#xff1a;roscore、rosrun等 ROS2中只有一个命令行工具ros2&#xff0c;各个功能模块通过参数子命令来实现 ~$ ros2 -h 用法: ros2 [-h] [--use-python-default-buffering] <command> ……选项:-h, …

二叉树的认识

愚昧将使你达不到任何成果&#xff0c;并在失望和忧郁之中自暴自弃。 --达芬奇 目录 &#x1f341;一.二叉树的概念 &#x1f341;二.二叉树的特点&#xff0c;结构 &#x1f341;三.三种特殊的二叉树 &#x1f341;1.斜树 &#x1f341;2.满二叉树 …

Learning C++ No.24 【哈希/散列实战】

引言&#xff1a; 北京时间&#xff1a;2023/5/20/7:30&#xff0c;周六&#xff0c;可惜有课&#xff0c;而且还是早八&#xff0c;说明我们现在没有多少的学习时间啦&#xff01;得抓紧把该博客的引言给写完&#xff0c;我们距离期末考越来越近啦&#xff01;再过一个星期就…

客服系统搭建,这些技能你必须知道

作为客服系统领域的专家&#xff0c;我来为大家介绍一些客服系统搭建的技能。在本文中&#xff0c;你将了解到如何搭建一个高效的客服系统以及如何应对可能出现的问题。 选择合适的客服系统 在选择客服系统时&#xff0c;需要考虑以下几个因素&#xff1a; 处理的工单量用户…

《人月神话》译文修订明细(3)-读者可以对照修改

《人月神话》译文修订明细&#xff08;1&#xff09;-读者可以对照修改 《人月神话》译文修订明细&#xff08;2&#xff09;-读者可以对照修改 《人月神话》译文修订如下&#xff0c;读者可以对照自己手上的书修改。 相关阅读 这回真要动刀子-征集《人月神话》中译本的翻译…

java开发学习框架

Java基础 1.1. Java简介与安装 1.2. Java基本语法 1.3. 数据类型与变量 1.4. 运算符与表达式 1.5. 流程控制&#xff08;分支与循环&#xff09; 1.6. 数组 面向对象编程 2.1. 类与对象 2.2. 继承与多态 2.3. 接口与抽象类 2.4. 封装与访问控制 2.5. 重载与覆盖 2.6. Java内存管…

【面试题】 ES6中将非数组转换为数组的三种方法

大厂面试题分享 面试题库 前后端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 web前端面试题库 VS java后端面试题库大全 我们常常想使用数组的方法&#xff0c;比如forEach&#xff0c;filter&#xff0c;又或者so…

ChatGPT、Java 8 文档、MySQL都说 JDBC 没必要 `Class.forName()`,结果报错了……

文章目录 回顾 Tomcat 部署 WAR 应用报错找不到数据库驱动的问题ChatGPT、Javadoc 和 MySQL 驱动都说没必要 Class.forName()实验创建一个最小复现问题的 Demo不调用 Class.forName("com.mysql.cj.jdbc.Driver")调用 Class.forName("com.mysql.cj.jdbc.Driver&q…

chatgpt赋能python:Python的输出功能及其应用

Python的输出功能及其应用 Python是一种高级编程语言&#xff0c;它具有动态类型的解释性能力&#xff0c;是一种简洁、易于学习和易于阅读的编程语言。Python拥有非常强大的输出功能&#xff0c;使得开发者可以以多种形式输出数据结果&#xff0c;这对于数据分析、数据处理和…

人工智能值不值得学习?人工智能就业方向及前景

人工智能值不值得学习? 一、人工智能值得学吗&#xff1f; 很多同学想要知道人工智能值得学吗&#xff1f;小编认为是值得的&#xff0c;具体原因有以下两点&#xff1a; 1、人工智能专业前景好&#xff0c;但人才紧缺 根据人工智能行业的专家预计&#xff0c;到2020年&am…

华为CE12808/S9700交换机istack/CSS堆叠主备倒换操作命令步骤

一、华为CE12808交换机&#xff0c;istack堆叠状态 1、设备型号&#xff1a; 交换机一&#xff1a; HUAWEI CE12808 交换机二&#xff1a; HUAWEI CE12808 2、istack堆叠主备倒换操作步骤&#xff1a; 2.1、设备当前配置保存并进行备份。 2.2、切换所用命令。 执行命令display…

红黑树的插入。

一&#xff0c;一颗红黑树满足的性质 ①每个结点或是红色&#xff0c;或是黑色。 ②根结点是黑色的。 ③叶结点&#xff08;虚构的外部节点NULL结点&#xff09;都是黑色的。 ④不存在两个相邻的红结点。 ⑤对每个结点&#xff0c;从该结点到任一结点的简单路径上&#xff0c;…

【JavaSE】Java基础语法(二十):多态

文章目录 1. 多态的概述2 .多态中的成员访问特点3. 多态的好处和弊端4. 多态中的转型5. 多态中转型存在的风险和解决方案 (应用)6. 多态的实用价值 1. 多态的概述 什么是多态 同一个对象&#xff0c;在不同时刻表现出来的不同形态 多态的前提 要有继承或实现关系要有方法的重写…

SQLite 数据库入门教程(GO)

文章目录 SQLite数据库入门教程一、SQLite 简介1、什么是 SQLite&#xff1f;2、为什么要用 SQLite&#xff1f; 二、SQLite 安装1、在 Windows 上安装 SQLite2、在 Linux 、Mac OS上安装 SQLite 三、SQLite 命令四、SQLite 使用1、SQLite 数据类型2、SQLite 语法3、SQLite 可视…

chatgpt赋能python:Python百分比怎么算?-从基础到逐层深入

Python百分比怎么算&#xff1f; - 从基础到逐层深入 Python是目前全球最流行的编程语言之一&#xff0c;由于其易学易用的特点&#xff0c;广泛地应用于数据处理、Web开发、自动化测试等不同领域。当我们需要对一些数据进行计算和分析时&#xff0c;经常需要对百分比进行计算…

Linux第二天

上传 scp -r 本地文件路劲 用户名目标主机地址&#xff1a;路径 下载&#xff1a;scp -r 用户名目标主机地址&#xff1a;路径 本地目录 ls -A /root //查看root文件下所有的隐藏文件 命令&#xff1a;ls 选项&#xff1a; -l&#xff1a;查看文件属性 -h&#xff1a;文…

【Python】继承与多态

知识目录 一、写在前面✨二、继承三、多态四、Account和FreeChecking类的实现五、总结撒花&#x1f60a; 一、写在前面✨ 大家好&#xff01;我是初心&#xff0c;希望我们一路走来能坚守初心&#xff01; 今天跟大家分享的文章是 Python中的继承与多态 &#xff0c;希望能帮…

在windows下安装linux和kali子系统

目录 安装子系统 报错解决官方方法 步骤 1 - 启用适用于 Linux 的 Windows 子系统 步骤 2 - 检查运行 WSL 2 的要求 步骤 3 - 启用虚拟机功能 步骤 4 - 下载 Linux 内核更新包 步骤 5 - 将 WSL 2 设置为默认版本 步骤 6 - 安装所选的 Linux 分发 排查安装问题 下载发行…