软件工程--实践者的研究方法[软件工程的概念]

软件工程的概念

  • 2.1 定义软件工程学科
  • 2.2 软件过程
    • 2.2.1 过程框架
    • 2.2.2 普适性活动
    • 2.2.3 过程的适应性调整
  • 2.3 软件工程实践
    • 2.3.1 实践的精髓
    • 2.3.2 通用原则
  • 2.4 软件开发神话
  • 2.5 这一切如何开始的

课程连接 --> [进入]
软件相关的几个简单事实

  • 软件深入到生活各个方面
  • 信息技术需求日臻复杂
  • 日常运作管理以及战略战术决策越来越依靠软件
  • 随着特定应用感知价值的提升,其用户群和软件寿命也会增加
  • 各种形式、各个应用领域的软件都需要工程化

2.1 定义软件工程学科

(1)将系统化的、规范化、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件。
(2)对(1)中所述方法研究

软件工程的内容

  • “系统化的、规范化、可量化”是好的方法,也可能是负担,因此,需要规范,也需要可适应性灵活性
  • 软件工程是一种层次化的技术。
    软件工程--实践者的研究方法[软件工程的概念]_第1张图片
  • 任何工程方法必须构建在质量承诺的基础上。支持软件工程的根基在于质量关注点
  • 软件工程的基础是过程层。软件过程将各个技术层次结合在一起,使得合理、及时地开发软件成为可能。
  • 软件工程方法为构建软件提供技术上的解决方法(如何做?)。
  • 软件工程工具为过程和方法都提供自动化或半自动化的支持。

2.2 软件过程

  • 软件过程是工作产品构建时所执行的一系列活动、动作任务的集合。
  • 活动主要实现宽泛的目标(如沟通),与应用领域、项目大小、结果复杂性或者实施软件工程的重要程度没有直接关系。
  • 动作包含了主要工作产品生产过程中的一系列任务。如设计。
  • 任务关注小而明确的目标,能够产生实际产品。如单元测试。

注意:

  • 过程不是对如何构建软件的严格规定,而是一种可适应的调整方法,以便工作人员(软件团队)可以挑选适合的工作动作和任务集合。
  • 目标是及时、高质量地交付软件,满足软件项目资助方和用户需求

2.2.1 过程框架

  • 过程框架定义了若干个小的框架活动,为完整的软件开发过程建立了基础。这些框架活动可广泛应用于所有软件开发项目,过程框架还包括一些普适性活动
  • 通用的软件工程过程框架的5个活动:沟通、策划、建模、构建、部署

通用框架活动

  • 沟通:包含了与客户(和其他共利益者)之间大量的交流和写作,还包括需求获取以及其他相关活动。
  • 策划:指为后续的软件工程工作制定计划。它描述了需要执行的技术任务、可能的风险、资源需求、工作产品和开发人员更好地理解软件需求;设计可以实现需求。
  • 建模:它包括创建模型和设计两方面。创建模型有助于客户和开发人员更好地理解软件需求,设计可以实现需求。
  • 构建:它包括编码(手写或自动生成)和测试。
  • 部署:软件(全部或者完成的部分)交付到用户,用户对其进行评测并给出反馈意见。

注:
1)不同软件过程细节可能差别很大,但框架活动都是一致的
2)对许多项目来说,随着项目的开展,框架活动可以迭代应用。即,在项目的多次迭代过程中,沟通、策划、建模、构建、部署等活动不断重复(迭代 -> 软件增量 -> 软件逐渐完善)。

2.2.2 普适性活动

  • 软件项目跟踪和控制
  • 风险管理
  • 软件质量保证
  • 技术评审
  • 测量
  • 软件配置管理
  • 可复用管理
  • 工作产品的准备和生产

2.2.3 过程的适应性调整

  • 软件工程过程不是教条,而是灵活可适应的。
  • 不同项目采用的项目过程可能有很大不同,主要体现在以下方面
    (1)活动、动作和任务的总体流程,以及相互依赖关系
    (2)在每一个框架活动中,动作和任务细化的程度
    (3)工作产品的定义和要求的程度
    (4)质量保证活动的应用方式
    (5)项目跟踪和控制活动应用的方式
    (6)过程描述的详细程度和严谨程度
    (7)客户和利益相关者对项目参与的程度
    (8)软件团队所赋予的自主权
    (9)队伍组织和角色的明确程度

2.3 软件工程实践

2.3.1 实践的精髓

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

2.3.2 通用原则

  • 第1原则:存在价值
  • 第2原则:保持简洁
  • 第3原则:保持愿景
  • 第4原则:关注使用者
  • 第5原则:面向未来
  • 第6原则:提前计划服用
  • 第7原则:认真思考

2.4 软件开发神话

软件神话:关于软件及其开发过程的一些被人盲目相信说法

  • 会影响到几乎所有的角色:管理者、顾客、其他非技术性角色、具体的技术人员;
  • 看起来是事实的合理描述(有时的确包含真实的成分)、符合直觉,并经常被拿来做宣传;
  • 实际上误导了管理者和技术人员对软件开发的态度,从而引发了严重的问题。

管理神话

  • 我们指定了完善的规范和标准,只要照章执行,软件开发就不会出现问题
  • 软件项目拖期了,再招聘几个人,很快就能赶上进度;
  • 只要我们使用了最先进的软件开发语言、开发工具和开发环境,软件项目将会一帆风顺。

客户神话

  • 软件改起来简单,你们先做着,做好了我看看,不合适再改。
  • 我就需要你们做一个类似Excel的功能,但是要符合我的要求。

从业者神话:

  • 客户要什么,我们就做什么
  • 当我完成程序并将其交付使用后,我的任务便结束了
  • 软件还没开发完呢,好不好用等做完再说
  • 程序好使就行,其他无所谓
  • 软件工程将导致我们产生大量的无用文档,并因此降低工作效率

2.5 这一切如何开始的

每个软件项目都来自业务需求,需求可能是:

  • 对现有应用程序的纠错
  • 改变遗留系统以适应变化的业务环境
  • 扩展现有应用程序功能和特性
  • 开发一种新的产品、服务或系统

你可能感兴趣的:(软件工程,项目管理,软件工程,软件过程)