软件工程期末速成--附带几道题

软件工程中的各种设计

瀑布模型:

定义:将软件生存周期的各项活动规定为依照固定顺序连接的若干阶段工作,形如瀑布流水,最终得到软件产品

系统流程图:系统流程图是描绘物理系统的传统工具,它的基本思想是用图形符号以黑盒子形式描绘系统里面的每一个部件(程序、文件、数据库、表格、人工过程等) 

数据流图:DFD是一种描述逻辑模型的图形工具,表示数据在系统内的变化。图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。DFD从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。它由数据流、加工、文件和数据流的源点和终点构成。 

数据字典:是一种描述逻辑模型的工具。它对于数据流图中所出现的所有被命名的图形元素作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。DD的内容包括:图形元素的名字、别名或编号、分类、描述、定义、位置等。 

ER图:学过数据库的应该都知道这个东西

ERD描绘了系统的数据关系。分析实体联系图有助于对业务或系统数据组成的理解和交互,并暗示产品将有必要包含一个数据库。ER模型三要素有:数据对象属性和联系

 状态转换图:

状态转换图简称状态图。通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。它由1个初态/初始状态、0-N个终态/最终状态和若干个中间状态组成

层次方框图

 用属性结构的一系列多层次的矩形框描述数据的层级结构

IPO图:定义:输入、处理、输出图的简称

层次图

层次图(也称H图)是在总体设计阶段最常使用的图形工具之一,它常用于描绘软件的层次结构。矩形代表一个模块,连线表示调用关系,适于在自顶向下设计软件的过程中使用;与层次方框图类似 

HIPO图

IBM公司发明的“层次图加输入/处理/输出图”的缩写;为了能使HIPO图具有可跟踪性,在H图例除了最顶层的方框之外,每个方框都加了编号:和H图中的每个方框相对应,有一张IPO图描述这个方框代表的模块的处理过程。IPO图能够方便地描述数据输入、数据处理和数据输出之间的关系。

结构图 

一个方框/矩形代表一个模块,箭头连线/直线表示调用关系,带有注释的箭头表示模块调用过程中来回传递的信息 

程序流程图:

N-S图:

其主要特点包括:

1]功能域明确;

2]不可以随意转移;

3]容易确定局部和全局数据的作用域;

4]容易表达嵌套关系

判定表

某数据流图的加工需要依赖于多个逻辑条件的取值,就是说完成这一加工的一组动作是由于某一组条件取值的组合而引发的。这时使用判定表来描述比较合适。判定表通常由四部分组成,即:条件桩、操作桩、条件条目和操作条目。

判定树:判定表的变种

用例图:

用例图是被称为参与者的外部用户所能观察到的系统功能概念的模型图;用例是系统中的一个功能单元,可以描述为参与者与系统之间的一次交互作用;用例图的用途是列出系统中的用例和参与者,并显示哪个参与者参与了哪个用例的执行 

活动图:

活动图描述了活动发生的顺序。其图形表示规则如下:

•圆角矩形表示方框中的活动;

•矩形表示工作流影响的对象;

•实心圆表示工作流开始的开始状态;

•双层圆表示工作流结束的结束状态;

•菱形表示决策点;

•垂直甬道表示工作流中的不同参与者及相关活动

顺序图:

顺序图表示对象之间传递消息的时间顺序

垂直线表示一个对象的生命周期

箭头表示信息

协作图

§协作图对在一次交互中有意义的对象和对象间的链建模

类图:以类为中心组织起来的图形,用以表示软件系统中各类之间的相互关系

连线表示类的关系

状态图:

状态图是一个类对象所经历的所有历程的模型图。状态图有对象的各个状态和连接这些状态的变迁组成

部署图:

用来描述位于节点实例上的运行组件的安排,描述系统的实际物理结构 

软件工程中的一些基本概念 

可行性研究报告的一般格式:GB8567-88

软件危机是指软件开发和维护中存在的一系列问题。它主要面临的问题是: 进展难衡量、质量难评估、管理难控制。

软件工程是指开发、运行、维护、修复软件的系统方法

软件工程的中心课题是控制复杂性

目前使用得最广泛的两种软件工程方法学:传统方法学、面向对象方法学。

