当前位置: 首页 > news >正文

【软件工程】软件工程学概述复习资料

一、软件的概念与特点

概念

  1. 满足功能要求和性能的指令或计算机程序集合
  2. 处理信息的数据结构
  3. 描述程序功能以及程序如何操作和使用所要求的文档

特点

  • 抽象性:逻辑实体而非物理实体
  • 智力产品:知识技术的转换产物
  • 无磨损:不存在机械老化问题
  • 系统依赖性:受计算机系统限制
  • 手工开发:尚未完全自动化
  • 高成本:开发费用日益昂贵

二、软件危机

定义

在计算机软件开发和维护过程中遇到的一系列严重问题

表现

  1. 开发效率跟不上计算机普及速度
  2. 软件成本占比逐年上升
  3. 开发人员与用户沟通不充分
  4. 质量难以保证
  5. 可维护性差
  6. 重用性低
  7. 文档不完善

产生原因

  • 软件生产本身的复杂性
  • 开发方法和技术局限

三、软件工程方法学三要素

方法工具过程

四、软件生命周期

三个时期

  1. 软件定义时期

    • 问题定义
    • 可行性研究
    • 需求分析
  2. 软件开发时期

    • 总体设计
    • 详细设计
    • 编码和单元测试
    • 综合测试
  3. 运行维护时期

五、软件开发模型

1. 瀑布模型

核心思想:按工序化简问题,分离功能实现与设计

特点

  • 阶段顺序性和依赖性
  • 推迟实现观点
  • 质量保证(阶段评审)

存在问题

  • 不适合需求模糊的系统

适用场景:操作系统、编译系统等系统软件开发

2. 快速原型模型

特点

  • 快速建立功能子集原型
  • 用户通过试用了解系统概貌

3. 增量模型

特点

  • 瀑布模型顺序特征 + 原型迭代特征
  • 将软件视为相互联系的增量

其他模型

  1. 螺旋模型
  2. 敏捷模型(XP极限编程)
  3. 喷泉模型
  4. 微软过程模型

相关文章:

  • openharmony5.0.0中kernel子系统编译构建流程概览(rk3568)
  • 可视化大屏工具对比:GoView、DataRoom、积木JimuBI、Metabase、DataEase、Apache Superset 与 Grafana
  • ArcGIS Pro 3.4 二次开发 - 地图创作 1
  • ArcGIS Pro 3.4 二次开发 - 地图创作 2
  • JavaScript async/await指南
  • 解决Vditor加载Markdown网页很慢的问题(Vite+JS+Vditor)
  • 【请关注】MySQL 中常见的加锁方式及各类锁常见问题及对应的解决方法
  • ES101系列09 | 运维、监控与性能优化
  • 笔记本/台式C盘扩容:删除、压缩、跨分区与重分配—「小白教程」
  • 大模型的外围关键技术
  • 动态规划-1143.最长公共子序列-力扣(LeetCode)
  • OpenCV C++ 学习笔记(五):颜色空间转换、数值类型转换、图像混合、图像缩放
  • Flink 重启后事件被重复消费的原因与解决方案
  • 极智项目 | 基于PyQT+Whisper实现的语音识别软件设计
  • Rust 学习笔记:使用自定义命令扩展 Cargo
  • Matlab2018a---安装教程
  • Bash shell四则运算
  • python,shell,linux,bash概念的不同和对比联系
  • isp调试 blend模式指什么
  • 深圳南柯电子|储能EMC整改:如何节省70%整改费用的实战方法
  • 椒江建设网站/西安企业seo
  • 怎么建设自己淘宝网站/人力资源培训网
  • wordpress标签页面添加自定义字段/无锡网络优化推广公司
  • 网站建设昆明/seo推广是什么意思呢
  • 网站建设电话销售/线上购买链接
  • 虚拟空间能建多个网站/网站的seo 如何优化