首页 > 代码库 > 软件工程——概述

软件工程——概述

上次因为临时需要就直接看了系统架构那一章,现在打算从头看起。不求对《软件工程》有多么深入的理解,只求把书变薄就行了。

 

软件工程定义

  采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能得到的最好的技术方法相结合。

软件工程的目标

  采用工程化的方法,提高软件生产质量和软件生产率,降低软件开发成本,成功地构建一个满足用户需求的软件系统。

软件工程开发活动

  • 需求获取
  • 分析
  • 系统设计
  • 对象设计
  • 实现
  • 测试

软件工程过程

  在软件工程的定义中,过程是一组将输入转化成输出的相互关联或相互作用的活动。

  软件工程过程是指软件生命周期所涉及的一系列相关的过程,是产生一个最终能满足需求且达到工程目标的软件产品所需的步骤。

  其主要包括:开发过程、运作过程、维护过程。

软件工程原则

  1. 选取适宜的软件开发模型。
  2. 采用合适的软件开发方法。
  3. 提供高效的开发支持环境。
  4. 重视软件开发过程的管理。
  5. 建设高素质的软件开发团队。

软件工程相关的术语及概念

  1. 参与者、角色:把所有参与到这个项目中的人员均称为参与者;把项目或系统的一组职责称为角色。一个角色与一组任务联系在一起,且被指派给一个参与者。一个参与者能充当多个角色。
  2. 系统与建模:系统一词来指内部相互关联部分的集合。建模是一种通过忽略不相关的细节来处理复杂性的方法。我们用建模一词来专指系统的任何抽象。
  3. 工作产品:一个工作产品是一件在开发中生产的人工产品。我们把供给项目内部使用的工作产品称为内部工作产品(状态报告、测试手册);把必须交付给客户使用的工作产品称为交付的工作产品(规格说明、操作手册)。
  4. 活动、任务、资源:一种活动是为某一具体目的所需完成得任务的集合。一种任务代表一种可管理的原子工作单位。资源使用来完成工作的资产。

从不同的方面提出软件工程的高层次的视点

  1. 软件工程是一项建模活动。
  2. 软件工程是一项解决问题的活动。
  3. 软件工程是一项知识获取的活动。
  4. 软件工程是一项受软件工程原理指导的活动。

 

以下属于个人认知:

 

建模的目的

  是对一个系统或子系统的抽象表示。是我们能够可视化和理解马偕已经不复存在的系统或那些认为存在但未经证实的系统。

“知识获取不是线性的”的理解

  知识获取是一个非线性的过程。对一个系统的理解,一条新信息的获得可能使我们为了理解系统而获取得所有只是变得无效。即使我们已经在文档和编码中证明了这种理解(“这一系统已经完成了90%的代码,我们下周就完工了”),我们必须做好从零开始的准备。

任务和活动的区别:

  活动是任务的集合,任务是活动的子集。