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

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

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

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

   程序=数据结构+算法

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

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

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

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

   2.软件开发的不同阶段

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

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

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

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

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

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

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

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

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

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

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

 

   

  

转载于:https://www.cnblogs.com/FvU1093-softwareEngineering/p/6684434.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值