软件工程知识总结梳理

news2024/11/26 18:28:39

🔥🔥宏夏Coding网站,致力于为编程学习者、互联网求职者提供最需要的内容!网站内容包括求职秘籍,葵花宝典(学习笔记),资源推荐等内容。在线阅读:https://hongxiac.com🔥🔥

1.软件与软件组成?软件工程常用的8个质量要素的定义?


计算机科学对软件的定义:软件是在计算机系统支持下,能够完成特定功能和性能的程序、数据和相关的文档。软件可形式化表示为:软件=知识+程序+数据+文档

用户关注软件质量的外部属性,如软件的正确性、可靠性、有效性、安全性、可用性、可维护性、可移植性、可复用性等。

软件工程师更关注软件质量的内部属性,通过提高软件内部属性,如模块化、一致性、简洁性、可测试性、自文档化等,支持和保证软件外部质量属性的实现。

2. 软件工程常用的八个质量要素的定义和解释。


(1)正确性(correctness)。

软件满足需求规约及完成用户目标的程度。

(2)可用性(usability)。

学习和使用软件的难易程度,包括:操作软件、为软件准备输入数据,解释软件输出结果等。

(3)可靠性(reliability)。

软件完成预期功能,成功运行的概率。软件可靠性反映了软件无故障工作的状况。

(4)有效性(efficiency)。

软件系统利用计算机的时间资源和空间资源完成系统功能的能力。

各种计算机软件无不将系统的时/空开销和网络环境下的信息传输开销作为衡量软件质量的一项重要技术指标。

(5)可维护性(maintainability)。

软件制品交付用户使用后,能够对它进行修改,以便改正潜伏的缺陷、改进性能和其他属性,使软件制品适应环境的变化等等。

(6)可移植性(portability)。

将软件安装在不同计算机系统或环境的难易程度。

(7)安全性(security)。

控制或保护程序和数据不受破坏的机制,以防止程序和数据受到意外的或蓄意的存取、使用、修改、毁坏或泄密。在网络环境下计算机犯罪、恶作剧增多,软件安全受到人们的高度重视。

(8)可复用性(reusebility)。

概念或功能相对独立的一个或一组相关模块定义为一个软构件。

软构件可以在多种场合应用的程度称为构件的可复用性。

3. 什么是软件工程?构成软件工程的主要要素是什么?影响软件工程技术进步的动力是什么?


软件工程定义(IEE93):将系统的、规范的、可量化的方法应用于软件的开发、运行和维护的过程,以及上述方法的研究。

构成软件工程的五要素:项目、人、过程、方法和工具。

软件工程发展的主要要素是信息社会的广泛需求,软、硬件技术的进步,软件从业人员的工作,软件产业的兴起,软件学科建设和人才培养。

4. 遵循的软件工程过程的原则有哪些?

1)抽象(Abstraction),抽取事物最基本的特性和行为。

2)信息隐藏(Infomation Hiding),将模块中的软件设计决策封装起来的技术。

3)模块化(Modulation),模块是程序中逻辑上相对独立的成分,一个独立的编程单位。

4)局部化(Localization),一个物理模块内集中逻辑上相互关联的计算资源。

5)一致性(Consistency),整个软件系统(包括文档和程序)的各个模块均应使用一致的概念、符号和术语。

6)完全性(Completeness),软件系统完全实现系统所需功能,不遗漏任何重要成分的程度。

7)可验证性(Verification)系统分解应该遵循系统可验证的原则,即容易检查、测试、评审,以便保证系统的正确性.

5. 软件开发的主要方法?

针对不同的软件开发任务,选择适宜的软件开发方法。

1)结构化方法。用分层的数据流图和控制流图开发系统的功能模型和数据模型,是按照系统功能模型,自顶向下,逐步求精,最终得到组成系统的模块及它们之间的控制关系。

2)面向对象方法。是以对象、对象关系构建软件系统的方法,包括面向对象分析、设计、编码和测试几个方面。

