构建之法--第一章读书笔记 软件是什么?软件工程是什么?

通过本文可以了解到什么?

  • 软件是什么?软件企业是什么?
  • 软件开发的不同阶段--类比航空业的发展
  • 软件工程是什么?
  • 软件工程有哪些具体的知识领域?
  • 软件工程的目标



正文

  • 软件是什么? 软件企业是什么?
  1. 软件 = 程序 + 软件工程
  2. 软件企业 = 软件 + 商业模式

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


  • 软件开发的不同阶段
航空业和软件业的类比
航空软件影响
玩具阶段:纸飞机写数据结构算法题目;用新的语言尝试“Hello World”影响只限于自己,失败,兴趣减弱。这类知识也有比赛,如算法比赛,比赛后,这些程序的可维护性如何?有人会拿着程序去发布成为商业软件?
爱好者的尝试:沙滩椅升空用 前端知识构建一个网站程序能跑起来,博客会吸引一些读者
先行者的探索:莱特兄弟钻研新技术,应用新技术在软件行业创新很多软件原型虽然失败了,但是他们给后续的创新奠定了基础
成熟的工业:飞机制造业,民航银行软件系统,搜索引擎,京东商城,windows操作系统

软件会影响一个公司,一个行业,涉及到相关的行业和人员。









飞机的安全功能,虽然使用到的概率极低,但是一旦出现异常,可以极大程度确保飞机与乘客的安全。我们写的软件是否提供这样的功能? 在发生异常时,是否能够正常工作,安然退出,并保证用户的数据不被破坏?


  • 软件工程是什么?

软件工程 = 软件开发流程体系 + 软件工具

软件开发流程体系

人们在开发、运营、维护软件的过程中有很多技术、做法、习惯和思想体系,软件工程把这些相关的技术和过程统一到一个体系中,叫做“软件开发流程”。

软件开发流程的目的是为了提高软件开发、运营、维护的效率,提高软件的质量、用户满意度、可靠性和软件的可维护性。

软件工具

工具是用来保证思想在实践中有效率的运作。

具体有哪些软件工具? 编译工具、源代码管理工具、软件工具系统(Eclipse,GitHub,Microsoft Visual Studio等)


  • 软件工程具体包含哪些知识领域?

每个知识领域都有很多概念、名词和定义。但是名词不是软件工程的规律本身,我们需要在实践中学习。


  • 软件工程的目标

1、研发出符合用户需求的软件    

通过实际的工作收集、推导、提炼需求,并在软件发布后通过实际数据验证需求的确被满足了。(不好的需求:虚拟的,没人用的,也没有数据的 “图书馆管理系统”)

2、通过一定的软件流程,在预计的时间内发布“足够好的软件”

通过全体成员努力+长期阶段逐步完成

3、能证明所开发的软件是可维护和继续发展

例如:用户需求分析有详细的文档说明,包括对未来发展的分析和规划;主要功能的设计文档说明和软件的实际行为一致。源代码完整并能构造出符合质量要求的版本。能用软件管理软件看到源代码的每次修改记录,Bug的修改过程。关键模块有可以正常执行的单元测试、压力测试脚本等。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值