zoukankan      html  css  js  c++  java
  • 计算与软件工程 作业五

    这个作业要求在哪里 https://edu.cnblogs.com/campus/jssf/infor_computation17-31/homework/10584
    我在这个课程的目标是 评判其他学生的程序,同时进行代码复审;两人合作结对编程
    此作业在哪个具体方面帮我实现目标 首先是通过评价他人的代码来巩固自己的知识,其次作业二是运用Python编写一个统计红楼梦各个回合的人物出场次数,学习了Python。
    其他参考文献 https://www.cnblogs.com/xinz/p/3852390.html

    作业要求

    迄今为止,我们了解了不少软件工程的方法论。请从下表挑选几篇关于软件工程方法论的文章,仔细阅读(包括相关的讨论),根据你的软件工程经验分享你的看法。

    软件工程方法论

    银弹

    要抓住面向对象的手段,实现它是一个目的,而不是一个手段-一个目标,而不是实现它的技术。

    它意味着改变我们如何看待软件,把我们的重点转移到我们构建的对象上,而不是我们用来构建它们的过程。软件产业革命涉及一种类似的范式转变,对根深蒂固的价值体系、权力结构和对消费者的角色的神圣信念有类似的攻击。
    复杂的软件工程问题无法靠简单的答案来解决。软件工程本身存在复杂性,一致性,不可预见性,不可视化性,在软件开发过程中没有没有万能的程序,只有各种方法结合在一起解决问题。银弹(银色的子弹)是仅有的可以用于猎杀“人狼”的特殊子弹,所以在软件开发领域是不存在这样具有绝对性的程序的。

    大泥球

    大泥球,是指杂乱无章、错综复杂、邋遢不堪、随意拼贴的大堆代码。这样当程序出现错误时,修改代码的过程就会变得非常麻烦与复杂。软件的代码是需要不断修改的,如果一段代码的结构无序性,不遵守代码的规范,当好不容易找到错误时,一个修改打乱了整个程序,所以软件的结构很重要。
    所以在编写程序时要注意到:

    1. 对于用户的需求得做到全面的分析,考虑到特殊情况,其解决方案在保证解决上述问题的途中也要具有灵活性,而不局限于当前的需求。
    2. 代码风格要清晰,每一部分都有规定的需求而不是添砖加醋。能够对编程语言和环境有深刻的认识,学会利用现有的资源简化代码。
    3. 软件开发室要有足够丰富的沟通交流动态的发现问题并解决,对于每一个阶段能够正确做到每一部分的评估。

    集市与大教堂

    集市(开源)模式是一种并行的、对等的扁平化开发接口参与者大多来自于互联网上的志愿者,结构松散、来去自由,例如linux操作系统就是集市模式的成功实践品。集市方便统一起代码的集市风格,在开源中也能与高手交流、学习,但是不是一味地照搬,一直沿用的开源代码中可能存在错误。

    MIT方法or新泽西州方法

    MIT方法如下

    简便性-设计在实现和接口上都必须简单。接口要比实现简单,这一点更为重要。
    正确性-设计在所有可见方面都必须正确。根本不允许不正确。
    一致性-设计一定不能不一致。为了避免不一致,允许设计稍微简单一些,不太完整。一致性与正确性一样重要。
    完整性-设计必须涵盖尽可能多的重要情况。必须涵盖所有合理预期的情况。不允许过于简单地降低完整性。

    新泽西州方法如下

    简便性-设计在实现和接口上都必须简单。简单的实现比接口更重要。简洁是设计中最重要的考虑因素。
    正确性-设计在所有可见方面都必须正确。简单比正确要好一些。
    一致性-设计一定不能过分不一致。在某些情况下,为了简化起见,可以牺牲一致性,但是最好将设计中处理不常见情况的那些部分删除,而不要引入实现复杂性或不一致性。
    完整性-设计必须涵盖尽可能多的重要情况。所有合理预期的情况都应包括在内。可以牺牲完整性来支持其他任何质量。实际上,每当实现简单性受到威胁时,都必须牺牲完整性。如果保持简单性,可以牺牲一致性来实现完整性。尤其是一文不值的是接口的一致性。

    比较上述的方法,新泽西州方法看似是一个错误的法则,但新泽西州的方法在用于软件时比麻省理工学院的MIT方法更好。所以并不是绝对的更好更好,也会存在越糟越好。对一个程序员来说并不一定要追求完美的、安全的软件编程环境,或许在病毒上诞生的程序更棒呢。

    敏捷流程

    敏捷是一个过程,可以帮助团队快速,不可预测地响应他们在项目中收到的反馈。它为在开发周期中评估项目方向创造了机会。团队在常规会议中评估项目,称为冲刺或迭代。
    什么是敏捷开发?
    以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发!
    核心:用户的需求进化
    方法:迭代、循序渐进
    敏捷开发原则:

    1. 快速迭代
    2. 需求评审
    3. 编写story/验收标准
    4. 多沟通,尽量减少文档
    5. 做好产品原型
    6. 及早考虑测试
      一些关于敏捷开发的方法:
      Crystal方法、动态系统开发方法(DSDM)、功能驱动开发(FDD)
  • 相关阅读:
    JavaScript相关知识
    JQ定义
    将博客搬至CSDN
    javascript权威指南笔记(第6章 对象)
    高性能javascript(第一章 加载和运行)
    javascript高级程序设计笔记(第4章 变量、作用域和内存问题)
    浏览器加载渲染HTML、DOM、CSS、 javascript、image、flash、iframe、src属性等资源的顺序总结
    mac 快捷键
    javascript的执行顺序
    javascript高级程序设计笔记(第1章~第3章)
  • 原文地址:https://www.cnblogs.com/xinxiyujisuan/p/12640020.html
Copyright © 2011-2022 走看看