zoukankan      html  css  js  c++  java
  • 构建之法阅读笔记01

    2019310日开始,阅读由微软工程师邹欣老师撰写的《构建之法》第三版,全书共435页
    本篇为阅读笔记第一篇,章节1-8

    开篇概论,引出了一个软工人都熟知的名言:程序= 数据结构+算法

    随着阅读的深入和建民老师的课程进度,移山程序员带着他的小难题和我们见面了,

    就是一个家长写了一个每天出算术题的小程序

    随着学校老师新提的不断需求,

    扩展到一个比较大的系统的软件工程的范畴。

    然后据此,最后引申到软件系统的整个生命周期,从需求分析到维护,从代码到道德规范,由这个小例子引申到整个软件工程:代码和数据结构是基础,想要往上走,就必须了解软件工程和开发模式。

    1.个人开发部分

    描述了目前通用的基本课业图书馆信息系统很多问题并且布置了一个作业,实现一个类似wc.exe(代码行统计)的软件作业。

    希望们按照之前讲的PSP开发流程来记录在完成这个作业的过程中,是如何体会软件工程的各个组成部分的。最后,又指出如何来测试自己所完成作业的质量。

    这对于自身的衡量起到了重要的作用.

    2.软件工程师的成长

    通过不断地学习,扎实自己的基础,使之成为自动行为,在进行高等级的结构练习,明确学什么,怎么学,搞清楚自己的核心竞争力。

    书中给了这样一个例子:

    1)给面试者一个打乱颜色的魔方;
    2)要求他把六面还原;
    3)如果还原了,要求他把魔方恢复成面试官最初给他的那个混乱的局面,必须一模一样。

    我突然就想到了从做题到出题的成长(笑)

    3.结对开发

    主要讲述了代码规范,极限编程,结对编程以及代码复审的重要概念。
    并且详尽地列出了代码规范的一些要求,以及为什么要进行代码审查,如何进行代码审查。但是实际操作起来还是有些困难。

    4.团队开发

    描述了几个比较重要的开发流程,

    1)瀑布模型(Waterfall Model)
    2)瀑布模型的各种变形
    3)统一流程(Rational Unified Process, RUP)
    4)渐进交付流程(Evolutionary Delivery),包括MVP和MBP
    并介绍了tsp原则,

    5.开发模式:敏捷流程

    使用敏捷流程来开发一个项目

    1)找出完成产品需要做的事情——Product Backlog
    2)决定当前的冲刺(Sprint)需要解决的事情——Sprint Backlog
    3)冲刺

    讲述了流程的操作方法和成功要素。

    6.实战中的软件工程

    作者介绍了微软用到的的msf方法

    MSF9条基本原则:
    1)推动信息共享与沟通
    2)为共同的远景而工作
    3)充分授权和信任
    4)各司其职,对项目共同负责
    5)交付增量的价值
    6)保持敏捷,预期和适应变化
    7)投资质量
    8)学习所有的经验
    9)与顾客合作

    并根据实例具体介绍了流程。

    7.需求分析

    用户-需求-软件

    分而治之

    通过用户调研寻找用户需求,考虑利益相关者,通过nabcd模型来确定自己软件的定位。

    NABCD是一个有效的方法。
    N(Need, 需求)
    A, Approach, 方法
    B,Benefit, 好处
    C,Competitors,竞争
    D,Delivery,推广

  • 相关阅读:
    洛谷 P4114 Qtree1
    洛谷 P2486 [SDOI2011]染色
    洛谷 P1505 [国家集训队]旅游
    洛谷 P4281 [AHOI2008]紧急集合 / 聚会
    C++中main函数的返回值一定要是int
    局部变量作为函数返回值
    sizeof和strlen在string类中的使用
    strlen 和 sizeof 的区别
    数据结构中的堆栈和内存中的堆栈问题
    数据类型的字长,字节问题
  • 原文地址:https://www.cnblogs.com/yeshenfeng/p/11061994.html
Copyright © 2011-2022 走看看