软件工程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.mzph.cn/news/589215.shtml

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

相关文章

掌握C++11标准库(STL):理解STL的核心概念

深入探索C11标准库STL:新特性和优化技巧 一、前言二、容器简介三、迭代器简介四、map与unordered_map(红黑树VS哈希表)4.1、map和unordered_map的差别4.2、优缺点以及适用处4.3、小结 五、总结 一、前言 STL定义了强大的、基于模板的、可复用…

python设计模式:模板方法模式

更多Python学习内容:ipengtao.com 软件设计和编程中,设计模式是一种有助于解决常见问题的强大工具。其中之一是"模板方法模式",它是一种行为型设计模式,允许你定义一个算法的骨架,但将一些步骤的具体实现延迟…

win11 电脑睡眠功能失效了如何修复 win11 禁止鼠标唤醒

1、win11睡眠不管用怎么办,win11电脑睡眠功能失效了如何修复 在win11系统中拥有许多令人激动的新功能和改进,有些用户在使用win11电脑时可能会遇到一个问题:睡眠模式不起作用。当他们尝试将计算机置于睡眠状态时,却发现系统无法进…

HarmonyOS应用程序包快速修复

快速修复概述 快速修复是HarmonyOS系统提供给开发者的一种技术手段,支持开发者以远快于应用升级的方式对应用程序包进行缺陷修复。和全量应用升级软件版本相比,快速修复的主要优势在小、快和用户体验好。在较短的时间内不中断正在运行的应用的情况下&am…

SpringBoot + Vue 抖音全平台项目

简介 本项目是一个短视频平台,拥有热度排行榜,热门视频,兴趣推送,关注推送,内容审核等功能。 源码下载 网盘 (访问密码: 8418) 登录/注册 首页 创作中心 架构设计 上传视频业务流程 视频推送流程 1.用户订阅分类后…

聚类:聚类的介绍及k-means算法

聚类:聚类的介绍及k-means算法 什么是聚类 聚类就是在输入为多个数据时,将“相似”的数据分为一组的操作。1 个组就叫作 1 个 “簇”。下面的示例中每个点都代表1 个数据,在平面上位置较为相近、被圈起来的点就代表一 类相似的数据。也就是…

如何为开源项目和社区做贡献 -- 你应该知道的十件事(一)

1. 前言 大家好,我叫颜国进,现为英特尔边缘计算创新大使、百度飞桨开发者专家。回溯至2021年12月,那时的我,身为机械专业研一新生,仅在C和Python编程语言上有些许基础,对于深度学习的殿堂还只敢在门口窥探&…

【动态规划】【字符串】C++算法:正则表达式匹配

作者推荐 视频算法专题 涉及知识点 动态规划 字符串 LeetCode10:正则表达式匹配 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘’ 的正则表达式匹配。 ‘.’ 匹配任意单个字符 ’ 匹配零个或多个前面的那一个元素 所谓匹配,是…

web网站的工作流程和开发模式

web网站的工作流程和开发模式 基于Java Script封装的高级技术:Vue、Element、Nginx(前端程序部署的服务器) 初识Web前端 Web标准

Conv2Former:一种transformer风格的卷积特征提取方式

一、前言 昨天读到了一篇有意思的文章,文章提出通过利用卷积调制操作来简化self-attention。还证明了这种简单的方法可以更好地利用卷积层中嵌套的大核(≥7 7)。我们都知道ViTs推动了设计识别模型的发展,近几年使用的也相当的多,通常就是CN…

《ORANGE’S:一个操作系统的实现》读书笔记(十九)输入输出系统(一)

我们刚刚实现了简单的进程,你现在可能很想把它做得更加完善,比如进一步改进调度算法、增加通信机制等。但是这些工作不但做起来没有尽头,而且有些也是难以实现的,因为进程必须与I/O、内存管理等其它模块一起工作。而且&#xff0c…

Linux系统---进程程序替换

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C/C》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、进程程序替换 一、替换原理 用fork 创建子进程后执行的是和父进程相同的程序 ( 但有可能执行不同的代码分支 ), 子进程往往要…

02 HAL库驱动按键响应外部中断

引言:这里我采用的实验平台可能跟大家的不太一样,文章的图像是一块资源拓展板, 主控板式fs_mp1a, 该板子的SOC是stm32mp157a, 有两个内核一个A7, 一个M4.但是实验的流程肯定都是一样的, 因为都是裸机程序嘛…

【PTA-C语言】实验七-函数与指针I

如果代码存在问题,麻烦大家指正 ~ ~有帮助麻烦点个赞 ~ ~ 目录——实验七-函数与指针I 6-1 弹球距离(分数 10)6-2 使用函数输出一个整数的逆序数(分数 10)6-3 使用函数求最大公约数(分数 10)6-4…

Visual Studio 2015 中 SDL2 开发环境的搭建

Visual Studio 2015 中 SDL2 开发环境的搭建 Visual Studio 2015 中 SDL2 开发环境的搭建新建控制台工程拷贝并配置 SDL2 开发文件拷贝 SDL2 开发文件配置 SDL2 开发文件 测试SDL2 开发文件的下载链接 Visual Studio 2015 中 SDL2 开发环境的搭建 新建控制台工程 新建 Win32 …

从2023看2024前端发展趋势

前言 流光溯影,纵观2023全年,整个前端业界呈现出百业凋零之状,更不乏有“前端已死”等论调甚嚣尘上。从全局视角看IT行业,除了AI领域的大语言模型爆发外,整体都鲜有特别亮眼及突出的技术展现。故而,作为IT…

【华为机试】2023年真题B卷(python)-猴子爬山

一、题目 题目描述: 一天一只顽猴想去从山脚爬到山顶,途中经过一个有个N个台阶的阶梯,但是这猴子有一个习惯: 每一次只能跳1步或跳3步,试问猴子通过这个阶梯有多少种不同的跳跃方式? 二、输入输出 输入描述…

深度学习核心技术与实践之计算机视觉篇

非书中全部内容,只是写了些自认为有收获的部分 计算机视觉背景 (1)视觉皮层的神经元是一列一列组织起来的,每一列神经元只喜欢某一种特定的形状或者某些简单的线条组合,而不是鱼、老鼠、鲜花 (2&#xf…

记矩阵基础概念

转自up:Naruto_Qcsdn:三维空间几何变换矩阵 先贴个站里分享的基础概念。 learn form 肥猫同学VFX b站:会用transform就会用矩阵 移动 旋转 缩放 1.transofrm ——输出变化矩阵 可以移动transform查看变化去理解 位移 缩放 旋转 由此—…

一个有趣的MOSFET电路-触摸调光电路

来源 刷B站视频,看到一个很新奇的“触摸调光电路”,电路图如下: 视频在这里,只使用了3个元件。 刚好最近在学模拟电路的 MOSFET,我之前的理解是 MOSFET 的控制电压应该加在 Gate 和 Source 之间,也就是 栅…