5、软件工程

作者:Lancer-31日期:10/1/2025

5.1 软件工程的定义

  • 软件工程组成:(1)方法:技术手段(2)工具(3)过程:贯穿各个环节

5.2 软件需求

  • 需求阶段:解决“做什么”
  • 软件需求**:待解决问题的特性的描述,需求必须可验证**,多层次(1)业务需求:对系统高层次的目标需求(2)用户需求:用户的具体目标(3)系统需求:系统角度——功能需求、非功能需求、设计约束
  • 质量功能部署QFD:将用户要求转换成软件需求,(1)常规需求:认为应该有,越多越满意(2)期望需求:想当然认为,无法正确描述(3)意外需求:兴奋需求,要求范围外
  • 需求获取:确定和理解不同的项目干系人对系统的需求和约束的过程
  • 需求分析:结构化分析方法——建模核心【数据字典】三层次模型——(1)数据模型:实体联系图E-R图(2)功能模型:数据流图DFD(3)行为模型:状态转换图STD
  • 需求规格说明书SRS:项目干系人与开发团队对需求达成共识,包括:范围、引用文件、需求、合格性规定、需求可追踪性、尚未解决问题、注解、附录
  • 需求变更过程:识别问题——>问题分析和变更描述——>变更分析——>成本计算——>变更实现——>修改后的需求
  • 需求变更策略:遵循过程、未批准不实现、CCB决定、项目风险承担者了解、不可修改删除原始文档、跟踪经核准的变更请求
  • 变更控制委员会CCB项目所有者权益代表,决策机构,非作业机构,不提出变更方案
  • 需求跟踪:提供了由需求到产品实现整个过程范围的明确查阅的能力,不可省略(1)正向跟踪:需求是否在产品中有对应(2)逆向跟踪:工作成果是否在需求文件中有出处(3)双向跟踪:正+逆

5.3 软件设计

  • 软件设计:解决“怎么做”,分为(1)结构化设计(2)面向对象设计

5.4 软件实现

  • 软件配置管理(SCM)核心:(1)版本控制:追踪文件的变更和并行开发(2)变更控制:活动×6——计划、标识、控制、状态记录、审计、发布管理与交付(软件库)关联15章节
  • 软件测试:确保软件质量,贯穿整个开发和维护过程
  • 测试方法:(1)静态测试:未运行,文档(检查单)+代码(桌前检查、代码走查、代码审查)(2)动态测试:实际运行,黑盒测试 / 白盒测试
  • 白盒测试:结构测试,用于单元测试,知结构和算法
  • 黑盒测试:功能测试,用于集成测试,不知内部结构和算法
  • 测试类型:(1)单元测试:模块测试,依据软件详细设计说明书(2)集成测试:模块间,模块和已集成的软件之间的关系(3)确认测试:验证特性是否与用户需求一致(4)系统测试(5)配置项测试:配置项与SRS的一致性(6)回归测试:修改代码后,测试是否引入新错误
  • 确认测试:(1)内部确认测试(2)Alpha测试:用户在开发环境下测试(3)Beta测试:用户在实际使用环境下测试(4)验收测试:真实的用户工作环境下测试
  • 软件调试:测试成果的标志是发现了错误

5.5 部署交付

  • 软件系统部署管理代价占到整个软件管理开销的大部分
  • 软件部署:(1)面向单机软件的部署模式(2)集中式服务器应用部署(3)基于微服务的分布式部署
  • 持续交付:业务开发完成后一键部署
  • 交付能力评估指标(1)核心指标:仅涉及一行代码的改动需要多少时间部署上线(2)是否在以一种可重复、可靠的方式执行软件交付
  • 持续部署方案:最流行——容器技术,优点:上手简单、轻量级、集合型好、易打包发布
  • 蓝绿部署:部署准备新旧版本,通过域名解析切换,新版本出问题快速切换至旧版本
  • 金丝雀部署:少量用户使用新版本,正常后适配给所有用户(测试服、体验服、抢先服)

5.6 软件质量管理

  • 软件质量:软件与明确地和隐含地定义的需求相一致的程度
  • 影响软件质量的因素:(1)产品运行(2)产品修改(3)产品转移
  • 软件质量保证SQA:主要任务(1)审计与评审(2)报告(3)处理不合格问题

5.7软件过程能力成熟度

  • CSMM软件过程能力成熟度模型:4能力域——治理、开发与交付、管理与支撑、组织管理;20能力子域;161能力
  • 成熟度等级——P231


5、软件工程》 是转载文章,点击查看原文


相关推荐


JavaScript性能优化实战:立即执行函数表达式(IIFE)优化与全局污染防治
AC赳赳老秦9/30/2025

本文深入剖析了JavaScript中IIFE(立即执行函数表达式)的核心原理与应用价值。文章首先揭示了全局作用域污染导致的命名冲突、内存泄漏等问题,随后详细解析IIFE的语法结构及其通过闭包实现作用域隔离的机制。重点探讨了IIFE在性能优化方面的优势,包括缩短作用域链、加速内存回收等关键技术。通过对比实验数据展示了IIFE在执行效率和内存管理上的显著提升,并提供了模块化封装、依赖注入等高级应用模式。


一款专门为 WPF 打造的开源 Office 风格用户界面控件库
追逐时光者2025/10/2

前言 今天大姚给大家分享一款专门为 WPF 打造的开源(MIT license)、免费的 Office 风格用户界面控件库:Fluent.Ribbon。 项目介绍 Fluent.Ribbon 一个为 Windows Presentation Foundation(WPF)实现类 Office 开源(MIT license)、免费的用户界面控件库,提供了诸如 RibbonTabControl(功能区选项卡控件)、Backstage(后台视图)、Gallery(画廊控件)、QuickAcces


