2.1 软件工程

news2024/11/23 21:52:32

第2章 信息技术知识

2.1 软件工程

现状:

  • 开发软件的规模越来越大
  • 复杂度越来越高
  • 用户需求并不十分明确
  • 缺乏软件开发方法和工具方面的有效支持

软件成本日益增长、开发进度难以控制、软件质量无法保证、软件维护困难等问题日益突出。人们开始用工程的方法进行软件的开发、管理和维护,即“软件工程”。

2.1.1 软件需求分析与定义

  • 软件需求是针对待解决问题的特性的描述
  • 所定义的需求必须可以被验证
  • 在资源有限时,可以通过优先级对需求进行权衡
  • 通过需求分析,可以检测和解决需求之间的冲突、发现系统的边界、并详细描述出系统需求

2.1.2 软件设计、测试与维护

软件设计:

  • 根据软件需求,产生一个软件内部结构的描述,并将其作为软件构造的基础。

  • 通过软件设计,描述出软件架构及相关组件之间的接口

  • 进一步详细地描述组件,以便能构成这些组件

  • 通过软件设计得到要实现的各种不同模型,并确定最终方案。其可以划分为 软件架构设计(高层设计)软件详细设计 两个阶段

    名称定义总结
    软件架构设计软件架构设计是最高层次的设计活动,它关注的是系统的整体结构和组织,定义系统的主要组件、它们之间的关系和相互作用方式。软件架构设计主要包括选择适当的架构风格和模式,划分模块和组件,定义系统的接口和交互规范等。它的目标是在满足系统需求的同时,实现可扩展性、可维护性、可靠性等质量属性。功能模块的划分和非功能特征是软件架构设计关注的重点!!!软件架构设计关注整体结构和组织,定义系统的主要组件、接口和相互作用方式。
    软件概要设计概要设计则更为详细,着重于定义软件系统的模块和子系统,在软件架构的基础上,进一步划分和定义各个模块的功能和职责。概要设计通常会提供模块之间的接口定义,描述各模块的输入输出和交互逻辑。它的目标是使开发人员能够更好地理解系统的模块结构和相互关系,为详细设计提供一个基础。模块之间的接口定义是概要设计关注的重点!!!概要设计则进一步定义了模块和子系统的功能和职责,提供模块之间的接口定义。
    软件详细设计详细设计是最底层的设计活动,它关注的是每个模块的具体实现细节。在详细设计中,开发人员会根据概要设计,定义模块的算法、数据结构、函数接口、内部逻辑等。详细设计通常会针对每个模块提供详细的设计文档或代码实现,以实现系统的具体功能。模块内部的算法+数据结构是详细设计的关注重点!!!详细设计则更深入地定义每个模块的具体实现细节,包括算法、数据结构和函数接口等。

软件测试

  • 测试是为了评价和改进产品质量、识别产品的缺陷和问题而进行 的活动

  • 是针对一个程序的行为,在有限测试用例集合上,动态验证是否达到预期的行为

  • 测试不仅在编码阶段完成后才开始,应该包括在整个开发和维护过程中,是实际产品构造的一个重要部分

  • 通常在概念上划分为单元测试集成测试系统测试
    在这里插入图片描述
    软件维护

  • 将软件维护定义为需要提供软件支持的全部活动

  • 这些活动包括在交付前完成的活动,以及交付后完成的活动

  • 交付前要完成的活动包括交付后的运行计划和维护计划

  • 交付后的活动包括软件修改、培训、帮助资料

软件维护类型定义
更正性维护更正交付后发现的错误
适应性维护使软件产品能够在变化后或变化中的环境中继续使用
完善性改进交付后产品的性能和可维护性
预防性维护在软件产品中的潜在错误成为实际错误前,检测并更正它们

2.1.3 软件质量保证及质量评价

  • 软件质量指的是软件特性的总合,是软件满足用户需求的能力,即遵从用户需求,达到用户满意
  • 软件质量包括**“内部质量”、“外部质量”、“使用质量”**三部分
  • 软件需求定义了软件质量特性,及确认这些特性的方法和原则
  • 软件质量管理过程由许多活动组成,一些活动可以直接发现缺陷,另一些活动则检测活动的价值
过程定义
软件质量保证- 通过制订计划、实施和完成等活动保证项目生命周期中的软件产品和过程符合其规定的要求
验证与确认- 确定某一活动的产品是否符合活动的需求,最终的软件产品是否达到其意图并满足用户需求
- 验证过程试图确保活动的输出产品构造正确,即活动的输出产品满足活动的规范说明
- 确认过程则试图确保构造了正确的产品,即产品满足其特定的目的
评审与审计- 包括管理评审、技术评审、检查、走查、审计等
- 管理评审的目的是监控进展,决定计划和进度的状态,或评价用于达到目标所用
- 管理方法的有效性,技术评审的目的是评价软件产品,以确定其对使用意图的适合性
- 软件审计的目的是提供软件产品和过程对于可应用的规则、标准、指南、计划和流程的遵从性的独立评价
- 审计是正式组织的活动,识别违例情况,并要生成审计报告,采取更正性行动

