软件工程

开发模型

瀑布模型

用于结构化模型开发

适用需求明确或者二次开发

原型模型

适用需求不明确

演化模型

增量模型

适用需求不明确

先做一块,再做一块,这样不断的对核心功能的审视,降低风险

螺旋模型

由多个模型组合成

适用需求不明确

引入了风险分析

V模型

注重测试,强调提早测试,测试贯穿模型的始终

喷泉模型

软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性

敏捷开发模型

适合小型项目

基本原则

  • 短平快的会议
  • 小型版本发布
  • 较少的文档
  • 合作为重
  • 客户直接参与
  • 自动化测试
  • 适应性计划调整
  • 结对编程
  • 测试驱动开发
  • 持续集成
  • 重构

4大价值观:

  • 沟通
  • 简单
  • 反馈
  • 勇气

5大原则

  • 快速反馈
  • 简单性假设
  • 逐步修改
  • 提倡更改
  • 优质工作

12个最佳实践

  • 计划游戏
  • 小型发布
  • 隐喻
  • 简单设计
  • 测试先行
  • 重构
  • 结对编程
  • 集体代码所有制
  • 持续集成
  • 每周工作40小时
  • 现场客户
  • 编码标准

信息系统开发方法

  • 结构化法

    用户至上

    严格区分工作阶段,每阶段有任务与成果

    强调系统开发过程的整体性和全局性

    系统开发过程工程化,文档资料标准化

    自顶向下,逐步分解(求精)

  • 原型法

    适用于需求不明确的开发

    包括抛弃式原型和演化式原型

  • 面向对象方法

    更好的复用性

    关键在于建立一个全面、合理、统一的模型

    分析、设计、实现三个阶段,界限不明确

  • 面向服务方法

    SO方法有三个主要的抽象级别:操作、服务、业务流程

    SOAD分为三个层次:基础设计层(底层服务构件)、应用结构层(服务之间的接口和服务级协定)和业务组织层(业务流程建模和服务流程编排)

    服务建摸:分为服务发现、服务规约和服务实现三个阶段

需求的分类

业务需求

用户需求

系统需求

结构化设计

概要设计、详细设计

  • 自顶向下、逐步求精
  • 信息隐蔽
  • 模块独立(高内聚、低耦合、复杂度)

内聚与耦合

内聚类型 描述
功能内聚 完成一个单一功能,各个部分协同工作,缺一不可
顺序内聚 处理元素相关,而且必须顺序执行
通信内聚 所有处理元素集中在一个数据结构的区域上
过程内聚 处理元素相关,而且必须按特定的次序执行
瞬时内聚(时间内聚) 所包含的任务必须在同一时间间隔内执行
逻辑内聚 完成逻辑上相关的一组任务
偶然内聚(巧合内聚) 完成一组没有关系或松散关系的任务
耦合类型 描述
非直接耦合 两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的
数据耦合 一组模块借助参数表传递简单数据
标记耦合 一组模块通过参数表传递记录信息(数据结构)
控制耦合 模块之间传递的信息中包含用于控制模块内部逻辑的信息
外部耦合 一组模块都访问同一全局简单变量,而且不是通过参数表传递该全局变量的信息
公共耦合 多个模块都访问同一个公共数据环境
内容耦合 一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口转到另一个模块的内部;两个模块有一部分程序代码重叠;一个模块有多个入口

软件测试

  • 尽早、不断的进行测试
  • 程序员避免测试自己设计的程序
  • 既要选择有效、合理的数据,也要选择无效、不合理的数据
  • 修改后应进行回归测试
  • 尚未发现的错误数量与该程序已发现错误数成正比

测试用例设计

黑盒测试

  • 等价类划分
  • 边界值分析
  • 错误推测
  • 因果图

白盒测试

  • 语句覆盖
  • 判定覆盖
  • 条件覆盖
  • 条件判定覆盖
  • 修正的条件判断覆盖
  • 条件组合覆盖
  • 点覆盖
  • 边覆盖
  • 路径覆盖

McCabe复杂度

计算有向图G的环路复杂度公式为: V ( G ) = m − n + 2 V(G)=m-n+2 V(G)=m−n+2

说明:其中V(G)是有向图G中的环路个数,m是G中的有向弧数,n是G中的节点数。

系统运行与维护

软件维护是生命周期的一个完整部分。可以将软件维护定义为需要提供软件支持的全部活动,这些活动包括在交付前完成的活动,以及交付后完成的活动。交付前完成的活动包括交付后运行的计划和维护计划等;交付后的活动包括软件修改、培训、帮助资料等

可维护性

  • 易分析性
  • 易改变性
  • 稳定性
  • 易测试性

维护类型

  • 改正性维护(25%)
  • 适应性维护(20%)
  • 完善性维护(50%)
  • 预防性维护(5%)

软件过程改进

阶段式

成熟度等级 过程域
已管理级 需求管理、项目计划、配置管理、项目监督与控制、供应商合同管理、度量和分析、过程和产品质量保证
已定义级 需求开发、技术解决方案、产品集成、验证、确认、组织级过程焦点、组织级过程定义、组织级培训、集成项目管理、风险管理、集成化的团队、决策分析和解决方案、组织级集成环境
定量管理级 组织级过程性能、定量项目管理
优化级 组织级改革与实施、因果分折和解决方案

连续式

连续式分组 过程域
过程管理 组织级过程焦点、组织级过程定义、组织级培训、组织级过程性能、组织级改革与实施
项目管理 项目计划、项目监督与控制、供应商合同管理、集成项目管理、风险管理、集成化的团队、定量项目管理
工程 需求管理、需求开发、技术解决方案、产品集成、验证、确认
支持 配置管理、度量和分析、过程和产品质量保证、决策分析和解决方案、组织级集成环境、因果分析和解决方案
相关推荐
Allen-Steven9 小时前
P/V操作详解与相关考点(软考知识点)
软件工程
嘟哩DuliDuli14 小时前
AI创作工作区的项目上下文与多模态任务边界
android·人工智能·安全·ai·软件工程
用AI来创业吧2 天前
网站建设公司哪家好:报价差 3 倍,差在哪四项成本上(选型笔记)
笔记·性能优化·软件工程·安全威胁分析
seconp2 天前
基于Spring Boot和Vue 3的智慧旅游网站:住宿预订、行程规划与千问接入
vue.js·spring boot·毕业设计·软件工程·课程设计·旅游·毕设
地图小课堂2 天前
Bigemap Pro 教程|地方独立坐标系 CAD 图纸,怎么导入套合卫星影像
软件工程
海海不掉头发3 天前
软件开发方法第七周笔记_CSDN博客
人工智能·笔记·学习·软件工程
ueotek3 天前
Ansys Zemax丨在 OpticStudio 中拟合折射率数据
python·软件工程·ansys·光学仿真·光学设计·zeamx
旋生万物3 天前
螺旋数不是玄学:Python 实现广义复数与等角螺线
开发语言·人工智能·python·云原生·aigc·软件工程·后端开发
旋生万物3 天前
全息结构入门:Embedding、向量库、知识图谱的统一视角
人工智能·大模型·aigc·软件工程·知识图谱·embedding·后端开发