美文网首页
软件工程核心思想-Chapter1_PartII

软件工程核心思想-Chapter1_PartII

作者: 崇本息末 | 来源:发表于2016-09-12 14:09 被阅读0次

    一 软件工程的本质

    • 本质

      • 不同抽象层次之间的映射与转换。任何软件系统开发的共同本质在于:从现实空间的需求到计算空间的软件代码之间的映射与转换。用严格的规范和管理手段来缩小偏差,通过牺牲「时间」来提高「质量」。
    • 映射与转换

      • 单步映射与多步映射
    单步映射与多步映射
    • 软件工程的两个映射:「概念映射」是问题空间的概念与解空间的模型化概念之间的映射;「业务逻辑映射」是问题空间的处理逻辑与解空间处理逻辑之间的映射。

    • 映射过程
      映射过程包含需求分析、软件设计、实现、验证/确认

    二 软件工程所关注的目标

    • 软件工程所关注的对象
      • 产品:各个抽象层次的产出物;
      • 过程 : 在各个抽象层次之间进行映射与转换;
      • 软件工程具有「产品与过程二相性」的特点,必须把二者结合起来去考虑,而不能忽略其中任何一方。
    产品与过程二相性
    • 功能性需求(FR):软件所实现的功能达到它的设计规范和满足用户需求的程度。考虑软件的完备性、正确性、健壮性、可靠性。
    • 非功能性需求(NFR): 系统能够完成所期望的工作的性能与质量。考虑软件的效率、可用性、可维护性、可移植性、清晰性、安全性、兼容性、经济性、商业质量。

    三 软件开发中的多角色

    • 在软件开发过程中同样需要多种角色之间紧密协作,才能提高质量、高效率的完成任务
    • 顾客企业(Client 甲方)
      • 决策者(CxO)、终端用户(End User)、系统管理员
    • 软件开发公司(Supplier,乙方)
      • 决策者(CxO);
      • 软件销售与市场人员;
      • 咨询师、需求分析师;
      • 软件架构师、软件设计师;
      • 开发人员:开发经理/项目经理、程序员;
      • 维护人员

    四 软件工程=最佳实践

    • 软件系统的复杂性、动态性:
      高深的软件理论在软件开发中变得无用武之地
    • 软件工程被看做一种实践的艺术

    五 软件工程的核心概念

    • 复用

    • 在一个新系统中,大部分的内容是成熟的,只有小部分内容是全新的

    • 构造新的软件系统可以不必每次从零做起;

    • 直接使用已有的软构件,即可组装成新的系统;

    • 复用已有的功能模块,既可以提高开发效率,也可以改善新开发过程
      中带来的质量问题。

    • 分治

    • 将复杂问题分解为若干可独立解决的简单子问题,并分别独立求解,
      以降低复杂性;

    • 然后再将各子问题的解综合起来,形成最初复杂问题的解。

    • 核心问题:如何的分解策略可以使得软件更容易理解、开发和维护?

    • 折中

    • 不同的需求之间往往存在矛盾与冲突,需要通过折中来作出的合理的
      取舍,找到使双方均满意的点。

    • 核心问题:如何调和矛盾(需求之间、人与人之间、供需双方之间,等等)

    • 演化

      • 软件系统在其生命周期中面临各种变化
      • 核心问题:在设计软件的初期,就要充分考虑到未来可能的变化,并
        采用恰当的设计决策,使软件具有适应变化的能力。

    六 总结

    由于规模、复杂度、变化、接口的增多,时间、成本的逐渐上升,软件的质量不断下降引发了软件危机。因而出现了「软件工程」。有这样一个公式:SE = 过程+方法+工具 这样的一个公式保证了软件的质量。我们需要把握住的一个中心就是软件工程的本质:不同抽象层次之间的映射与转换。其中有单步映射和多步映射,单步映射一步到位,而多步映射则要分几步完成,通过牺牲「时间」提高了「质量」。
      而软件工程所要达到的质量目标主要有两种:功能需求(FR)和非功能需求(NFR)。并且软件工程等同于最佳的实践,任何理论的方法都需经过实践的检验方能证明为有效的方法。此外还有软件工程的核心概念:复用、分治、折中、演化等等。

    相关文章

      网友评论

          本文标题:软件工程核心思想-Chapter1_PartII

          本文链接:https://www.haomeiwen.com/subject/adupettx.html