zoukankan      html  css  js  c++  java
  • 《构建之法》第1章 概论 读书笔记(1)

    第1章  概论
      1.1  软件=程序+软件工程
      1.2  软件工程是什么
      1.3  练习与讨论对于我们学软件工程的,首选就要就要了解什么是软件工程。在书中第一章就介绍了软件和软件工程。首先,了解到来了什么是程序,什么是软件什么是软件工程,也了解到了一个软件不是简简单单就能说写就写的,还需要考虑各种因素,如人们的需求,功能的可行性。程序=数据结构+算法、 软件=程序+软件工程
    客户们对程序员的需求从一个简单的程序,扩展到一个满足各种功能的应用软件,再扩展到一个能保证维修的软件服务
    程序,在这里指的是源程序,就是一行行的代码。仔细看过去,它们的确是建立在数据结构上的一些算法
    程序还要对数据进行操作,这些数据有些是静态的,有些是动态的
    但是光有代码和静态数据还是不行,工程师要把它们构建为机器能懂的可执行代码。构建不仅仅是cc和link命令
    一个复杂的软件不但要有合理的软件架构、软件设计与实现,还要有各种文件和数据来描述各个程序文件之间的依赖关系、编译参数、链接参数,等等。这些都是软件构建的过程
    源代码管理的问题—有时候也叫配置管理
    有一系列的工具和程序来保证程序的正确性,这些工具流程和程序本身应该更正确,才能保证别的软件的质量。这就是质量保障,具体的验证过程叫做软件测试
    软件团队要从需求分析开始,把合适的需求梳理出来,然后逐步展开后续工作,如设计、实现、测试,到最后发布软件
    软件团队的人员也会流动,新的成员要尽快读懂已有的程序,了解程序的设计,这叫程序理解
    软件在运行过程中还会出这样那样的问题,也许我们要时不时给软件打一个补丁,或者维护众多的服务器,团队的新老成员要一起工作,修复各种各样的问题,这叫软件维护,或者服务运营
    这一系列过程就是软件的生命周期,有人得负责软件项目的管理
    一个好的软件,即使功能和同类软件区别不大,但是会让人感觉到非常好用。这就是软件的用户体验 。用户体验和数据结构、算法没有直接的关系,但是很多非常成功的软件就赢在这个方面
    上面这些和软件开发活动相关的内容,是软件工程的核心部分。广义上的软件工程也包括用户体验、用户界面设计等。所以,一个推论是:
    软件 = 程序 + 软件工程
    一个扩展的推论是:
    软件企业 = 软件 + 商业模式
    程序是基本功,但是在算法和数据结构之上,软件工程决定了软件的质量;商业模式决定了一个软件企业的成败。软件从业人员和软件企业的道德操守会极大地影响软件用户的利益。

    个人感受:

    以前都为了解决问题而去思考问题,对于每个问题不能融会贯通,没有统一的解决思路

    书中说这样只会让我们走更多弯路,让我们离解决思路更远

    以后再遇到情况下永远要以解决问题为导向,我要做什么,我就去了解什么,这样才是最直接的方法。要学会说话并不要求你会走路,虽然你知道,会走路和会说话对人来说都同等重要。软件工程与机械工程都一样,是解决问题的一个规范,这是由于前人在解决问题的时候总结出来,这样去解决问题是最稳妥的,最高效的,它不仅面对了这个问题,而且考虑了这个问题的各个方面,不光是完成功能,更有进一步的完善。这样才是完整的解决了这个问题。所以学习软件工程的流程很重要,因为迟早你会遇到这样的问题,与其到那时候才发现:哦,原来用软件工程的这个流程去做就可以规避这样的问题。还不如现在就这样去做,尽可能少地碰到问题。

  • 相关阅读:
    [Vim].vimrc
    [笔试面试][code_by_hand]压缩字符串
    [笔试面试][code_by_hand]输出第二个字符串在第一个字符串中的连接次序
    [笔试面试]串s1="ABCDACDAE" s2="DAE" 找出s1中,包含s2的最小子串,要求该子串含有s2中的所有字符,串内字符无顺序关系
    [笔试面试][code_by_hand]从二元树中找出和为某一值的所有路径
    DEV 皮肤的使用
    Dev GridControl使用小结
    [转载]DEV控件:gridControl常用属性设置
    C#网页 自动登录 提交POST信息 方法
    比较字符串NSString
  • 原文地址:https://www.cnblogs.com/kangy123/p/6378862.html
Copyright © 2011-2022 走看看