1.阅读:《人月神话》作者布鲁克斯20世纪最后一年(1999年)的图灵奖授予了年已69岁的资深计算机科学家布鲁克斯(FrederickPhillipsBrooks,Jr.,图1.8)。20世纪60年代初,布鲁克斯只有29岁时就主持并领导了被称为“人类从原子能时代进入信息时代标志”的IBM/360系列计算机(图1.9)的开发工作,取得辉煌成功,从而名噪一时。以后,他作为硬件和软件的双重专家和出色的教育家始终活跃在计算机舞台上,在计算机技术的诸多领域中都做出了巨大的贡献。在计算机科学领域,布鲁克斯的名字俨然已经成了一个“神话”。布鲁克斯1931年4月19日生于北卡罗来纳州的杜哈姆。1953年从杜克大学毕业,并进入哈佛大学深造,1956年取得博士学位。他的博士论文课题工作是在哈佛著名的计算实验室进行的,最终完成的博士论文题目为“自动数据处理系统的分析设计”。在哈佛取得博士学位以后,布鲁克斯进入IBM公司设立在纽约波凯普茜的实验室当工程师,并在那里参加了Harvest和Stretch计算机的开发,任体系结构设计师。1959年出任IBM/360项目的主持人。IBM/360的开发总投资5亿美元,达到美国研究原子弹的曼哈顿计划投资的1/4。在研制期间,布鲁克斯率领着2000名程序员夜以继日地工作,单单360操作系统的开发就用了5000个人/年。因此,在IBM公司纪念其成立50周年的庆祝大会上,360系列计算机被称为“公司历史上发布的最重要的产品”。为此,布鲁克斯常常被称为“IBM/360之父”。360成功以后,布鲁克斯离开IBM回到故乡,为北卡大学创建了计算机科学系,并担任系主任长达20年(1964~1984年)。除了教学以外,他还致力于发展美国的计算机技术和计算机在国防等方面的应用,有许多社会兼职。1966~1970年,他是ACM全国委员会的委员;1973~1975年出任ACM体系结构委员会的主席;1977~1980年布实验1软件工程的计算环境2软件工程基础鲁克斯在美国国家研究院计算机科学技术部任职;1983~1984年他是美国国防科学委员会人工智能攻关领导小组的成员,1986~1987年是上述委员会另一个攻关领导小组“计算机模拟和训练”的成员;1985~1987年他担任军用软件攻关小组组长。1987年布鲁克斯当选为美国工程院院士,他同时也是英国皇家学会和荷兰皇家科学与艺术院的外籍院士。图1.8布鲁克斯图1.9IBM/360计算机在IBMSystem/360大型电脑的开发期间,由于复杂的需求,以及当时软件工程水平低下,使得System/360的开发工作陷入了前所未有的、最可怕的“软件开发泥潭”,并催生了布鲁克斯最著名的失败论著——《人月神话》(TheMythicalMan-Month)。1975年出版的《人月神话》一书,是软件工程经典名著。1995年,为纪念该书发行20周年,第二版上市,其第一次发行印数就达250,000册。资料来源:软件名人堂(),有删改。结合本课程的学习,建议你找出时间来阅读一下布鲁克斯的《人月神话》,尝试从广泛阅读中体会学习的乐趣和汲取丰富的知识。阅读后,建议你找个机会和老师、同学们来分享你所获得的体会和认识。2.习题与思考2.1试简述“软件危机”产生的原因和解决方法。答:___________________________________________________________________________________________________________________________________________________________________________________________________________________2.2软件危机最严重的征兆也许是低质量软件的开发。根据你自己的经验,如何区分“好的”(高质量的)软件和“差的”(低质量的)软件?实验1软件工程的计算环境3答:___________________________________________________________________________________________________________________________________________________________________________________________________________________2.3有人说:软件开发时,一个错误发现得越晚,为改正它所付出的代价就越大。对否?请解释你的回答。答:___________________________________________________________________________________________________________________________________________________________________________________________________________________2.4软件工程学的基本原则有哪些?为什么?答:___________________________________________________________________________________________________________________________________________________________________________________________________________________2.5在下列说法中,()是造成软件危机的主要原因。供选择的答案:①用户使用不当③硬件不可靠②软件本身特点④对软件的错误认识⑤缺乏好的开发方法和手段⑥开发效率低2.6瀑布模型(WaterfallModel)突出的缺点是不适应()的变动。供选择的答案:①算法②平台③程序语言④用户需求3.实验:软件工程的计算环境本实验的目的是:1)理解软件工程的基本概念,熟悉软件、软件生存周期、软件生存周期过程和软件生存周期各阶段的定义和内容。2)通过因特网搜索与浏览,了解网络环境中主流的软件工程技术网站,掌握通过专业网站不断丰富软件工程最新知识的学习方法,尝试通过专业网站的辅助与支持来开展软件工程应用实践。3.1工具/准备工作在开始本实验之前,请回顾教科书的相关内容。需要准备一台带有浏览器,能够访问因特网的计算机。4软件工程基础3.2实验内容与步骤1)请查阅有关资料,给“软件”下一个权威性的定义:________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________这个定义的来源是:___________________________________________________2)“软件生存周期”是软件工程技术的重要基础,是对软件的一种长远发展的看法,这种看法把软件开始开发之前和软件交付使用之后的一些活动都包括在软件生存周期之内。请查阅有关资料,给出“软件生存周期”的定义:________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________这个定义的来源是:_______________________________________________3)“软件生存周期过程”概念进一步完善了关于软件生存周期的定义,其主要内容是:________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________这个定义内容的来源是:_______________________________________________4)由于工作对象和范围的不同以及经验的不同,对软件生存周期过程中各阶段的划分也不尽相同。但是,这些不同划分中有许多相同之处。相关的软件工程国家标准把软件生存周期划分为8个阶段,这8个阶段是:①________________________________________________②________________________________________________③________________________________________________④________________________________________________⑤________________________________________________⑥________________________________________________⑦________________________________________________实验1软件工程的计算环境5⑧________________________________________________你认为把软件生存周期划分为不同阶段的意义何在:________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________5)上网搜索和浏览,了解软件工程技术的应用情况,看看哪些网站在做着软件工程的技术支持工作?请在表1.1中记录你的搜索结果。提示:一些软件工程专业网站的例子包括:(软件工程专家网)(系统分析&软件工程网)(软件工程研究中心)(火龙果软件工程-UML软件工程组织)你习惯使用的网络搜索