成本估计

代码行,任务分解技术

效益的度量方法

货币的时间价值,投资回收期,纯收入

需求分析的具体任务包括

确定综合需求

分析数据需求

导出逻辑模型

修正开发计划

验证分析正确性

编写需求说明书

软件的综合需求

功能需求,性能需求,可靠性和可用性,出错处理,接口需求,约束

需求获取方法

访谈,面向数据流自顶向下求精,应用规格说明

需求分析阶段用到的模型

数据流图(DFD):用于建立功能模型

实体-联系图(ERD):用于建立数据模型

类图:用于建立结构模型

时序图:用于建立行为模型

状态图:用于建立行为模型

协作图:用于建立行为模型

总体设计的两个阶段

系统设计确定系统的具体实现方案

结构设计确定软件结构

系统设计包括:设想供选择的方案,选取合理的方案,推荐最佳方案

结构设计:功能分解,设计软件结构,设计数据库,制定测试计划

对象模型

对象模型是对对象及其关系的映射,描述了系统的静态结构。通常使用统 一建模语言 (UML) 的类图来建立对象模型。

软件生命周期划分

软件定义:可行性研究和计划,需求分析

开发期:总体设计,详细设计,编码实现,集成测试

软件维护:确认测试,使用和维护

耦合和内聚

耦合用于衡量不同模块之间相互依赖的紧密程度,越低越好。应该追求「松 散耦合」的系统。

耦合设计原则: • 多用数据耦合 • 少用控制耦合 • 限制公共耦合

内聚用于衡量一个模块内部各元素彼此结合的紧密程度,越高越好

内聚设计原则: • 力求高内聚 • 可用中内聚 • 避免低内聚

软件工程的七条基本原理:

1.用分阶段的生命周期计划严格管理;

2.坚持进行阶段评审;

3.实行严格的产品控制;

4.采用现代程序设计技术;

5.结果应能够清楚地审查;

6.开发小组的人员应少而精;

7.承认不断改进软件工程实践的必要性。

软件生存期的阶段划分

面向对象的方法学

可行性分析

包含三个方面:技术可行性,经济可行性,操作可行性

可行性研究过程

各种需求分析方法所应遵循的准则

需求分析的具体任务

系统结构特征可归纳为两种经典形式

变化型结构和事务型结构

数据流图可分为两种类型

变换性数据流和事务型数据流

划分等价类的原理

各种覆盖

语句覆盖:使程序中每个语句至少执行一次;

判定覆盖(分支覆盖):使每个判定的真假分支都至少执行一次;

 条件覆盖:使每个判定的每个条件的可能取值至少执行一次;

 判定/条件覆盖:选取足够多的测试用例,使判断中的每个条件的所有可能取值至少执行一次。选取足够多的测试用例,同时每个判断本身的所有可能判断结果至少执行一次;

 条件组合覆盖:使每个判断表达式中条件的各种可能组合至少出现一次。

选择题

软件工程产生的直接原因是软件危机。在20世纪60年代末期,随着计算机硬件的快速发展和应用需求的剧增,软件开发过程中出现了一系列严重问题:软件开发成本超支、进度延迟、质量低下、维护困难等。这些问题集中体现为"软件危机"。为了解决这场危机,人们开始研究用工程化的方法来开发软件,由此诞生了软件工程这门学科。

针对学生成绩范围0-100的黑盒测试等价类划分,应该划分为3个等价类:

1. 有效等价类(1-100分): 表示正常的成绩范围
2. 无效等价类1(小于0分): 表示异常的负分情况
3. 无效等价类2(大于100分): 表示超出满分的异常情况

IPO图(Input Process Output)是一种程序流程图,主要由输入框(Input)、处理框(Process)和输出框(Output)这三个基本组成部分构成。 

在软件维护的类型中,完善性维护专门针对用户提出的新功能需求或对现有功能的改进建议,对软件进行功能扩充和完善的维护活动,所以C选项是正确答案。

分析其他选项:
A. 预防性维护:是为了预防软件出现故障而进行的维护活动,主要包括代码重构、性能优化等,并非针对用户新功能需求。

