软件作为一种逻辑组织,其发展趋势是规模越来越庞大,复杂程度(时间复杂度,空间复杂度)越来越高,求解领域越来越广泛。传统的结构化软件开发方法的求解能力已远远不能满足自然界客观存在的需求,因为面向结构的软件过程所采用的方法是函数或子程序的调用,其所表示的关系是函数或子程序间的依赖关系,用这种方法很难描述自然界中客观对象的属性(attribute),行为(behavior)和关系(relationship),而且当用结构化方法所开发软件的规模大到一定程度时,其维护和修改的难度、成本呈指数级增长趋势,软件的可维护
树图思维导图提供 面向对象软件过程质量控制 在线思维导图免费制作,点击“编辑”按钮,可对 面向对象软件过程质量控制 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:15346a9e6441d58aa5270ab15a27c348
面向对象软件过程质量控制思维导图模板大纲
按ISO9001:2000过程的定义,面向对象软件过程需要有过程客户、过程目标、过程环境、过程输入、过程处理、质量检验、过程输出等过程元素。
面向对象的软件开发过程可分为获得需求、需求分析、架构设计、详细设计、编码、测试、维护七个阶段,每个阶段又可看成是一个子过程,每个子过程又包含了一系列的活动(activities)。七个子过程按顺序依次相连,每个子过程的输出是下一个子过程的输入。每个子过程是其下一子过程的原料供应者,同时又是其上一子过程的客户。关键子过程(KPA)是需求分析子过程、架构设计子过程和详细设计子过程。
面向对象的软件过程的最终目标是:软件不但能够满足客户的当前需求,而且还要能够满足未来客户需求变化的需求,还要适应未来软件运行支撑环境的发展和变化, 所以,开发的软件要具有很好的演化能力来适应这些变化。 面向对象软件过程的最终客户是软件使用者及相关利益人。
子过程内部客户是需求分析子过程中的系统分析师。内部目标是充分获取客户需求,可能是合理需求,也可能是不合理需求。参加人员有:客户需求调查员,领域专家,系统分析师。子过程输入是软件开发合同、协议和可行性论证。子过程处理活动:调查员和系统分析师到甲方进行客户需求调查和采访,必要时请领域专家(可能来自第三方,也可能来自甲方)参加。获得客户需求的途径有:采访录音(征得甲方同意),填表格,观察甲方现场工作情景,画用例图(use case diagram),制作原型(prototype)等。将获得的客户需求以文字、图表的形式记录下来,并让客户进行验证和确认,可修改,直至客户认可。获取用户需求过程中的一条原则就是不争论,不分析,把用户提出的需求都记录下来。所获得的原始客户需求就是获得需求子过程的输出。
内部客户是详细设计子过程中的设计师。内部目标是获得所开发软件的健壮的(robust)软件架构。参加人员是软件架构师。内部输入是需求分析子过程的输出。子过程的处理活动包括:软件架构师根据上一子过程生成的用例图、协作图、需求规格说明书、分析类图,运用软件架构设计知识和经验设计出所要开发系统的软件架构(software architecture)。软件架构的设计粒度是构件(component),构件是可分布的物理单元,只要不同的构件实现了相同的接口,那么构件可以相互替换。保证架构设计质量的准则有:构件本身要保持高内聚性(high cohesion);构件间要保持低耦合性(low coupling);定义构件间的通讯机制(同步、异步、本地调用、远程调用)和通讯协议;构件内部类与类间的依赖关系和方法调用要做到对构件外部来说是透明的;每个构件只留有适量的接口供其他构件调用;设计构件的接口时,既要使构件间的交互方便,又要隐蔽构件内部的细节信息, 这样做的好处是降低面向对象软件过程的复杂度,提高对软件过程的可控制程度和软件的安全性,可运用代理(agent)或门面(facade)设计模式来设计和实现构件;把软件相对较稳定部分做到架构里,这包括软件的核心功能性需求和大部分非功能性需求。软件架构的设计准则可提高和保证软件的健壮性,另外使用已有的软件架构风格(software architecture style)也可提高软件的健壮性,如:管道过滤器(pipe filter)、顺序批处理(batch sequential)、分层(layers)、黑板(blackboard)、解释器(interpreter)等。面向对象软件过程是以架构为中心的,架构是软件的生命基线和骨架。架构设计子过程所设计出的健壮的软件架构能够保证软件的持续改善(continual improvement),这是软件开发的最高境界,也是具有挑战性的领域。 因为客户的需求是时间的函数,是随着时间变化的,而且软件运行的软硬件支撑环境也在快速发展和变化着,如果软件没有一个健壮的架构,那么软件将很难根据客户需求的变化进行扩展和维护,且软件的安全性、稳定性、可靠性、可复用性也很难得到保证,这些都是客户无法接受的,所以按ISO9001:2000的以客户为中心、客户至上的原则,设计健壮的软件架构是极其必要和重要的。架构设计子过程的内部输出有:构件图(component diagram)、分布图(deployment diagram)。子过程的检验标准是软件架构美好的可视性(安全性、稳定性、可靠性、可复用性、可维护性、可移植性),验证和确认由架构师和系统分析师做,方法是测试已生成的软件架构,根据架构设计准则来衡量架构是否满足最终用户的主要的功能性需求和大部分非功能性需求。项目管理培训