zoukankan      html  css  js  c++  java
  • 读《构建之法》有感

      在各位老师的众多帮助下,我们这学期有幸学习到邹欣老师的新作品《构建之法》。开始读这本书,最大的感受的感受就是软件工程原来是可以这么学的,以前学习软件工程的课程的时候,总是感觉这门课程及其枯燥无味,总是在说太多的理论,很少会涉及到实践,甚至根本就是没有实践这个环节,所以学习很无聊,但是研究生阶段读到这本书,真的是全新的感受,首先,不仅仅只是在说理论了,加入了很多实践的东西,而且还可以在网上可以与其他人进行交流学习心得。

      开篇邹欣老师就说了“软件 = 程序 + 软件工程”,以前写软件或者说程序,就只是写程序,最多会考虑到数据结构的知识,很少会用到软件工程,但是随着学习的深入,代码量的累积,如果还是和以前一样只是关心程序只要是可用的,实际可运行的,那么就没有意义了,这样的程序写出来也是没有价值的,首先,软件工程不仅仅就只是涉及到计算机或者软件方面的知识,相反,软件工程涉及了很对其他学科的知识,比如:管理学、数学、工业设计等等学科,一个合格的软件开发人员如果只是懂得怎样去写程序,那么嗨仅仅只是初级阶段,更高级的应该是从一个更加高级的层面上去考虑更多的东西,如整个软件的架构。
      通读全书之后,我认为本书有以下特点:
      第一,理论与实践并重。本书介绍了软件工程的相关概念,如:软件工程、单元测试、软件开发流程、敏捷开发、软件需求、用户体验、软件测试、质量保障等。在介绍这些基本概念的同时,作者也全面地诠释了它们在实际的研发工作中是如何表现的,它们又是如何与每个开发和测试人员息息相关的。在介绍这些概念的时候,作者多用举例的形式来说明,这样也使得大家更加的容易理解。
      第二,文笔优美,图文并茂。作者为了让读者在阅读本书的时候不感觉到枯燥,可谓是花费了大量的精力。首先,每一个文字段的内容都不是很多,防止读者对着一大页文字发呆而失去了继续读下去的勇气;其次,本书包含了很多有趣的图片,读者可以通过这些图片加深对相关概念的理解;再次,书中内容层次分明,作者将很多知识点通过几个小点顺序列出,让读者阅读和理解起来更加的容易。
      第三,语言幽默、诙谐。软件工程里面的概念比较的枯燥和单调,作者也深知这一点。因此,在本书的很多地方,作者都用十分幽默的方式来讲述。例如,书中用“阿超”、“国栋”、“小飞”、“小李”等角色之间的对话来揭示一个概念的本质。这让读者觉得十分的“接地气”,同时通过他们之间风趣的对话又加快了对相关概念的理解。个人觉得,这是本书最大的特色。
      第四,覆盖面广,知识点齐全。本书旨在介绍软件工程,但又不仅仅是介绍软件工程。本书对软件工程师的成长、IT行业的创新和职业道德等也进行了细致的介绍。作者以不同的视角来看待整个行业及行业中人的发展,其观点值得大家深思。
      软件研发是一个复杂的系统,只有系统的每一部分都正常运转,整个系统才能够一切正常。一旦某个环节出了问题,那么系统就犹如漏水的轮船,如不及时修补,终将沉入大海。当然,在实际工作中,大家有不同的分工,有做开发的、有做测试的、有做QA的,等等。大家各司其职,其目的都是为了让一个软件活得更好、活出精彩,最好能够“延年益寿”,让大家的付出能够得到应有的回报。

      总体上软件工程(SoftWare Engineering)的框架可概括为:目标、过程和原则。

      软件工程目标:生产具有正确性、可用性以及开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜是指软件开发、运行的整个开销满足用户要求的程度。这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。

      软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最完整最正确的产品呈现在用户面前。

    读后问题:

    1.听说以后从事软测的工作会比较轻松,那么有更多上升的空间吗?

    2.我们现阶段可以从哪方面开始培养自己的开发思维和能力,向工程师迈进?

    3.我们应届生该如何加强自己的价值?公司需要的是为其创造价值的人才,还有机会让我们慢慢学习吗?

    4.关于项目设计,我们如何设计好一个项目,从需求到测试,我们中途需要怎么做?

    5.团队合作模式和开发流程的关系密切?两者能否脱离呢?

    6.如何学好一门语言,要怎么学比较有效率,有什么好方法吗?

  • 相关阅读:
    CSDN社区之星专訪:我的蜕变之路
    Linux中运行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
    00075_BigInteger
    Delphi中Interface接口的使用方法
    Delphi结构体的扩展,可以自动初始化,反初始化,自定义拷贝函数.
    关于指针和堆栈
    Delphi 中的 procedure of object
    MikroTik RouterOS防火墙与过滤详解
    用 ROS 做内网DNS服务器
    GR32 TImage32的图层绘制原理
  • 原文地址:https://www.cnblogs.com/wx163/p/5545172.html
Copyright © 2011-2022 走看看