3)形式化开发方法。以软件开发的正确性为目标,软件需求规约用形式化需求规约语言描述,如VDM的META-IV,CSP,Z语言等。

6. 软件过程模型有哪三种类型,又分别包括哪些模型?

第1种是将软件开发过程的分解与软件生存周期划分绑定在一起的瀑布模型及其变形;

第2种是软件开发过程的分解与软件生存周期划分相对独立的通用过程模型;

第3种是专用模型,包括基于构件的软件过程模型、Web应用软件过程模型、面向方面AOP的软件过程模型。

7. 阐述瀑布模型,分析瀑布模型的优缺点,说明哪些软件项目的开发可采用瀑布模型,哪些不适合? 有哪些改进的软件过程模型?

瀑布模型也称软件生存周期模型,将软件开发过程分解为可行性研究、软件需求、设计、编码、测试、运行与维护、退役几个阶段,既是软件开发过程的分解,也是软件生存周期的阶段划分。

优点:思路简洁、明确,上一阶段的开发结果是下一阶段开发的输入,相邻两个阶段具有因果关系,紧密联系。对于规模小、软件需求比较稳定的项目和子系统,采用瀑布模型能够显著提高软件开发的质量和效率。

缺点:1)必须要求客户和系统分析员确定软件需求后才能进行后续的软件开发工作。

2)需求确定后,用户和软件项目负责人要等待相当长的时间才能得到一份软件的最初版本。

3)上游的过失给软件制品带来的缺陷会误导下游的开发活动。

大型软件项目获取全部需求是困难的,不适合使用瀑布模型。

针对第3个缺点,提出带反馈的瀑布模型和V字型瀑布模型。针对第2个缺点提出增量过程,模型增量过程模型的基本思想是,开发人员与用户协商将需求分解,划分为一系列增量,并为增量排序,急需的增量排在前面先开发,不急需的放在后面。每个增量都历经需求、设计、编码、测试、移交几个阶段。针对第1个缺点提出原型建造模型,软件开发人员根据客户提出的软件(全部或部分)定义,快速的开发一个原型。原型向客户展示了待开发软件系统的全部或部分功能和性能,在征求客户对原型意见的过程中,进一步修改、完善、确认软件系统的需求并达到一致的理解。

8. 阐述通用软件开发过程的五项活动,分析通用软件过程的优点。

通用软件开发过程划分为沟通、策划、建模、构建、部署5项。

沟通--包括项目立项,软件系统工程师和领域专家、用户的交流。

策划--包括风险分析、项目规划、成本估算、制定项目计划、项目管理。

建模--包括软件开发的需求建模和软件体系结构设计。

构建--包括软件开发的构件获取或构件设计、编码和测试。

部署--包括发布软件制品、现场安装、运行、维护以及用户培训。

优点:通用软件过程模型用”沟通、策划、建模、构建、部署”5项活动构建软件过程模型,在软件项目管理等普适性活动的支持下进行软件开发,增强了软件开发能力,突出了软件工程特色,具有较大的灵活性和适应性。

9. 试论述 软件质量要素与 软件工程遵循原则之间的关联关系。

抽象和信息隐藏、模块化和局部化的原则支持软件工程的可靠性、可移植性和可复用性,有助于提高软件产品的质量和开发效率。

一致性原则支持系统的正确性和可靠性。

系统分解应该遵循系统可验证的原则,即容易检查、测试、评审,以便保证系统的正确性。

使用一致性、完全性、可验证性的原则可以帮助人们实现一个正确的系统。

10. 极限编程的10项实践的概念


1)完整的团队,2)增量式规划,3)客户参与全过程,4)简单设计,5)结对编程,6)测试驱动开发,7)适时重构,8)持续集成,9)代码集体所有,10)其他。

11. 原型是什么?在软件工程中发挥什么作用?有哪两类原型?

原型是软件的一个早期可运行的版本,专注于展示软件的可见部分,反映最终系统的部分重要特性,用于实验和评价,以指导进一步的软件开发和生产。

主要作用在于统一客户和软件开发人员对项目需求的理 解,有助于需求的定义和确认。