RWKV7-G1a 2.9B 推理模型开源发布,继续推进纯 RNN 模型的思考能力
RWKV元始智能2025/10/2

2025 年 9 月 24 日, RWKV7-G1a 2.9B 推理模型开源发布,继续推进纯 RNN 模型的思考能力。 RWKV7-G1a 2.9B 从 RWKV7-G1 2.9B 继续训练 1T tokens 高质量数据,显著提升各方面能力。 模型客观指标评测 英语和多语言能力 RWKV7-G1a 2.9B 的基础英语和多语言能力均强于同规模的开源模型: 作为纯预训练的基底模型,无“刷榜”,RWKV7-G1a 2.9B 的 MMLU 提升到 61.1%,MMLU Pro 提升到 31.5%(


GLM-4.6 + Cursor 实战首秀:国产大模型高效优化现有模块
飞哥数智谈2025/10/3

昨天配置了 GLM-4.6 的环境,今天我们直接在实际项目中深度使用下。 《免费用上 GLM-4.6!我在 Cursor 里接入了模力方舟 - 掘金》 背景与任务 实战场景依然是基于我们的“协同平台”,系统内有一个“项目”模块和“待办”模块。 今天的实战任务就是优化项目查看界面,使用待办模块实现项目下的需求、任务、缺陷管理。 实操记录 环境:Cursor + 模力方舟 GLM-4.6 API。 初版生成 指令 优化项目查看页面。 更改为左右布局,左侧span=16,右侧span=8 左侧:


重磅更新!Claude Sonnet 4.5发布,编程最强模型
哪吒编程2025/10/4

9月30日,Anthropic公司发布最新旗舰模型Claude Sonnet 4.5。 官网描述: Claude Sonnet 4.5 是世界上最好的编码模型。它是构建复杂代理的最强大模型。它是使用计算机的最佳模型。它在推理和数学方面表现出显著的进步。 代码无处不在。 它运行着你使用的每个应用程序、电子表格和软件工具。能够使用这些工具并推理解决难题是现代工作得以完成的关键。 一、为何是Claude Sonnet 4.5,而不是Claude Opus 4.5? 1、Claude 系列目前主要有三大


AI训练的悖论:为什么越追求准确率越会产生幻觉?
MobotStone2025/10/5

在早期时,我曾让大模型撰写一位冷门历史人物的传记。它胸有成竹,娓娓道来:年代、成就,甚至几句“名言”,一应俱全。读起来简直像历史上真的存在一样。 唯一的问题是:大部分内容都不是真的。严格来说,模型并非“撒谎”,而是在知识缺口处用看似合理的细节把空白填满。它是出色的故事编辑者,却是离谱的历史学家。 这种问题在 AI 领域叫做"幻觉"(就像人会产生错觉一样),是目前提升 AI 可靠性路上最难啃的硬骨头之一。我们理想中的 AI 应该像万能百科一样无所不知,但更重要的是,它必须清楚地知道自己"不知道什么


Spring Boot集群 集成Nginx配置:负载均衡+静态资源分离实战
夜雨hiyeyu.com2025/10/6

Spring Boot 集群集成 Nginx:负载均衡 + 静态资源分离实战指南 第一章:架构概述与设计理念1.1 为什么需要集群化?1.2 整体架构设计 第二章:Spring Boot 应用集群化准备2.1 应用无状态化改造2.2 应用配置标准化 第三章:Nginx 负载均衡配置详解3.1 Nginx 安装与基础配置3.2 高级负载均衡策略 第四章:静态资源分离实战4.1 静态资源配置优化4.2 CDN 集成配置 第五章:高可用与故障转移5.1 Nginx 高可用架构5.2


找 Vue 后台管理系统模板看这个网站就够了!!!
追逐时光者2025/10/8

前言 在开发 Vue 后台管理系统时,一个美观、功能完善且易于扩展的模板能极大提升我们的开发效率。面对琳琅满目的 Vue 开源项目,如何快速找到真正实用、维护良好的模板成为关键。大姚给大家分享一个 Vue 后台管理系统模板大全,里面收录了大量开源的 Vue 后台管理系统模板和 Vue 后台管理系统。 在线访问地址:vue.easydo.work 什么是 Vue? Vue 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提


关于Mybatis-Plus的insertOrUpdate()方法使用时的问题与解决—数值精度转化问题
superstrer2025/10/9

1 问题描述         今天在使用Mybatis-Plus的insertOrUpdate()方法时,新增能成功,编辑无法成功,报错如下:         我很好奇,明明我前端执行的是编辑逻辑,并不需要phone_number字段,而insertOrUpdate()方法为什么会执行INSERT语句?         而这里的phone_number报错也很好理解,就是因为数据库我设置了该字段NOT NULL,而编辑操作误执行为插入操作,因此并没有设置phone_number字段的值


Python人工智能编程从零开始掌握机器学习基础
jianmin09202025/10/11

Python与机器学习入门概述Python人工智能编程从零开始掌握机器学习基础,是当今技术领域一项极具价值的技能。Python凭借其简洁易读的语法、丰富的库生态系统以及强大的社区支持,成为机器学习入门和实践的首选语言。对于初学者而言,从零开始学习意味着需要系统性地理解机器学习的基本概念、掌握必要的数学基础,并熟练运用Python相关的工具库进行实战练习。这一旅程虽然充满挑战,但通过循序渐进的学习路径,任何人都能建立起坚实的 foundation。搭建Python开发环境开始机器学习之旅的第一步是

首页编辑器站点地图

Copyright © 2025 聚合阅读

License: CC BY-SA 4.0