Chapter 2 软件工程

软件工程定义??

IEEE

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

Pressman

  • 软件工程包括一个过程、管理和构建软件的方法以及工具
  • 适应性和敏捷性
  • 软件工程是一种分层技术

软件工程层次图????

Chapter 2 软件工程
  • 支持软件工程的根基在于质量关注点
  • 软件工程的基础过程( process)层。
  • 软件工程方法(method)为构建软件提供技术上的解决方法(如何做)。
  • 软件工程工具( tool)为过程和方法提供自动化或半自动化的支持。

软件过程

  • 软件过程是工作产品构建时所执行的一系列活动、动作和任务的集合。
    • 活动( activity)主要实现宽泛的目标(如与利益相关者进行沟通),与应用领域、项目大小、结果复杂性或者实施软件工程的重要程度没有直接关系。
    • 动作( action,如体系结构设计)包含了主要工作产品(如体系结构设计模型)生产过程中的一系列任务
    • 任务( task)关注小而明确的目标,能够产生实际产品(如构建一个单元测试)。
  • 框架活动(framework activities)??
    • 沟通:理解利益相关者的目标并收集需求以定义软件特性和功能
    • 策划:定义和描述软件工程工作
    • 建模:利用模型更好地理解软件需求并完成设计
    • 构建:包括编码和测试
    • 部署:软件交付
  • 普适性活动(umbrella activities)——软件过程框架活动由很多普适性活动来补充实现
    • 软件项目跟踪和控制—项目组根据计划来评估项目进度,并且采取必要的措施保证项目按进度计划进行。
    • 风险管理——对可能影响项目成果或者产品质量的风险进行评估。
    • 软件质量保证——确定和执行保证软件质量的活动。
    • 技术评审——评估软件工程产品,尽量在错误传播到下一个活动之前发现并清除错误。
    • 测量——定义和收集过程、项目以及产品的度量,以帮助团队在发布软件时满足利益相关者的要求。同时,测量还可与其他框架活动和普适性活动配合使用。
    • 软件配置管理——在整个软件过程中管理变更所带来的影响。
    • 可复用管理——定义工作产品复用的标准(包括软件构件),并且建立构件复用机制。
    • 工作产品的准备和生产——包括生成产品(如建模、文档、日志、表格和列表等)所必需的活动。

软件工程实践

实践的精髓??

  • 理解问题(沟通和分析)。
  • 策划解决方案(建模和软件设计)。
  • 实施计划(代码生成)。
  • 检查结果的正确性(测试和质量保证)。

实践的原则??

  • 存在价值
    • 一个软件系统因能为用户提供价值而具有存在价值
  • 保持简洁
    • 所有的设计都应该尽可能简洁,但不是过于简化
  • 保持愿景
    • 清洗的愿景是软件项目成功的基础
  • 关注使用者
    • 在需求说明、设计和实现过程中,牢记要让别人理解你所做的事情
  • 面向未来
    • 生命周期持久的系统具有更高的价值
    • 构建可以解决通用问题的系统,为各种可能的方案做好准备
  • 提前计划复用
    • 提前做好复用计划将降低开发费用,并增加可复用构件以及构件化系统的价值
  • 认真思考
    • 在行动前清晰定位、完整思考通常能产生更好的结果

软件开发神话

  • 管理神话
    • 一本宝典可以提供所需的所有信息
    • 通过增加程序员人数可以赶上进度
    • 放心甩手外包公司
  • 客户神话
    • 大概了解项目目标就能开始写程序
    • 软件很容易适应变更
  • 从业者神话
    • 写完程序交付后就结束了
    • 直到程序开始运行才能评估质量
    • 可执行程序是唯一可交付的成果
    • 软件工程将产生大量文档降低工作效率

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月21日
下一篇 2021年1月21日

相关推荐