• 软件工程的本质


    一 软件工程的本质

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

    二 软件工程所关注的目标

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

    三 软件开发的多角色

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

    四 软件工程=最佳实践

    • 原因:

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

      当你把所有的错误都犯过之后,你就是正确的了。

    • 最佳实践的例子:

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

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

    • 复用:
      • 在一个新系统中,大部分的内容是成熟的,只有小部分内容是全新的;
      • 构造新的软件系统可以不必每次从零开始;
      • 直接使用已经有的软构体,即可组装成新的系统;
      • 复用已有的功能模块,既可以提高开发效率,也可以改善新开发过程中带来的质量问题。
    • 分治
      • 将复杂问题分解为若干可独立解决的简单子问题,并分别独立求解,以降低复杂性;以降低复杂性;
      • 然后再将各子问题的解综合起来,形成最初复杂问题的解。然后再将各子问题的解综合起来,形成最初复杂问题的解。
    • 折中
      • 不同的需求之间往往存在矛盾与冲突,需要通过折中来作出的合理的取舍,找到使双方均满意的点。
    • 演化:
      • 软件系统在其生命周期中面临各种变化;
      • 核心问题:在设计软件的初期,就要充分考虑到未来可能的变化,并采用恰当的设计决策,使软件具有适应变化的能力;
      • 即:可修改性可维护性可扩展性
  • 相关阅读:
    log4j动态添加appender
    【翻译】java里编写基准测试的一些经验
    java线程池:获取运行线程数并控制线程启动速度
    maven里的mirror和repository: 配置多repository
    使用maven shade plugin 打可执行Jar包
    activemq plugin开发指南及示例
    通过加入classpath的形式实现命令行运行java程序时引入第三方jar包
    java异常、异常处理机制
    内部类
    接口
  • 原文地址:https://www.cnblogs.com/vachester/p/5874905.html
Copyright © 2020-2023  润新知