看了编程高手梁肇新的关于软件工程的箴言,难免有几点感触.作为软件工程专业的学生,现在受着软件工程这门课的困扰,当我读到梁的那些话,觉得分外贴心.是不是因为编程高手说出的话更能切中要害呢?而不是像我们老师那样照本宣科,或则说些管理上的经验,听听则已,不听也罢。
梁肇新说“所有软件工程的设计方法总是一开始想把所有的问题想清楚或者解决,所以就会有什么概要设计,详细设计,似乎可以把所有问题都解决,剩下的只是像工厂做零件一样,找一群软件工人去按部就班地写代码就行了,但是这种方法在通用软件工程中是不能用的”。
“我们把软件开发分为设计规划阶段,功能设计阶段,测试阶段,所有的产品都可以划分为这三个阶段。事实上如果最核心的部分实现了,那么依赖于此核心,再实现增强一点的功能就是第二阶段,第二阶段完成后,就可以进行第三阶段。”
“按照传统软件工程的方法,即一开始就把所有问题都找到,但是,通常你是不可能预测到程序中会遇到的问题的。退一步说,即使你把所有的框框条条都设计好,也可能当突然遇到问题的时候,一时找不到正确的解决方法,而后你又试图去解决它,这样就可能需要花很长的时间去解决这个问题。当你发现这个问题很难解决或不能解决的时候,整个工程就会流产。按照传统软件工程方法去解决问题是不可行的,因为它假设所有的问题都能被解决或被完成,而实际上这是不可能的“。
现在看看我们软件工程这么课.现在个人感觉软件工程这么课上的毫无意义,没有意义的原因是老师讲的内容对我们提高没有作用,没有作用的原因不是老师讲的内容是不对的或者陈旧的,原因在于他教给我的东西不是我们需要的.也许很多牛人要说我们的浮躁了:软件工程是一种思想,你们现在学的是这种开发软件的思想,有了这种思想在脑海里对你以后有莫大的帮助,不要以为做出一个控件是技术,不要以为用Spring,用Ruby,用AJAX就是技术。很不幸的是, 我们担忧的正是梁肇新所说的“因为某个问题的出现,而使整个工程流产”,当我们面对一个全新的工程的时候,我们没有信心去解决的不是需求,也不是详细设计,我们所担忧的是某个未曾涉及过的技术,或者遇到某个没有深入学习过的专题。譬如我们现在做的项目,遇到的问题不是老师上课讲得那些理论能够解决的:在C/S结构中,多线程应该是怎么处理的。一般的多线程应用当然是会的,但是当把多线程和稍微复杂一点的客户和服务器,和MVC的Swing,和Socket结合在一起时,我觉得难以入手。现在我们不仅需要一个理论引路者,还需要一个技术指引者,而缺失的技术指引者造成了我们对这么课的失望。
个人认为软件工程的定位,它是更偏向于技术而不是管理的,或者说软件工程的管理是基于技术的.以为软件工程是更偏向于管理的想法,把软件工程理想化了。传统的工程有产品的大量复制,并且复制的周期长,一般不会有新技术的加入,软件工程没有复制,软件工程有的只是开发,正在努力追求制造——事实上达到这个目标也很遥远,而且软件工程不断地有新技术的加入.软件技术在软件工程中的作用如同硬件制造技术(无论轮胎还是发动机)在提高汽车性能时的作用!
分享到:
相关推荐
软件工程技术学习文档
在当今信息化社会,软件安全已经成为不可忽视的重要问题,因此,理解和掌握可信软件工程的技术与实践显得尤为关键。 1. **需求分析**:这是软件开发的起点,要求准确理解用户需求,确保软件的功能和性能符合预期。...
软件工程的总体介绍 软件工程的定义 处在十字路口的中国软件产业 新世纪软件产业的趋势 软件危机的主要特征 所有软件活动包括: 根本任务 — 打造构成抽象软件实体的复杂 概念结构 次要任务 — 使用编程语言表达...
【软件工程】是一门涉及软件开发全过程的学科,旨在通过科学的方法和技术来定义、开发、维护软件,以解决软件开发中的问题,如软件危机。软件危机是指软件开发的技术进步无法满足日益增长的需求,表现为软件规模扩大...
这个压缩包文件似乎包含了一份关于软件工程的课后习题答案,以及可能与电子技术基础相关的资料,后者可能是为了辅助理解计算机硬件和系统层面的知识。 首先,让我们深入探讨软件工程的几个核心知识点: 1. **需求...
从1985年首次提出面向对象的概念以来,面向对象技术作为一种全新的软件开发方法开始在软件工程领域越来越被广泛使用。80年代末90年代初,面向对象的软件工程方法呈现百花齐放、百家争鸣的局面。 第六阶段:面向服务...
软件工程课程设计的文献资源非常丰富,包含了软件工程的基本概念、方法和技术。学生可以通过阅读相关文献,了解软件工程的基本概念、方法和技术,从而提高自己的软件设计和开发能力。 1.3 开发与运行环境 软件工程...
"软件工程--理论与实践" 软件工程是一个复杂的领域,涉及到理论研究和实践应用两方面。在本书中,我们将探讨软件工程的理论基础和实践应用,涵盖了软件工程的各个方面,从软件设计到软件开发、测试和维护。 软件...
软件工程-理论与实践(第2版)吕云翔答案pdf 软件工程是指在软件开发、测试、维护和更新等全过程中,应用工程化的方法、技术和工具,以确保软件产品的质量、可靠性和高效性。软件工程涉及到软件开发的各个阶段,从...
本节我们将深入探讨“软件工程技术概述”及其与“软件项目管理”的关联。 首先,软件工程不仅仅是编程,它更是一种系统性的工程实践活动。软件工程的基石是需求工程,它始于了解用户的需求并将其转化为明确、完整且...
"软件工程理论与实践答案" 软件工程理论与实践是软件开发的核心知识领域,涵盖了软件开发的整个生命周期,从需求分析到维护阶段。下面是对软件工程理论与实践的答案的详细解释: 一、软件特点 软件与计算机硬件...
软件工程课程设计的主要目的是使学生能够按照软件工程的原理、方法、技术、标准和规范,进行软件开发的能力,培养学生的合作意识和团队精神,培养学生对技术文档的编写能力,从而使学生提高软件工程的综合能力,提高...
- **20世纪70年代中期至80年代**: 计算机辅助软件工程(CASE)成为研究热点,开发了多种对软件技术发展有深远影响的软件工程环境。 - **20世纪80年代中期至90年代**: 面向对象的语言和方法成为主流的软件开发技术,...
上海交通大学的软件工程课程是为研究生级别的学习设计的,旨在深入探讨软件开发的理论与实践。这门课程的PPT涵盖了软件工程的多个核心主题,由讲师沈备军教授授课,他可能在教学中结合了最新的研究进展和工业界的...
软件工程是一门研究软件开发的方法、技术和工具的学科。软件工程的目标是提高软件的质量、可靠性、可维护性和开发效率。 Software Crisis 软件危机是指软件开发的三个核心问题:速度、质量和成本。软件危机的解决...
《软件工程与项目管理解析》是林锐先生的一部经典著作,它以其实践性强、理论与实际紧密结合的特点,深受IT从业者和学习者的喜爱。在本书中,林锐深入浅出地探讨了软件工程和项目管理的诸多核心概念,旨在帮助读者...
(2)通过Internet了解软件工程技术网站和主流的软件工程工具等。 (3)理解软件工程环境和工具、熟悉软件工程组成和软件工具分类等。 (4)了解软件工程标准化的概念、内容及其意义; (5)了解与软件工程相关的...