您的位置:首页 > 其它

软件工程期末复习总结

2016-07-03 15:22 232 查看
软件工程期末复习

 

1.什么是软件危机,为什么会出现软件危机?

 

 

2.什么是软件工程?

软件工程是建立和使用一套合理的工程原则,以便经济地获得可靠的、可以在实际机器上高效运行的软件。

软件工程是(1)将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。

(2)在(1)中所述方法的研究。

 

3.什么是过程模型?常用的过程模型举5个例子。每种模型的作用(使用范围、优点、缺点)?

 

当开发产品或构建系统时,遵循一系列可预测的步骤(即路线图)是非常重要的,它有助于及时交付高质量的产品。软件开发中所遵循的路线图就称为“软件过程”。

(1)通用过程模型。

(2)惯用过程模型:瀑布模型、增量过程模型、演化过程模型、螺旋模型、协同模型。

1.瀑布模型

瀑布模型的优点:有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。

 瀑布模型的缺点:(1)开发过程一般不能逆转,否则代价太大;(2)实际的项目开发很难严格按该模型进行;(3)客户往往很难清楚地给出所有的需求,而该模型却要求如此。(4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。 

瀑布模型的使用范围:(1)用户的需求非常清楚全面,且在开发过程中没有或很少变化;(2)开发人员对软件的应用领域很熟悉;(3)用户的使用环境非常稳定;(4)开发工作对用户参与的要求很低。

2.增量模型

增量模型的优点:(1)采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源;(2)如果核心产品很受欢迎,则可增加人力实现下一个增量;(3)可先发布部分功能给客户,对客户起到镇静剂的作用。

增量模型的缺点:(1)并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构;(2)增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。

增量模型的使用范围:(1)进行已有产品升级或新版本开发,增量模型是非常适合的;(2)对完成期限严格要求的产品,可以使用增量模型;(3)对所开发的领域比较熟悉而且已有原型系统,增量模型也是非常适合的。

 

3.螺旋模型。

螺旋模型的优点:(1)设计上的灵活性,可以在项目的各个阶段进行变更;(2)以小的分段来构建大型系统,使成本计算变得简单容易;(3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;(4) 随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。 

螺旋模型的缺点:(1)采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;(2)过多的迭代次数会增加开发成本,延迟提交时间。

螺旋模型的使用范围:螺旋模型只适合于大规模的软件项目。

4.快速原型模型

快速原型模型的优点:(1)可以得到比较良好的需求定义,容易适应需求的变化;(2)有利于开发与培训的同步;(3)开发费用低、开发周期短且对用户更友好。

快速原型模型的缺点:(1)客户与开发者对原型理解不同;(2) 准确的原型设计比较困难;(3) 不利于开发人员的创新。

快速原型模型的使用范围:(1)对所开发的领域比较熟悉而且有快速的原型开发工具;(2)项目招投标时,可以以原型模型作为软件的开发模型;(3)进行产品移植或升级时,或对已有产品原型进行客户化工作时,原型模型是非常适合的。

(3)专用过程模型:形式化方法模型。

 

4.什么是RUP(统一过程)(特点、有点、缺点)

统一过程尝试着从传统的软件过程中挖掘最好的特质和性质,但是以敏捷软件开发中许多最好的原则来实现。统一过程认识到与客户沟通以及从用户的角度描述系统并保持该描述的一致性的重要性。它建立了迭代的、增量的过程流,提供了演进的特性。

RUP 具有很多长处:提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构,为开发过程提供较大的通用性。

但同时它也存在一些不足: RUP只是一个开发过程,并没有涵盖软件过程的全部 内容,例如它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。可以说 RUP是一个非常好的开端,但并不完美,在实际的应用中可以根据需要对其进行改进并可以用OPEN和OOSP等其他软件过程的相关内容对RUP进行补充和完善。

 

5.特征与特征集(分析与设计题)

特征驱动开发(FDD)描述了一个可用于中、大型软件项目的适应性敏捷过程。

在FDD中,特征“是可以在2周或更短时间实现的具有客户价值的功能”。强调特征的定义是为了如下好处:

特征是小块可交付功能,用户可以更容易地对其进行描述、轻松地理解他们之间的相互关系,更好地评审以发现歧义性、错误和遗漏。

特征可以组织为具有层次关系的业务相关的分组。

由于特征是FDD可以交付的软件增量,团队每两周便可以开发出可供使用的特征。

由于特征很小,其设计和代码表示都可以很容易、很有效地检查。

项目计划、进度和跟踪都由特征层次驱动,而不是可任意调整的软件工程任务集。

例如:一个电子商务应用项目的特征可能如下所示:

将产品加入购物车

显示产品详细技术说明

为顾客存储购物信息

一个特征集将相关特征分在一个业务相关的类别中。

例如:出售一件商品是一个特征集,它包含上面提到的及其他特征。

 

7.什么是需求工程,哪些主要内容

需求工程是指致力于不断理解需求的大量任务和技术。从软件过程的角度来看,需求工程是一个软件工程动作,开始于沟通活动并持续到建模活动。它必须适应于过程、项目、产品和人员工作的需要。

需求工程过程通过执行七个不同的活动来实现:起始、导出、精化、协商、规格说明、确认和管理。

 

8.场景建模用例图、E-R图、数据字典、数据流图、类图

 

 

9.SRS的主要内容有哪些?

 

 

10.执行器-传感器的顺序图

11.设计概念(列举5个,并解释)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12.23个设计模式(5个并解释),什么是设计模式?

     设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。

设计模式分为三种类型,共23种。

创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。

结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。

行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链模式(责任链模式)、访问者模式。

 

13.体系结构类型、风格、模式。

 

 

 

 

14.管道-过滤器。

 

 

 

 

15.数据流图,映射。

16.程序流图、盒图、PAD图、伪码、判定表。

17.面对对象分析与结构化分析的异同?

其中部分图片没有显示,完整文档下载地址:

http://download.csdn.net/detail/hoho_12/9566179

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  软件工程