软件工程 课堂测验 简答

结构化的软件设计的工具有哪些?各有什么特点?
表示软件结构的图形工具:
1)层次图和HIPO图:层次图描绘软件的层次结构,一个矩形框代表一个模块,框间的连线表示调用关系,每个方框可带编号,带编号的层次图称为HIPO图
2)结构图:结构图是进行软件结构设计的工具,同层次图。位于上方的方框代表的模块调用下方的模块,可不用箭头只用直线表示模块间的调用关系。带注释的箭头表示模块调用过程中来回传递的消息。尾部是空心圆表示传递的是数据,尾部是实心圆表示传递的是控制信息。

面向数据流的设计方法:
数据流图:在概要设计阶段使用。数据流分为变换型数据流和事务型数据流。变换:把输入的数据处理后转变成另外的输出数据。事务:非数据变换的处理,将输入的数据流分散成许多数据流,形成若干加工,选择其中一个路径来执行。

面向数据结构的设计方法:
1)Jackson:将数据结构分为:顺序型结构、选择型结构、循环型结构。顺序型结构:数据由一个或多个元素组成,按照确定的次序出现一次。
2)Warnier

数据设计:
1)程序级的数据结构设计:伪代码的方式定义数据结构
2)应用级的数据库设计:物理级的E-R图

过程设计:
流程图:
1)数据流程图
2)程序流程图:顺序型、选择型、先判定型循环、后判断型循环、多分支选择型。不便于逐步求精;可随意控制转移
3)系统流程图
4)程序网格图
5)系统资源图
N-S图:用类似盒子的矩形及矩形之间的嵌套来表示语句或语句序列。内部无箭头,控制流程不能随意控制转移;方便确定作用域、嵌套关系和模块间的层次
PAD图:也称问题分析图,用二维树形结构的图来表示程序的控制流及逻辑结构。执行顺序,自上而下,自左向右;自顶向下、逐步求精;只用于结构化设计;不仅表示程序逻辑,还表示数据结构

#######

请简述面向数据流的设计方法。
面向数据流的设计方法:
数据流图:在概要设计阶段使用。数据流分为变换型数据流和事务型数据流。变换:把输入的数据处理后转变成另外的输出数据。事务:非数据变换的处理,将输入的数据流分散成许多数据流,形成若干加工,选择其中一个路径来执行。

#######

如何理解软件生命周期的内在特征?
软件生命周期是从设计该软件的构思开始,到软件的需求确定、软件设计、软件实现、产品测试与验收、投入使用以及产品的不断更新、到最终被市场淘汰的全过程。分为若干个阶段,每个阶段都完成特定的相对的独立的任务,由于每个阶段的任务相对于总任务的难度大幅降低,在资源分配和时间把握和项目管理上都比较容易控制,合理划分生命周期的各个阶段,是每个阶段即相互联系又相互区别,为每个阶段赋予特定任务。

分为:可行性研究、需求分析、软件设计、编码、软件测试、软件维护

#######

简述E-R图的作用。
表明了数据库的概念结构,提供了表示实体数据对象、属性、联系的方法,用来描述现实世界的概念模型,

#######

请对比白盒测试和黑盒测试。分别有哪些方法?
黑盒测试:将软件系统看作黑盒子,不关心盒子的内部结构和特性,只关注软件的输入数据和输出结果
1)等价类划分法、边界值分析法、错误推测法、因果图法、正交实验设计法
等价类划分法:有效、无效等价类
2)边界值分析法:选择等价类边界的测试用例
3)错误推测法:直觉+经验
4)因果图法:输入条件的各种组合方式、各个输入条件之间的相互制约关系

白盒测试:又称玻璃盒测试,将被观测程序看作透明盒子,关注软件产品的内部细节、逻辑结构
1)逻辑覆盖法:语句、分支、条件、分支-条件、条件组合、路径覆盖
语句覆盖:设计若干测试样例,运行被测试程序,每个可执行程序至少执行一次
分支覆盖:每个判断的取真、取假分支至少执行一次
条件覆盖:每个判断的所有逻辑条件的每种可能取值至少执行一次
分支-条件覆盖:同时满足分支覆盖和条件覆盖的要求
条件组合覆盖:每个判断语句的所有逻辑条件的可能取值组合至少执行一次
路径覆盖:覆盖被测试程序中所有可能的路径
2)基本路径法:在程序控制流程图的基础上,通过分析控制构造的环路复杂度,导出基本可执行程序的路径集合,从而设计测试用例的方法