B. 适应性维护:是为了使软件适应新的运行环境(如硬件、操作系统等变化)而进行的修改,重点在于环境适应性,而不是功能改进。

D. 纠错性维护:是针对软件运行中发现的错误进行修复的维护活动,目的是纠正软件缺陷,而不是添加新功能。 

软件工程的基本要素包括方法、工具和( A )。

A. 过程        B. 软件系统   C. 硬件环境         D. 人员

在需求阶段,反映需求过程本身质量的可度量属性应该是功能点的可追踪性和实现过程的稳定性

系统流程图是用图形符号来表示系统中的各个元素,例如人工处理、数据库、设备等,流程图表达了系统中各个元素之间的信息流动情况。是描绘物理系统的传统工具。

黑盒测试:
- 不考虑程序内部逻辑结构,只关注软件的外部表现
- 测试用例基于需求规格说明书设计
- 验证软件功能是否符合用户需求
- 主要由测试人员执行

白盒测试:
- 需要了解程序内部逻辑结构和代码实现
- 测试用例基于代码覆盖设计
- 验证内部运行机制是否正确
- 主要由开发人员执行

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

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

相关文章

免费分享50本web全栈学习电子书

最近搞到一套非常不错的 Web 全栈电子书合集,整整 50 本,都是epub电子书格式,相当赞!作为一个被期末大作业和项目 ddl 追着跑的大学生,这套书真的救我狗命! 刚接触 Web 开发的时候,我天天对着空…

嵌入式学习笔记——day26

文件操作(续)目录操作 一、文件操作 1. lseek lseek 是一个用于在文件中移动文件指针的系统调用,通常用于在文件描述符所指向的文件中定位读取或写入的位置。它允许程序在文件中随机访问数据,而不是只能顺序读取或写入。 off_t …

LINUX安装运行jeelowcode前端项目

参考 JeeLowCode低代码社区,JeeLowCode低代码开发平台,JeeLowCode低代码开发框架,快速启动(VUE) 安装node 18 LINUX安装node/nodejs_linux安装node 安装到哪-CSDN博客 安装PNPM LINUX安装PNPM-CSDN博客 下载 git clone https://gitcode.com/jeelo…

【Redis】基本架构

1. 单线程模型 现在开启了三个redis-cli客户端同时执行命令。 客户端1设置一个字符串键值对: 127.0.0.1:6379> set hello world客户端2对counter做自增操作: 127.0.0.1:6379> incr counter客户端3对counter做自增操作: 127.0.0.1:…

[yolov11改进系列]基于yolov11的修改检测头为自适应特征融合模块为ASFFHead检测头的python源码+训练源码

【自适应空间特征融合模块ASFF介绍】 ASFF(Adaptive Spatial Feature Fusion)是一种自适应特征融合策略,旨在解决目标检测中不同尺度特征之间的冲突和不一致性。 ‌ 基本概念和原理 ASFF通过学习每个尺度特征的自适应融合权重&#xff0c…

机器学习——支持向量机SVM

机器学习——支持向量机 一、介绍1.概述1.1 概念1.2 SVM的优缺点 2.硬间隔2.1 求解间隔2.2 对偶问题 3.软间隔3.1 松驰变量3.2 对偶问题 4.核函数4.1 概念4.2 常见的核函数 二、代码实战1.实验要求2.具体实现2.1 词汇表加载2.2 邮件预处理函数2.3词索引转换为特征向量2.4 SVM 模…

Python 科学计算有哪些提高运算速度的技巧

在科学计算中提高 Python 运算速度的核心技巧包括:使用 NumPy 向量化操作、利用 Numba 加速函数、调用 C/C 扩展模块、应用多线程/多进程并行计算、使用 GPU 加速计算。其中,使用 NumPy 向量化是最基础且见效最快的优化方式。NumPy 利用底层 C 实现高效的…

React+Antd全局加载遮罩工具

下面是全局加载遮罩工具,功能:提供show和showWithDelay/hide方法用于显示/延时显示/隐藏遮罩,它还提供loading属性返回是否正在loading。通常用于耗时较长的操作,比如远端api调用。 如何用它,下面是个例子&#xff0c…

