通过这个课程的学习,要求学生掌握以下内容:
1.理解面向对象技术;理解UML中各种视图:用例图、类图、对象图、顺序图、状态图,构件图,活动图,协作图、实施图。
2.理解软件开发模型
3.理解需求分析中的功能需求,数据需求,性能需求。
4.学习“以人为本”的用户界面设计方法。
5.了解OOA建模原则:用例模型、类模型、动态模型。
6.理解OOD原则:内聚性和耦合性、面向操作的设计、面向数据的设计、面向对象的设计。
7.开发方法学习。
8.理解测试的使用.等价类、单元测试、白盒测试、黑盒测试、语句覆盖、路径覆盖、分支覆盖、定义-使用路径覆盖、集成测试、产品测试、验收测试。
9.软件维护过程学习。
10.掌握软件项目管理知识、软件配置管理知识,了解风险分析过程。
1. 软件工程的出现主要是由于( )
(A) 程序设计方法学的影响            (B) 其他工程科学的影响
(C) 软件危机的出现                  (D) 计算机的发展
2. 下列关于瀑布模型的描述正确的是( )
(A) 瀑布模型的核心是按照软件开发的时间顺序将问题简单化
(B) 瀑布模型具有良好的灵活性
(C) 瀑布模型采用结构化得分析与设计方法,将逻辑实现与物理实现分开
(D) 利用瀑布模型,如果发现问题,修改的代价很低
3. 软件开发过程中,往往会出现错误,经验证明最容易产生错误的阶段是( )
(A) 详细设计                        (B) 需求分析
(C) 编码                              (D) 概要设计
4. 软件设计一般划分为概要设计和详细设计,以下哪项应属于概要设计内容?
(A) 屏幕设计                          (B) 结构设计
(C) 代码设计                          (D) I/O设计
5. 下面所述的内聚各类中,哪一个内聚度最强( )
(A) 偶然内聚
(B) 逻辑内聚
(C) 功能内聚
(D) 顺序内聚
6. 数据流图可用于抽象描述一个软件的逻辑模型,并由若干种基本的图形符合组成,下述图名
I. 加工
II. 数据流
III. 数据存储
IV. 外部实体
哪些是构成数据流图的基本图形( )
(A) III、和III                            (B) IIIIIIV
(C) IIIII                                ( D) 全是
7. 需求分析的目的是清理数据流或数据结构,到处完全的、精致的( )
(A) 系统流程图                            (B) 系统逻辑模型
(C) 系统物理模型                          (D) 数据流图
8. 软件测试时软件开发过程中重要且不可缺少的阶段,测试过程中( )是基础测试。
(A) 系统测试                              (B) 集成测试
(C) 单元测试                              (D) 验收测试
9. 软件维护时在用户使用软件期间对软件所作的补充、修改和增强,一般认为软件维护最常见的是( )
(A) 完善性维护                             (B) 适应性维护
(C) 校正性维护                              (D) 支持性维护
10. 下面关于文档的叙述中,错误的是
(A) 文档是仅用于说明使用软件的操作命令,不包括软件设计和实现细节
(B) 文档时软件产品的一部分,没有文档的软件就不成为软件
(C) 高质量文档对于转让、变更、修改、扩充和使用有重要的意义
(D) 软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量
11. 在一个良好的设计过程中,关于程序代码以下说法正确的是()
(A) 好的文档比起程序代码更加重要
(B) 程序员仅需要对交付的程序代码负责
(C) 客户不会为程序代码以外的其他付费
(D) 程序代码不是一个成功软件产品交付的唯一东西
12. 下面这些软件开发周期模型中,采用哪一项最可能达不到客户的要求()
(A) 瀑布模型                                (B) 螺旋模型
(B) 软件工程学什么 喷泉模型                                (D) 快速开发模型
13. OOA建模中关于用例以下说法正确的是( )
(A) 每个用例仅仅拥有一个可能的方案
(B)   一个方案是一个用例的实例
(C) 可以为一个方案写出一组用例
(D) 一个用例是一个方案的实例
14. 在用例图中,执行者(actor)用什么标签标记()
(A) 矩形                                      (B) 椭圆形
(C) 人物线条画                                (D) 箭头
15. 可维护软件的主要特性包括( )
(A) 可理解性、可修改性、可移植性
(B) 可使用性
(C) 可维护性、可使用性、可靠性
(D) 可测试性
选择题
1-5CCBBC 6-10:DBCAD
11-15:DABCC
简答题:
1. 简述瀑布模型软件开发方法的基本过程?
2. 什么是软件的生命周期,理解软件生命周期有什么意义?
3. 简述在软件开发模型中原型模型的优点、缺点适用范围和不适用范围?
4. 面向对象建模的过程?
5. 简述Jackson方法的设计步骤?
6. 举例说明如何运用软件工程思想解决项目中的问题?
1. 瀑布模型规定了各项软件工程活动,包括:制定软件项目计划,进行需求分析和定义,软件设计,程序编码,测试及运行维护.并且规定了它们自上而下,相互衔接的固定次序,如同瀑布流水,逐级下落.然而软件开发的实践表明,上述各项活动之间并非完全是自上而下,呈线性图式.实际情况是,每项开发活动均应具有以下特征:
(1) 从上一项活动接受本项活动的工作对象,作为输入;
(2) 利用这一输入实施本项活动应完成的内容;
(3) 给出本项活动的工作成果,作为输出传给下一项活动;
(4) 对本项活动实施的工作进行评审.若其工作得到确认,则继续进行下一项活动,否则返回前项,甚至更前项的活动进行返工
2. 软件生命周期是指软件产品从其考虑其概念开始,到该软件产品不再能使用为止的整个时期,包括六个阶段:计划,需求分析,设计,编码,测试,运行维护。把软件生命的漫长周期一次划分为若干个阶段,每个阶段都有独立的任务,然后逐步完成每个阶段的任务。在将软件的生命周期分解成几个相对独立的阶段之后,在每个阶段只需专注于该阶段问题的解决,也便于不同的人员进行分工合作,从而降低了整个软件开发的难度,使整个软件开发以一种有条不紊的方式进行,保证了软件的质量,也提高了软件的可维护性。
3. 1)优点
·原型模型法在得到良好的需求定义上比传统生存周期法好得多,不仅可以处理模糊需求,而且开发者和用户可充分通信。
·原型模型系统可作为培训环境,有利于用户培训和开发同步,开发过程也是学习过程。
·原型模型给用户以机会更改心中原先设想的、不尽合理的最终系统。
·原型模型可以低风险开发柔性较大的计算机系统。
·原型模型使系统更易维护、对用户更友好的机会。
·原型模型使总的开发费用降低,时间缩短。
2)缺点
·“模型效应”或“管中窥豹”。对于开发者不熟悉的领域把次要部分当作主要框架,做出不切题的原型。
·
原型迭代不收敛于开发者预先的目标。为了消除错误,每次更改,次要部分越来越大,“淹没”了主要部分。
·原型过快收敛于需求集合,而忽略了一些基本点。
·资源规划和管理较为困难,随时更新文档也带来麻烦。
·长期在原型环境上开发,只注意得到满意的原型,容易“遗忘”用户环境和原型环境的差异。
3)适用范围 :·特别适用需求分析与定义规格说明 ·设计人机界面 ·充作同步培训工具 ·“一次性”的应用 ·低风险引入新技术
4)不适用范围 :·嵌入式软件 ·实时控制软件 ·科技数值计算软件
4. 1)确定类。(2)准备数据字典。(3)确定关联。(4)确定属性。(5)使用继承来细化类(6)完善对象模型
提示:首先标志类和关联,因为它们影响了整体结构和解决问题的方法;其次是增加属性,
进一步描述类的关联的节本网络,使用集成合并和组织类,最后将操作增加到类中去作为动态模型和功能模型的副产品。
5. Jsp 方法一般通过以下5个步骤来完成设计:
a.分析并确定输入/出数据的逻辑结构,并用Jackson 结构图表示这些数据结构。
b.出输入数据结构和输出数据结构中有对应关系的数据单元。
c.按一定的规则由输入、输出的数据结构导出程序结构。
d.列出基本操作与条件,并把它们分配到程序结构图的适当位置。
e.用伪码写出程序。
6. 根据实际情况给分
论述题:
1. (10) 假设要求你开发一个软件,该软件的功能是把读入的浮点开方,所得到的结果应该精确到小数点后四位。一旦实现并测试完之后,该产品将被抛弃、你打算选用哪种软件生命周期模型?请说明你做出选择的理由。(与其它模型比较说明)
2. (30)公司要求你设计一款产品来验证银行账单是否正确,具体要求数据如下:月初账户的余额,每笔支票的金额,日期以及支票号,每笔存款的金额和存款日期,最后还有月末的账户余额,请问答以下问题
(1) 如何确保你的设计在以后能够最大限度的被重用,给出你如何设计的说明以及为什么这么做?
(2) 完成需求工作流(requirements workflow)来验证银行账单是否正确?
(3) 完成面向对象分析流程验证银行账单是否正确?
1. 对这个软件的需求很明确,实现开平方的算法也很成熟,因此既无需通过原型来分析需求也无需用原来来验证设计方案。此外,一旦实现并测试之后,该产品将被抛弃因此也无需使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件
从上所属,为了开发这个简单的软件,使用大多数所熟悉的瀑布模型就可以了。
或者回答出几个模型使用的范围,优缺点,根据实际情况酌情给分。
2.
1Ensure that all modules have functional or informational cohesion, and data coupling; use object-oriented techniques; code the product in a popular high-level language; document all modules meticulously; the user interface should be able to handle any similar sort of dialog; isolate the input and output components in separate modules; design the product in such a way that it can be understood by an accountant.