1
第三章作业:
3.2
讨论3.1节所描述的不同过程流之间的区别。你是否能够确定适用于所描述的每种通用流的问题类型?
正确答案:
(1)
线性流程按顺序执行5个框架活动。
在进行下一个活动之前,迭代流程会重复一组活动。
进化过程以循环例程执行活动。
流并行处理流程与另一个活动并行执行—组活动。
(2)
线性流程、迭代流程、流并行处理流程都是以部署活动结束,而进化过程在部署活动之后,它再次从另一个版本的下一个圆圈开始。
(3)
线性流程、迭代流程、流并行处理流程都是有一个单一的版本发布,而进化过程通过五个活动的每个电路导致一个更完整的软件版本。
(4)
线性流程、迭代流程、进化过程一次只执行一项活动, 而流并行处理流程—次可以并行执行—项或多项活动。
(5)
流并行处理流程和线性流程所有5个活动都只经历了一次; 迭代流程前4个活动可以重复; 进化过程5个活动可以重复多次
第3.1节中描述的通用流程面临的问题是:
线性流程:
o可能会出现不可预测的集成问题。
o缺陷可以追溯到以前的活动,即它们后来被识别。o客户很难在一开始就说明所有要求。
·迭代流程:
o它可能导致阻塞状态。
o花在等待上的时间多于生产时间
·进化过程流:
o项目团队等待较早的活动完成。
o开发人员最终可能会在实施过程中做出妥协。
·并行流程:
o在项目进行过程中,它可能会导致项目团队的混乱。熏要优秀的风险评估专家。
2
第四章作业:
4.2
详细描述三个适于采用原型模型的软件项目
正确答案:
相对容易原型化的软件应用程序几乎总是涉及人机交互。
当客户有合法需求但对细节一无所知时,第一步就是开发原型。客户定义了一组总体目标。对于这些适合原型设计的应用程序是某些类别的数学算法、命令驱动系统的子集以及无需实时交互即可轻松检查结果的其他应用程序。用于原型设计的示例软件项目。
(1)基于网络的项目:
像任何其他项目一样,基于Web的项目也有用户、要求、要满足的时间表和质量目标。项目管理、需求管理、变更控制和质量管理等方面也适用于网络项目。
在项目开始时完全指定需求的困难使得传统的瀑布模型不适合Web应用程序开发。在传统的原型模型中,原型本质上是为了捕捉需求,一旦达到目的就被丢弃。
(2)需要更好的人机界面的项目将从原型设计中受益匪浅
(3)很多涉及大投资的工程科技项目跟随着派对。
3
第四章作业:
4.6
可以合用几种过程模型吗? 如果可以,举例说明。
正确答案:
结合过程模型,是的,可以结合软件过程模型。下面给出了组合软件过程模型的一些可能性,
1)演化过程模型。
2)增量过程模型。
3)螺旋模型。
在演化过程中,模型逐渐创建更完整的软件版本,并为每个版本重复—个完整的活动循环。
在增星过程模型中,会产生一系列版本,为客户需求提供更多功能,增量是单独设计的,在连续的时间点进行测试和交付。
在螺旋模型中产生了快速开发逐渐更完整的软件版本的潜力。它结合了原型模型和瀑布模型的特点。示例项目:
让我们考虑国防部的案例研究。
它遵循瀑布模型或增量模型。但是,如果我们需要基于其他—些软件功能开发软件,请使用基于组件的模型。如果时间是主要因素,则应用快速应用模型。
因此,我们可以结合进化、增量和螺旋过程模型来开发单个软件。在医疗和研究项目中,我们也可以结合这些过程模型。
4
第四章作业:
4.8
开发质量“足够好”的软件,其优点和缺点是什么?也就是说,当我们追求开发速度胜过产品质量的时候,会产生什么后果?
正确答案:
开发质量"足够好"的软件的优点是
·完整性–所有需求都反映在软件中
·简洁–紧凑
·可靠性–无故障输出提高用户满意度。·降低维护成本
·效率–程序执行某项功能所需的计算资源量和成本。
·—致性。
我们不得不妥协于质量软件的优势,速度是主要制约因素,但速度有其优缺点。我们不得不妥协于质量软件的优势,速度是主要制约因素,但速度名右利弊缺点:
·短时间开发导致微型软件项目并以微型增量发布产品,但短迭代可能无法增加足够的功能,从而导致最终迭代的显着延迟。
·快速的软件促进了强大的协作氛围和动态的需求收集,但依赖于强大的团队和对项目的个人承诺
5
第四章作业:
4.11
统一过程和UML是同一概念吗?请解释你的答案。
正确答案:
不,统—过程和UML不是一回事。
统—流程:
统—过程是一种框架,用于软件工程中的UML。它是一种流行的迭代和增量软件开发过程,应针对特定组织或项目进行定制。
统—建模语言(UML) :
UML是软件工程领域的标准化通用建模语言。它是一种建模符号和语言,由支持面向对象(和常规)软件工程实践的技术组成。
而且,UML是一种用于可视化、指定和构建软件工件的图形语言-密集型系统说明:
UML 和统一过程在各种项目上看起来都是一样的东西,但还是有细微
.统一流程应用UML。
2.UML没有提供过程框架来指导项目团队应用技术。
3.统一过程是一个过程框架,UML可以在其中应用作为软件工程活动的一部分。
模型是从特定角度对系统的完整描述。但仅靠UML是不够的。流程定义了谁在做什么?什么、什么时候做以及如何达到某个目标
例子:
敏捷开发是一个过程,它也应该对生成的图表使用UML表示法。