#######

软件测试应该划分为几个阶段,各个阶段应重点测试的内容是什么?
软件测试步骤:单元测试、集成测试、系统测试、验收测试

单元测试:软件测试的基础,侧重模块的内部处理逻辑、数据结构,利用构件级设计描述作为指南,测试重要的控制路径以发现模块内的错误

集成测试:多个单元的集合,单元组合成模块,模块聚合成子系统 / 系统
体系结构设计、模块设计、接口设计、集成测试策略分析
1)非增量式集成测试:”一步到位“
2)增量式集成测试:自顶向下、自底向上

#######

请比较结构化软件设计方法和面向对象软件设计方法?
结构化软件设计的任务从软件需求规格说明书出发,设计整体结构,形成具体设计方案,解决”怎么做“。
1)概要设计
2)详细设计

面向对象设计原则:
1)模块化
2)抽象化
3)信息隐藏
4)低耦合
5)高内聚
6)复用性

#######

类间的外部关系有几种类型?每种关系表达什么语义?
对象或类之间的关系:依赖、关联、聚合、组合、泛化、实现
1)依赖:”非结构化“,短暂,一个对象会影响另一个对象
2)关联:”结构化“,对象之间的连接
3)聚合和组合:特殊的关联,强调整体和部分之间的从属性,组合是聚合的一种,组合的整体和部分具有很强的归属关系和一致的生命周期
4)泛化和类间的继承相似
5)实现针对类与接口的关系

#######

如何着手从自然语言描述的用户需求中画出用例图?
用例图从用户的角度描述系统的功能,由用例和参与者及它们之间的连线组成。
用例:从用户骄傲都描述系统的行为,将系统的一个功能描述为一系列的事件,这些事件最终对操作者产生有价值的观测结果
参与者:与系统交互的外部实体,可能是使用者,也可能是与系统交互的外部系统、基础设备等

分析用例名称是否合适时,将参与者和用例连在一起,是否构成一个完整的场景或句子

1)包含:不同用例的共同行为,带箭头的虚线
2)拓展:异常行为,带箭头虚线
3)泛化:用例的一般与特殊,带三角形箭头的实线

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

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

相关文章

Vue H5项目,怎么引入uni.webview sdk,调用uni postMessage实现手机蓝牙连接打印功能(uniapp)

前言 目前公司Vue H5项目,用webview打包成APP,现产品提出这样打包出来的app运行较慢,需要用uniapp方式(即使用HBuilder编辑器来打包H5)来打包,那需要的基座就不是安卓的基座而是uniapp的基座,而…

扭矩法、屈服点法哪个比较高效?——SunTorque智能扭矩系统

在机械制造和维修领域,拧紧螺栓和螺母是一项重要的操作。拧紧方法的合理选择和使用,对于确保机械设备的稳定性和安全性具有至关重要的作用。本文SunTorque智能扭矩系统将介绍两种最常用的拧紧方法,并探讨它们的轴力范围计算方法。一、扭矩法 …

电信网关配置管理系统后台 upload.php 文件上传漏洞复现

0x01 产品简介 中国电信集团有限公司(英文名称“China Telecom”、简称“中国电信”)成立于2000年9月,是中国特大型国有通信企业、上海世博会全球合作伙伴。 0x02 漏洞概述 电信网关配置管理系统后台 /manager/teletext/material/upload.php 接口存在文件上传漏洞,攻击者…

open3D绘制圆柱形和长方体

import time import open3d as o3d; import numpy as np;#圆柱形 mesh_cylinder o3d.geometry.TriangleMesh.create_cylinder(radius0.3,height4.0) mesh_cylinder.compute_vertex_normals() mesh_cylinder.paint_uniform_color([0.1, 0.4, 0.1]) o3d.visualization.draw_geo…

基于JAVA(springboot框架)在线拍卖竞拍系统 毕业设计开题报告

博主介绍:《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项…

【数电笔记】56-消抖开关

目录 说明: 1. 按键抖动形成的原因 2. 按键消抖的方法 3. 用与非RS触发器构成消抖开关(硬件消抖) 说明: 笔记配套视频来源:B站本系列笔记并未记录所有章节,只对个人认为重要章节做了笔记;标…

飞天使-linux操作的一些技巧与知识点5-ansible之roles

文章目录 roles批量替换文件 role 的依赖关系role 的实际案例 roles tasks 和 handlers ,那怎样组织 playbook 才是最好的方式呢?简 单的回答就是:使用 Roles Roles 基于一个已知的文件结构,去自动的加载 vars,tasks 以…

