【2023年11月第四版教材】《第5章-信息系统工程之软件工程(第一部分)》

《第5章-信息系统工程(第一部分)》

  • 章节说明
  • 1 软件工程
    • 1.1 架构设计
    • 1.2 需求分析

章节说明

65%为新增内容, 预计选择题考5分,案例和论文不考;本章与第三版教材一样的内容以楷体字进行标注!

1 软件工程

1.1 架构设计

1、软件架构设计的一个核心问题是能否达到架构级的软件复用

2、通用软件架构:数据流风格、调用/返回风格、独立构件风格、虚拟机风格和仓库风格

风格类型解释说明
数据流风格处理整修构风格和道/过滤器两种风格【批管】(21下9)
调用/返回风格程序/程序、数据抽象和面向对象,以及次结构【主子抽象层面】(19上7)
独立构件风格进程通信和件驱动的系统【进程办事】(18上7)
虚拟机风格解释器和基于规则的系统【解释规则】
仓库风格数据系统、,板系统、文本系统【库黑超】

3、在架构评估过程中,评估人员所关注的是系统的质量属性。(17下7)

4、敏感点是一个或多个构件(和/或构件之间的关系)的特性,权衡点是影响多个质量属
性的特性,是多个质量属性的敏感点

5、基于场景的方式主要包括:架构权衡分析法(ATAM)、软件架构分析法(SAAM)和成本 效益分析法(CBAM)中。在架构评估中,一般采用刺激、环境响应三方面来对场景进行描述。 刺邀是场景中解释或描述项目干系人怎样引发与系统的交互部分,环境描述的是刺激发生时的情况,响应是指系统是如何通过架构对刺激作出反应的。

6、基于场景的方式分析软件架构对场景的支持程度,从而判断该架构对这一场景所代表的质量需求的满足程度。

1.2 需求分析

1、需求层次包括业务需求、用户需求系统需求。(18下7)

需求类型解释说明
业务需求反映企业或客户对系统高层次的目标要求,通常来自项目投资人、购买产品的客户、客户单位的管理人员、市场营销部门或产品策划部门
用户需求描述的是用户的具体目标,或用户要求系统必须能完成的任务。也就是说,用户需求描述了用户能使用系统来做些什么(19上10)
系统需求系统的角度来说明软件的需求,包括功能需求、非功能需求和设计约束

2、质量功能部署(QFD)是一种将用户要求转化成软件需求的技术,其目的是最大限度地提升软件工程过程中用户的满意度。为了达到这个目标,QFD将软件需求分为三类,分别是常规需求期望需求意外需求。(21上9)
(1)常规需求:用户认为系统应该做到的功能或性能,实现越多用户会越满意。
(2)期望需求:用户想当然认为系统应具备的功能或性能,但并不能正确描述自己想要
得到的这些功能或性能需求。如果期望需求没有得到实现,会让用户感到不满意。
(3)意外需求:也称为兴奋需求,是用户要求范围外的功能或性能(但通常是软件开发人员
很乐意赋予系统的技术特性),实现这些需求用户会更高兴,但不实现也不影响其购买的决策。

3、需求过程主要包括需求获取、需求分析、需求规格说明书编制、需求验证与确认等。

过程具体内容
需求获取求获取只有与用户的有效合作才能成功。常见的需求获取方法包括用户访谈、 问卷调查、采样、情节串联板、联合需求计划等。
需求分析1.一个好的需求应该具有无二义性、完整性、一致性、可测试性、确定性、可跟踪性、正确性、必要性等特性,因此,需要分析人员把杂乱无章的用户要求和期望转化为用户需求,这就悬霜条分析的工作。
2.需求分析对已经获取到的需求进行提炼、分析和审查,以确保所有的项目干系人都明白其含义并找出其中的错误、遗漏或其他不足的地方。
3.面向对象的分析98k模型包括用例模型分析模型
需求规格说明书的编制**软件需求规格则书(SRS)**是需求开发活动的产物,编制该文档的目的是使项目干系人与立团队对系统的初始规定有一个共同的理解
需求验证与确认一般通过需求评审需求测试工作来对需求进行验证。
👉需求评审:对SRS进行技术评审:二义性的或不确定性的需求,为项目干系人提供在需求问题上达成共识的方法。
👉需求测试:及早发现问题,从而在需求开发阶段以较低的代价解决这些问题。

