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

软工_软件工程

2025.01.24:软件工程导论学习笔记

第2节 软件工程

  • 2.1 软件发展 - 四个阶段
    • 2.1.1 程序设计
    • 2.1.2 程序系统
    • 2.1.3 软件工程
    • 2.1.4 第四阶段
  • 2.2 软件危机
    • 2.2.1 软件危机 - 定义
    • 2.2.2 软件危机 - 主要表现


2.1 软件发展 - 四个阶段

2.1.1 程序设计

  • 软件生产个体化:规模小、编写者和使用者同一个人(无文档,只有程序,自给自足)
  • 软件是设计者头脑中隐含过程:除程序清单,无文档材料保存

2.1.2 程序系统

  • 软件产品:由专门软件开发组织开发(专门生产软件来卖给用户使用)
  • 软件作坊:软件开发组织(比较小、比较落后),沿用早期个体化软件开发方法(无文档,只有程序,没有质量上的提升)
  • 软件危机:软件维护工作耗费大量资源(忙于去维护,甚至没有时间开发)
  • 软件工程:1986年,北大西洋公约组织计算机科学家讨论软件危机,提出软件工程

2.1.3 软件工程

  • 软件危机得到缓解:打破软件生产个体化特征 工程化的设计原则、方法和标准
  • 新的挑战:微处理器和个人计算机;分布式处理系统;局域网、广域网;宽带数字通讯

2.1.4 第四阶段

软件的架构发生变化:由传统的集中主机变成现在的客户机服务器模式,然后是浏览器服务器模式

新技术:专家系统、人工智能、神经网络、并行计算、网络技术、高信度计算、云计算

  • 集中主机式软件,把应用程序和数据存取都安装在这一台计算机上,用户通过这一台计算机运行应用程序处理数据【数据没办法共享】
    在这里插入图片描述
  • 客户机服务器的架构(胖客户瘦服务器模式)是把软件分成两部分,一部分是应用程序(客户端),一部分是数据存取(服务器端)
    【客户端的负担太重,所有的应用程序都放在客户端】在这里插入图片描述
  • 客户机服务器三层模式的软件分三层(客户端、应用服务器端、数据库服务器端),数据库服务器仍然放数据存取,但是应用程序分成两部分:人机交互放在客户端、业务处理放在应用服务器端 客户端不安装软件,只安装一个浏览器能够连上internet访问到这台web服务器就可以了在这里插入图片描述

2.2 软件危机

2.2.1 软件危机 - 定义

在计算机软件开发和维护过程中遇到一系列严重问题(个体问题不算问题,软件危机是整个产业都会出现的问题),软件危机的定义很抽象

2.2.2 软件危机 - 主要表现

  • 开发成本和进度估计不准:延迟交付、取消项目
  • 用户对已交付软件不满意:开发人员对用户信息交流不充分,产品不符合用户需求
  • 软件产品质量靠不住:软件产品保证技术(审查、复审、测试)为坚持不懈应用软件开发全过程
  • 软件可维护性差:开发时未考虑,很多错误难以改正
  • 软件没有适当的文档资料

http://www.kler.cn/a/522207.html

相关文章:

  • gesp(C++六级)(6)洛谷:P10109:[GESP202312 六级] 工作沟通
  • vulfocus/thinkphp:6.0.12 命令执行
  • OpenHarmony 5.0.2 Release来了!
  • Rust语言进阶之zip用法实例(九十五)
  • 【javaweb项目idea版】蛋糕商城(可复用成其他商城项目)
  • Linux C++
  • Dest1ny漏洞库:用友 U8-CRM 系统 ajaxgetborrowdata.php 存在 SQL 注入漏洞
  • EtherCAT主站IGH-- 18 -- IGH之fsm_mbox_gateway.h/c文件解析
  • 使用Python Dotenv库管理环境变量
  • 日志收集Day008
  • 【系统架构设计师】操作系统 ① ( 知识的三种层次 - 系统知识、高频考点、试题拆解 - 软考备考策略 | 操作系统涉及的软考知识点 | 操作系统简介 )
  • 人机环境系统中的贝叶斯与非贝叶斯
  • 【算法学习笔记】36:中国剩余定理(Chinese Remainder Theorem)求解线性同余方程组
  • 06-机器学习-数据预处理
  • Vision Mamba在AMD GPU上使用ROCm
  • c语言版贪吃蛇(Pro Max版)附源代码
  • 题解 信息学奥赛一本通/AcWing 1118 分成互质组 DFS C++
  • 010 mybatis-PageHelper分页插件
  • 精通PCIe技术:协议解析与UVM验证实战
  • 大数据学习之SCALA分布式语言三
  • POWER SCHEDULER:一种与批次大小和token数量无关的学习率调度器
  • Mac Electron 应用签名(signature)和公证(notarization)
  • Mybatis初步了解
  • RU 19.26安装(手工安装各个补丁)
  • wxPython中wx.ListCtrl用法(四)
  • 66-《虞美人》