D 解析:软件需求包括3个不同的层次,即业务需求、用户需求和功能需求,另外还有非功能需求。1.业务需求(businessrequirement)反映了组织机构或客户对系统或产品高层次的日标要求,它们在项目视图与范围文档中予以说明。2.用户需求(userrequirement)描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。3.功能需求(functionalrequkement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。4.非功能需求(non-functionalrequirement)是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。非功能需求包括过程需求、产品需求和外部需求3类,其中过程需求有交付、实现方法和标准等需求,产品需求包含性能、可用性、实用性、可靠性、可移植性、安全保密性、容错性等方面的需求,外部需求有法规、成本、操作性等需求。一个软件原型是所提出的新产品的部分实现,它比开发人员常用的技术术语更易于理解。建立原型的主要原因是为了解决在产品开发的早期阶段需求不确定的问题,用户、经理和其他非技术项目风险承担者发现在确定和开发产品时,原型可以使他们的想象更具体化。原型在软件开发过程中可以起到以下主要作用:1.明确并完善需求。原型作为一种需求工具,它初步实现所理解的系统的一部分。用户对原型的评价可以指出需求中的许多问题,在开发真正产品之前,可以最低的费用来解决这些问题。2.探索设计选择方案。原型作为一种设计工具,用它可以探索不同的用户界面技术,使系统达到最佳的可用性,并且可以评价可能的技术方案。3.发展为最终的产品。原型作为一种构造工具,是产品最初子集的完整功能实现,通过一系列小规模的开发循环,可以完成整个产品的开发。多态性是指在父类中定义的属性或服务被子类继承后,可以具有不同的数据类型或表现出不同的行为。在体现一般与特殊关系的一个类层次结构中,不同层次的类可以共享一个操作;但却有各自不同的实现。当一个对象接收到一个请求时,它根据其所属的类,动态地选用在该类中定义的操作。举例:在父类“几何图形”中定义了一个服务“绘图”,但并不确定执行时绘制一个什么图形。子类“椭圆”和“多边形”都继承了几何图形类的绘图服务,但其功能却不相同:一个是画椭圆,一个是画多边形。当系统的其他部分请求绘制一个几何图形时,消息中的服务都是“绘图”,但椭圆和多边形接收到该消息时却各自执行不同的绘图算法。多态性机制不但为软件的结构设计提供了灵活性,减少了信息冗余,明显提高了软件的可复用性和可扩充性。多态性的实现需要OOPL提供相应的支持,与多态性实现有关的语言功能包括:重载(overload)、动态绑定(dynamicbinding)和类属(generic)。时序图和协作图均表示一组对象之间的动态协作关系,其中时序图反映对象之间发送消息的时间顺序,协作图反映收发消息的对象的结构组织。时序图和协作图是同构的,即两者之间可以相互转换。单元测试是对源程序中每一个程序单元进行测试,检查各个模块是否正确实现了规定的功能,从而发现模块在编码中或算法中的错误。该阶段涉及编码和详细设计的文档。各模块经过单元测试后,将各模块组装起来进行集成测试,以检查与设计相关的软件体系结构的有关问题。单元测试的测试用例主要根据详细设计的结果来设计。