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

    计算与软件工程作业五

    作业要求 第五周作业
    课程目标 讨论软件开发方法的思潮
    作业帮助 了解软件开发的各种方法论
    参考文献 软件开发方法的思潮

    作业正文

    https://edu.cnblogs.com/campus/jssf/infor_computation17-31/homework/10584

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

    瀑布模型

    软件将要经历一个定义、开发、运行维护,直至被淘汰这样的全过程,这个全过程称为软件的生命周期。 为了使软件生命周期中的各项任务能够有序地按照规程进行,需要一定的工作模型对各项任务给予规程约束,这样的工作模型被称为软件过程模型。瀑布模型中的“瀑布”是对这个模型的形象表达,即山顶倾泻下来的水,自顶向下、逐层细化。

    它在软件工程中的局限性在于:

    • 各步骤之间是分离的,(但是软件的生产过程中的各个步骤不能这样严格分离出来。)
    • 回溯修改很困难甚至不可能, (但是软件生产的过程需要时时回溯)
    • 最终产品直到最后才出现,(但是软件的客户, 甚至软件工程师本人都需要尽早知道产品的原型, 试用)

    它在软件工程中的实用范围有:

    • 如果产品的定义非常稳定, 但是产品的正确性非常重要, 需要每一步的验证.
    • 产品模块之间的接口, 输入和输出很好用形式化的方法定义和验证。
    • 使用的技术非常成熟, 团队成员都很熟悉这些技术
    • 负责各个步骤的子团队分属不同的机构, 或不同的地理位置, 不可能做到频繁的交流。

    敏捷思潮

    敏捷思潮的价值观:
    • Individuals and interactions over processes and tools
      个人和交互 重于 过程和工具

    • Working software over comprehensive documentation
      可用的软件 重于 完备的文档

    • Customer collaboration over contract negotiation
      和客户协作重于 合同谈判

    • Responding to change over following a plan
      响应变化 重于 遵循计划

    敏捷宣言遵循的 12 条原则:
    1. 我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。
    2. 欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。
    3. 经常地交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。
    4. 业务人员和开发人员必须相互合作,项目中的每一天都不例外。
    5. 激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目标。
    6. 不论团队内外,传递信息效果最好效率也最高的方式是面对面的交谈。
    7. 可工作的软件是进度的首要度量标准。
    8. 敏捷过程倡导可持续开发。责任人、开发人员和用户要能够共同维持其步调稳定延续。
    9. 坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。
    10. 以简洁为本,它是极力减少不必要工作量的艺术。
    11. 最好的架构、需求和设计出自自组织团队。
    12. 团队定期地反思如何能提高成效,并依此调整自身的举止表现。

    总结

    瀑布开发以过程为中心。
    在瀑布开发中,设计在初始阶段就已经完成了,并且在实现阶段将不再修改。换句话说,实现阶段就是对设计的完成,设计方案是不会改变的。这样就忽略了用户的反馈、忽略了开发人员的设计的主观能动性,使得开发人员只是专注于代码层面的事情。

    敏捷开发以人为中心。
    在敏捷开发提倡的是迭代,在每次迭代中都有分析、设计,也就意味着在迭代阶段可以把一部分完成的系统给用户演示,允许用户提意见、需求,也允许开发人员将上一次迭代中得到的想法提出来,并且把这些需求意见想法融入到迭代的分析、设计中,从而在根本上、在理念上,促进了双方的交流沟通,发挥了用户的分析评价和开发人员设计的主观能动性。

    现如今网络技术的快速发展,几乎每个人都可以实时的反馈自己在使用某软件的是感受,开发者需要实时的根据用户的体验来修改软件,这更契合敏捷的开发方式,它更强调适应性,软件一直处于可使用状态,迭代周期短,很容易根据需求的改变进行更改。但敏捷软件开发仍存在许多争议,这种争议并不是否定敏捷开发,而是在于如何更好地解决问题,如何构建满足用户当前需求的软件,同时展示具有能满足客户长期需求的扩展能力,这些争议会有助于我们提出更多用于分析和设计的软件工程建模方法和表示方法,推动软件工程的发展。

  • 相关阅读:
    var 和 let 的区别
    js初步认识变量
    弹性布局
    盒模型
    多重样式优先级深入概念
    层叠机制--比较特殊性
    anroid抓包工具tcpdump的用法
    linux find grep组合使用
    Protect Broadcast 保护广播
    android:exported 属性详解
  • 原文地址:https://www.cnblogs.com/jian-He/p/12642184.html
Copyright © 2011-2022 走看看