
| 《软件工程概论》既强调和突出基本概念、基本方法,又使内容的组织符合学生的认识规律,在讲解理论的过程中尽量结合实例,并注重软件工程方法、技术和工具的综合应用,避免抽象和枯燥的论述。在兼顾传统的结构化方法的同时,注重当前广为采用的面向对象方法。紧密结合当前技术的新发展,在阐述理论知识的同时侧重实用性。既充分重视技术性内容,便于初学者掌握必要的知识和技能,同时也兼顾软件工程实践中必不可少的基本管理知识。 |
| 郑人杰,清华大学教授,清华同方股份有限公司顾问,现任中国软件行业协会理事、系统与软件过程改进分会常务副会长。1961年于清华大学毕业后留校任教,多年来教学、科研工作围绕着软件工程领域,近年注重于软件质量及软件过程改进。编著有《实用软件工程》、《计算机软件测试技术》、《基于软件能力成熟度模型(CMM)的软件过程改进》等。 马素霞,华北电力大学计算机科学与技术系教授。1989年获清华大学计算机系工学硕士学位,毕业后一直从事计算机软件方面的教学及研究工作,2001年赴加拿大卡尔顿(Carleton)大学计算机科学系做访问学者,主要研究方向为软件工程、数据库与信息系统。 殷人昆,清华大学计算机系教授。1970年清华大学计算数学专业毕业,1980年获清华大学计算机系工学硕士学位,1985年赴日本东京理科大学做访问学者,研究方向为软件工程过程的质量管理和软件产品的质量评价。主要讲授大学本科“数据结构”、“软件工程”和研究生“软件工程”、“软件项目管理”,其中,本科“数据结构”和工程硕士“软件工程”是清华大学精品课程,此外还主持了教育部-微软精品课程“数据结构”的建设。 |
| (1)形态特性 软件是无形的、不可见的逻辑实体。度量常规产品的几何尺寸、物理性质和化学成分对它是毫无意义的;但绝不会因此否定它的存在和降低它的价值。 (2)智能特性 软件是复杂的智力产品,它的开发凝聚了人们大量的脑力劳动,它本身也体现了知识、实践经验和人类的智慧,具有一定的智能。它可以帮助我们解决复杂的计算、分析、判断和决策问题。 (3)开发特性 尽管已经有了一些工具(也是软件)来辅助软件开发工作,但到目前为止尚未实现自动化。软件开发仍然包含了相当分量的个体劳动,使得这一大规模知识型工作充满了个人行为和个人因素。 传统制造业的工艺都已经相当成熟,早已摆脱了手工作坊式的生产,而大规模采用自动化的生产。大多数的软件产品是根据用户的需求进行定制开发的个性化产品,虽然一直梦想软件的生产能够像硬件生产那样基于已有的零部件进行组装,但实现这一目标还有相当长的距离。 (4)质量特性 软件产品的质量控制存在着一些实际困难,难于克服,表现在以下方面: 软件的需求在软件开发之初常常是不确切的,也不容易确切地给出,并且需求还会在开发过程中变更,这就使软件质量控制失去了重要的可参照物。 软件测试技术存在不可克服的局限性。任何测试都只能在极大数量的应用实例数据中选取极为有限的数据,致使我们无法检验大多数实例,也使我们无法得到完全没有缺陷的软件产品。 已经长期使用或多次反复使用的软件没有发现问题,但这并不意味着今后的使用也不 会出现问题。 这一特性提醒我们:一定要警惕软件的质量风险,特别是在某些重要的应用场合,需要提前准备好应对策略。 (5)生产特性 与硬件或传统的制造业产品的生产不同,软件一旦设计开发出来,如果需要提供给多个用户,它的复制十分简单,其成本也极为有限,正因为如此,软件产品的生产成本主要是设计开发的成本,同时也不能采用管理制造业生产的办法来解决软件开发的管理问题。 (6)管理特性 由于上述的几个特点,使得软件的开发管理显得更为重要,也更为独特。这种管理可归结为对大规模知识型工作者的智力劳动管理,其中包括必要的培训、指导、激励、制度化规程的推行、过程的量化分析与监督,以及沟通、协调,甚至是过程文化的建立和实施。 (7)环境特性 软件的开发和运行都离不开相关的计算机系统环境,包括支持它的开发和运行的相关硬件和软件。软件对于计算机系统的环境有着不可摆脱的依赖性。 |
商品评论(0条)