博客
关于我
OO第三次作业总结
阅读量:441 次
发布时间:2019-03-06

本文共 1238 字,大约阅读时间需要 4 分钟。

规格化设计发展史

20世纪50年代,软件随着第一台电子计算机的问世而诞生。随后,专门从事软件开发的专业人士开始出现。然而,在计算机系统发展的早期,硬件通常执行单一程序,而该程序通常为特定目的编写。通用硬件逐渐普及时,软件的通用性却仍然有限,软件往往带有强烈的个人色彩。早期的软件开发缺乏系统方法,通常只保存源代码而缺乏文档。

从20世纪60年代中期至70年代中期,软件开始作为一种产品被广泛使用。随着软件数量的激增和需求的日益复杂,维护的难度也大幅增加,个体化开发方式已无法满足要求。在1968年,北约组织在联邦德国召开的国际学术会议上,首次提出了“软件危机”这一概念。随后,近50名编程人员、计算机科学家和工业界巨头参与讨论,探讨如何摆脱软件危机。70年代,结构化开发方法(PO)等工程原则和方法逐渐被采用,规格化设计逐渐发展。

规格化设计能够减少设计复杂性,简化复杂问题。它在数据处理类软件的需求分析中表现突出,能够规范表达需求,生成简洁易读的文档,为后续设计、测试和评价提供有力支持。因此,它被广泛接受并应用于软件开发。

规格化BUG案例

从表格中可以看出,规格化BUG与功能BUG的交集较少。这是因为规格文档通常在方法实现后编写,出错概率相对较低。值得注意的是,第10次作业中由于“==”错误写为“=”导致了JSF不符合规范的问题。这一错误是笔误,已被修正。

规格化BUG产生原因

这一错误的产生是由于测试人员的细心报告。感谢他们的帮助。主因是笔误,主要出现在类似情况下未能及时检查。已对相关部分进行修正。

规格写法改进

前置条件

  • 布尔表达式:确保前置条件是布尔表达式。
  • 非空检查:谨慎处理非空情况,避免因null值引发崩溃。
  • 参数限制:明确传入集合元素的限制,确保每个元素符合预期。
  • 数值范围:考虑数值范围限制,避免溢出或错误操作。
  • 方法调用:从第10次作业起,还需确保方法调用不会破坏对象有效性。
  • 后置条件

  • 赋值与等式:避免将“=”错误写成赋值语句。
  • 自然语言描述:使用简洁的自然语言描述效果,避免冗长。
  • 异常处理:明确异常抛出,确保异常处理逻辑清晰。
  • 算法描述:避免直接描述算法,使用更简洁的方式表达。
  • 工具使用:合理使用Java工具,确保代码表达清晰。
  • 聚集关系分析

    从表格中可以看出,规格化BUG与功能BUG几乎没有交集。这是因为规格文档通常在方法实现后编写,出错概率较低。主要问题集中在方法实现本身。

    设计规格的基本思路与体会

    由于OO课程的特点,规格文档通常在方法完成后编写。这意味着规格主要基于方法实现,导致前置条件和后置条件的编写相对基础。然而,细化每个类和方法的职责,降低方法调用层级,是设计时的重要原则。

    初次接触规格化设计时,我深刻体会到其在实际工程中的价值。良好的规格文档有助于代码理解,起到注释的作用,同时既不限制实现,也为团队协作提供了清晰的需求阐述。通过这次经历,我认识到规格书写习惯对工作的重要性,希望未来能在实践中不断提升这一技能。

    转载地址:http://bbcyz.baihongyu.com/

    你可能感兴趣的文章
    MSCRM调用外部JS文件
    查看>>
    MSEdgeDriver (Chromium) 不适用于版本 >= 79.0.313 (Canary)
    查看>>
    msf
    查看>>
    MSSQL数据库查询优化(一)
    查看>>
    MSSQL日期格式转换函数(使用CONVERT)
    查看>>
    MSTP多生成树协议(第二课)
    查看>>
    MSTP是什么?有哪些专有名词?
    查看>>
    Mstsc 远程桌面链接 And 网络映射
    查看>>
    Myeclipse常用快捷键
    查看>>
    MyEclipse用(JDBC)连接SQL出现的问题~
    查看>>
    myeclipse的新建severlet不见解决方法
    查看>>
    MyEclipse设置当前行背景颜色、选中单词前景色、背景色
    查看>>
    MyEclipse配置SVN
    查看>>
    MTCNN 人脸检测
    查看>>
    MyEcplise中SpringBoot怎样定制启动banner?
    查看>>
    MyPython
    查看>>
    MTD技术介绍
    查看>>
    MySQL
    查看>>
    MySQL
    查看>>
    mysql
    查看>>