原型主要有两类:一类是抛弃式原型,也称实验性原型,利用原型定义和确认软件需求后,原型就完成了任务;另一类是应用原型,也称进化性原型,利用原型确认软件需求后,对原型进一步加工、完善,使之成为系统的一个组成部分。

更多章节内容,可以前往宏夏Coding

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

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

相关文章

密码学【一】

前言 在区块链的整个体系中大量使用了密码学算法,比如用于 PoW 的哈希算法,用于完整性验证的 Merkle Tree,用于交易签名与验证的数字签名算法,用于隐私保护的零知识证明等等。 可以说密码学是保证区块链安全的基石,而区…

YOLOv5算法改进(17)— 更换损失函数(EIoU、AlphaIoU、SIoU和WIoU)

前言:Hello大家好,我是小哥谈。损失函数(loss function)是机器学习中用来衡量模型预测值与真实值之间差异的函数。它用于度量模型在训练过程中的性能,以便优化模型参数。在训练过程中,损失函数会根据模型的…

C# 扫描并读取图片中的文字(.NET Core)

本文介绍如何通过C# 程序来扫描并读取图片中的文字,这里以创建一个.Net Core程序为例。下面是具体步骤,供参考。 程序测试环境: Visual Studio版本要求不低于2017 图片扫描工具:Spire.OCR for .NET 图片格式:png&…

LCP 50. 宝石补给

文章目录 Tag题目来源题目解读解题思路方法一:模拟 写在最后 Tag 【模拟】【数组】 题目来源 LCP 50. 宝石补给 题目解读 根据 operations 数组将 x 勇士的一半宝石(向下取整)赠送给 y 勇士,最后输出拥有最多宝石的勇士与拥有最…

mac电脑版矢量绘图推荐 Sketch for mac最新中文

Sketch软件特色 1、数字设计工具包 在Sketch中使用暗模式查找焦点。点亮灯光,失去分心,看着你的设计变得生动,让你专注于最重要的事情 - 你的工作。 2、为未来重新设计 Sketch 带来全新外观和更多。完全重新设计的界面使设计过程比以往更加…

【云计算】虚拟私有云 VPC

虚拟私有云 VPC 1.前言1.1 基本介绍1.2 VPC 的作用1.3 VPC 的适用人群 2.VPC 基本概念2.1 VPC 相关基本概念2.2 其他相关基本概念 3.VPC 通信场景3.1 VPC 内部互通3.2 VPC 间互通3.2.1 对等连接3.2.2 Transit Gateway 或者云联网 3.3 访问 Internet3.3.1 Internet 网关3.3.2 NA…

Jmeter系列-监听器Listeners的介绍(9)

简介 用来动态的监控Jmeter执行测试的过程,实时查看测试结果。 JMeter 监听器 查看结果树 查看结果树,显示取样器请求和响应的细节以及请求结果,包括消息头,请求的数据,响应的数据,方便接口调试&#xf…

飞行动力学 - 第27节-短周期模态机理及影响参数 之 基础点摘要

飞行动力学 - 第27节-短周期模态机理及影响参数 之 基础点摘要 1. 短周期的近似2. 短周期特性随重心变化趋势3. 参考资料 1. 短周期的近似 短周期模态仅持续数秒,u几乎不变,故可设 Δ u Δ u ˙ 0 \Delta u \Delta \dot{u} 0 ΔuΔu˙0&#xff0c…

Vue3+ElementUI使用

<!DOCTYPE html> <html> <head><meta charset"UTF-8"><meta name"viewport" content"initial-scale1.0,maximum-scale1.0,minimum-scale1.0,user-scalable0, widthdevice-width"/><!-- 引入样式 --><lin…

Markdown编辑器语法说明

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

数据库计算机三级等级考试--数据库技术相关知识点和笔记

数据库计算机三级等级考试–数据库技术 计算机三级等级考试笔记,是博主通过计算机三级数据库技术考试的相关笔记&#xff0c;此篇博客&#xff0c;不仅适合需要考计算机三级考试的各位考生&#xff0c;也适合在职场处理关于数据库的部分操作&#xff0c;个人认为算是一篇使用性…

