软件工程第二节课,主要内容是认识软件和工程,那么问题来了:
什么是软件?
首先要确定的是,软件不仅仅是程序。
软件(Software):一组对象或项目所形成的一个“配置”,由程序、文档和数据等部分构成。
– 程序(program):可被计算机硬件理解并执行的一组指令,提供期望的功能和性能;
– 数据(data structure):程序能正常操纵信息的数据结构;
– 文档(document):与程序开发、维护和使用有关的图文材料
我认为:从本质上讲,软件就是程序的集合体,但软件远远高于程序这个“个体”的价值,以树为例说明,他们的关系就如同树和树叶。
软件的目标是解决用户的问题,他的基础就是用户,用户就是树下的泥土。没有用户就没有软件。只有当用户出现了并提出了要求(种子),软件顺势而出。即,用户是基础。要成为成熟的软件,必须要不断满足用户的需求和并逐渐完善程序。在编程这个过程中,一方面,必须以用户的需求为准,这就相当于树的枝干,遵守YAGNI(you ain’t gonna need it)原则,没必要的功能不需要增加。(想想脱离树干的树叶的最终结果吧= =);另一方面,软件必须要可理解。无论你是编完软件就走还是要一直维护这个软件,你想要他持续有用就必须添加必要的注释和文档,这就相