软件工程的本质

一 软件工程的本质

  • 本质:
    • 不一样抽象层次之间的映射过程。任何软件系统开发的共同本质在于:从现实空间的需求到计算机空间的软件代码之间的映射与转换。
  • 映射方法:
    • 单步映射与多步映射:在软件开发过程当中,从需求过程映射到代码空间采起的方式。顾名思义,单步映射一次性完成,而多步映射须要分红多布进行。多步映射能够经过牺牲“时间”来提升“质量”
    • 概念映射与逻辑映射:概念映射是问题空间的概念与解空间的模型化概念之间的的映射;逻辑映射是问题空间的处理逻辑与解空间处理逻辑之间的映射。前者对应与数据结构,后者对应算法。
  • 映射过程:
    • 包括4个部分——需求分析、软件设计、实现、验证/肯定。

二 软件工程所关注的目标

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

三 软件开发的多角色

  • 顾客企业:
    • 决策者;
    • 终端用户;
    • 系统管管理员。
  • 软件开发公司:
    • 决策者;
    • 软件销售与市场人员;
    • 咨询师、需求分析师;
    • 软件构架师、软件设计师;
    • 开发人员:开发经理/项目经理、程序员;
    • 维护人员。

四 软件工程=最佳实践

  • 缘由:
    • 软件系统的复杂性、动态性使得高深的软件理论在软件开发中变得无用武之地;即便应用理论方法来解决,获得的结果也每每难以与现实保持一致;所以软件工程被当作一种时实践的艺术:
    • 作过越多的软件项目,犯的错误就越少,积累的经验越多,随后作项目的成功率就越高;
    • 对新手来讲,要经过多实践、多犯错来积累经验,也要多吸取他人的失败与教训和成功的经验。

    当你把全部的错误都犯过以后,你就是正确的了。程序员

  • 最佳实践的例子:
    • 软件工程的七条原理;
    • 与顾客沟通的最佳实践原则;
    • IBM RUP最佳实践原则...

五 软件工程的四个核心理论概念

  • 复用:
    • 在一个新系统中,大部分的内容是成熟的,只有小部份内容是全新的;
    • 构造新的软件系统能够没必要每次从零开始;
    • 直接使用已经有的软构体,便可组装成新的系统;
    • 复用已有的功能模块,既能够提升开发效率,也能够改善新开发过程当中带来的质量问题。
  • 分治
    • 将复杂问题分解为若干可独立解决的简单子问题,并分别独立求解,以下降复杂性;以下降复杂性;
    • 而后再将各子问题的解综合起来,造成最初复杂问题的解。而后再将各子问题的解综合起来,造成最初复杂问题的解。
  • 折中
    • 不一样的需求之间每每存在矛盾与冲突,须要经过折中来做出的合理的取舍,找到使双方均满意的点。
  • 演化:
    • 软件系统在其生命周期中面临各类变化;
    • 核心问题:在设计软件的初期,就要充分考虑到将来可能的变化,并采用恰当的设计决策,使软件具备适应变化的能力;
    • 即:可修改性可维护性可扩展性
相关文章
相关标签/搜索