软件工程PPT 笔记摘录(2)

分析软件需求

UML 提供了用例图来分析和描述用例视角的软件需求模型

UML 提供了交互图和状态图来描述行为视角的软件需求模型

UML 提供了类图来描述和分析业务领域的概念模型

顺序图:强调消息传递的时间序

通信图:突出对象间的合作

类图,描述系统的类构成,刻画系统的静态组成结构

用单数名词来描述类名,少用缩写

对象图是一种静态瞬时快照,归于静态视图范畴

一般而言,控制类并不负责处理具体的任务细节,而是负责分解任务,并通过消息传递,将任务分派给其他对象类来完成,协调这些对象之间的信息交互

如果系列规模较大,分析类的数量多,关系复杂,难以用一张类图来完整和清晰地表示,那么可以分多个子系统来绘制分析类图

评审软件需求:内容的完整性,正确性,准确性,一致性,多余性,可追踪性,文档规范性,表述可读性,图表一致性(我想知道简答题到底是怎么考察,考这些知识确实是写不出来)

软件设计基础

功利一点,现在是期末考试复习,考试会挖什么空,接下来的内容尽量选这方面的

类的地位:类既是最基本的设计单元,也是最基本的模块单元(有点像初中政治,就怕是无用功)

软件设计的基本原则之一:模块化、高内聚度和低耦(ǒu)合度原则(感觉可能可以用上)

简答题会不会就是每一个ppt的小结部分的内容
软件设计是要给出软件需求的实现解决方案
设计既要满足需求,也要关注质量;设计用于指导实现和编码
软件设计有其过程,要循序渐进地开展设计
从体系结构设计、用户界面设计、详细设计
软件设计要遵循一系列的基本原则
模块化、信息隐藏、逐步求精、多视点等
面向对象软件设计的特点
基于面向对象的概念和抽象,系统性的设计支持,具有多种优点
对软件设计结果进行文档化和评审
撰写软件设计文档,发现和纠正软件设计中存在的缺陷

软件体系结构设计

包间关系:构成关系,依赖关系

在这里插入图片描述
之前一直弄不清楚的图之间的关系的汇总

包在模型管理过程中是配置管理的基本单元,同时也为访问控制提供基本手段
(像是要考察的句子)

软件系统的输入由数据源(data source)提供

管道与过滤器模式的特点
自然地解决具有数据流特征的软件需求
可独立地更新、升级过滤器来实现软件系统的扩展和进化

子系统是服务提供方,边界类是服务请求方

//怎么感觉没有什么内容,根本记不下来

软件体系结构的输出:软件模型和软件文档

软件体系结构设计的特殊性
具有宏观、全局、层次、战略、多视点、关键性等特点
逻辑视点、物理视点等,可用包图、部署图来表示
软件体系结构设计的重要性
针对软件系统全局性、基础性技术问题给出技术解决方案
软件体系结构的风格
管道、层次、MVC、黑板等等,针对不同软件需求及特点
软件体系结构设计的过程、策略和成果
考虑软件关键需求、利用已有软件资产、关注软件质量
软件体系结构的设计模型和文档

用户界面设计

用户界面元素:静态元素,动态元素,输入元素,命令元素

用户界面初步设计不关注美观和布局,关注界面元素及其内容

交互图
表示特定场景下的跳转及跳转发生时的消息传递

类图
表示界面间所有可能发生的跳转及跳转的原因

用户界面设计
以用户为中心
遵循理解性、易操作性、一致性、容错性和人性化等原则

用户界面设计的过程
以软件需求为依据
概念设计、跳转关系设计、界面精化、设计评审

用户界面设计的结果
用户界面原型
UML类图、交互图等模型

(ppt是不是把所有小结整合即可)

软件详细设计

所有设计元素最终通过代码加以实现

如果A与B有消息,那么它们间有关系:关联、聚合和组合(这句话看见很多次了)

有些数据需要持久保存的,存放在永久存储介质中
开展数据设计,以支持信息的抽象、组织、存储和读取

子系统设计的结果
包图、构件图、顺序图、活动图、类图