【机器学习基础】机器学习入门核心算法:GBDT(Gradient Boosting Decision Tree)

机器学习入门核心算法:GBDT(Gradient Boosting Decision Tree) 1. 算法逻辑2. 算法原理与数学推导2.1 目标函数2.2 负梯度计算2.3 决策树拟合2.4 叶子权重计算2.5 模型更新 3. 模型评估评估指标防止过拟合 4. 应用案例4.1 金融风控4.2 推荐系…

水墨色调中国风PPT模版分享

水墨色调中国风PPT模版分享:水墨中国风PPT模版https://pan.quark.cn/s/4368c537b1d2 第一套PPT模版​:主题是“爱莲说”,水墨风格封面。核心视觉是绿色莲蓬、白鹤、红色印章,文字有“爱莲说”等。适用文学或传统文化类演示。 ​第…

PBX、IP PBX、FXO 、FXS 、VOIP、SIP 的概念解析以及关系

PBX(Private Branch Exchange) 概念 :PBX 是专用交换机,是一种在企业或组织内部使用的电话交换系统。它允许内部用户之间以及内部用户与外部公共电话网络(PSTN)之间进行通信。例如,在一个大型企…

LabVIEW双光子荧光成像软件开发

双光子荧光成像技术在抑郁小鼠脑内丙二醛(MDA)和甲醛(FA)检测中的软件开发,基于 LabVIEW 平台构建从硬件控制、数据采集到图像处理的全流程系统。结合 5734 FPGA 实现实时图像处理,突出双光子成像的深度开发…

OSI模型中的网络协议

一、电子邮件协议:从SMTP到MIME的扩展 电子邮件系统的核心协议包括SMTP(Simple Mail Transfer Protocol)、POP3(Post Office Protocol)和IMAP(Internet Message Access Protocol),但…

流程自动化引擎:让业务自己奔跑

在当今竞争激烈的商业环境中,企业面临着快速变化的市场需求、日益复杂的业务流程以及不断增长的运营成本。如何优化业务流程、提升效率并降低成本,成为企业持续发展的关键问题。 流程自动化引擎(Process Automation Engine)作为一…

DNS解析过程以及使用的协议名称

DNS(Domain Name System 域名系统)解析是一个分层查询的过程 1.本地缓存查询阶段 先检查浏览器自身的DNS缓存 接着检查操作系统的DNS缓存 最后检查本地 hosts 文件 2.本地DNS服务器查询阶段 先向本地DNS服务器查询,协议是 DNS over UDP&a…

思澈科技助力Keep Watch Pilot 1:重新定义智能运动手表体验

——以创新芯片技术,打造长续航、高性能的随身运动教练 作为智能穿戴领域的核心技术支持者,思澈科技携手Keep共同推出全新智能运动手表Keep Watch Pilot 1。该产品搭载思澈科技自主研发的SF32LB557芯片,在高性能显示、超长续航与精准运动监测…

github actions入门指南

GitHub Actions 是 GitHub 提供的持续集成和持续交付(CI/CD)平台,允许开发者自动化软件工作流程(如构建、测试、部署)。以下是详细介绍: 一、核心概念 Workflow(工作流程) 持续集成的…

Pytorch中一些重要的经典操作和简单讲解

Pytorch中一些重要的经典操作和简单讲解: 形状变换操作 reshape() / view() import torchx torch.randn(2, 3, 4) print(f"原始形状: {x.shape}")# reshape可以处理非连续张量 y x.reshape(6, 4) print(f"reshape后: {y.shape}")# view要求…

ubuntu下nginx

我用的是ubuntu22 配置文件的准确位置 静态网页的存放位置 放大看到在静态文件部署的配置路径 该路径下面有一个default文件查看 针对上图的解析如下: 找到root /var/www/html 我尝试把自己的一个index文件设置为默认,复制到/var/www/html下 ctrl加…

Git使用手册保姆级教程

Git 使用手册 一、Git 简介与安装 什么是Git? • Git 是一个分布式版本控制系统,用于跟踪文件变化,支持多人协作开发。 安装步骤 • Windows:通过 Git官网 下载安装包,按默认配置安装即可。 • macOS&#xff1a…