• OO第三次博客作业


    规格化设计的发展历史

    (这一部分由于未能在网上找到较为准确的资料,因此参考了另一篇博客https://www.cnblogs.com/buaazzw/p/9099526.html)

            1950年代,第一次分离,主程序与子程序的分离结构是树状模型,子程序可先于主程序编写。通过使用库函数来简化编程,实现最初的代码重用。产生基本的软件开发过程:分析—设计—编码—测试,使大型软件系统的开发成为可能。

           1975—1980年代,第二次分离,规格说明(Spec)和体(body)的分离说明是类型定义和操作描述,体是操作的具体实现。(具体的例子就是C++,Java等面向对象语言的类说明与类实现的分离。)解决方案设计只关注说明,实现时引用或者设计体。体的更改、置换不影响规格说明,保证了可移植性。支持多机系统,但要同样环境。此时产生了划时代的面向对象技术。

           1995—2000年代,第三次分离,对象使用和对象实现的分离基于构件开发:标准化的软件构件如同硬件IC,可插拔,使用者只用外特性,不计内部实现。Web Services:软件就是服务。分布式,跨平台,松耦合。

    规格化设计为何得到大家的重视

      因为在程序编写过程中,一些代码段会被多次使用,而这些常用的代码段可能会由编写者编写封装成方法或函数后分享给其他编程者使用,因此就需要通过规格告知使用者这个方法的作用以及需要保证的条件有哪些,让使用者能正确有效地使用这些代码段。

      除了为了保证使用者可以正确有效地使用这些方法外,规格也是帮助编写者理清思路的工具,在明确了一个方法的作用以及需求之后,可以便于编写者理清逻辑,可以更高效地编写程序。

    被报告的规格bug

    JSF整体:格式错误,没加@或者未使用正确的注释格式。

    REQUIRES:需求限制不够严谨。

    MODIFIES:需要注明this的地方写了无。

    JSF不好的写法

    (1)使用自然语言

    (2)过于简略

    (3)没有异常处理

    (4)出现错误符号

    (5)对于一些问题的处理模糊

    改进措施

    (1)减小方法的代码长度,避免使用过长的布尔表达式

    (2)尽量考虑到所有可能情况

    (3)加上异常处理

    (4)认真仔细

    (5)咨询他人或查询资料

    功能bug:

    第九次:

    代码未被测试。

    第十次:

    由于代码执行时间的问题,流量刷新与流量增加并未同步,造成出租车不遵循流量的情况。

    第十一次:

    代码未被测试。

    心得体会

      写代码的时候应该先考虑规格,考虑周全之后再开始编写代码,否则回头补充规格容易出现疏漏。多线程执行时,对于多线程同步的问题还需要仔细研究学习。

  • 相关阅读:
    MFC 简介
    C++使用thread类多线程编程
    C++中stack
    C++中头文件简介(stdio.h & chrono)
    别人写的很好Arduino教材
    Communicating to 2 SPI Slaves with USART & SPI ports on Atmega16U2
    HDU 2089 不要62(挖个坑=-=)
    HDU 3555 Bomb(数位DP)
    HDU 3480 Division(斜率优化+二维DP)
    HDU 3045 Picnic Cows(斜率优化DP)
  • 原文地址:https://www.cnblogs.com/black-bob/p/9101177.html
Copyright © 2020-2023  润新知