软件工程第一章

软件工程

软件无处不在

软件是软件工程的研究对象,也是软件工程的产品形态与客观存在

工程是将理论和知识应用于实践的科学,其目的是经济有效的解决实际问题

软件的本质特性

软件 = 程序 + 数据 + 文档

  • 程序:计算机可以接受的一系列指令,运行时可以提供所要求的的功能和性能
  • 数据:使得程序能够适当地操作信息的数据结构
  • 文档:描述程序的研制过程,方法和使用的图文资料

软件具有

  • 复杂性
  • 一致性
  • 可变性
  • 不可见性

上面是软件开发困难的根本原因

一致性

  • 软件不能独立存在,需要依附于一定的环境(如硬件,网络以及其他软件)
  • 软件必须遵从人为的惯例并适应已有的技术和系统
  • 软件需要随接口不同而改变,随时间推移而变化,而这些变化是不同人设计的结果

可变性

  • 软件一直在变化更新
  • 人们总认为软件是容易修改的,但忽视了修改的副作用
  • 不断的修改最终导致软件的退化,从而结束其生命周期

不可见性

  • 软件是一种看不见摸不着的逻辑实体,不具有空间的形体特征
  • 开发人员可以直接看到程序代码,但是源代码并不是软件本身
  • 软件是以机器代码得形式运行,但是开发人员无法看到源代码是如何执行的

软件所具有的复杂性,一致性,可变性,不可见性等特性,使得软件开发过程变得难以控制,开发团队如同在焦油坑中挣扎的巨兽

软件工程的产生与发展

软件开发面临的挑战

  • 客户不满意
    • 交付的许多功能不是客户需要的
    • 交付的日期没有保障
    • 客户使用时发现许多bug
  • 项目过程失控
    • 客户需求变化频繁,无力应对
    • 无法预见软件的交付质量
    • 对流程盲目遵从,忽视客户业务价值
  • 风险与成本问题
    • 开发团队专注技术,忽视风险
    • 无能力预测成本,导致预算超支
  • 无力管理团队
    • 无法评估开发人员能力及工作进度
    • 困扰于如何提升团队的能力与效率

软件工程一直致力于探索软件开发问题的解决之道

1968年,北大西洋公约组织提出软件工程概念和术语

软件工程的基本概念

软件工程

  • 将系统的,规范的,可定量的方法应用与软件的开发,运行和维护,即工程化应用到软件上
  • 对1中所述方法的研究

好的软件

  • 较低的开发成本
  • 按时完成开发任务并及时交付
  • 实现客户要求的功能
  • 具有良好性能,可靠性,可扩展性,可移植性等
  • 软件维护费用低

软件工程的基本要素

  • 过程
    支持软件开发各个环节的控制和管理
  • 方法
    完成软件开发任务的技术手段
  • 工具
    为软件开发方法提供自动或半自动的软件支撑环境

软件开发的基本策略

  • 软件复用
  • 分而治之
  • 逐步演进
  • 优化折中

软件工程的wasserman规范

  • 抽象
  • 软件建模方法
  • 用户界面原型化
  • 软件体系结构
  • 软件过程
  • 软件复用
  • 度量
  • 工具与集成环境

软件质量实现

什么是好的软件

  • 功能质量
    • 软件符合指定需求
    • 软件几乎没有缺陷
    • 软件性能正常
    • 软件容易上手,操作方便
  • 结构质量
    • 代码可测试性
    • 可维护性
    • 可读性
    • 代码效率:高效管理资源
    • 代码安全:可预防常见威胁
  • 过程质量
    • 软件按时交付
    • 软件满足预算
    • 可复用的开发过程,确保交付质量

产品质量维度

  • 性能
  • 特色
  • 可靠性
  • 符合型
  • 耐久性
  • 可服务性
  • 审美
  • 感知

ISO9126质量模型

  • 功能性
    • 适合性:当软件在指定条件下使用,其满足明确和隐含要求功能的能力
    • 准确性:软件提供给用户功能的精确度是否符合目标
    • 互操作性:软件与其他系统进行交互的能力
    • 安全性:软件保护信息和数据的安全能力
  • 可靠性
    • 成熟性:软件产品避免因软件错误发生而导致失效的能力
    • 容错性:防止外部接口错误扩散而导致系统失效的能力
    • 可恢复性:系统失效后,重新恢复原有的功能和性能的能力
  • 易用性
    • 易理解性
    • 易学习性
    • 易操作性
    • 吸引性
  • 效率
    • 时间特性
    • 资源利用
  • 可维护性
    • 易分析性
    • 易改变性
    • 稳定性
    • 易测试性
  • 可移植性
    • 适应性
    • 易安装性
    • 共存性
    • 替换性
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值