读《软件工程》最后一章有感
读《软件工程》最后一章有感
一般有过面向对象编程的人,认为最难也最头疼的就是设计了。一个好的项目,设计至少可以占到百分之五十甚至更多。林锐的文章当中,自始至终在灌输两个思想,一个是高内聚低耦合,一个是设计应当以行为为中心而非数据为中心,业界的话就是应当以需求为中心。
关于设计的争论由来已久,在我看来,这是由行业性质决定的,软件行业毕竟是为其他行业服务的,因此分门别类,随着经验的增长业务能力逐渐要大过编程的能力,因此,程序决定业务还是业务决定程序就成了唯物和唯心的交火点,虽然近年来业务决定项目的争论已经拔得头筹,但是旧恶难消,仍有不少人坚决维护先决定项目框架,再分析业务配套相关技术的思路,这部分人,如果不是面向过程的年代发展过来的,一定是书呆子。业务决定项目,项目决定框架,框架决定编程语言,话说到底,根本原因是软件行业是服务行业。这是根本,不要迷惑。
软件工程的四项基本原则:
第一,选取适宜开发范型。该原则与系统设计有关。在系统设计中,软件需求、硬件需求以及其他因素之间是相互制约、相互影响的,经常需要权衡。因此,必须认识需求定义的易变性,采用适宜的开发范型予以控制,以保证软件产品满足用户的要求。
第二,采用合适的设计方法。在软件设计中,通常要考虑软件的模块化、抽象与信息隐蔽、局部化、一致性以及适应性等特征。合适的设计方法有助于这些特征的实现,以达到软件工程的目标。
第三,提供高质量的工程支持。“工欲善其事,必先利其器”。在软件工程中,软件工具与环境对软件过程的支持颇为重要。软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。
第四,重视开发过程的管理。软件工程的管理,直接影响可用资源的有效利用,生产满足目标的软件产品,提高软件组织的生产能力等问题。因此,仅当软件过程得以有效管理时,才能实现有效的软件工程。
我的理解:这四项基本原则是我们在进行系统开发的过程中必须贯彻始终的思想,我们要有意识的、合理的将这些原则应用到我们的系统开发之中,前3项相信有过系统开发经验的朋友都会有深刻的感触,这里来谈谈第4项。对整个开发过程的管理往往是一个容易被忽视的地方,而它确是系统成败与否的关键。这里所指的开发过程不是指的从系统设计到编码结束的过程而是从可行性分析->需求分析->系统设计->系统实现->系统部署->人员培训->系统维护的过程。在这个过程中可行性分析往往是被大家所忽视的。其实不然,在我看来系统的可行性分析是一个系统开始的前提和保障。做技术的人很容易忽略这一点,常常从需求分析开始做起,然后就设计、实现、交付使用,但是往往当你做了大量的工作后你确发现别人根本不会采用你的系统。有人会问为什么?难道他们不是有这方面的需求吗?需求是有,难道有需求就一定要上你的系统吗?难道有需求就不能用别的办法解决吗?我们一定不要只从技术人员的角度去考虑问题,我们要跳出技术人员的思维,从一个管理者的角度去思考。
1.开发人员只有在自己思路清晰时才可能写出让别人能理解的程序。编程时还要注意不可滥用技巧,应该用自然的方式编程。2. 软件系统设计得简洁。每个实践环节都要执行质量检查。做项目不要指望在项目陷入困境后靠增加人手来解救。进行需求分析。建立全局分析的观念。注重软件质量和生产效率。开发一个程序要讲究正确性和精确性。运行好好的软件,不一定永远运行的好,可能会出问题。软件开发,性能和效率十分重要。尽可能地分析清楚哪些是稳定的需求,哪些是易变的需求。程序员应该把测试当成份内之事。3.需求会变动据历史记载,没有一个软件的需求改动少于三次。唯一只改动需求两次的客户是个死人。这个可怜的家伙还是在运送第三次需求的路上被车子撞死的。4.系统设计的四方面内容:体系结构设计、模块设计、数据结构与算法设计、用户界面设计。如果将软件系统比喻为人体,那么:(1)体系结构就如同人的骨架。如果某个家伙的骨架是猴子,那么无论怎样喂养和美容,这家伙始终都是猴子,不会成为人。(2)模块就如同人的器官,具有特定的功能。人体中最出色的模块设计之一是手,手只有几种动作,却能做无限多的事情。人体中最糟糕的模块设计之一是嘴巴,嘴巴将最有价值但毫无相干的几种功能如吃饭、说话、亲吻混为一体,使之无法并行处理,真乃人类之不幸。 读书笔记 (3)数据结构与算法就如同人的血脉和神经,它让器官具有生命并能发挥功能。数据结构与算法分布在体系结构和模块中,它将协调系统的各个功能。人的耳朵和嘴巴虽然是相对独立的器官,但如果耳朵失聪了,嘴巴就只能发出“啊”“呜”的声音,等于丧失了说话的功能(所以聋子天生就是哑巴),可人们却又能用手势代替说话。人体的数据结构与算法设计真是十分神奇并且十分可笑。(4)用户界面就如同人的外表,最容易让人一见钟情或一见恶心。象人类追求心灵美和外表美那样,软件系统也追求(内在的)功能强大和(外表的)界面友好。但随着生活节奏的加快,人们已少有兴趣去品味深藏不露的内在美。如果把Unix系统比作是健壮的汉子和妇人,那么Windows系统就象妩媚的小白脸和狐狸精。想不到Windows系统竟然能兴风作浪,占去大半市场。有鉴于此,我们应该鼓励女士多买化妆品(男士付钱)以获得更好的界面。5 .开发人员应该意识到:所有的错误都是严重的,不存在微不足道的错误。这样才能少犯错误。总结:总而言之,这本书真的很不错,值得一看,不管是这个专业的还是非专业的,都有可学之处。在空闲之时,还得把它拿出来晒晒,拿出来揣摩揣摩。