码迷,mamicode.com
首页 > 其他好文 > 详细

构建之法学习(第一章 概论)

时间:2017-04-09 13:38:00      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:服务   之间   部门   asc   依赖关系   算法   不能   参数   软件架构   

  初读邹欣老师的《构建之法》,却发现并没有像其它大多数软件工程教材一样偏重理论知识,而是大量引用实例,将实践与理论相结合,一改原本的空洞、乏味,反而更多的是趣味性。

  通过对于第一章的自我学习,总结了一些知识点:

  1.软件=程序+软件工程

   程序=数据结构+算法

     程序,就是指的源程序,是可执行代码。软件构建,构建成机器能懂的可执行代码,要有合理的软件架构,软件设计与实现,还要有各种文件和数据来描述各个程序文件之间的依赖关系,编译参数,链接参数等等。

   软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。软件工程的核心部分:项目管理、源代码管理、软件需求分析、软件设计、软件构建管理、软件测试和软件维护(服务运营)等。

   软件企业=软件+商业模式

   程序(算法、数据结构)是基本功,但是在算法和数据结构之上,软件工程决定了软件的质量;商业模式决定了软件企业的成败。软件从业人员和软件企业的道德操守会极大地影响软件用户的利益。

   2.软件开发的不同阶段

    玩具阶段:写程序联系数据结构/算法  

    业余爱好阶段:用JavaScript等写写网站

    探索阶段:专研新技术,应用新技术在软件行业创新

    成熟的产业阶段:开发软件/操作系统

   3.软件的特殊性(软件开发难题)

      复杂性:软件的各个模块之间有各种显性或隐性的依赖关系,随着系统的成长和模块的增多,这些关系的数量往往以几何级数的速度增长。

    不可见性:软件工程师能够直接看见源代码,但是源代码不是软件本身。商业软件出现了错误,工程师可以看到程序在出错的一瞬间留下的一些痕迹(错误代号、大致的目标代码位置、错误信息),但是几乎无法完整重现到底程序出现了什么问题。

    易变性:软件看上去很容易修改,修改软件比修改硬件容易多了。人们自然地期待软件能在下面出现的两种情况下“改变”,一个是让软件做新的事情;另一个让软件适应新的硬件。但是与此同时,正确地修改软件是一件很困难的事情。

    服从性:软件不能独立存在,它总是要运行在硬件上面,它要服从系统中其他组成部门的要求,它还要服从用户的要求,行业系统的要求。

    非连续性:人们能够比较容易地理解连续的系统:增加输入,就能看到相应输出的增加。但是许多软件系统却没有这样的特性,有时输入上很小的变化,会引起输出上极大的变化。

   4.软件工程的目标:用户满意度高、可靠性强、软件流程的质量好、可维护性强

 

   

  

构建之法学习(第一章 概论)

标签:服务   之间   部门   asc   依赖关系   算法   不能   参数   软件架构   

原文地址:http://www.cnblogs.com/FvU1093-softwareEngineering/p/6684434.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!