4、使用SA方法进行需求分析,其建立的模型的核心是数据字典,围绕这个核心,有三个
层次的模型,分别是数据模型、功能模型和行为模型(也称为状态模型)。(22上9)

模型 表示图形 表示图形的作用
据模型体联系图(E-R图) 描述实体、属性,以及实体之间的关系 【实数】
模型数据图(DFD)从数据传递和加工的角度,利用图形符号通过逐层细分描述系统内各个部件的功能和数据在它们之间传递的情况, 来说明系统所完成的功能 【能流】:(19下7) (20下8)
为模型 态转换图(STD) 通过描述系统的状态和引起系统状态转换的事件,来表示系统的行为,指出作为特定事件的结果将执行哪些动作 【形状】

4、UML的结构包括构造块、规则公共机制三个部分

5、UML中的事物也称为建模元素,包括结构事物、行为事物(也称动作事物)、分组事物注释事物(也称注解事物)。

6、UML中的关系
(1)依赖:是两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义。
(2)关联:描述一组对象之间连接的结构关系。分为组合和聚合,都是部分和整体的关系, 其中组合事物之间关:系更强,部分和整体之间有共同的生命周期。
(3)泛化:一般/特殊的关系,子类和父类之间的关系。继承关系是泛化关系的反关系, 也就是说,子类继承了父类,而父类则是子类的泛化
(4)实现:是类之间的语义关系,一个类元指定了另一个类元保证执行的契约。

7、UML14 种图(18 上 27)

图形描述
用例图 描述一组用例、参与者及它们之间的关系
类图展现了一组对象、接口、协作和它们之间的关系。是最常见的图。类图给出了系统的静态设计视图,活动类的类图给出了系统的静态进程视图
对象图描述一组对象及它们之间的关系。描述了在类图中所建立的事物实例的静态快照。
构件图描述一个封装的类和它的接口、端口,以及由内嵌的构件连接件构成的内部结构
组合结构图描述结构化类(例如,构件或类)的内部结构,包括结构化类与系统其余部分的交互点。用于画出结构化类的内部内容
顺序图(序列图)一种交互图,交互图展现了一种交互,它由一组对象或参与者以及它们之间可能发送的消息构成。交互图专注于系统的动态视图顺序图是强调消息的时间次序的交互图
通信图(协作图)一种交互图,它强调收发消息的对象或参与者的结构组织。顺序图强调的是时序通信图强调的是对象之间的组织结构
定时图(计时图)一种交互图,它强调消息跨越不同对象或参与者的实际时间,而不仅仅只是关心消息的相对顺序(17下26)
状态图描述一个状态机,它由状态、转移、事件和活动组成。给出了对象的动态视图(18下27)
活动图将进程或其他计算结构展示为计算内部一步步的控制流和数据流。活动图专注于系统敖力法视图。它对系统的功能建模和业务流程建模特别重要,并强调对象间的控制流程
部署图描述对运行时的处理节点及在其中生存的构件的配置。部署图给出了架构的静态部署视图,通常一个节点包含一个或多个部署图
制品图 描述计算机中一个系统的物理结构
包图 描述由模型本身分解而成的组织单元,以及它们之间的依赖关系
交互概览图是活动图和顺序图的混合物。

8、UML5个系统视图:【记忆口诀:裸线不用进

UML系统视图解释说明
1辑视图 也称为设计视图,它表示了设计模型中在架构方面具有重要意义的部分, 即类、子系统、自和用例实现的子集(17下27)
2视图对组成基于系统的物理代码的文件和构件进行建模
3视图把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构
4例视图是最基本的需求分析模型
5程视图是可执行线程进程作为活动类的建模,它是逻辑视图的一次执行实例, 描述了并发与同步结构

9、面向对象分析阶段的核心工作是建立系统的用例模型与分析模型

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

11、用例之间关系
(1)包含关系:当可以从两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示它们。
(2)扩展关系:是如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,这样使描述可能更加清晰
(3)泛化关系:当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。父子关系、一般和特殊关系

12、类之间关系有关联、依赖、泛化、聚合、组合和实现