C++下基于蚁群算法解决TSP问题

c求tsp问题_蚁群算法-求解TSP问题_PM熊叔的博客-CSDN博客 一、原理 二、代码

初识 Linux 文件系统

初识 Linux 文件系统 如果是刚接触 Linux 系统&#xff0c;可能就很难搞清楚 Linux 如何引用文件和目录。对于对已经习惯 使用 Windows 操作系统的人来说&#xff0c;难度更大。所以要想学习 Linux 系统&#xff0c;就必须先了解 Linux 文件系统 文章目录 初识 Linux 文件系统…

计算机竞赛 机器视觉目标检测 - opencv 深度学习

文章目录 0 前言2 目标检测概念3 目标分类、定位、检测示例4 传统目标检测5 两类目标检测算法5.1 相关研究5.1.1 选择性搜索5.1.2 OverFeat 5.2 基于区域提名的方法5.2.1 R-CNN5.2.2 SPP-net5.2.3 Fast R-CNN 5.3 端到端的方法YOLOSSD 6 人体检测结果7 最后 0 前言 &#x1f5…

统信UOS操作系统aarch64 1060e版制作openssh 9.4p1 rpm包 —— 筑梦之路

环境说明 操作系统&#xff1a;UOS v20 1060e aarch64 openssl版本&#xff1a;1.1.1k 制作过程说明&#xff1a; 该系统和centos 6制作过程几乎无差别&#xff0c;请详细参考博客文章&#xff1a; CentOS 6 源码制作openssh8.9/9.0/9.1/9.2/9.3 p1 rpm包——筑梦之路_ope…

强强/视频SDK:VisioForge SDKs .Net 15.6.8 Crack

VisioForge 为软件开发人员提供视频捕获、编辑和播放解决方案 使用我们的开发人员软件&#xff0c;您可以开发用于从多种来源&#xff08;例如网络摄像头、IP 摄像机、摄像机或 PC 屏幕&#xff09;捕获视频的应用程序。视频可以保存为所有最流行格式的视频文件&#xff0c;例如…

学习记忆——方法篇——联想记忆法、理解记忆法、谐音记忆法、歌诀记忆法、协同记忆法、浓缩记忆法、归类记忆法、房间表记忆法、地点定位记忆法

联想记忆法、理解记忆法、谐音记忆法、歌诀记忆法、协同记忆法、浓缩记忆法、归类记忆法、房间表记忆法、地点定位记忆法 联想记忆法 理解记忆法 谐音记忆法 歌诀记忆法 协同记忆法 浓缩记忆法 归类记忆法 房间表记忆法 地点定位记忆法

论文解读 | 一种用于激光雷达序列语义场景理解的方法

原创 | 文 BFT机器人 01 背景 本文的背景是关于语义场景理解&#xff0c;特别是在自动驾驶汽车领域的应用&#xff0c;其中自动驾驶汽车需要对其周围的表面和物体进行详细的理解。为了实现这一目标&#xff0c;激光雷达&#xff08;LiDAR&#xff09;被广泛用于提供环境的准确…

windows11安装安卓程序的坑

首先&#xff0c;百度一下&#xff0c;网上大把教程&#xff0c;比如&#xff1a; 【2023最新版】Windows11家庭版&#xff1a;安卓子系统&#xff08;WSA&#xff09;安装及使用教程【全网最详细】_QomolangmaH的博客-CSDN博客 写的就比较详细了&#xff0c;仅供参考。 一些…

车载网络测试 - UDS诊断篇 - 流控制帧

目录 一、流控制帧的功能 二、流控制帧组成说明 1、流控制帧组成 2、流控制帧字段说明 a、FlowControl b、FlowState c、BlockSize d、STmin e、Padding bytes 三、流控制帧使用举例 1、数据发送方发送所有连续帧数据 2、数据发送方每次发送至多2条连续帧 3、流控…