构件是可独立部署和运行的设计元素

在子系统中设置哪些设计元素
构件、设计类或子系统

下面这个非常重要
如果一个对象a向对象b发消息,那么对应的类A与类B之间存在关联或者依赖关系
如果子系统外的设计元素通过子系统的接口与子系统进行交互,那么这些设计元素与子系统之间存在依赖关系
如果多个设计类之间具有一般和特殊的关系,那么它们之间存在继承关系

软件实现基础

软件测试包括集成测试,确认测试,系统测试

c语言是结构化的程序设计语言

编写必要的异常定义和处理代码,使得程序能够对异常情况进行必要的处理,防止由于异常而导致的程序终止或崩溃

软件实现的输出
源程序代码
部署在不同计算节点上的可执行程序代码
软件测试报告等

编写代码

软件缺陷是指软件制品中存在不正确的软件描述和实现

每个软件缺陷都被给予一个唯一的标识符

借助于技术问答社区来解决编码和和调试中遇到的问题(以后自己有代码方面的问题,可以多借助互联网平台来进行提问)

软件测试

软件缺陷不可避免

软件测试的目的是为了发现软件中的缺陷。它只负责发现缺陷,不负责修复和纠正缺陷(只专注于完成一件事情)

软件测试的前提和关键是要设计出有效的测试用例

集成测试是黑盒测试

单元测试是白盒测试

α测试(内测与外侧,游戏有这个说法,接触过,所以觉得比较贴近生活)
软件开发公司组织内部人员模拟各类用户行为对即将面市的软件产品(称为α版本、内部测试版)进行测试,发现错误并修正
尽可能逼真地模拟实际运行环境和用户对软件产品的操作,并尽最大努力涵盖所有可能的用户操作方式
经α测试并进行修改后的软件产品称为β版本(也称外部测试版)
β测试
软件开发公司组织各方面的典型用户在日常工作中实际使用β版本,或为对外进行宣传而将β版本免费赠送给典型用户(很多情况下,β版本可以通过Internet免费下载,也可以向软件公司索取),并要求用户报告异常情况、提出批评意见
β测试是在与开发者无法控制的环境下进行的软件现场应用

回归测试最好能够自动化
单元测试是回归测试的基础

穷举测试是不可能的(这个就像我们刷题,题是穷举不完的,我们只可以尽可能多做不同类型的题目举一反三,积累经验)

黑盒测试用例的开发可以与软件实现并行进行,能够缩短软件开发周期
(按照我的理解,就是在不知情的情况下直接测试)

软件部署

软件部署是指将目标软件系统进行收集、打包、安装、配置和发布到运行环境的过程
单机部署和分布式部署

软件维护与演化

何为改善性维护?
对软件进行改造以增加新的功能、修改已有的功能
所以改善性维护改变了软件的功能(有一个选择题考察了这个知识)

软件演化:主动面对变更,功能增强粒度大

负面变更会破坏软件的结构和质量,进而增加维护的成本和难度(改变其实不一定是好的)

软件逻辑老化
解决软件逻辑老化的有效方法之一就是对软件进行重构
(确实啊,缝缝补补不如一切重头再来,但是我们谁可以直接remake呢)

软件项目管理

软件项目管理要管好三类对象:过程、人员和产品

定义和明确过程是软件开发的前提

支持敏捷方法过程:迭代模型

基于甘特图表示的软件项目计划

软件项目规模的估算结果过于乐观(很多时候我们都是对结果过于乐观,其实盲目的乐观还是不行的)

软件质量的保证内容
掌握软件产品质量
软件测试
提交软件质量报告
软件测试报告,说明质量问题
汇报项目组和管理层
例行的质量回报,便于改进管理和技术手段

基线:已经通过正式复审和批准的软件产品、标准或规约

重要内容
迭代性的开发 – 分阶段持续提交可演示产品
以代码为中心 – 开源软件
以敏捷为手段 – 敏捷方法
必须系统模型 – UML模型
适当软件文档 – 文档规范

程序及其质量保证方法

程序质量的保证方法:

遵循编码风格
采用程序设计方法
开展代码重用
进行结对编程

分析、发现和审查代码
人工审查、静态分析、程序测试

软件及其特点

要编写出高质量的程序需要循序渐进地开展工作(做大部分事情感觉都是这个步骤)

支撑软件
辅助软件开发和运维,帮助开发人员完成软件开发和维护工作的一类软件
示例:SonarQube、Visual Studio、Eclipse等
常见的一些软件,第一个软件我没有怎么接触过

结语

简答题出自于ppt和教材,感觉还是不怎么能找到终点,简答题占比30分,把ppt全部看了一遍,感觉也差不多了

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

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

相关文章

重温MySQL之索引那些事

文章目录 前言一、概念1.1 索引作用1.2 索引类型1.3 B树索引结构1.4 B树索引源码分析 二、查询计划2.1 explain2.2 id2.3 select_type2.4 table2.5 partitions2.6 type2.7 possible_keys2.8 key2.9 key_len2.10 ref2.11 rows2.12 filtered2.13 Extra 三、索引优化3.1 索引失效3…

C#高级 02异步编程

基础知识 1.什么是异步任务 包含了异步任务的各种状态的一个引用类型 1)正在运行、完成、结果、报错等 2)另有ValueTask值类型版本对于异步任务的抽象 1)开启异步任务后,当前线程并不会阻塞,而是可以去做其他事情 2)异步任务(默认&#xff…

Java技术栈 —— Nginx的使用

Java技术栈 —— Nginx的使用 一、认识Nginx二、搭建Nginx环境2.1 在Ubuntu上安装Nginx 三、使用Nginx3.1 配置负载均衡(HTTP) 一、认识Nginx 企业需要运行多个相同的副本,并将负载分散在整个系统集群上,为了高性能的负载均衡,引入了Nginx代…

【Vue2 + ElementUI】el-table中校验表单

一. 案例 校验金额 阐述&#xff1a;校验输入的金额是否正确。如下所示&#xff0c;点击【编辑图标】会变为input输入框当&#xff0c;输入金额。当输入框失去焦点时&#xff0c;若正确则调用接口更新金额且变为不可输入状态&#xff0c;否则返回不合法金额提示 <templat…

Python pycharm编辑器修改代码字体

在pycharm编辑器下修改代码字体&#xff0c;可以按照以下步骤&#xff1a; 点开上图所示的菜单&#xff0c; 再点击File->Settings&#xff0c;进入设置页面。 我们找到Editor下的Font并点选&#xff0c;然后我们就可以在右侧修改字体相关配置了。 这里建议使用等宽字体&…

SparkStreaming与Kafka整合

1.3 SparkStreaming与Kafka整合 1.3.1 整合简述 kafka是做消息的缓存&#xff0c;数据和业务隔离操作的消息队列&#xff0c;而sparkstreaming是一款准实时流式计算框架&#xff0c;所以二者的整合&#xff0c;是大势所趋。 ​ 二者的整合&#xff0c;有主要的两大版本。 kaf…

webpack的深入学习与实战(持续更新)

一、何为Webpack Webpack是 一个开源的JavaScript模块打包工具&#xff0c;其最核心的功能是解决模块之间的依赖&#xff0c;把各个模块按照特定的规则和顺序组织在一起&#xff0c;最终合并为一个JS文件或多个。 二、带宽的换算 目前我们的云服务器带宽为5M 三 、bundle 体…

二叉树题目:根到叶路径上的不足结点

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;根到叶路径上的不足结点 出处&#xff1a;1080. 根到叶路径上的不足结点 难度 6 级 题目描述 要求 给定二叉树的根结点 root \texttt{root} root…

maven中dependencyManagement标签

简介 dependencyManagement正如其名&#xff0c;用于项目依赖的统一管理。 在父项目中的pom.xml文件中加入dependencyManagement标签即可完成依赖版本的声明。在声明完成后&#xff0c;子项目&#xff08;module&#xff09;中引用相同的依赖时可以不指定version标签自动引入…

【python报错】UserWarning: train_labels has been renamed targets

UserWarning: train_labels has been renamed targetswarnings.warn(“train_labels has been renamed targets”) 这是一条 Python 警告信息&#xff0c;它表示 train_labels 这个变量已经被重命名为 targets&#xff0c;在将来的版本中可能会移除 train_labels。因此&#x…

51蛋骗鸡595级联1616点阵

缘由如何用单片机独立按键控制16*16LED点阵模块点亮和熄灭?求指导 - 24小时必答区 #include "reg52.h" unsigned char code DuLiAnJian[]{1,2,4,8,16,32,64,128,254,253,251,247,239,223,191,127}; unsigned char code CHARCODE[12][8]{ //{0xFD,0xFD,0x0D,0xED,0x…

如何开发一个google插件(二)

前言 在上一篇文章如何开发一个google插件(一)里主要介绍了google插件的基本结构。 在这篇文章中主要结合reactwebpack进行一个代码演示&#xff0c;源码地址&#xff1a;源码地址 下载源码后打开浏览器的扩展程序管理->加载已解压的扩展程序&#xff0c;即可调试插件 此…

在 Spring 中操作 Redis

&#x1f9f8;欢迎来到dream_ready的博客&#xff0c;&#x1f4dc;相信您对博主首页也很感兴趣o (ˉ▽ˉ&#xff1b;) &#x1f4dc;redis和缓存及相关问题和解决办法 什么是缓存预热、缓存穿透、缓存雪崩、缓存击穿 目录 1、引入依赖 2、对 Redis 的配置文件进行书写 3、S…

Python机器学习原理与算法实现中绘制散点图和线图的操作

作为对数据进行预处理的重要工具之一&#xff0c;散点图&#xff08;Scatter Diagram&#xff09;深受专家、学者们的喜爱。散点图的简要定义就是点在直角坐标系平面上的分布图。研究者对数据制作散点图的主要出发点是通过绘制该图来观察某变量随另一变量变化的大致趋势&#x…

小米SU7汽车发布会; 齐碳科技C+轮融资;网易 1 月 3 日发布子曰教育大模型;百度文心一言用户数已突破 1 亿

投融资 • 3200 家 VC 投资的创业公司破产&#xff0c;那个投 PLG 的 VC 宣布暂停投资了• 云天励飞参与 AI 技术与解决方案提供商智慧互通 Pre-IPO 轮融资• 百度投资 AIGC 公司必优科技• MicroLED量测公司点莘技术获数千万级融资• 智慧互通获AI上市公司云天励飞Pre-IPO轮战…

门控循环单元(GRU)-多输入回归预测

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、部分程序&#xff1a; 四、全部代码数据分享&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于Matlab平台编译…

十大排序算法归纳

目录 排序算法的分类 插入排序算法模板 选择排序算法模板 冒泡排序算法模板 希尔排序算法模板 快速排序算法模板 归并排序算法模板 堆排序算法模板 基数排序算法模板 计算排序算法模板 桶排序算法模板 排序算法的分类 插入&#xff1a;插入&#xff0c;折半插入&am…

网站显示不安全警告怎么办?消除网站不安全警告超全指南

网站显示不安全警告怎么办&#xff1f;当用户访问你的网站&#xff0c;而您的网站没有部署SSL证书实现HTTPS加密时&#xff0c;网站就会显示不安全警告&#xff0c;这种警告&#xff0c;不仅有可能阻止用户继续浏览网站&#xff0c;影响网站声誉&#xff0c;还有可能影响网站在…

基于蜉蝣算法优化的Elman神经网络数据预测 - 附代码

基于蜉蝣算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于蜉蝣算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于蜉蝣优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针…

操作系统(Operator System)

这里写目录标题 1. 什么是操作系统2. 主要功能3. 计算机的层状结构4. 什么叫做管理5. 总结6. 为什么要有操作系统7. 最后 1. 什么是操作系统 操作系统&#xff08;英语&#xff1a;Operating System&#xff0c;缩写&#xff1a;OS&#xff09;是一组主管并控制计算机操作、运…