关系解释说明
关联 提供了不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。 现的是对象实例之间的关系,而不表示两个类之间的关系。(19上23)
依赖 两个类A和B,如果B的变化可能会引起A的变化,则称类A依赖于类B
泛化 描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。 继承关系是泛化关系的反关系,子类继承了父类,而父类则是子类的泛化
共享聚集简称为聚合关系,它表示类之间的整体与部分的关系,其含义是"部分”可能同时属于多个“整体“部分"与"整体”的生命周期可以不相同。例如,汽车和车轮就是聚合关系,车子坏了,车轮还可以用;车轮坏了,可以再换一个新的。
组合聚集简称为组合关系,它也是表示类之间的整体与部分的关系。与聚合关系的区别在于,组合关系中的“部分Ng杷属于一个“整体”,“部分”与“整体”的生命周期相同,“部分”随着“整体”的创建而创建,也随着“整体”的消亡而消亡。例:一个公司包含多个部门, 它们之间的关系就是组合关系。公司一旦倒闭,也就没有部门了。
实现关系说明和实现联系起来。接口是对行为而非实现的说明,而类中则包含了实现的结构。 一个或多个类可以实现一个接口,而每个类分别实现接口中的操作。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux文件权限一共10位长度,分成四段

Linux文件权限一共10位长度,分成四段 Linux文件权限 1、 文件aaa的访问权限为rw-r--r--,现要增加所有用户的执行权限和同组用户的写权限,下列哪些命令是正确的? a) chmod ax gw aaa √ b) chmod 764 aaa c) chmod 775 aaa √ d)…

vue3+vite+pinia

目录 一、项目准备 1.1、Vite搭建项目 1.2、vue_cli创建项目 二、组合式API(基于setup) 2.1、ref 2.2、reactive 2.3、toRefs 2.4、watch和watchEffect 2.5、computed 2.6、生命周期钩子函数 2.7、setup(子组件)的第一个参数-props 2.8、setup(子组件)的第二个参数…

贴吧照片和酷狗音乐简单爬取

爬取的基本步骤 很简单,主要是两大步 向url发起请求 这里注意找准对应资源的url,如果对应资源不让程序代码访问,这里可以伪装成浏览器发起请求。 解析上一步返回的源代码,从中提取想要的资源 这里解析看具体情况,一…

什么是前端框架?怎么学习? - 易智编译EaseEditing

前端框架是一种用于开发Web应用程序界面的工具集合,它提供了一系列预定义的代码和结构,以简化开发过程并提高效率。 前端框架通常包括HTML、CSS和JavaScript的库和工具,用于构建交互式、动态和响应式的用户界面。 学习前端框架可以让您更高效…

python爬虫——爬虫伪装和反“反爬”

前言 爬虫伪装和反“反爬”是在爬虫领域中非常重要的话题。伪装可以让你的爬虫看起来更像普通的浏览器或者应用程序,从而减少被服务器封禁的风险;反“反爬”则是应对服务器加强的反爬虫机制。下面将详细介绍一些常见的伪装和反反爬技巧,并提…

加杠杆的股票类型是什么?

加杠杆的股票类型在投资领域有不同的称呼,包括杠杆股票、倍增股票、奇特股票等。这些股票类型都具有共同的特点,即提供给投资者以杠杆交易的机会,可以放大投资的回报。以下是对加杠杆的股票类型的介绍。 1. 杠杆型基金:杠杆型基金…

Java+Excel+POI+testNG基于数据驱动做一个简单的接口测试【杭州多测师_王sir】

一、创建一个apicases.xlsx放入到eclipse的resource里面&#xff0c;然后refresh刷新一下 二、在pom.xml文件中加入poi和testng的mvn repository、然后在eclipse的对应目录下放入features和plugins&#xff0c;重启eclipse就可以看到testNG了 <!--poi excel解析 --><d…

ChatGPT​保密吗?它有哪些潜在风险?如何规避?

自2022年11月公开发布以来&#xff0c;ChatGPT已成为许多企业和个人的必备工具&#xff0c;但随着该技术越来越多地融入我们的日常生活&#xff0c;人们很自然地想知道&#xff1a;ChatGPT是否是保密的。 问&#xff1a;ChatGPT保密吗&#xff1f; 答&#xff1a;否&#xff0…

Unity 工具 之 Azure 微软SSML语音合成TTS流式获取音频数据的简单整理

Unity 工具 之 Azure 微软SSML语音合成TTS流式获取音频数据的简单整理 目录 Unity 工具 之 Azure 微软SSML语音合成TTS流式获取音频数据的简单整理 一、简单介绍 二、实现原理 三、实现步骤 四、关键代码 一、简单介绍 Unity 工具类&#xff0c;自己整理的一些游戏开发可…

