`

第一章、软件工程最佳实践

阅读更多

  在本章中,你能够学到:

  1.  软件开发过程中的问题
  2.  解决软件开发过程通常问题的六个软件工程实践
  3. 软件工程过程为软件工程实践提供的支持

 软件开发问题的症状:

  • 用户或者业务需求没有被满足
  • 需求的混杂
  • 系统模块无法集成
  • 系统很难维护
  • 较晚的发现系统的缺陷
  • 不好的质量或者不好的用户体验
  • 不好的负载性能
  • 非并行的团队工作
  • 构建和发布版本的问题

软件工程的六个实践:

  1. 迭代开发
  2. 管理需求
  3. 基于组件的构架
  4. 可视化建模
  5. 持续的质量验证
  6. 管理变更

注释:迭代开发

  迭代开发与瀑布型的开发方法不同,它将软件开发的过程划分为多个迭代,每个迭代都会生成一个反映系统某一部分的构建版本,到最后一个迭代时,整个系统的完全被实现。

 每一个迭代都关注在某些需求集得识别、定义和分析上,并且基于这些需求的理解来设计、构建和测试软件。


  瀑布型开发的特点

  瀑布型的开发从概念上讲是简单的,因为它只产生一个单一的交付产物,。这个开发方法的基本问题是它将风险的识别推迟到项目的后期,这样将会使出来风险的成本非常高

 

风险的分析

迭代开发首先产生系统的构架,允许集成作为设计阶段的“验证活动”,并且允许在项目的更早时期发现并解决设计的缺陷。贯穿于整个项目的持续的集成代替了在项目末期的一次性的重大集成。

 

  管理需求:

管理需求包括将软件涉众的要求转换为关键涉众的需求和系统特性的集合。这些集合随后将被细化成为功能和非功能的需求说明。详细的说明被转化为设计、用户文档和测试。

对软件来说,需求是测试的关键输入。

 

用例概念

 用例是一种以关注最终用户目标的角度定义需求的技术。他们在迭代式开发过程中被广泛的使用。例如RUP

 参与者:不是系统的一部分、它代表了与系统交互的最终用户或者外部系统的角色。

    ------能够与系统交换信息

   -------能够被动的 接收信息

  ====能够是信息的提供者

 能够代表人、机器或者其他系统

用例: 说明了参与者与系统的对话

被一个参与者发起,调用系统的某个功能

是有意义的、流程相关的事件的集合;

产生有观察价值的结果。。

 

实践三:基于组件的架构

软件架构是一个软件开发的产品,它能够在质量、时间进度和成本上提供最大限度的投资回报。

该过程在全力以赴开发之前,关注于早期的开发和健壮可执行体系结构的基线。它描述了如何设计灵活的,可容纳修改的,直观便于理解的,并且促进有效软件重用的弹性结构。

 

有弹性的基于组件的架构

  • 弹性

 满足当前和未来的需求

 改进扩展性

增强重用

封装系统依赖

  • 基于组件

重用或者定制组件

从商业上得到的组件选择

增量式的进化已存在的软件

 

基于组件的架构的目地:

  • 促进软件的重用
  • 软件重用的级别
  • 基于组件的架构可以促进项目的管理

实践四:可视化的建模UML

 开发过程显示了对软件如何显示可视化建模,捕获体系结构和行为。

为什么要可视化建模呢?

  • 帮助管理复杂性
  • 保持设计和实现的一致性
  • 促进沟通

捕获结构和行为

显示系统元素如何结合在一起

适当的隐藏或者展示细节

为所有的软件从业者提供一种语言

 

 实践五:持续的质量验证

达到质量不仅仅是简单的“满足需求”或者生成满足用户需要和期望的产品。质量也包括确定测量方法和质量标准,也包括确保结构产品能够达到适当的质量要求的过程实现。

 

软件模型:

UML能够被用于产生代表软件系统不同方面和视图的一系列的模型。几个模型是对于完整的描述系统是非常有用的,不同的软件活动会产生这些模型。每个模型都是被多次的增量迭代开发出来的。

  • 业务模型是代表什么样的业务过程和业务环境的模型。它主要被用来获得在业务环境下对软件需求的更好的理解
  • 用例模型是表示外部用户与系统交互的模型,它描述了“系统提供的外部服务”
  • 设计模型是描述软件如何“实现”被用例描述的服务的模型,它作为实现模型和它的源代码的概念模型服务的
  • 实现模型代表物理的软件元素和包含他们的子系统的实现。

实践六:管理变更

统一变更管理(UCM)是IBMRational 软件在软件系统开发中(从需求到发布)管理变更的方法。

 

你想控制什么??

  • 工作空间管理
  • 并行开发
  • 过程集成
  • 构建管理

 

 

 

分享到:
评论

相关推荐

    软件工程第一章软件工程的定义

    学习软件工程不仅是为了掌握编程技能,更重要的是理解和应用软件工程的原理和最佳实践,从而提高软件质量,确保项目的成功。这包括从需求分析到项目设计,再到实现、测试和维护的全过程,同时也需要对文档编写、团队...

    《软件工程——理论与实践》(第二版)习题答案

    《软件工程——理论与实践》(第二版)是一本深入探讨软件开发过程和方法的教材,旨在帮助学生和专业人士理解并掌握软件开发的核心原理和最佳实践。这本书的习题答案涵盖了软件工程的多个重要领域,包括需求分析、...

    软件工程 理论与实践 第二版 中文

    《软件工程:理论与实践(第二版 中文版 影印版)》是一本深入探讨软件开发过程、方法和技术的专业书籍。它旨在为读者提供全面的软件工程知识,结合理论与实际操作,帮助读者理解并掌握软件开发的核心要素。本文将...

    IBM Rational Harmony Deskbook REL 4.0 基于模型系统工程最佳实践

    《基于模型的系统工程最佳实践》从方法论的角度,描述了基于模型的系统工程最佳实践。主要从系统工程的视点出发,把系统开发的前期系统工程的工作任务、责任范围,以工作流的方式,解剖得淋漓尽致,为系统的后续开发...

    软件工程——实践者的研究方法

    无论对于初学者还是资深从业者来说,这本书都是一个宝贵的资源,能够帮助读者深入理解软件工程的核心理念与最佳实践。通过学习本书,读者不仅可以获得理论知识,还能掌握实际工作中所需的技能,从而更好地应对软件...

    高级软件工程第一章软件工程现状及发展ppt课件.ppt

    【高级软件工程第一章:软件工程现状及发展】 软件工程是一个涉及多方面知识的学科,它主要关注于软件的开发、维护和管理。本章主要探讨了软件工程的现状及其发展趋势,从理论到实践,从历史到未来,为理解这一领域...

    软件工程导论(第六版)课后习题答案1

    总的来说,软件工程的目标是通过系统化的方法论和最佳实践来克服软件危机,提高软件开发的质量、效率和可维护性。这涉及到对需求的深入理解、合理的工作流程、有效的团队协作,以及持续的技术创新。

    精选高级软件工程(第一章)软件工程现状及发展()PPT文档.ppt

    件工程实践中,软件开发的现状和发展是至关重要的主题。软件工程不仅关注技术层面,还涉及管理、过程、方法和...通过不断学习和应用最佳实践,我们可以更好地应对软件工程中的复杂性和不确定性,推动软件行业持续发展。

    软件工程 实践者的研究方法2/2(中文第六版)Roger S.Pressman

    Pressman所著,自第一版问世以来,始终在软件工程界发挥着巨大的影响。这本书被公认为软件工程领域的权威之作,经过多次修订后,依然保持着其核心价值和领导地位。新版的书籍在结构和内容上都进行了调整和更新,...

    软件工程第2版资源ppt

    首先,第一章“软件工程概述”介绍了软件工程的定义、历史发展以及它在现代社会中的重要性。这一章强调了软件开发的系统性和工程化方法,以及解决复杂性问题的重要性。同时,还讨论了软件危机和软件工程的基本原则。...

    软件工程 实践者的研究方法(中文版)

    ### 软件工程——实践者的研究方法 #### 一、引言与背景 《软件工程——实践者的研究方法》是一本在北美...通过对本书的学习,读者可以深入了解软件工程的核心概念、最佳实践和技术趋势,从而提升自己的专业技能。

Global site tag (gtag.js) - Google Analytics