美文网首页
软件工程临时抱佛脚

软件工程临时抱佛脚

作者: DerrickWang | 来源:发表于2018-06-01 17:10 被阅读0次

    ssd9刷一下
    按照重点看一下ppt
    看下课堂题目(先看群里有答案的 再要)
    重点

    第二章:软件生命周期模型
    第三章:软件过程
    (以上两章主要使用来出选择题,概念要理解清楚)
    第十一章:需求
    (会出现在简答题里面)
    第十二章:传统分析方法
    第十三章:面向对象分析方法
    (以上两章会出现在最后分析题里面,下面的第十四章也可以看一下,是设计,结合前两章再看一下,注意回答时表述规范)
    第十四章:设计
    第十五章:实现【本章重点是集成(Integration),非常重要!!!】
    第十六章:维护
    (以上两章是考察概念的理解,希望大家熟悉其概念,这两部分会在简答题里面出现,望引起注意!)

    第二章 软件生命周期
    • software life-cycle models

    • software development in theory
      理想情况下软件的开发过程是LinearStarting from scratch(白手起家)
      实际情况下 原因在于我们会犯错 以及客户的需求会在开发过程中改变

    • Winburg mini case study
      Evolution-Tree Model(这个可以显示事件发生的流程 瀑布模型不可以 这个有baseline比如episode3就是requirement1=>analysis1=>design3=>implementation3)


      image.png

    Waterfall Model

    The linear life model with feedback loops image.png
    • Lessons of the Winburg mini case study
      现实的开发过程更chaotic
      changes are always needed

    • Teal tractors mini case study
      Some changes may be great for the company but disastrous for the software product. 这些change都有可能导致regression fault
      Change is inecitable

    • Iteration and incrementation
      现实中,没有“the analysis phase” 这是贯穿于整个life cycle的 同理之前那个Evolution-Tree Model里面的各种phrase其实都不能称之为phase. Instead, there are multiple instances of each phase. 从另一个角度来说就是"iteration and incrementation are used in conjunction with one another."
      Miller's Law人只能专注于7件事(所以为了处理信息量大的工作 我们用stepwise refinement这是用来解释为啥要有incremental process)

    5个核心的workflow
    requirements workflow
    analysis workflow
    design workflow
    implementation workflow
    test workflow
    整个生命周期整个五个都有 但是大多数时候总有一个predominates

    • Winburg mini case study revisited


      image.png
    • Risks and other aspects of iteration and incrementation
      一个Increment就是一个mini project 而整个项目就是一堆这个组成的
      Each iteration can be viewed as a small but complete waterfall life-cycle model
      I&I的优势
      1.有很多环节可以发现问题
      2.整个architecture的Robustness(健壮性)在life-cycle的早期就可以被决定
      3.empirical evidence

    但是这个模式在软件规模极速发展的背景下,暴露出来一些问题,原因在于lack of user involvement和lack of support from senior executives

    • Managing iteration and incrementation
      each increment is a waterfall mini project,applied successively
    • Other life-cycle models
      1.code-and-fix model
      no design no specification
      这是maintennace nightmare
      最简单也是最昂贵的开发模式
      2.瀑布模型
      瀑布模型
      瀑布模型的特征:有feedback loops以及它是documentation-driven的
      优点在于有文档、对维护更友好 缺点也是在于文档(耗费大量劳动力)
      3.rapid prototyping model
      rapid prototyping model
      就是比瀑布模型少了feedback
      4.open-source life-cycle model
      key point:individuals generally work voluntarily on an open-source project in their spare time(社区中的开发人员参与有不同的场景corrective/perfective/adaptive maintenance)
      open-source life-cycle model
      要注意一点 社区中的开发人员只参与了postdelivery的maintenance
      所以与其称他们为co-developers 不如叫做co-maintainers
      参与到开源项目维护的分两种人core group和 peripheral group(外围人员 就是发一下错误报告的那种小白user)
      相比闭源 开源软件release early and often(因为不需要自备严密的SQA)
      从上面的描述我们不难看出,开源的确适合一部分软件比如操作系统 浏览器 编译器但是有些就不适合,比如商业软件
      而且 没有specification和design也有优有劣 eventually a point will be reached when the open-source product is no longer maintainalbe
      5.Agile Processes(敏捷开发)
      controversial new approach
      实现了敏捷开发中最为人熟知的paradigm(范例)就是XP(extreme programming)
      而XP的一个很成功的实践就是pair programming(结对编程)
      XP中的一些重要概念(acronyms首字母of XP)
      YAGNI(u aren't gonna nedd it)
      DTSTTCPW(do the simplest thing that could possibly work)
      Agile process中有个stand-up meeting感觉就像加强版的早会233
      所有以上都是为了Agile process的两个基本原则
      communication和satisfying the client's needs as quickly ad possible
      )
      显而易见这种开发方式适合小规模的软件 而其中的key decider就是敏捷开发对postdelivery maintenance的影响
      6.Synchronize and Stabilize Model
      At the end of the day--sychronize(test and debug)
      At the end of the bulid --stabilize(freeze the bulid)
      7.Sprial Model(螺旋)
      Sprial Model
      就是rapid prototyping model plus risk anlysis preceding each phase
      If all risks cannot be mitigated, the project is immediately terminated.
      Full Spiral Model
      Full Spiral Model
      有不同观察的维度
      radial dimension:cumulative cost to date
      angular dimension:progress through the spiral
      显而易见 这种模式只适合大规模的软件
    • Comparison of life-cycle models
      比较各种模式有不同的角度
      The organization
      Its management
      The skills of the employees
      The nature of the product
      最佳建议:mix-and-match life cycle model(答题的时候也要随时想到这种万金油方法学)


      Comparison of Life-Cycle Models
    第三章 软件过程
    • The Unified Process
      不是那种一步一步的指导书类型的准则显然也不存在这种适应所有软件的准则
      所以统一过程是一种adaptable methodology
      UML(unified modeling language) diagrams enalbe software engineers to communicate quickly and accurately

    • Iteration and incrementation within the object-oriented paradigm
      统一过程是一种modeling technique
      面向对象的本质就是iterative and incremental

    • The requirement workflow
      目的就是为了搞清楚需求

    • The analysis workflow
      To analyze and refine the requirements
      不在requirements workflow做这些工作的原因是那个环节必须完全comprehensible by the client
      SPMP(software project management plan)

    • The design workflow
      The aim of the design workflow is to refine the analysis workflow until the material is in a form that can be implemented by the programmer
      分传统的设计和面向对象的设计

    • The implementation workflow
      The aim of the implementation workflow is to implement the target software product in the selected implementation language

    • The test workflow
      The analysis artifacts shoud be checked by means of a review

    • Postdelivey maintenance

    • Retirement

    • The phases of the Unified Procsess

    • One-versus two-dimensional life-cycle models

    • Improving the software process

    • Capability maturity models

    • Other software process improvement initiatives

    • Costs and benefits of software process improvement

    第十一章 需求
    第十二章 传统分析方法
    第十三章 面向对象分析方法
    第十四章 设计
    第十六章 维护

    相关文章

      网友评论

          本文标题:软件工程临时抱佛脚

          本文链接:https://www.haomeiwen.com/subject/mljcsftx.html