企事业数字培训及知识库平台

前言 随着信息化的进一步推进&#xff0c;目前各行各业都在进行数字化转型&#xff0c;本人从事过医疗、政务等系统的研发&#xff0c;和客户深入交流过日常办公中“知识”的重要性&#xff0c;再加上现在倡导的互联互通、数据安全、无纸化办公等概念&#xff0c;所以无论是企业…

jvs-rules API数据源配置说明(含配置APIdemo视频)

在JVS中&#xff0c;多数据源支持多种形态的数据接入&#xff0c;其中API是企业生产过程中常见的数据形态。使用数据源的集成配置&#xff0c;以统一的方式管理和集成多个API的数据。这些平台通常提供各种数据转换和处理功能&#xff0c;使得从不同数据源获取和处理数据变得更加…

tomcat设置PermSize

最近tomcat老是报错,查看了日志出现PermGen 内存不够用,重启tomcat后查询使用情况 通过启动参数发现没有设置 PermGen,继续通过jmap查看 jmap -heap 21179 发现99%已使用,而且默认是30.5M,太小了,这里设置成256M 1. 创建setenv.sh文件 在/usr/local/tomcat/bin目录下创建一个…

Gradio部署应用到服务器不能正常访问

用Gradio部署一个基于ChatGLM-6B的应用&#xff0c;发布到团队的服务器上&#xff08;局域网&#xff0c;公网不能访问&#xff09;&#xff0c;我将gradio应用发布到服务器的9001端口 import gradio as gr with gr.Blocks() as demo:......demo.queue().launch(server_port90…

leetcode228. 汇总区间

题目 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说&#xff0c;nums 的每个元素都恰好被某个区间范围所覆盖&#xff0c;并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中的每个区间范围 [a,b]…

BUUCTF pwn1_sctf_2016解题思路

题目代码 Welcome to index.php <?php //flag is in flag.php //WTF IS THIS? //Learn From https://ctf.ieki.xyz/library/php.html#%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E9%AD%94%E6%9C%AF%E6%96%B9%E6%B3%95 //And Crack It! class Modifier {protected $var;publi…

04 qt功能类、对话框类和文件操作

一 QT中时间和日期 时间 ---- QTime日期 ---- QDate对于Qt而言,在实际的开发过程中, 1)开发者可能知道所要使用的类 ---- >帮助手册 —>索引 -->直接输入类名进行查找 2)开发者可能不知道所要使用的类,只知道开发需求文档 ----> 帮助 手册,按下图操作: 1 …

Arcgis中直接通过sde更新sqlserver空间数据库失败

问题 背景 不知道有没有人经历过这样一个情况,我们直接在Arcgis中通过sde更新serserver数据库会失败,就是虽然在sde更新sqlserver数据库,但是在Navicat中通过sql语句来查询,发现数据并没有更新,如:上图中,更新数据库后,第一张图是sde打开的sqlserver数据库,它的数据库…

解析固态光耦的独特特点和优势

固态光耦概述及其重要性 固态光耦是一种电子元件&#xff0c;具有独特的光电隔离功能&#xff0c;广泛应用于电气控制、通信和电力系统等领域。本文将深入探讨固态光耦的特点和优势&#xff0c;介绍它在市场中的重要性以及如何提高收录和首页排名。 高速、高精度的信号传输 …

Leetcode-每日一题【剑指 Offer 26. 树的子结构】

题目 输入两棵二叉树A和B&#xff0c;判断B是不是A的子结构。(约定空树不是任意一个树的子结构) B是A的子结构&#xff0c; 即 A中有出现和B相同的结构和节点值。 例如: 给定的树 A: 3 / \ 4 5 / \ 1 2 给定的树 B&#xff1a; 4 / 1 返回 true&#xff0…

Springboot整合RabbitMq,详细使用步骤

Springboot整合RabbitMq&#xff0c;详细使用步骤 1 添加springboot-starter依赖2 添加连接配置3 在启动类上添加开启注解EnableRabbit4 创建RabbitMq的配置类&#xff0c;用于创建交换机&#xff0c;队列&#xff0c;绑定关系等基础信息。5 生产者推送消息6 消费者接收消息7 生…