【稳定检索|投稿优惠】2024年艺术鉴赏与社会科学教育国际会议(ICAASSE 2024)

2024年艺术鉴赏与社会科学教育国际会议(ICAASSE 2024) 2024 International Conference on Art Appreciation and Social Science Education(ICAASSE) 一、【会议简介】 2024年艺术鉴赏与社会科学教育国际会议(ICAASSE 2024),这场学术盛宴,将于2024年2月1…

系列四、DML

一、DML 1.1、概述 DML的英文全称是Data Manipulation Language,中文意思为:数据操作语言,用来对数据库表中的数据进行增、删、改操作,这些操作大家在日常工作中常用,这里不再赘述。

郝斌C语言自学教程笔记

赫斌C语言——笔记目录 c语言编程预备知识流程控制函数变量指针结构体位运算符 前段时间康哥看我C语言基础不牢,推荐我学习郝斌老师的C语言课程,花2周看完之后发现确实是目前所看的C语言课程中最好的,不仅非常适合入门,而且对即使学了几年C语…

怒斥以色列后突发心脏病倒地,土耳其议员抢救无效身亡!

这两天互联网上热传一段视频,说的就是土耳其议员在议会演讲时突然倒地晕厥,两天后就去世了。这可真是让人震惊啊! 据说这位议员是土耳其反对党幸福党的,名字叫比特梅兹。他在议会发表批评以色列的言论时,情绪过于激动…

安装2023最新版Java SE 21.0.1来开发Java应用程序

安装2023最新版Java SE 21.0.1来开发Java应用程序 Install the latest version of Java SE 21.01 to Develop Java Applications By JacksonML 本文简要介绍如何下载和安装2023年最新版Java Development Kit (简称JDK,即Java开发工具包标准版)21.0.1&…

android webrtc入门教程一(简单一对一通话实现)

webrtc Android入门非常的简单不要被那些博客给带乱了,我看了几篇这方面的博客都是给你零散的代码更本就不能实现通话,学这个要先从全局流程再到详细步骤来学习。 简单介绍下实现webrtc通话总体流程并且给出全部代码,复制粘贴即可 本文福利&…

长尾问题之LDAM

做法&代码&公式 step1: 全连接层的权重W和特征向量X都归一化,相乘 W * X P (得到各个类别的概率) # 定义权重,初始化 weight nn.Parameter(torch.FloatTensor(num_classes, num_features)) weight.data.uniform_(-1, 1).renorm_(2, 1, 1e-5).mul_(1e5)#…

Java 线程的基本概念

创建和运行线程 方法一,直接使用 Thread // 创建线程对象 Thread t new Thread() {public void run() {// 要执行的任务}};// 启动线程 t.start();例如: // 构造方法的参数是给线程指定名字,推荐 Thread t1 new Thread("t1") …

网络安全——SQL注入实验

一、实验目的要求: 二、实验设备与环境: 三、实验原理: 四、实验步骤: 五、实验现象、结果记录及整理: 六、分析讨论与思考题解答: 七、实验截图: 一、实验目的要求: 1、…

《Cadence 16.6电路设计与仿真从入门到精通》——1.4 Cadence SPB 16.6的启动

《Cadence 16.6电路设计与仿真从入门到精通》——1.4 Cadence SPB 16.6的启动  2017-05-027334 版权 简介: 本节书摘来自异步社区《Cadence 16.6电路设计与仿真从入门到精通》一书中的第1章,第1.4节,作者: 王超 , 胡仁喜等 更多章节内容可以访问云栖社区“异步社区”公…

[python高级编程]:02-类

此系列主要用于记录Python学习过程中查阅的优秀文章,均为索引方式。其中内容只针对本作者一人,作者熟悉了解的内容不再重复记录。 目录 01-装饰器 overload -- 方法重载 02-多态 多态和鸭子类型 03-设计模式 抽象基类和接口 01-装饰器 overload -- 方…

SpringMVC-servlet交互

servlet交互 1.1 引入servlet依赖 <dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope></dependency>1.2 创建testservl…

《PCL多线程加速处理》-滤波-统计滤波

《PCL多线程加速处理》-滤波-统计滤波 一、效果展示二、实现方式三、代码一、效果展示 提升速度随着点云越多效果越明显 二、实现方式 1、原始的统计滤波实现方式 #include <pcl/filters/statistical_outlier_removal.h>pcl::PointCloud<pcl::PointXYZ