• 17074211张昊 计算与软件工程作业5


    作业要求 https://edu.cnblogs.com/campus/jssf/infor_computation17-31/homework/10584
    自我目标 加强对软件开发的理解与掌握
    课程目标 软件开发方法思想的加深
    参考文献 https://www.ituring.com.cn/article/9363

    1.银弹
    什么是银弹?它是否存在?
        IT行业的大规模软件开发使得这些困难更早的被爆发,也引发了软件工程的方法论研究,自动化行业可以从其中窥见一斑。
        20世纪80年代,Brooks在其著作”No Silver Bullet: Essence and Accident in Software Engineering“,对软件工程的根本性困难和次要困难进行了论述,他的一个基本论断是”没有银弹“*(银弹:欧洲中世纪的传说中有一种叫“人狼”的妖怪,只有用银子制成的特殊子弹才能杀死人狼。银弹用于比喻解决软件开发的根本性困难的有效手段)。即,没有任何一种技术活管理上的进展能够独立地承诺在10年内大幅度提高软件的生产率、可靠性和简洁性“。
    Brooks所说的次要困难是指软件开发中那些曾经存在或者目前仍然存在,但并非与生俱来的一些困难。这些问题在过去一些年头里已经得到了解决,例如:高级语言、分时、统一开发平台等,这些进展极大的提高了软件开发效率和质量,但由于软件开发中的根本性困难的存在,这些进展对于软件开发的现状还难以带来本质的变化。
    与此同时,Brooks也对一些可能的“银弹”进行了分析,包括购买而非自行开发(商用第三方构件),需求净化和快速原型、增量开发、好的设计师等,这些手段虽然也不能从本质上解决问题,但无疑能够在一定程度上帮助我们提高软件开发效率和质量。
    2.大泥球
    大泥球,是指杂乱无章、错综复杂、邋遢不堪、随意拼贴的大堆代码。这些年来,为了对付这个泥球,我们看到了多种指导方法,比如 SOLID 、 GRASP 和 KISS ,与其他诸多年代久远的、提倡高内聚、低耦合的方法一起出现。
    大泥球发生的主要原因可以归结为:

    • 一次性代码
    • 碎片式增长
    • 为了让软件不出问题
    • Copy/paste 导致问题转移(有问题的代码被复制到很多地方,不断蔓延)
      有趣的是,根据 FJ 的记录,Yoder 认为 Agile 的很多方面会直接导致泥球,包括:
    • 缺少前期设计
    • 应对需求变化过晚
    • 应对架构变化过晚
    • 碎片式增长
      总结
      软件开发过程是随着开发技术的演化而随之改进的。从早期的瀑布式(Waterfall)的开发模型到后来出现的螺旋式的迭代(Spiral)开发,以致最近开始兴起的敏捷软件开发(Agile),他们展示出了在不同的时代软件产业对于开发过程的不同的认识,以及对于不同类型项目的理解方法。
      通过查看这几个软件工程的方法论,知道了一个软件的开发需要很多的步骤,讨论,沟通,环境等等都会影响整个的软件开发的进度与质量,而一个软件的实现就需要更多的方面的配合,不光自己还要和团队巧妙的配合。
  • 相关阅读:
    接口测试的维度
    python每个文件都需要顶部注释,那今天介绍一个方法,只需要设置一次,下次新建python文件后,注释自动出现在顶部的方法
    反射的4个方法
    python3 导入包总提示no moudle named xxx
    http.client.ResponseNotReady: Request-sent
    jmeter Linux环境执行总报错 cannot allocate memory
    xpath提取包含标签的所有文本内容
    使用python批量插入wordpress-从理清表结构开始
    Cloudways托管迁移中遇到的问题
    wordpress后台数据库表分析
  • 原文地址:https://www.cnblogs.com/17074211zh/p/12653220.html
Copyright © 2020-2023  润新知