第6章软件项目设计阶段的知识与管理课件.ppt
《第6章软件项目设计阶段的知识与管理课件.ppt》由会员分享,可在线阅读,更多相关《第6章软件项目设计阶段的知识与管理课件.ppt(83页珍藏版)》请在三一办公上搜索。
1、第6章 软件项目设计阶段的知识和管理,本章要点:系统设计是软件项目成败的关键 设计阶段的目标和任务 系统设计阶段的团队管理和技能要求 系统设计阶段的管理与控制 系统设计阶段性成果和考核依据,第6章 软件项目设计阶段的知识和管理本章要点:,需求分析解决“做什么”,系统设计则确定“如何做”。6.1 系统设计是软件项目成败的关键 系统设计基于需求分析的成果,对系统做深层次的分析,从而得出一系列行之有效的系统实现方案,使整个项目在逻辑上和物理上能够得以实现。系统设计是获取高质量、低耗费、易维护的软件系统的最为核心的环节。没有或缺乏软件设计的工程只能是一个不稳定的、甚至是失败的软件系统。,需求分析解决“
2、做什么”,系统设计则确定,6.2 设计阶段的目标和任务 系统设计是一个将系统的需求规格转换成软件系统的说明过程。系统设计的最终目标是要完成对“软件项目交付成果如何架构”的准确回答。任务包括构建系统框架,设计系统功能,描述系统流程,建立系统的数据模型、接口模型及界面模型,形成系统的逻辑结构,告诉程序员软件系统应该“怎样做”。,6.2 设计阶段的目标和任务,软件设计一般分为概要设计和详细设计两大步骤。概要设计是根据需求分析内容确定软件系统的总体框架,定义系统的初始模型。详细设计是在概要设计的基础上做进一步细化的工作,规划出系统的运行结构、功能结构、信息模型、过程模型和集成接口结构,并详细到系统编码
3、阶段的各个类、函数、变量等对象的结构定义、流程定义和实现方案。,软件设计一般分为概要设计和详细设计两大,6.3 系统设计阶段的团队管理和技能要求 系统设计团队是软件项目各个阶段中对技术要求最高的组织之一,并在项目经理的直接领导和协调下开展工作。主要团队成员包括:体系结构设计师、系统设计员、数据库设计员、用户界面设计员、质量管理员和配置管理员。,6.3 系统设计阶段的团队管理和技能要求,体系结构设计师负责系统的总体规划和集成接口设计。系统设计员负责完成子系统、子模块,以及系统构件的规划与设计。数据库设计员负责整个系统的概念数据模型,以及物理数据的设计。用户界面设计员负责系统与用户交互的界面风格、
4、整体布局及美化设计。质量管理员负责组织设计结果的质量评审工作。配置管理人员进行设计阶段的配置管理,并将设计阶段成果纳入软件配置管理。,体系结构设计师负责系统的总体规划,他们之间的工作关系如下图所示。,他们之间的工作关系如下图所示。,6.3.1体系结构设计师职责与技术素质要求 是系统设计团队中的关键人物,其职责是领导设计组成员开展系统设计任务,协调和管理系统设计团队内部的各项工作,并参与整个项目各个阶段的沟通与协调工作。主要工作包括:(1)初步定义一组在构架方面具有重要意义的元素,作为系统设计的工作基础。(2)初步定义系统的分层与组织结构。(3)提供从分析活动到设计活动的自然转移从分析结果中确定
5、适当的设计元素,从相关分析机制中确定适当的设计机制。,6.3.1体系结构设计师职责与技术素质要求,(4)维持体系结构的一致性和完整性,确保当前迭代所确定的新设计元素与先前已有的设计元素可以集成;在设计过程中尽可能早地充分利用现有的构件和设计元素。(5)描述系统运行时的组织以及部署体系结构时的组织。(6)设计实施模型,以实现设计与实施间的平稳转移。注意:体系结构架构工作一般由技能互补人员组成的小型团队来完成。团队应由具有丰富相关领域设计经验的成员组成;同时,体系结构设计团队不能由大规模的团队组成。,(4)维持体系结构的一致性和完整性,确,6.3.2子系统设计员的职责与技能要求 子系统设计员是整个
6、设计阶段任务得以顺利完成的核心成员,他们常常是一个协作的团队,而不是一个人。是在体系结构设计师的声接领导和协调下开展工作。主要完成的任务是:(1)将系统结构提供的行为说明转换为可作为设计基础的一组元素。(2)通过制定设计元素如何实现其行为要求,改进设计元素的定义。(3)将设计元素作为模块来实施。(4)测试所实施的模块,以核实构件/单元级别上的功能和需求满足情况。,6.3.2子系统设计员的职责与技能要求,注意:负责设计子系统的个人或团队应当熟悉本系统所采用的开发语言,并具备在系统所使用的算法或技术方面的专业技能。负责子系统的个人或团队更应是多面手,能够合理划分设计元素间的功能,并能够理解不同备选
7、设计方案固有的优缺点。,注意:,6.3.3数据库设计员的职责与技能要求 数据库设计员的主要内容是确定系统数据库对象及其之间的关系,建立系统的信息模型。主要完成的任务是:(1)确定设计中的永久类;(2)设计适当的数据库结构,以存储永久类;(3)定义存储和检索永久性数据的机制和策略,以满足系统要求的性能标准。,6.3.3数据库设计员的职责与技能要求,注意:数据库设计人员需要了解设计模型中的永久类,并且必须在关系型数据库、面向对象的程序设计与软件实施方面具备一定的应用知识。数据库设计人员还需要充分具备处理数据库并行及分布问题的背景。数据库设计人员是一种“浮动”的资源,为几个团队所共有,充当处理永久性
8、问题的顾问型成员。数据库设计人员与子系统设计人员之间的紧密协作极为重要。,注意:,6.3.4 界面设计人员的职责与技能要求 用户界面设计是系统的形象设计,它留给用户的印象直接影响着软件的市场和用户群的占有率,因此必须得到足够的重视。主要完成的任务是:(1)分析对用户界面的需求,包括可用性需求。(2)构建用户界面原型。(3)邀请用户界面的其他相关人员参与可用性复审和使用测试会议。(4)对用户界面的最终实施方案(由设计员和实施员等其他开发人员创建)进行复审并提供相应的反馈。,6.3.4 界面设计人员的职责与技能要求,6.4 系统设计阶段的管理与控制6.4.1 系统设计阶段的进度管理 做好设计阶段的
9、进度管理与控制工作,需要做好以下几方面的具体工作:(1)考虑设计人员的能力 系统设计工作的进度与质量是设计人员经验和能力的综合体现。本阶段工作进度安排一定要考虑设计人员的能力状况。在实际工作中,应结合项目的规模、费用状况及进度要求,选择合适的系统设计人员,即在成本允许的条件下,尽可能选用能力较强、经验丰富的设计人员,以获得较高的项目进度及质量。,6.4 系统设计阶段的管理与控制,(2)做好阶段工作计划与任务分工 无论何种软件项目,在设计开始时都应制定详细的阶段工作计划,使整个工作都在计划的指导下进行。对参与团队设计的人员要有明确的工作分工并制定明确的工作职责,防止工作安排中的遗漏及相互扯皮现象
10、出现,最大限度的发挥出每个团队成员的能力和经验优势。,(2)做好阶段工作计划与任务分工,(3)采用先进的软件技术与工具 采用先进的软件技术进行设计工作,将会取得较高劳动效率。设计阶段新技术的采用主要体现在以下方面:1)采用新的系统建模方法及工具 如支持建立系统功能模型的IDEFO方法,面向对象的建模工具(UML)和方法等。2)软件复用 许多软件模块的设计和实现具有很大的相似性,在进行系统设计时,可将其他项目的设计结果直接拿过来使用,以获得较高的软件开发效率及较高的软件开发质量。,(3)采用先进的软件技术与工具,(4)及时沟通 沟通可以有效地解决以下问题:1)解决设计中的难题 技术进步及用户要求
11、的不断提高,软件开发工作的技术要求及难度越来越大。每个设计人员在设计时总会碰到一定的设计难题。通过团队协作可以充分发挥和调动每位成员的聪明才智,准确把握、合理解决设计难题,避免设计中的漏洞及问题,同时也可避免可能带来的进度延误。,(4)及时沟通,2)有效解决设计接口问题及采用复用技术 设计中,不同人员所承担任务之间的接口工作是设计工作的一个关键。每个人不能 按照自己的想法进行接口的设计,只有通过与接口方的不断交流和沟通,才能取得满意的设计效果。另外在设计工作中,不同模块间的设计可能具有很大的相似性,有效的沟通可以使设计人员彼此了解别人的工作内容,从而给设计上的复用带来了可能,保证或加快设计工作
12、进度。,2)有效解决设计接口问题及采用复用技术,3)提高人员的工作效率 通过沟通,设计人员可以彼此厂解别人的工作进度,出于维护个人荣誉,会对进度较慢的人员形成一定的工作压力,从而保证设计工作的整体工作进度。(5)加强跟踪与监控,防止设计工作的反复 加强项目的跟踪和管理,可以减少设计工作中的随意性、及时纠正设计中的错误。从而减少设计中的工作反复,确保设计阶段的工作进度。跟踪设计工作进度的方法有两种:一种是个人询问,另一种是召开例会。,3)提高人员的工作效率,6.4.2 系统设计阶段质量管理 可通过做好以下工作,把好软件设计质量关:(1)对需求的正确理解 需求规格说明书是软件设计的重要依据。软件项
13、目能否最终提供符合用户需要的软件产品,就要看软件设计是否满足了需求规格说明书的全部要求。因此,设计人员对需求规格说明书内容的正确理解,是高质量完成软件设计工作的前提。,6.4.2 系统设计阶段质量管理,(2)监理与评审 设计阶段完成后,需要对系统设计进行评审。评审由质量管理人员发起和组织,参与的人员有用户、领导、开发方、监理等。通过评审,为系统实施和质量跟踪提供依据。通过评审以后,设计阶段的工作成果将纳入软件配置管理。设计阶段工作对项目的后续工作影响巨大,一旦出现设计更改,需要付出的代价是很沉重的。因此,作为设计阶段的质量把关与审核,设计过程的监理与设计评审工作应该予以高度重视。,(2)监理与
14、评审,系统设计包含较高的技术和能力因素,要求设计评审人员的组成要全面,且评审人员要具有丰富的系统设计经验,只有这样才能够很好地完成评审和把关任务,防止评审工作流于形式。进行设计评审时,评审人员要以正确、负责的心态对待评审工作:一是要查找设计中存在的问题,而不是故意找茬,与设计人员过不去;二是要认识到评审工作责任的重大,如果评审工作不负责任将很可能使许多人的辛勤劳动被葬送,企业将因此付出巨大的代价。,系统设计包含较高的技术和能力因素,要求,(3)复用技术的采用 软件设计复用就是在进行系统设计时,发现并利用其他项目的设计成果,直接应用或进行少量修改后应用于新项目的过程。由于复用的设计已经经过其他项
15、目的应用检验,所以复用后的设计会具有较高的设计质量。在系统设计过程中,设计人员要善于发现可复用的设计单元,善于使用复用技术提高自己的工作效率。,(3)复用技术的采用,(4)版本控制与管理 对设计阶段的各个阶段性成果也需加强跟踪和管理,否则,容易使设计人员随意地进行设计结果的修改,造成设计结果的混乱。项目经理应加强设计阶段的阶段性成果的管理和控制工作,即需要将设计阶段再划分为多个子阶段,对每个子阶段完成的工作纳入管理。如果设计人员要进行设计变更,应该按照一定的变更处理流程来进行。通过这种方式,可有效防止设计工作及版本控制的混乱,提高设计成果的质量。,(4)版本控制与管理,(5)注重软件的结构设计
16、 一个好的体系结构应具备以下特征:1)具有良好的接口定义规范,便于实现与其他系统的数据交换及构件的复用。2)具有良好的系统适应性,即在需求发生变化时,软件系统能够以最小的代价适应变化的需要。3)支持并行的软件开发,即优秀的体系结构,可使软件系统的复杂性降低,使整个开发工作可管理性增强,便于实现多个开发单位的并行开发工作。4)良好的技术适应性,即系统容易适应技术的发展和变化。,(5)注重软件的结构设计,6.5 系统设计阶段主要工作内容及采用的工具和方法 软件设计分为两个主要的工作阶段:概要设计。主要工作是将软件需求转化为数据结构和软件的系统结构;详细设计。通过对软件结构与功能模块的细化工作,得到
17、软件程序的数据结构、算法和实现流程。软件设计的方法主要有结构化设计方法和面向对象的设计方法两大类。本节讨论系统设计阶段的结构设计、功能设计、信息模型设计、过程模型设计以及界面设计,并介绍一些在系统设计阶段常采用的设计工具。,6.5 系统设计阶段主要工作内容及采用的工具和方法,6.5.1体系结构设计6.5.1.1体系结构设计概述 软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。,6.5.1体系结构设计,6.5.1.2体系结构设计原则 体系结构设计的原则包括:合适
18、性、结构稳定性、代码可复用性及模块可扩展性。(1)合适性 是指体系结构是否适合于软件的“功能性需求”和“非功能性需求”。(2)结构稳定性 体系结构是系统设计的第一要素,体系结构变动,建筑在其上的用户界面、数据库、模块、数据结构等也要跟着变动,这将导致项目发生混乱。所以体系结构一旦设计完成,应当保持其相对稳定不变。,6.5.1.2体系结构设计原则,(3)模块可扩展性 对于软件产品来讲,变化是绝对的,不变化是相对的。对于系统设计来说,要求系统设计应该适应这种变化。体系结构的稳定性是根据那些稳定不变的需求而设计的,体系结构的可扩展性则是依据那些可变的需求而设计的。稳定性和可扩展性二者之间存在辨证的关
19、系:系统若不可扩展,那么就没有发展前途;软件系统可扩展”的前提条件是“保持结构稳定”,否则软件难以按计划开发出来。,(3)模块可扩展性,(4)代码可复用性 软件复用技术有利于提高产品的质量、提高生产率和降低成本。通常一个新系统,大部分的内容是成熟的,小部分内容是创新的。可复用性是设计出来的,而不是偶然碰到的。要使体系结构具有良好的可复用性,设计师应当分析应用域的共性问题,然后设计出一种通用的体系结构模式,这样的体系结构才可能被复用。,(4)代码可复用性,6.5.1.3体系结构设计步骤 系统体系结构设计的主要过程包括设计准备、设计策划、需求再确认、文档编写及设计评审五个关键环节。,6.5.1.3
20、体系结构设计步骤,(1)设计准备 设计准备阶段的工作主要包括:1)制定设计小组在设计时应该共同遵守的标准和规范。2)明确设计工作的范围和任务。3)根据设计目标确定最适合的设计方案、方法和工具。4)编制设计阶段的阶段性开发计划,包括本阶段进度、质量、成本管理办法及人员工作安排等内容。,(1)设计准备,(2)界定约束条件 软件设计过程中通常需要考虑的约束因素有:1)本系统需要遵循的相关标准或规范;2)系统实现所依赖的软硬件环境的约束;3)本系统与其他系统间的接口要求;4)系统采用通讯协议方面的约束;5)用户界面的约束;6)软件质量的约束。,(2)界定约束条件,(3)确定设计策略 需要确定的系统设计
21、策略包括:1)设计模式,根据产品的功能性需求和非功能性需求,确定体系结构设计模式。设计模式的确定是结构设计中最重要的环节,一个好的模式能为系统的扩充、复用等策略提供良好的支持。通常采用扩展策略、复用策略、折衷策略、兼容策略、灵活策略,以及客户个性化需求策略等方面来考虑设计方案。2)系统设计模板的确定,编写系统设计文档之前也应首先确定系统的内容及其组织编排方式。主要从结构、功能、性能、接口、信息模型以及进度、经费等 方面着重考虑。,(3)确定设计策略,(4)分解设计任务 分解任务包括:1)按照确定的体系结构设计模式,将一个复杂的系统分解成为若干子系统,确定每个子系统的功能,建立并确定与软件需求间
22、的对应关系,以及各个子系统之间的关系,绘制系统的总体结构图。2)将子系统分解成若干个模块,确定每个模块完成的功能,以及模块之间的调用关系,并确定模块间的调用接口。,(4)分解设计任务,(5)需求再确认 在编写设计文档之前或者在编写的过程中,对前期描述的需求内容进行再次确认,以确保系统设计的准确性和符合用户的真实要求。(6)编写设计文档 完成体系结构设计报告的编写工作。通常情况下,由体系结构设计、接口设计、信息模型设计、出错处理设计、系统安全性设计、系统可靠性设计等组成系统概要设计阶段的主要内容。,(5)需求再确认,(7)设计评审 体系结构设计完成后,由项目组质量保证人员组织同行专家、开发人员对
23、体系结构进行技术评审。评审的内容除了合适性、结构稳定性、可扩展性和可复用性外,一般还应包括:1)可追溯性:确认该软件的设计是否覆盖了所有已确定的软件需求。2)灵活性:确定按设计方案实现的系统是否可以灵活搭建,方便配置。3)个性化适应性:确保用户需求在一定范围内变化时,系统设计方案可以进行不增加工作量的调整。,(7)设计评审,4)兼容性:确保与其他正在运行的系统结构的兼容性。5)集成性:确定与其他系统产生的数据能够集成并实现一定程度的资源共享。6)接口:即通过分析软件各部分之间的联系,确认软件的内部及外部接口是否已明确定义。模块设计是否满足高内聚和低偶合的特性。7)质量:即软件设计是否表现出良好
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 项目 设计 阶段 知识 管理 课件
链接地址:https://www.31ppt.com/p-2109413.html