欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第6章软件项目设计阶段的知识与管理课件.ppt

    • 资源ID:2109413       资源大小:239.33KB        全文页数:83页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第6章软件项目设计阶段的知识与管理课件.ppt

    第6章 软件项目设计阶段的知识和管理,本章要点:系统设计是软件项目成败的关键 设计阶段的目标和任务 系统设计阶段的团队管理和技能要求 系统设计阶段的管理与控制 系统设计阶段性成果和考核依据,第6章 软件项目设计阶段的知识和管理本章要点:,需求分析解决“做什么”,系统设计则确定“如何做”。6.1 系统设计是软件项目成败的关键 系统设计基于需求分析的成果,对系统做深层次的分析,从而得出一系列行之有效的系统实现方案,使整个项目在逻辑上和物理上能够得以实现。系统设计是获取高质量、低耗费、易维护的软件系统的最为核心的环节。没有或缺乏软件设计的工程只能是一个不稳定的、甚至是失败的软件系统。,需求分析解决“做什么”,系统设计则确定,6.2 设计阶段的目标和任务 系统设计是一个将系统的需求规格转换成软件系统的说明过程。系统设计的最终目标是要完成对“软件项目交付成果如何架构”的准确回答。任务包括构建系统框架,设计系统功能,描述系统流程,建立系统的数据模型、接口模型及界面模型,形成系统的逻辑结构,告诉程序员软件系统应该“怎样做”。,6.2 设计阶段的目标和任务,软件设计一般分为概要设计和详细设计两大步骤。概要设计是根据需求分析内容确定软件系统的总体框架,定义系统的初始模型。详细设计是在概要设计的基础上做进一步细化的工作,规划出系统的运行结构、功能结构、信息模型、过程模型和集成接口结构,并详细到系统编码阶段的各个类、函数、变量等对象的结构定义、流程定义和实现方案。,软件设计一般分为概要设计和详细设计两大,6.3 系统设计阶段的团队管理和技能要求 系统设计团队是软件项目各个阶段中对技术要求最高的组织之一,并在项目经理的直接领导和协调下开展工作。主要团队成员包括:体系结构设计师、系统设计员、数据库设计员、用户界面设计员、质量管理员和配置管理员。,6.3 系统设计阶段的团队管理和技能要求,体系结构设计师负责系统的总体规划和集成接口设计。系统设计员负责完成子系统、子模块,以及系统构件的规划与设计。数据库设计员负责整个系统的概念数据模型,以及物理数据的设计。用户界面设计员负责系统与用户交互的界面风格、整体布局及美化设计。质量管理员负责组织设计结果的质量评审工作。配置管理人员进行设计阶段的配置管理,并将设计阶段成果纳入软件配置管理。,体系结构设计师负责系统的总体规划,他们之间的工作关系如下图所示。,他们之间的工作关系如下图所示。,6.3.1体系结构设计师职责与技术素质要求 是系统设计团队中的关键人物,其职责是领导设计组成员开展系统设计任务,协调和管理系统设计团队内部的各项工作,并参与整个项目各个阶段的沟通与协调工作。主要工作包括:(1)初步定义一组在构架方面具有重要意义的元素,作为系统设计的工作基础。(2)初步定义系统的分层与组织结构。(3)提供从分析活动到设计活动的自然转移从分析结果中确定适当的设计元素,从相关分析机制中确定适当的设计机制。,6.3.1体系结构设计师职责与技术素质要求,(4)维持体系结构的一致性和完整性,确保当前迭代所确定的新设计元素与先前已有的设计元素可以集成;在设计过程中尽可能早地充分利用现有的构件和设计元素。(5)描述系统运行时的组织以及部署体系结构时的组织。(6)设计实施模型,以实现设计与实施间的平稳转移。注意:体系结构架构工作一般由技能互补人员组成的小型团队来完成。团队应由具有丰富相关领域设计经验的成员组成;同时,体系结构设计团队不能由大规模的团队组成。,(4)维持体系结构的一致性和完整性,确,6.3.2子系统设计员的职责与技能要求 子系统设计员是整个设计阶段任务得以顺利完成的核心成员,他们常常是一个协作的团队,而不是一个人。是在体系结构设计师的声接领导和协调下开展工作。主要完成的任务是:(1)将系统结构提供的行为说明转换为可作为设计基础的一组元素。(2)通过制定设计元素如何实现其行为要求,改进设计元素的定义。(3)将设计元素作为模块来实施。(4)测试所实施的模块,以核实构件/单元级别上的功能和需求满足情况。,6.3.2子系统设计员的职责与技能要求,注意:负责设计子系统的个人或团队应当熟悉本系统所采用的开发语言,并具备在系统所使用的算法或技术方面的专业技能。负责子系统的个人或团队更应是多面手,能够合理划分设计元素间的功能,并能够理解不同备选设计方案固有的优缺点。,注意:,6.3.3数据库设计员的职责与技能要求 数据库设计员的主要内容是确定系统数据库对象及其之间的关系,建立系统的信息模型。主要完成的任务是:(1)确定设计中的永久类;(2)设计适当的数据库结构,以存储永久类;(3)定义存储和检索永久性数据的机制和策略,以满足系统要求的性能标准。,6.3.3数据库设计员的职责与技能要求,注意:数据库设计人员需要了解设计模型中的永久类,并且必须在关系型数据库、面向对象的程序设计与软件实施方面具备一定的应用知识。数据库设计人员还需要充分具备处理数据库并行及分布问题的背景。数据库设计人员是一种“浮动”的资源,为几个团队所共有,充当处理永久性问题的顾问型成员。数据库设计人员与子系统设计人员之间的紧密协作极为重要。,注意:,6.3.4 界面设计人员的职责与技能要求 用户界面设计是系统的形象设计,它留给用户的印象直接影响着软件的市场和用户群的占有率,因此必须得到足够的重视。主要完成的任务是:(1)分析对用户界面的需求,包括可用性需求。(2)构建用户界面原型。(3)邀请用户界面的其他相关人员参与可用性复审和使用测试会议。(4)对用户界面的最终实施方案(由设计员和实施员等其他开发人员创建)进行复审并提供相应的反馈。,6.3.4 界面设计人员的职责与技能要求,6.4 系统设计阶段的管理与控制6.4.1 系统设计阶段的进度管理 做好设计阶段的进度管理与控制工作,需要做好以下几方面的具体工作:(1)考虑设计人员的能力 系统设计工作的进度与质量是设计人员经验和能力的综合体现。本阶段工作进度安排一定要考虑设计人员的能力状况。在实际工作中,应结合项目的规模、费用状况及进度要求,选择合适的系统设计人员,即在成本允许的条件下,尽可能选用能力较强、经验丰富的设计人员,以获得较高的项目进度及质量。,6.4 系统设计阶段的管理与控制,(2)做好阶段工作计划与任务分工 无论何种软件项目,在设计开始时都应制定详细的阶段工作计划,使整个工作都在计划的指导下进行。对参与团队设计的人员要有明确的工作分工并制定明确的工作职责,防止工作安排中的遗漏及相互扯皮现象出现,最大限度的发挥出每个团队成员的能力和经验优势。,(2)做好阶段工作计划与任务分工,(3)采用先进的软件技术与工具 采用先进的软件技术进行设计工作,将会取得较高劳动效率。设计阶段新技术的采用主要体现在以下方面:1)采用新的系统建模方法及工具 如支持建立系统功能模型的IDEFO方法,面向对象的建模工具(UML)和方法等。2)软件复用 许多软件模块的设计和实现具有很大的相似性,在进行系统设计时,可将其他项目的设计结果直接拿过来使用,以获得较高的软件开发效率及较高的软件开发质量。,(3)采用先进的软件技术与工具,(4)及时沟通 沟通可以有效地解决以下问题:1)解决设计中的难题 技术进步及用户要求的不断提高,软件开发工作的技术要求及难度越来越大。每个设计人员在设计时总会碰到一定的设计难题。通过团队协作可以充分发挥和调动每位成员的聪明才智,准确把握、合理解决设计难题,避免设计中的漏洞及问题,同时也可避免可能带来的进度延误。,(4)及时沟通,2)有效解决设计接口问题及采用复用技术 设计中,不同人员所承担任务之间的接口工作是设计工作的一个关键。每个人不能 按照自己的想法进行接口的设计,只有通过与接口方的不断交流和沟通,才能取得满意的设计效果。另外在设计工作中,不同模块间的设计可能具有很大的相似性,有效的沟通可以使设计人员彼此了解别人的工作内容,从而给设计上的复用带来了可能,保证或加快设计工作进度。,2)有效解决设计接口问题及采用复用技术,3)提高人员的工作效率 通过沟通,设计人员可以彼此厂解别人的工作进度,出于维护个人荣誉,会对进度较慢的人员形成一定的工作压力,从而保证设计工作的整体工作进度。(5)加强跟踪与监控,防止设计工作的反复 加强项目的跟踪和管理,可以减少设计工作中的随意性、及时纠正设计中的错误。从而减少设计中的工作反复,确保设计阶段的工作进度。跟踪设计工作进度的方法有两种:一种是个人询问,另一种是召开例会。,3)提高人员的工作效率,6.4.2 系统设计阶段质量管理 可通过做好以下工作,把好软件设计质量关:(1)对需求的正确理解 需求规格说明书是软件设计的重要依据。软件项目能否最终提供符合用户需要的软件产品,就要看软件设计是否满足了需求规格说明书的全部要求。因此,设计人员对需求规格说明书内容的正确理解,是高质量完成软件设计工作的前提。,6.4.2 系统设计阶段质量管理,(2)监理与评审 设计阶段完成后,需要对系统设计进行评审。评审由质量管理人员发起和组织,参与的人员有用户、领导、开发方、监理等。通过评审,为系统实施和质量跟踪提供依据。通过评审以后,设计阶段的工作成果将纳入软件配置管理。设计阶段工作对项目的后续工作影响巨大,一旦出现设计更改,需要付出的代价是很沉重的。因此,作为设计阶段的质量把关与审核,设计过程的监理与设计评审工作应该予以高度重视。,(2)监理与评审,系统设计包含较高的技术和能力因素,要求设计评审人员的组成要全面,且评审人员要具有丰富的系统设计经验,只有这样才能够很好地完成评审和把关任务,防止评审工作流于形式。进行设计评审时,评审人员要以正确、负责的心态对待评审工作:一是要查找设计中存在的问题,而不是故意找茬,与设计人员过不去;二是要认识到评审工作责任的重大,如果评审工作不负责任将很可能使许多人的辛勤劳动被葬送,企业将因此付出巨大的代价。,系统设计包含较高的技术和能力因素,要求,(3)复用技术的采用 软件设计复用就是在进行系统设计时,发现并利用其他项目的设计成果,直接应用或进行少量修改后应用于新项目的过程。由于复用的设计已经经过其他项目的应用检验,所以复用后的设计会具有较高的设计质量。在系统设计过程中,设计人员要善于发现可复用的设计单元,善于使用复用技术提高自己的工作效率。,(3)复用技术的采用,(4)版本控制与管理 对设计阶段的各个阶段性成果也需加强跟踪和管理,否则,容易使设计人员随意地进行设计结果的修改,造成设计结果的混乱。项目经理应加强设计阶段的阶段性成果的管理和控制工作,即需要将设计阶段再划分为多个子阶段,对每个子阶段完成的工作纳入管理。如果设计人员要进行设计变更,应该按照一定的变更处理流程来进行。通过这种方式,可有效防止设计工作及版本控制的混乱,提高设计成果的质量。,(4)版本控制与管理,(5)注重软件的结构设计 一个好的体系结构应具备以下特征:1)具有良好的接口定义规范,便于实现与其他系统的数据交换及构件的复用。2)具有良好的系统适应性,即在需求发生变化时,软件系统能够以最小的代价适应变化的需要。3)支持并行的软件开发,即优秀的体系结构,可使软件系统的复杂性降低,使整个开发工作可管理性增强,便于实现多个开发单位的并行开发工作。4)良好的技术适应性,即系统容易适应技术的发展和变化。,(5)注重软件的结构设计,6.5 系统设计阶段主要工作内容及采用的工具和方法 软件设计分为两个主要的工作阶段:概要设计。主要工作是将软件需求转化为数据结构和软件的系统结构;详细设计。通过对软件结构与功能模块的细化工作,得到软件程序的数据结构、算法和实现流程。软件设计的方法主要有结构化设计方法和面向对象的设计方法两大类。本节讨论系统设计阶段的结构设计、功能设计、信息模型设计、过程模型设计以及界面设计,并介绍一些在系统设计阶段常采用的设计工具。,6.5 系统设计阶段主要工作内容及采用的工具和方法,6.5.1体系结构设计6.5.1.1体系结构设计概述 软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。,6.5.1体系结构设计,6.5.1.2体系结构设计原则 体系结构设计的原则包括:合适性、结构稳定性、代码可复用性及模块可扩展性。(1)合适性 是指体系结构是否适合于软件的“功能性需求”和“非功能性需求”。(2)结构稳定性 体系结构是系统设计的第一要素,体系结构变动,建筑在其上的用户界面、数据库、模块、数据结构等也要跟着变动,这将导致项目发生混乱。所以体系结构一旦设计完成,应当保持其相对稳定不变。,6.5.1.2体系结构设计原则,(3)模块可扩展性 对于软件产品来讲,变化是绝对的,不变化是相对的。对于系统设计来说,要求系统设计应该适应这种变化。体系结构的稳定性是根据那些稳定不变的需求而设计的,体系结构的可扩展性则是依据那些可变的需求而设计的。稳定性和可扩展性二者之间存在辨证的关系:系统若不可扩展,那么就没有发展前途;软件系统可扩展”的前提条件是“保持结构稳定”,否则软件难以按计划开发出来。,(3)模块可扩展性,(4)代码可复用性 软件复用技术有利于提高产品的质量、提高生产率和降低成本。通常一个新系统,大部分的内容是成熟的,小部分内容是创新的。可复用性是设计出来的,而不是偶然碰到的。要使体系结构具有良好的可复用性,设计师应当分析应用域的共性问题,然后设计出一种通用的体系结构模式,这样的体系结构才可能被复用。,(4)代码可复用性,6.5.1.3体系结构设计步骤 系统体系结构设计的主要过程包括设计准备、设计策划、需求再确认、文档编写及设计评审五个关键环节。,6.5.1.3体系结构设计步骤,(1)设计准备 设计准备阶段的工作主要包括:1)制定设计小组在设计时应该共同遵守的标准和规范。2)明确设计工作的范围和任务。3)根据设计目标确定最适合的设计方案、方法和工具。4)编制设计阶段的阶段性开发计划,包括本阶段进度、质量、成本管理办法及人员工作安排等内容。,(1)设计准备,(2)界定约束条件 软件设计过程中通常需要考虑的约束因素有:1)本系统需要遵循的相关标准或规范;2)系统实现所依赖的软硬件环境的约束;3)本系统与其他系统间的接口要求;4)系统采用通讯协议方面的约束;5)用户界面的约束;6)软件质量的约束。,(2)界定约束条件,(3)确定设计策略 需要确定的系统设计策略包括:1)设计模式,根据产品的功能性需求和非功能性需求,确定体系结构设计模式。设计模式的确定是结构设计中最重要的环节,一个好的模式能为系统的扩充、复用等策略提供良好的支持。通常采用扩展策略、复用策略、折衷策略、兼容策略、灵活策略,以及客户个性化需求策略等方面来考虑设计方案。2)系统设计模板的确定,编写系统设计文档之前也应首先确定系统的内容及其组织编排方式。主要从结构、功能、性能、接口、信息模型以及进度、经费等 方面着重考虑。,(3)确定设计策略,(4)分解设计任务 分解任务包括:1)按照确定的体系结构设计模式,将一个复杂的系统分解成为若干子系统,确定每个子系统的功能,建立并确定与软件需求间的对应关系,以及各个子系统之间的关系,绘制系统的总体结构图。2)将子系统分解成若干个模块,确定每个模块完成的功能,以及模块之间的调用关系,并确定模块间的调用接口。,(4)分解设计任务,(5)需求再确认 在编写设计文档之前或者在编写的过程中,对前期描述的需求内容进行再次确认,以确保系统设计的准确性和符合用户的真实要求。(6)编写设计文档 完成体系结构设计报告的编写工作。通常情况下,由体系结构设计、接口设计、信息模型设计、出错处理设计、系统安全性设计、系统可靠性设计等组成系统概要设计阶段的主要内容。,(5)需求再确认,(7)设计评审 体系结构设计完成后,由项目组质量保证人员组织同行专家、开发人员对体系结构进行技术评审。评审的内容除了合适性、结构稳定性、可扩展性和可复用性外,一般还应包括:1)可追溯性:确认该软件的设计是否覆盖了所有已确定的软件需求。2)灵活性:确定按设计方案实现的系统是否可以灵活搭建,方便配置。3)个性化适应性:确保用户需求在一定范围内变化时,系统设计方案可以进行不增加工作量的调整。,(7)设计评审,4)兼容性:确保与其他正在运行的系统结构的兼容性。5)集成性:确定与其他系统产生的数据能够集成并实现一定程度的资源共享。6)接口:即通过分析软件各部分之间的联系,确认软件的内部及外部接口是否已明确定义。模块设计是否满足高内聚和低偶合的特性。7)质量:即软件设计是否表现出良好的质量特性,满足各项指标的要求。8)风险:即确认该软件设计在现有技术条件下和预算范围内是否能按时实现。9)限制:评估对该软件的限制是否现实,是否与需求一致。,4)兼容性:确保与其他正在运行的,6.5.2功能模块设计6.5.2.1功能模块的概念6.5.2.2模块设计的原则(1)信息隐藏 模块设计应使其所含信息(过程和数据)对于那些不需要这些信息的模块是不可访问的;每个模块只完成一个相对独立的功能;模块之间仅仅交换那些为完成系统功能而必须交换的信息。采用信息隐藏原理不仅支持模块的并行开发,而且还可以减少测试和后期维护的工作量。,6.5.2功能模块设计,(2)高内聚度 内聚是一个模块内部各成分之间相关联程度的度量。内聚度按其高低程度可分为七级。这七级内聚又可以分为三类:低级、中级和高级。,(2)高内聚度,1)偶然性内聚。偶然性内聚又称为巧合性内聚。当模块内各部分之间没有联系,或者即使有联系,这种联系也很松散,则称这种模块为巧合内聚模块。2)逻辑性内聚。这种模块把几种相关的功能组合在一起,每次被调用时,由传送给模块的判定参数来确定该模块应执行哪一种功能。3)时间性内聚。如果一个模块内的几个功能必须在同一时间内执行,但这些功能只是因为时间因素关联在一起,则称为时间性内聚。,1)偶然性内聚。,4)过程性内聚。如果一个模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行,则称为过程性内聚。5)通信性内聚。如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块。6)信息性内聚。如果一个模块内完成许多功能,每个功能都有各自的入口点,并且代码相对独立,但所有功能都在相同的数据结构上完成,则该模块具有信息性内聚。,4)过程性内聚。,7)功能性内聚。一个模块中各个部分都是完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割,则称该模块为功能内聚模块。,7)功能性内聚。,(3)低耦合性 耦合度是对软件结构中模块之间关联程度的一种度量。耦合的强弱取决于模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少等。内聚和耦合是密切相关的,与其他模块存在强耦合的模块通常意味着弱内聚,而强内聚的模块通常意味着与其他模块之间存在弱耦合。模块间的耦合程度直接影响系统的可理解性、可测试性、可靠性和可维护性。,(3)低耦合性,耦合度分为七级。,耦合度分为七级。,1)非直接耦合。如果两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合。2)数据耦合。如果一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换 输入、输出信息的,则称这种耦合为数据耦合。3)标记耦合。如果一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。,1)非直接耦合。,4)控制耦合。如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。5)外部耦合。一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。6)公共耦合。若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。,4)控制耦合。,7)内容耦合。当一个模块直接修改或操作另一个模块的数据,或者直接转入另一个模块时,就发生了内容耦合。一般来说,设计软件时应尽量使用数据耦合,减少控制耦合,限制外部环境耦合和公共耦合,杜绝内容耦合。,7)内容耦合。,6.5.2.3功能模块设计的步骤 系统功能模块设计的核心工作包括接口定义、数据结构与程序流程的确定及确定各功能模块之间的部署关系。接口是模块的外部特征,是指模块的模块名、参数表。输入、输出参数及给程序乃至整个系统造成的影响应当是公开的。数据结构与程序流程是模块的内部特征,是指完成其功能的程序代码和仅供该模块内部使用的数据。对调用者来说一个“黑盒子”,只需要按照接口确定的使用方式进行调 用,不必了解它的内部特性。,6.5.2.3功能模块设计的步骤,模块之间的组织关系是将各个模块有效地组织起来,以实现一个完整的系统功能架构,是系统功能设计中不可缺少的“整体纽带”。对于软件设计来说,通常是先确定模块的外部特性,再确定它的 内部特性,最后确定系统功能的整体部署方案和组织模式,这些工作需要在概要设计和详细设计阶段共同完成。,模块之间的组织关系是将各个模块有效地组织起来,以,模块设计的工作流程分为设计准备、模块构建、文档编写和评审四个阶段。(1)设计准备 1)模块设计人员阅读需求文档和体系结构设计文档资料,明确模块设计中的约束条件和设计任务。2)模块设计人员准备相关的设计工具和资料。,模块设计的工作流程分为设计准备、模块构建,(2)模块构建 1)定义接口 定义每个模块的接口,确定模块的接口细节,包括对系统外部的接口和用户界面,与系统内部其他模块的接口,以及确定关于模块输入、输出及相关配置信息的全部细节。2)确定数据结构与程序流程 为每个模块确定所采用的程序流程、实现算法和数据结构,选择某种适当的工具表达算法的实现过程,写出模块实现的详细过程性描述。3)确定模块之间的组织关系 确定各模块之间的架构策略和组织关系,以保证整个功能结构的完整性和整体构建方案。,(2)模块构建,(3)文档编写 完成详细设计说明书中功能设计部分的文挡的编写工作。(4)评审 先对每一模块进行单独评审,然后再对整体功能架构进行评审。,(3)文档编写,6.5.3信息模型设计 信息模型设计也称为数据与数据库设计,它把系统所涉及的信息描述转换为实现软件所要求的数据结构及关系。6.5.3.1数据库设计应考虑的问题 数据库设计的主要工作是:1)设计数据库的表;2)设计数据库表间的关系;3)设计对数据库的表进行增、删、改所触发的动作(触发器);4)涉及相关的存储过程。,6.5.3信息模型设计,设计原则:(1)命名的规范 不同的数据库产品对对象的命名有不同的要求,为了尽量通用,数据库中各种对象的命名、后台程序代码编写应采用大小写敏感的形式,各种对象命名长度不要超过30个字符。(2)数据的一致性、完整性和整体性能 数据库的一致性和完整性是通过设计表间关联来实现的。表间关联设计的多,数据冗余降低。但表间关联是一种强制性措施,建立后,对关联表的插、删、改操作都要占用系统开销。因此要合理考虑表间关联。,设计原则:,(3)数据类型的选择 数据类型的合理选择对于数据库的性能和操作具有很大的影响,这里主要介绍几点经验知识。1)Identify字段不要作为表的主键与其他表关联,这将会影响到该表的数据迁移。2)Text和Image字段属指针型数据,主要用来存放二进制大型对象(BLOB)。这类数据的操作相比其他数据类型较慢,因此要避开使用。,(3)数据类型的选择,3)日期型字段的优点是有众多的日期函数支持,因此,在日期的大小比较、加减操作上非常简单。但是,在把日期作为条件的查询操作中如果用日期函数,相比其他数据类型速度上就会慢很多。因为用函数作为查询条件时,服务器无法用先进的性能策略来优化查询而只能通过表的扫描来遍历每条记录。,3)日期型字段的优点是有众多的日期,6.5.3.2数据库设计的步骤 数据库设计也分为4个阶段。(1)设计准备 需要完成三方面的工作:1)阅读需求文档和体系结构设计文档,完成数据库设计的需求收集。包括收集数据、发生时间、频率、发生的规则、约束条件、相互联系、计划控制和决策过程等内容。2)需求的分析整理。包括用数据流图表示数据流程,用数据字典对数据分析结果的描述。3)数据库设计人员确定本软件的数据库设计规则。,6.5.3.2数据库设计的步骤,(2)数据库设计 包括概念设计、逻辑设计、物理设计、其他设计等步骤。1)概念设计 数据库概念设计的任务是产生反映企业组织信息需求的数据库概念结构,即概念模型。2)逻辑设计 逻辑设计的目的是从概念模型导出特定的DBMS。这些模式在功能、性能、完整性和一致性约束及数据库可扩充性等方面均满足用户提出的要求。,(2)数据库设计,3)物理设计 数据库的物理设计是给已确定的逻辑数据库结构设计出一个有效的、可实现的物理数据库结构的过程。主要包括存储记录的格式设计、存储方法设计、访问方法设计、完整性和安全性考虑等内容。4)其他设计 包括加强数据库的安全性、完整性控制以及保证一致性、可恢复性等,它们总是以牺牲效率为代价的。设计人员要在尽可能多的功能之间进行合理平衡。,3)物理设计,(3)编写数据库设计文档 完成数据库设计报告的编写工作。该报告的主要内容包括:1)数据库环境说明 2)数据库的命名规则 3)概念设计 4)逻辑设计 5)物理设计 6)其他设计 7)数据库管理与维护说明,(3)编写数据库设计文档,(4)评审 质量管理人员组织同行专家、开发人员,对数据库设计报告进行 技术评审。数据库设计的主要评审要素包括:正确性、完整性、一致性;安全性;性能等方面。,(4)评审,6.5.4用户界面设计6.5.4.1用户界面设计概述 用户界面的质量直接关系到软件受用户的青睐程度,能否使用户高效率、轻松愉快满意地工作。用户界面设计已经经历了两个界限分明的时代:第一代是以文本为基础的简单交互,如常见的命令行、字符菜单等;第二代是直接操作的图形用户界面。它大量使用图形、语音和其他交互媒介,充分地考虑了人的需求。,6.5.4用户界面设计,6.5.4.2用户界面设计原则(1)用户界面适合于软件的功能 用户界面的合适性是指界面与软件功能相融洽的程度。软件的功能需要通过用户界面来展现,毫无疑问,用户界面一定要适合于软件的功能。界面设计的合适性原则要求界面设计者不要片面追求界面外观漂亮而导致华而不实。界面的合适性既提倡外美内秀,又强调恰如其分,不能太花哨。,6.5.4.2用户界面设计原则,(2)使用的简单性和易理解性 用户界面应能方便地处理各种经常进行的交互过程,如果用户很难理解软件系统界面的意图,那么使用起来一定很费劲。提高用户界面可理解性的方法:1)界面中的所有元素(如菜单、工具条等)醒目无误、直观,不易让人误解。2)所有的界面元素应当提供充分而必要的提示。3)提供上下文敏感的求助系统。4)界面结构能够清晰地反映工作流程,以便用户按部就班地进行操作。5)对于复杂的用户界面,最好提供界面“向导”,及时让用户知道自己在界面结构中所处的位置。,(2)使用的简单性和易理解性,(3)一致性原则 界面的一致性主要体现在两个方面:第一、用户界面中,同类的界面元素应当有相似的界面外观、布局,相似的交互方式及相似的信息显示格式;第二,同一类型软件的用户界面应当有一定程度的相似性。需要掌握的原则:1)同一用户界面中,所有的菜单选择、命令输入、数据显示和其他功能应始终保持同一种形式和风格。2)采用统一的标号、约定俗成的缩写和预先定义好的颜色。3)保证信息显示方式与数据输人方式的协调一致。,(3)一致性原则,(4)及时反馈信息 用户界面应对用户的所有输入都立即做出反馈。无论系统给予用户的反馈信息多么简单。例如:当系统进行长时间处理时,用户界面应提供用户等待信息及系统运行状态信息。(5)出错处理 软件使用过程中,不可避免地会出现一些错误的操作。设计用户界面时必须考虑出错处理,常见的错误处理方式有:1)提供对输入数据进行校验的功能。当用户输入错误数据时,及时提醒用户改正数据。,(4)及时反馈信息,2)隐藏当前状态下用户不可操作的命令。3)提供撤消功能,以方便用户撤消不期望的操作。4)当用户执行的是具有破坏性的操作时,应当提醒用户进行确认。(6)灵活性 考虑到用户的特点、能力和知识水平,应当使用户界面能够满足不同用户的要求。对不同的用户,可提供不同的界面形式。有时,也可以让用户根据需要和自己的喜好定制和修改界面显示风格。,2)隐藏当前状态下用户不可操作的命令。,6.5.4.3用户界面设计步骤(1)设计准备 主要做好以下准备工作:1)界面设计人员需仔细阅读需求文档和体系结构设计文档,一是搞清楚用户对界面设计的要求;二是明确界面设计的工作任务。2)与用户进行沟通和交流,详细掌握并了解用户的日常工作习惯和对界面设计的看法。3)准备相关的设计工具和资料,收集或创作为界面使用的各种资源。4)制定界面设计的详细设计规范。,6.5.4.3用户界面设计步骤,(2)界面设计 界面设计一般包括:原型创建、原型评估、修改设计几个步骤,通常需要迭代进行。1)初创原型 据所掌握的用户需求及自己实 际设计界面过程中积累的丰富经验和知识,完成系统界面原型的创作和设计工作,并通过简单的实验平台展示原型系统的初貌。2)原型评估 原型设计完成后,界面设计人员需要给用户演示界面原型系统,必要的时候可以聘请同行专家参与评估,并汇集用户或其他专家的意见。,(2)界面设计,3)细化与再加工 根据反馈意见完成界面原型的修改和完善工作。(3)界面设计文档的编写 在用户界面设计定型之后,界面设计人员编写用户界面设计报告。(4)评审 质量管理人员组织用户和同行对定型后的界面设计进行评审,以确保设计出的界面美观、易使用。,3)细化与再加工,6.6 系统设计阶段性成果和考核依据 系统设计阶段的主要成果是系统设计规格说明书。设计规格说明书分概要设计规格说明书和详细设计规格说明书。概要设计说明书主要从系统的结构设计考虑,为详细设计提供基础。详细设计规格说明书主要从系统结构设计中每个模块(子系统)的过程设计考虑。根据我国国家标准GB8567-88的规定,概要设计和详细设计规格说明书的主要内容如下。,6.6 系统设计阶段性成果和考核依据,6.6.1概要设计说明书参考文本1引言 11编写目的 12背景 a.待开发软件系统的名称;b.列出本项目任务的提出者、开发者、用户。13定义14参考资料2总体设计 21需求规定 211系统功能 212系统性能 2121精度 2122时间特性要求 2123可靠性 2124灵活性,6.6.1概要设计说明书参考文本,213输入输出要求 214数据管理能力要求 215故障处理要求 216其他专门要求22运行环境 221设备 222支持软件 223接口 224控制23基本设计概念和处理流程24结构25功能需求与系统模块的关系26人工处理过程27尚未解决的问题,213输入输出要求,3接口设计 31用户接口 32外部接口 33内部接口4运行设计 41运行模块组合 42运行控制 43运行时间5系统数据结构设计 51逻辑结构设计要点 52物理结构设计要点 53数据结构与程序的关系6系统出错处理设计 61出错信息 62补救措施 63系统维护设计,3接口设计,6.6.2详细设计说明书参考文本1引言 11编写目的 12背景 13定义 14参考资料2系统的结构3模块1(标识符)设计说明 31模块描述 32功能 33性能 34输入项 35输出项 36设计方法(算法),6.6.2详细设计说明书参考文本,37流程逻辑 38接口 39存储分配 310注释设计 311限制条件 312测试计划 313尚未解决的问题,37流程逻辑,6.6.3设计成果的考核依据 设计的考核应从设计特征、设计指南、设计原则三个不同侧面进行评价。(1)良好设计的特征 1)设计必须实现所有包含在分析模型中的明确需求,并且必须满足用户希望的所有潜在需求。2)设计对于软件的编码、测试、维护人员必须是可读的、可理解的。3)设计应该提供软件的完整面貌,包括:实现角度所有的数据、功能和流程。,6.6.3设计成果的考核依据,(2)设计指南 1)设计应该展示一种层次化结构。2)设计应该模块化,即逻辑地划分成特定功能和子功能的构件。3)设计应该包括对数据、结构、界面和部件的清楚表述。4)设计应该导出适合实现和由公认的数据模式导出的数据结构。5)设计应该导出具有独立功能特征的模块。6)设计应该导出降低模块和外部环境间连接复杂度的接口。7)设计应该通过使用可重复的方法来得到,这些方法被来源于软件需求分析的信息所驱动。,(2)设计指南,(3)设计原则 1)设计过程不应该受“隧道视野”的限制。2)设计对于分析模型应该是可追踪的。3)设计应该缩短软件和现实世界的“智力距离”。4)设计应该表现出一致性和集成性。5)设计构造出的系统方案,应满足即使遇到异常的数据或操作条件时也能够平滑地通过或降级,而不是造成系统崩溃。6)设计不是编码,编码不是设计。7)在进行设计时就应该可以评估质量,而不是在事情完成后。8)应该复审设计以减少概念性错误。,(3)设计原则,作业:1.软件项目设计中,主要进行哪些具体的设计?,作业:,提示:1.软件项目设计中,主要进行哪些具体的设计?系统架构设计 子系统设计 业务处理流程设计 数据库设计 系统间通信接口设计 批处理设计 用户界面设计 功能模块设计,提示:,

    注意事项

    本文(第6章软件项目设计阶段的知识与管理课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开