第一章: 1.什么是软件危机?有什么表现?P1-2 2.什么是软件工程?软件工程的基本目标是什么?软件工程与基本目标之间的关系? 软件工程的基本目标是: ①付出较低的开发成本 ②达到要求的软件功能 ③取得较好的软件性能 ④开发的软件易于移植 ⑤需要较低的维护费用 ⑥能按时完成开发任务,及时完成开发任务,及时交付费用 ⑦开发的软件可靠性高 在具体项目的实际开发中,企图让以上几个目标都达到理想的程度往往是非常困难的。 软件工程目标之间的关系如上图: 表明了软件工程目标之间存在的相互关系。其中有些目标之间是互补关系,例如,易于维护和高可靠性之间,低开发成本与按时交付之间。还有一些目标是彼此互斥的,例如,低开发成本与软件可靠性之间,提高软件性能与软件可移植性之间,就存在冲突。 3.软件工程方法学有哪些要素?方法、工具和过程 4 .软件生命周期(选择正确的模型) (1)假设要求你开发一个软件,该软件的功能是把读入的浮点数开平方,所得到的结果应该精确到小数点后 4 位。一旦实现并测试完成后,该产品将被抛弃。你打算采用哪种软件生命周期模型?请说明你的理由。 对这个软件的需求很明确,实现开平方功能的算法也很成熟,因此,即无须通过原型来分析需求也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。 因此,开发这个简单的软件,使用大多数人所熟悉的瀑布模型就可以了。 (2)假设你被任命为一家软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本开发。由于市场竞争激烈,公司规定了严格的完成期限并且已对外公布。你打算采用哪种软件生命周期模型?为什么? 对这个项目的一个重要要求是,严格按照已对外公布了的日期完成产品开发工作,因此,选择生命周期模型时应该着重考虑哪种模型有助于加快产品开发的速度。使用增量模型开发软件时可以并行完成开发工作,因此能够加快开发进度。 这个项目是开发该公司已被广泛应用的字处理软件的新版本,从上述事实至少可以得出 3 点结论:1 .旧版本相当于一个原型,通过收集用户对旧版本的意见,较容易确定对新版本的需求,没必要再专门建立一个原型系统来分析用户的需求;2 .该公司的软件工程师对字处理软件很熟悉,有开发字处理软件的丰富经验,具有采用增量模型开发新版字处理软件所需要的技术水平;3 .该软件受到广大用户的喜爱,今后很可能还要开发更新的版本,因此,应该把软件的体系结...