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

软件工程临时抱佛脚

作者: 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

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

相关文章

  • 软件工程临时抱佛脚

    ssd9刷一下按照重点看一下ppt看下课堂题目(先看群里有答案的 再要)重点第二章:软件生命周期模型第三章:软件过...

  • 临时抱佛脚

    刷题的夜晚,仿佛让我回到了以前读书时代,考试在即的临时抱佛脚。 只不过,读书时代的临时抱佛脚不是纯粹的临时抱佛脚,...

  • 怎样学好软件工程

    软件工程知识架构 在《软件工程——实践者的研究方法》这本经典软件工程教材中,作者 Roger S.Pressma...

  • 软件工程(C语言实践篇)

    学号:SA16225018 姓名:曾龙飞 一、什么是软件工程与高级软件工程课程设置 1.1软件工程 首先,我先谈谈...

  • Android P 开发者预览版支持 DNS over TLS

    作者:Erik Kline (Android 软件工程师) &Ben Schwartza (Jigsaw 软件工程...

  • 一种创新方法 —— 加法

    近日阅读《Head First 设计模式》,觉得“有意思”。从学习软件工程,到以软件工程为业,我看过不少软件工程类...

  • 2018-06-24

    临时抱佛脚是不行滴

  • 2018-04-14

    临时抱佛脚,心理作用

  • [转]软件工程 SE

    From MBAlib 软件工程(Software Engineering,SE) 目录 1 什么是软件工程2 软...

  • 软件测试工程师所需要具备的软件技能是什么?

    软件工程技能可以分成三大块:理解软件工程的规则,了解计算机编程和操作系统知识。 理解软件工程“规则”。...

网友评论

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

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