在日常生活中,我们不难发现软件已经为我们的生活所服务了。而软件在我们的日常生活中存在的目的就是使我们的生活变得更有效率、更舒适。软件的出现很大程度上替代了人类劳动力,所以,我认为软件是以后人类生活必不可少的一部分。
一个软件的制作过程就是一个解决问题的过程,而解决问题的关键就是分析和综合。分析就是把大问题分解成小问题,这是需要特别注意的是,大问题与小问题之间的关系,有时,正是在这些关系中存在着解决大问题的线索,而不简单是子问题本身的特性。综合,就是拼装的意思,相当于把小建筑拼装成大建筑。当每个子问题都被解决以后,单个解决方案的合成可能是一件更难的事情。就好像你掌握了许多汉字,却难以写出一篇优美的文章一样。做软件可以比作成写一本小说,分清脉络,捋清思路,然后执笔写书。任何解决问题的技巧必须有两部分:分析问题以弄清他的本质,然后基于分析综合/合成出一个解决方案。
软件开发已经取得了巨大的成就,我们现在应该致力于做一款好的软件。所谓好的软件,首先要看的是质量。另外,软件工程的实施者也是很重要的。通常一个项目的参与者包括顾客,用户或者开发者。如今,顾客越来越多的涉及到系统体系决策,并且开发工作也有了更多的限制。如何协调好每一个参与者已经成为了必须面对的难题。我们作为开发者,开发过程中的第一步就是弄清楚顾客想要什么并文档需求。所以,我们首先要做一个“系统将要做什么”的系统级描述。依次地设计员与程序员一起以一种程序员能写下实现指定需求的代码行的方式描述系统。当开发组对系统的功能和质量满意后,注意力便转向顾客。然而,对很多软件系统,顾客的认可并不意味着开发者如果系统被交付后发现了故障,一个维护组要维护它。此外,随着时间流逝,顾客的需求可能发生变动,相应的系统也会改动。所以,软件开发是一个长期的工作。