第一章 概论:
1.“软件=程序+软件工程”
问题:程序与软件的区别是什么?
回答:以前我总是分不清何为程序,何为软件,一直以为比较完善的程序就是一个软件。于是,我上网查了资料,更加明确两者的区别:
程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。为进行某活动或活动所规定的途径。
一个程序应该包括以下两方面的内容: (1)对数据的描述。即数据结构。 (2)对操作的描述。即操作步骤,也就是算法。
这也就是我们常说的:程序=算法+数据结构
软件:软件是一系列按照特定顺序组织的计算机数据和指令的集合。(与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。)
另外,该书给出软件工程的定义是:把系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护上的过程,也就是说将工程化应用于软件。但根据我对“软件=程序+软件工程” 这个等式的理解,软件工程是不是也可以理解为将工程化应用于程序?
2.“没有银弹“理论
不管是上课还是看书 都对“没有银弹”这句话印象比较深刻,文中说“软件的这些非本质、临时的特性并不能解决软件工程的本质问题。例如,有人发明了一种新的程序设计语言等并不能改变软件工程的根 本难度,也就是著名的“没有银弹“论断所阐述的问题”。看完这段话,我想我对‘‘没有银弹”中 “银弹”“所指的改变的程度究竟是什么产生了好奇。于是,我上网搜了一下:《没有银弹》是Fred Brooks在1987年所 发表的一篇关于软件工程的经典论文。该论述中强调真正的银弹并不存在,而所谓的没有银弹则是指没有任何一项技术或方法可以能让软件工程的生产力在十年内提高十倍。
3.“如果一架民用飞机上有需求,用户使用它的概率是百万分之一,你还要做这个功能么?文中给出的这个需求是飞机的安全功能,面对这个需求,我们当然选4.做了,而且不厌其烦的告诉用户如何使用。”
问题:在企业去做一个软件时,如果一个需求用户使用它的概率是百分之一,我们需不需要去做,如果使用率是五十分之一,十分之一呢?(当然这个需求不是涉及安全方面的)
回答:我的个人想法是要看企业对这个软件所投入的精力、时间、金钱以及这部分需求未来的发展空间。如果,公司有足够的精力以及通过对市场的调查发现该需求将来会有很大的发展空间,我们可以做。但如果这部门需求可能在未来不会有很好的发展或者企业没有足够的精力去做,那我们可以集中精力将软件的主要功能完成,其他次要的以后再说。(根据实际情况具体分析)
标签:需求,程序,笔记,软件工程,构建,读书,软件,银弹,工程化 From: https://www.cnblogs.com/wangxinyuan1108/p/17995224