2.1.4 软件配置管理

  • 软件配置管理通过标识产品的组成元素、管理和控制变更、验证、记录和报告配置信息,来控制产品的进化和完整性
  • 软件配置管理与软件质量保证活动密切相关,可以帮助达成软件质量保证目标
  • 软件配置管理活动包括软件配置管理计划、软件配置标识、软件配置控制、软件配置状态记录、软件配置审计、软件发布管理与交付等活动
软件配置管理活动注意点
软件配置管理计划软件配置管理计划的制定需要了解组织结构环境和组织单元之间的联系,明确软件配置控制任务
软件配置标识软件配置标识活动识别要控制的配置项,并为这些配置项及其版本建立基线
软件配置控制软件配置控制关注的是管理软件生命周期中的变更
软件配置状态记录软件配置状态记录标识、收集、维护并报告配置管理的配置状态信息
软件配置审计软件配置审计是独立评价软件产品和过程是否遵从已有的规则、标准、指南、计划和流程而进行的活动
软件发布管理和交付软件发布管理和交付通常需要创建特定的交付版本,完成此任务的关键是软件库

2.1.5 软件过程管理

过程定义
项目启动与范围定义启动项目并确定软件需求
项目规划制订计划,其中一个关键点是确定适当的软件生命周期过程,并完成相关的工作
项目实施根据计划,并完成相关的工作
项目监控与评审确认项目工作是否满足要求,发现问题并解决问题
项目收尾与关闭为了项目结束所做的活动。需要项目验收,并在验收后进行归档、事后分析和过程改进等活动

2.1.6 软件开发工具

