《软件工程》是计算机应用专业(本科)非常重要的一门专业课,该课程包括笔试和试验两部分,并且也是课程设计的科目之一。学习《软件工程》,考生不仅需要掌握至少一门程序设计语言,还需要对数据结构、数据库、操作系统等课程有一定的了解,可以说综合性很强。
从2002年起,《软件工程》的教材改由北京大学出版,相应的考试命题工作,也改由北京大学负责。
为了广大考生能更好的学习《软件工程》,我总结了全书的基础知识点、历年考试题型、试验题目于下,希望可以帮助大家完成《软件工程》的学习。
学习《软件工程》必备书籍:
1.教材,《软件工程》(黑皮),北京大学出版,2002年,王立福等
2.辅导,《计算机上机实验考试应试指导》(蓝皮),北京大学出版,2003年,孙家肃
《软件工程》笔试分为理论部分和设计部分,比例大致相当,在下面的复习大纲中将随即提到,不再细分。另外,实验部分也会在文中提及,希望读者注意。
第一章 软件工程概论
1. 软件工程的目的:
倡导以工程的原理、原则和方法进行软件开发,以解决当时出现的软件危机。
2. 软件危机:
在计算机软件开发和维护过程中所遇到的一系列问题。
3. 软件及组成:
计算机系统中的程序和文档称为软件,程序是计算机任务的处理对象和处理规则的描述,文档是为了理解程序所需的阐述性资料。
4. 软件工程定义:
软件工程是一类求解软件的工程,它应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法,创建软件以达到提高质量、降低成本的目的。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。软件工程是一门指导计算机软件开发和维护的工程学科。
5. 软件工程框架及其内容:
目标、活动和原则。软件工程的目标为,生产具有正确性、可用性以及开销合宜的产品。软件工程活动定义为,生产一个最终满足需求且达到工程目标的软件产品所需要的步骤,主要包括需求、设计、实现、确认以及支持等活动。软件工程设计原则为,选取适宜的开发模型,采用合适的设计方法,提供高质量的工程支持,重视开发过程的管理。(参考教材教材第2页图1.1,更有利于记忆)
6. 软件工程研究的内容:
软件开发模型、软件开发方法、软件过程、软件工具、软件开发环境、计算机辅助软件工程(CASE)、软件经济学等。
7. 软件开发方法学定义:
是一种已定义好的技术集和符号表示习惯,来组织软件开发的过程,一般表示为一系列步骤,包括结构化方法、面向对象方法、Jackson方法等等。
第二章 软件开发模型
1. 软件开发模型定义:
是软件开发全部过程、活动和任务的结构框架。
2. 瀑布模型内容及特点:
瀑布模型将软件生存周期的各项活动规定为依固定顺序连接的软干阶段工作,是一种线性模型。各阶段活动为,提出系统需求、提出软件需求、需求分析、设计、编码、测试和运行。每个开发阶段具有以下特征,从上一阶段接受本阶段工作的对象作为输入,对上述输入实施本阶段的活动,给出本阶段的工作成果作为输出传入下一阶段,对本阶段工作进行评审,若本阶段工作得到确认,则继续下阶段工作,否则返回前一阶段甚至更前阶段。瀑布模型最为突出的缺点是该模型缺乏灵活性。
3. 演化模型内容及特点:
演化模型主要针对事先不能完整定义需求的软件开发,其开发过程一般是首先开发核心系统,当核心系统投入运行后,软件开发人员根据用户的反馈,实施开发的迭代过程,每一迭代过程均由需求、设计、编码、测试、集成等阶段组成,直到软件开发结束。演化模型在一定程度上减少了软件开发活动的盲目性。
4. 螺旋模型内容及特点:
它是在瀑布模型和演化模型的基础上,加入两者所忽略的风险分析所建立的一种软件开发模型。沿螺旋模型顺时针方向,依次表达了四个方面的活动,制定计划、风险分析、实施工程、客户评估。
5. 喷泉模型内容及特点:
它体现了软件创建所固有的迭代和无间隙特征,喷泉模型主要用于支持面向对象开发过程。
6. 增量模型内容:
在设计了软件系统整体体系结构之后,首先完整的开发系统的一个初始子集,继之,根据这一子集,建造一个更加精细的版本,如此不断的进行系统的增量开发。
7. 瀑布模型、演化模型、螺旋模型之间的联系:相同点是这三个模型都分为多个阶段,而瀑布模型一次完成软件,演化模型分为多次完成,每次迭代完成软件的一个部分,螺旋模型也分为多次完成,每次完成软件的一个新原型,并考虑风险分析。
8. 演化模型和增量模型之间的区别
演化模型首先开发核心系统,每次迭代为系统增加一个子集,整个系统是增量开发和增量提交,增量模型首先完整的开发系统的一个初始子集,然后不断的建造更精细的版本。