Chinaunix首页 | 论坛 | 博客
  • 博客访问: 995230
  • 博文数量: 186
  • 博客积分: 10020
  • 博客等级: 上将
  • 技术积分: 1676
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-14 17:08
文章存档

2011年(5)

2009年(11)

2008年(2)

2007年(111)

2006年(57)

我的朋友

分类: LINUX

2007-10-13 17:23:35


1、什么是软件生命周期?请列举4种有代表性的软件生命周期模型。
答:软件生命周期是说软件象人一样有生命,有出生、成长(开发)、发展(维护)、衰老和死亡。软件的死亡就是被废弃和过时。这个阶段称为软件生命周期。例如:the waterfall model, 瀑布模型,rapid prototyping model, 快速原型模型,incremental/iterative development, 增量/迭代模型,spiral model, 螺旋模型。
2. The waterfall model is often criticised for not being an adequate model for the software life cycle. Explain this major criticism by providing two scenarios illustrating the shortcomings, and very briefly sketch how the model can be improved.
(瀑布模型经常被批评对于软件生命周期来说是不充分的模型,举2个例子来说明它的不足,并简要的说出如何改进这种模型。)
答:对于瀑布模型的批评主要是说它过于简化,具体表现在各个阶段不能清楚的被划分;常常发生早期阶段的产品缺陷在晚期才被发现导致灾难性的后果;当在编码阶段发现问题再去修改文档的时候,巨大的工作量使人望而却步;很难在现实中严格的遵守;对需求的变更没有考虑,而这在现实中几乎是必然发生的;可运行的版本在生命周期的末尾颁布,客户需要有足够的耐心;容易陷入导阻塞状态。
 
 
3、State the Spiral model of the software process by drawing an annotated chart.Briefly relate the spiral model to the classical waterfall model. Say which goal software engineers probably have had in mind when they came up with the spiral model.
(用有注释的图表描述螺旋模型,简述螺旋模型与瀑布模型的关系,说明工程师们在提出螺旋模型时主要考虑哪些目标)
答:图如右侧所示,说明如下:
客户交流:建立有效沟通;
计划:定义资源、期限等;
风险分析:评估技术和管理的风险;
构建/发布:构建、测试、安装、提供用户支持;
客户评估:得到反馈。
然后客户继续和开发者进行交流,循环往复。
螺旋模型与瀑布模型:
Couples iterative nature of prototyping with controlled and systematic aspect of the linear sequential model(将原型法的迭代特性和线性顺序模型的可控性和系统性结合在一起)
A simplified spiral model is as a waterfall model with each phase preceded by risk analysis.(一个单一化的螺旋模型可以被看作每个阶段前都带有风险分析的瀑布模型。
 
工程师提出螺旋模型主要考虑:
(1)      为了降低项目实施风险。
(2)      为了在实施大型系统过程中,较快看到系统原型。
4、The spiral model of development includes explicit consideration of risks at all stages of the lifecycle. Why is risk management so important? (螺旋模型在生命周期的各阶段都包括的明确的关于风险的考虑事项。为什么风险管理如此重要?)
答:因为风险在整个项目周期是一直存在并且无法完全避免的,失控的风险会导致项目的失败。风险管理就是为了提前考虑到可能的风险,使风险一旦成为现实,造成的损失最小化。螺旋模型中在每个阶段开始之前都考虑风险,这样的风险管理可以使可以发现的部分风险得到避免,无法完全避免的风险得到控制,成为可控风险,当出现不可控的重大风险时,及时终止项目,使损失的可能降到最小。
 
5、Select two of the process models we have discussed in this course.Describe the two models, differentiating them where appropriate.For each model, give an example of an application domain or problem area where you think that process model will be effective, justifying your answer.(选择两种模式,对比描述它们。对每个模型,给出1个应用范围或问题领域中的例子,在这个领域中,所选择过程模型是有效的,证明你的选择是正确的)
答:(PPT 24-49)自己选两个裁剪一下吧。例子根据Use编吧。
Model Type
 Advantages/Use
 Disadvantages
 Example
 
Built-and-Fix Model
 在设计中不用规范,只需要构造一个产品重复运行的能够满足客户需求的程序即可。
 不利于各种规模的软件开发
 
 
Waterfall 瀑布模型
 过于简单(见第2题)
 仅仅对好理解的项目才可用
 
 
V-model
 有利于大的软件模型
 
 
 
Rapid Prototyping Model
快速原型模型
 能够快速的跟踪客户的需求,加快开发的过程
 
 经常会出现把工作中间版本的软件做为最后版本的情况,使得该模型不能正常的执行
 
 
Rapid Application Develop
-ment(RAD)
 能够快速及时的解决软件开发中出现的问题,以商业目标为中心,可以大大的提高工作效率。
 需要大量的人力资源
如果需求不能模块化,这个方法将是不适用的。
如果需要优化,这个方法也是不适用的。
 
 
Incremental Model增量模型
 把线性模型和原型开发模型结合起来,产生发布增量,产品的设计、实现、集成和测试是一个系列的行为,当前的开发版本能够快速的传达给客户,从而使得客户可以尽早用到好的完整的产品。当资源不够的时候也能够及时的开发出产品,同时,增量也有助于管理技术风险。
 
 
 
Spiral Model 螺旋模型
 application in large systems and software
used well as a risk reduction mechanism
 controllability (demands high risk assessment and expertise)
has not been applied as much (little history)
 
 
Full Spiral Model
 
 
 
 
Component Assembly Model组件装配模型
 当重用是一个开发目标的时候给模型比较有效,同时也能够减小风险
 寻找组件,确定组件是否是可重用的,以及组件模型的适应性都是比较困难的
 
 
Concurrent Development Model共同开发模型
 可以在不同地点并发的开发软件
 
 要以网络为基础
 
 
Formal Methods Model
形式化方法模型
 当开发数学规范的时候适用该过程。
可以通过数学分析发现模糊性、不完整性、不一致型。
 过分的耗费时间,需要大量的教育,无法和客户交流
 
 一般在客户特别要求的时候才适用
 
 
 
6、简单叙述Software Engineering Layers的组成及各层特点。
答:软件工程层由4层组成:
(1)      质量关注层Quality Focus:是软件工程的基石。
(2)      过程层Process:定义一个框架,作为项目和技术性为管理和控制的基础。
(3)      方法层Methods:描述技术上怎样构建软件。
阅读(1976) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~