类型工具
软件需求工具包括需求建模工具和需求追踪工具
软件设计工具包括软件设计创建和检查工具
软件构造工具包括程序编辑器、编译器、代码生成器、解释器、调试器等
软件测试工具包括测试生成器、测试执行框架、测试评价工具`测试管理工具、性能分析工具
软件维护工具包括理解工具(如可视化工具)和再造工具(如重构工具)
软件配置管理工具包括追踪工具、版本管理工具和发布工具
软件工程管理工具包括项目计划与追踪工具、风险管理工具和度量工具
软件工程过程工具包括建模工具、管理工具、软件开发环境
软件质量工具包括检查工具和分析工具

2.1.7 软件复用

  • 软件复用是指利用已有软件的各种有关知识构造新的软件,以缩减软件开发和维护的费用
  • 复用是提高软件生产力和质量的—种重要技术
  • 软件复用的主要思想是,将软件看成是由**不同功能的“组件”**所组成的有机体,每一个组件在设计编写时可以被设计成完成同类工作的通用工具
  • 早期的软件复用主要是代码级复用,被复用的知识专指程序
  • 后来扩大到包括领域知识、开发经验、设计决策、架构、需求、设计、代码和文档等一切有关方面
  • 由于面向对象方法的主要概念及原则与软件复用的要求十分吻合,所以该方法特别有利于软件复用

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

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

相关文章

Codeforces Round 941 (Div. 2)(A,B,C,D,E)

比赛链接 这场难度不高,基本没考算法,全是思维题。B是推结论,C是博弈,D是构造,需要对二进制有一定理解,E是思维题,2300分的暴力和模拟。 A. Card Exchange 题意: 您有 n n n 张牌…

纯血鸿蒙APP实战开发——一镜到底“页面转场”动画

介绍 本方案做的是页面点击卡片跳转到详情预览的转场动画效果 效果图预览 使用说明 点击首页卡片跳转到详情页,再点击进入路由页面按钮,进入新的路由页面 实现思路 首页使用了一种视觉上看起来像是组件的转场动画,这种转场动画通常是通过…

WordPress 管理员密码重置方法汇总

最近明月碰到一个 WordPress 站长求助咨询,说是自己 WordPress 站点的管理员密码被恶意篡改了,对 WordPress 了解的都知道这一般都是恶意代码造成的,问题大多出在使用了所谓的破解版、去授权版的插件或者主题被植入了恶意代码、后门木马。明月…

K8S安装并搭建集群

1. 先给每台机器安装docker环境 卸载旧的docker yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine 配置docker的yum库 yum install -y yum-utilsyum-config-manager --a…

miniconda环境管理器安装及jupyter下载

1.miniconda简介 Miniconda是一款小巧的python环境管理工具,安装包大约只有50M多点,其安装程序中包含conda软件包管理器和Python。一旦安装了Miniconda,就可以使用conda命令安装任何其他软件工具包并创建环境等。 2.下载miniconda 查看需要的…

大模型时代下两种few shot高效文本分类方法

介绍近年(2022、2024)大语言模型盛行下的两篇文本分类相关的论文,适用场景为few shot。两种方法分别是setfit和fastfit,都提供了python的包使用方便。 论文1:Efficient Few-Shot Learning Without Prompts 题目:无需提示的高效少…

找不到msvcp100.dll,无法继续执行代码的问题详细解析

当您在运行某个程序或游戏时遇到提示“找不到msvcp100.dll,无法继续执行代码”,这通常意味着系统中缺失了一个重要的动态链接库文件,从而导致应用程序无法正常启动。为了解决这个问题,本文将介绍5种常见的解决方法,帮助…

卓豪Zoho CRM怎么收费?多少钱一年?

卓豪Zoho CRM作为一款功能强大且高度可定制的企业级客户关系管理系统,其收费标准因版本不同而有所差异,旨在满足不同规模及需求的企业。Zoho CRM提供多种套餐选择,包括但不限于免费版、标准版、专业版、企业版以及旗舰版。每种版本都包含了核…

华为OD机试 - 掌握的单词个数 - 回溯(Java 2024 C卷 100分)

华为OD机试 2024C卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷+C卷)》。 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。 一、题目描述 有一个字符…

步入式恒温恒湿试验箱厂家哪家好?DHT(多禾试验)是您不二之选

步入式恒温恒湿试验箱厂家是一种广泛应用于科研、生产和质量控制领域的设备,所以选择一个合适的步入式恒温恒湿试验箱厂家,是确保试验数据准确性和可靠性的核心因素。因此在选择步入式恒温恒湿试验箱厂家时,需要考虑多方面因素,如…

Golang SDK安装

windows环境安装 1.链接: 下载地址 2.安装SDK 检查环境变量: 3.开启go modules,命令行执行一下命令: go env -w GO111MODULEon4.设置国内代理,命令行执行一下命令: go env -w GOPROXYhttps://proxy.golang.com.cn,https:/…

算法专题:位运算

目录 常见位运算总结 位运算相关算法题 1. 只出现一次的数字 2. 只出现一次的数字(|||) 3. 两整数之和 4. 只出现一次的数字(||) 常见位运算总结 在开始刷位运算这个类型的题目前,我想先带着大家学习一下一些常见…

Abp框架,EF 生成迁移文件时,自动添加表和字段注释内容

在使用 abp 框架,或者ef 的时候都会遇到一个问题,就是建实体后要将实体描述生成到数据库中,就需要手动去添加 [Comment("注释内容")] 注解,这样相当于手动写两次注释(即使你是 Ctrl C)&#x…

现在做电商迟吗?那是你不知道今年黑马,视频号小店重磅来袭

大家好,我是电商笨笨熊 24年想做电商,还能不能做? 当然可以。 电商是一个长期的市场,只要用户有需求,那么电商就会一直存在; 尤其是近几年来无货源模式爆火,对于我们商家来说这种无需自备货…

软件安全测试可以检测软件哪些安全问题?

软件安全测试是一种旨在发现和评估软件应用程序中的安全漏洞和隐患的测试方法。通过安全测试,可以发现并修复潜在的安全问题,从而提高软件应用程序的可靠性和安全性。下面将介绍软件安全测试可以检测到的几种主要安全问题。 身份验证漏洞:身份…

【教学类-55-02】20240512图层顺序挑战(四格长条纸加黑色边框、4*4、7张 、43200张去掉非7色有23040张,去掉重复样式有几种?)

作品展示 背景需求: 之前的代码吗存在几个问题,最大的问题是不能生成“”长条黑边框”” 【教学类-55-01】20240511图层顺序挑战(四格长条纸)(4*4)和“手工纸自制参考图”-CSDN博客文章浏览阅读485次&…

黑盒测试中的边界值分析

黑盒测试是一种基于需求和规格的测试方法,它主要关注软件系统输出的正确性和完整性,而不考虑内部代码的实现方式。在黑盒测试中,边界值分析是一种重要的测试技术,它可以帮助测试人员有效地发现输入和输出的问题。本文将从什么是边…

nacos在没有指定数据源的情况下默认使用什么数据库?

在没有特别指定数据源的情况下,Nacos 默认使用内嵌的数据库 Derby 来存储其数据。Derby 是一个轻量级的、基于 Java 的数据库管理系统,适合于开发和测试环境,因为它简单易部署且无需额外的数据库服务器。然而,对于生产环境&#x…

JSP ssm 房屋中介管理myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 JSP ssm 房屋中介管理系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采…

【C语言/数据结构】栈:从概念到两种存储结构的实现

目录 一、栈的概念 二、栈的两种实现方式 1.顺序表实现栈 2.链表实现栈 三、栈的顺序存储结构及其实现 1.栈的声明 2.栈的初始化 3.栈的销毁 4.栈的压栈 5.栈的弹栈 6.栈的判空 7.返回栈顶元素 8.返回栈的长度 四、栈的链式存储结构及其实现 1.栈的声明 2.栈的…