《软件设计工程实践.ppt》由会员分享,可在线阅读,更多相关《软件设计工程实践.ppt(86页珍藏版)》请在三一办公上搜索。
1、软件工程实践,软件学院高海昌,2,内容,1.概述2.软件过程和生命周期3.项目管理4.需求工程5.软件设计6.软件实现7.软件测试8.软件交付,3,软件设计,所谓软件设计是指针对需求工程给出的软件需求,综合考虑各种制约因素,探求切实可行的软件解决方案,并最终给出方案的逻辑表示。这种表示称为设计模型。,4,软件设计,设计模型主要成分:体系结构(架构)模型用户界面模型用例设计模型子系统及构件的设计模型数据模型,5,软件设计,软件设计的目标:获取能够满足软件需求的,明确的、可行的、高质量的软件解决方案。“明确”是指,软件设计模型易于理解,软件构造者在设计方案的实现过程中,无须面对影响软件功能和质量的
2、技术做出抉择或权衡;“可行”是指,在可用的技术平台和软件项目可用资源的条件下,采用预定的程序设计语言可以完整地实现该设计模型;“高质量”是指,设计模型不仅要给出功能需求的实现方案,而且要使该方案适应非功能性需求的约束;设计模型要尽量优化,以表现出良好的软件质量属性(如正确性、有效性、可靠性和可修改性)。,6,软件设计,软件设计师面临的挑战求解,需求解决“做什么”,而设计就是解决“如何做”;抉择,选择合适的技术实现方案;抽象,不要过早沉浸于细节;灵巧,对需求变化的适应能力。,7,5.1软件设计的过程模型,设计活动(设计过程模型与需求过程模型有相似之处)策划用户界面设计体系结构设计用例设计子系统设
3、计构件设计类设计数据模型设计设计整合设计评审总结,8,5.1软件设计的过程模型,迭代式设计过程模型迭代的第一层含义:针对给定的需求模型,通过多次从策划到总结的设计过程,得出足够精细的设计模型以供软件实现之用。第二层含义:以并不完整的需求模型为输入,展开前述意义下的迭代式设计,结果模型交由软件实现人员构建目标软件产品的原型或中间产品。,为设计精化而迭代,9,迭代式设计过程模型,为容纳新需求而迭代,针对可变需求的迭代式设计过程,10,5.1软件设计的过程模型,设计过程模型的裁剪:裁剪方法与需求过程模型的裁剪方法相似。,11,5.2软件设计的策划,策划活动的任务:决定本次迭代所处的设计抽象级别,明确
4、输入并使其处于就绪状态,定义本次迭代的目标、输出及其验收准则,确定覆盖本次迭代中多个阶段的全局性设计策略,制订工作计划。策划活动的目的:使设计活动的所有参与者在上述各方面达成共识,12,5.2软件设计的策划,策划活动的参与者 策划活动主要由项目软件经理和软件结构设计师来完成。策划活动的进入准则与输入进入准则:项目软件经理任务现有的需求模型或前一次设计迭代得出的设计模型尚未精化到可供实现软件的程度。首次迭代的输入:需求工程阶段生成的需求规格说明书以及本单位或笨项目的软件架构师事先制定的设计指南。非首次迭代的输入:包括前次迭代形成的设计评审报告,其中可能含有需求本次迭代改正的设计缺陷的相关描述。,
5、13,5.2软件设计的策划,策划活动的步骤确定本次迭代的目标和验收准则明确目标软件系统应遵循的技术标准或规范,研究软件需求规格说明书的非功能性需求部分重新审视项目风险管理计划,并研究在本次迭代过程中应实施哪些行为以降低或消除风险制订本次设计迭代的工作计划评审工作计划,14,5.2软件设计的策划,策划活动的输出与出口准则策划活动的输出:本次迭代的工作计划,修改后的风险管理计划出口准则:与需求工程的出口准则大致相当,设计策划工作流,15,策划活动小结,策划活动小结,16,5.3用户界面设计,界面设计活动的参与者:界面设计师 主要职责:设置各个界面中的所有界面元素,初步确定界面的布局,定义用户界面动
6、作对软件系统中的设计元素的要求。主要工作:调整界面布局,确定界面的美学风格,包括色调、界面元素的表现形式等。,17,5.3用户界面设计,界面设计活动的进入准则与输入进入准则:需求工程阶段生成的用例模型已基本确定参与界面设计的人员已具备必需的软件技术和人机工程学等方面的技能所有工作事项的职责已明确到个人输入:在需求获取阶段形成的界面情景板或者界面原型、用例模型。在需求工程阶段结束时,需求规格说明书也将作为界面设计活动的输入,18,5.3用户界面设计,界面设计活动的预备知识界面设计的一般原则易理解性易操作性灵敏性一致性容错性人性化界面设计模型的表示屏幕内容的表示屏幕之间跳转关系的表示,19,界面设
7、计模型的表示,界面元素静态元素,与运行状态无关的文本、图标、图像等。动态元素,根据业务逻辑出现,且运行用户修改的内容。输入元素,可编辑的界面元素,text,radio,checkbox,list命令元素,触发后端的业务逻辑,如按钮、菜单、超链接等。,20,5.3用户界面设计,界面设计活动的步骤研究需求工程阶段获得的用户界面情景板、快速原型、用例模型和可用性需求。针对每个用例,依据用例中描述的软件系统主要执行者之间的交互动作序列,找出该用例的主屏幕。仍然针对主屏幕所属的用例、对基于主屏幕的屏幕跳转流进行建模。在整个软件系统范围内协调多个用例的屏幕和屏幕流复核可用性需求的实现程度(如易用性、页面操
8、作时间等)构造界面原型评审界面设计模型,21,5.3用户界面设计,界面设计活动的输出与出口准则输出:界面设计模型,界面原型,可用性需求追踪表出口准则:界面设计模型通过评审,对每个用例循环,22,5.3界面设计活动小结,界面设计活动小结,23,5.4体系结构设计,体系结构设计活动的参与者 主要由软件架构师负责完成。项目软件经理、其他软件设计人员以及软件质量保证工程师应参与体系结构设计活动的输出的评审。,24,5.4体系结构设计,体系结构设计活动的进入准则与输入进入准则:需求分析模型已就绪本次设计迭代的策划活动已完成输入:需求分析模型本次设计迭代的工作计划可供复用的设计资产目标软件系统的物理运行环
9、境描述,25,体系结构设计的预备知识,设计模式是指以设计复用为目的,采用一种良好定义的、正规的、一致的方式记录的软件设计经验。一条设计模式包括:设计模式的名称问题施用条件解决方案效果示例代码关联模式,26,设计模式,设计模式的分类从模式所提供的解决方案的抽象程度,模式自高至低划分为:体系结构设计模式软件子系统或结构设计模式面向软件实现的设计模式从模式所解决的设计问题的类别来看,模式分为:创建型模式结构型模式行为型模式分布型模式适应性模式访问控制模式从模式所基于的计算平台的类别来看,模式可划分为:独立于计算平台的设计模式J2EE设计模式.NET设计模式,27,体系结构模式,管道和过滤器模式过滤器
10、以循环方式工作,不断地从管道中提取输入数据,并将其输出数据压入管道管道将输入数据压入位于其目标端的过滤器,过滤器被动地等待输入数据管道负责提供提取位于其源端的过滤器的输出数据,28,体系结构模式,管道和过滤器模式,29,体系结构模式,分层模式高层构件向低层构件发出请求低层构件在获知计算环境变化后通知高层构件,30,体系结构模式,分层模式可具备以下正面效应:松耦合可替换性可复用性标准化,31,体系结构模式,黑板模式黑板负责保存问题求解过程中的状态数据知识源负责根据黑板中存储的问题求解状态来评价其自身的可用性控制器负责监视黑板中不断变化的的状态数据,32,体系结构模式,黑板模式正面效应:黑板模式的
11、知识源和控制构件可以灵活更换、升级,所以它支持软件设计师采用不同的知识源、不同的控制算法来试验各种问题求解方法由于知识源直接几乎没有互操作,知识源与控制构件和黑板之间均通过良好定义的接口进行交互,知识源的可复用性较好由于知识源的每个问题求解动作都是探索性的,允许失败和试错,所以采用此模式的软件系统具有良好的容错性和稳健性,33,黑板模式,采用黑板模式的负面效应:问题求解性能较低,有时甚至无法预测问题求解时间不能确保获得最优解知识源和控制器两种构件的开发相当困难问题求解路径并不确定,造成软件测试方面存在困难,34,体系结构模式,模型-视图-控制器(MVC)模式将软件系统划分为三个构件:模型、视图
12、和控制器。运作流程:创建视图,视图对象从模型中获取数据并将其呈现在用户界面上视图接受用户的界面动作,并将其转换为内部事件传递给控制器控制器将来自用户界面的事件转换为对模型的业务逻辑处理功能的调用模型进行业务逻辑处理,将处理结果回送给控制器控制器根据模型的处理结果创建新的视图,35,体系结构模式,MVC模式,36,体系结构设计的步骤,软件体系结构设计的主要步骤:1)、开发初始的顶层架构2)、搜索并选取可用的设计资产3)、研究公共的基础性软件技术问题,设计技术支持方案4)、确定设计元素5)、开发软件部署模型6)、设计并发机制7)、构建软件体系结构模型8)、评审软件体系结构模型,37,1)、开发初始
13、的顶层架构,可以对UML包图进行简单地扩充,允许在包之间引入关联边以表示体系结构中子系统、构件之间的通信及协作关系。,38,2)、搜索并选取可用的设计资产,设计资产包括相同或相关业务领域中的模块、子系统、构件、框架、类库、应用软件系统等。可用是指当前项目中可直接复用或借鉴的设计资产。如课程注册系统可以借用现有的学籍管理系统来实现对用户身份的认证借用现有的计费系统来确定学生应缴纳的选课费用,39,3)、设计技术支持方案,技术支持方案的设计一方面取决于目标软件系统对公共技术服务的需求,另一方面取决于架构师对目标软件系统的基础技术平台所能提供的技术服务的把握和选取。数据持久存储服务安全控制服务,40
14、,4)、确定设计元素,设计元素包括子系统、构件、设计类三种。确定设计元素的主要步骤:确定子系统及其接口确定构件及其接口确定关键设计类整合设计元素,41,4)、确定设计元素,确定子系统及其接口,42,4)、确定设计元素,确定构件及其接口,43,4)、确定设计元素,整合设计元素,44,4)、确定设计元素,整合设计元素,45,5)、开发软件部署模型,软件部署模型负责展示软件中各个子系统、构件在哪些计算节点上运行,以及这些节点之间的网络连接方式。,46,6)、设计并发机制,并发是提高软件效率的重要手段。,47,6)、设计并发机制,主要工作:针对目标软件系统的性能需求,将一些可以并行执行的操作序列划分成
15、不同的任务,明确其可能出现的同步点,并研究实现方法。,48,7)、构建软件体系结构模型,软件体系结构文档包括:引言体系结构概述需求视图逻辑视图进程视图实施视图部署视图应用指南,49,8)、评审软件体系结构模型,项目软件经理、需求工程师、软件架构师及将参与用例设计、子系统设计、构件设计、类设计的软件设计师应参与体系结构模型的评审。,50,5.4体系结构设计,体系结构设计活动的输出与出口准则输出包括:体系结构模型,“需求-设计元素”追踪表出口准则:体系结构模型通过评审体系结构设计活动小结,5.5 用例设计,用例设计是指针对需求分析模型中的每个用例,设计其软件实现方案。用例设计的主要任务:采用体系结
16、构设计中确定的软件设计元素以及用户界面设计中确定的界面类,完整地实现每个用例要求的业务处理功能,即其中的每个交互动作序列。通过详细考虑每个设计元素与其协作者之间的协作关系,以求更精确地定义这些设计元素。,5.5 用例设计,用例设计活动的参与者 用例设计由用例设计师负责。软件架构师在此过程 中为用例设计师提供必要的咨询并释疑。用例设计活动的进入准则与输入用例设计活动的进入准则:分析模型、非功能性需求描述、体系结构模型、界面设计已基本完成所有工作事项的职责已明确到个人用例设计活动的主要输入是需求分析阶段生成的分析模型,尤其是分析模型中的交互图。另一项重要输入是需求规格说明书中的非功能性需求。,用例
17、设计活动的步骤,用例设计活动的主要工作步骤:为了逐个用例地给出以UML交互图表示的软件实现方案,针对每个用例展开以下工作研究需求工程阶段获得的用例的UML交互图表示、与当前待设计的用例相关的界面设计模型和体系结构模型、非功能性需求中的某些部分。给出基于设计元素实现用例中的所有交互动作序列的方案构造设计类图设计测试用例整合用例实现方案复核软件需求的实现程度,5.5 用例设计,用例设计活动的输出与出口准则输出包括:用例实现方案、测试用例、非功能性需求追踪表出口准则:用例实现方案是完整、可行的用例设计活动小结,5.6 子系统设计,子系统设计活动的参与者 一般情况下,子系统的设计由子系统设计师负责,软
18、件架构师在此过程中为其提供必要的咨询并释疑。如果子系统的规模较大,可以由软件架构师在完成整个系统的体系结构设计后继负责子系统的设计子系统设计活动的进入准则与输入进入准则:体系结构设计、用例设计已基本完成职责明确输入包括:体系结构模型,与当前待设计的子系统对应的分析模型中的状态图/活动图、相关的非功能性需求,子系统设计活动的步骤,子系统设计活动的主要工作步骤:研究相关的非功能性需求以及分析模型中的状态图、活动图将子系统的服务提供接口中规定的职责分配给子系统中的软件设计元素构造子系统的设计类图构造子系统的状态图构造与子系统相关的活动图描述子系统与其协作者之间的依赖关系复核软件需求的实现程度设计测试
19、用例,5.6 子系统设计,子系统设计活动输出与出口准则输出包括:子系统设计方案,非功能性需求追踪表出口准则:子系统设计方案已可提交软件实现非功能性需求对子系统中的设计元素的约束是可实现的子系统设计活动小结,5.7 构件设计,构件设计活动的内容:为实现构件的职责而在其内部设置子构件和类,明确其职责,定义子构件和类的对外接口,确定它们之间的协作关系和依赖关系。,构件设计与子系统的不同,构件设计与子系统不同之处:接口与实现相分离为复用而设计构件构件应满足的要求:构件使用方的任何变化都会导致构件的修改,除非构件自身提供的服务需要做出调整在可预期的应用场景下,相同或相似的服务可以由同一构件来提供设计构件
20、的定制机制设计构件的组织设施基于构件描述文档的组装基于接口描述的组装基于自描述接口的组装,5.8 类设计,类设计活动的参与者 类设计活动由软件详细设计负责,其他设计人员在此过程中为其提供必要的咨询并释疑类设计活动的进入准则与输入进入准则:体系结构模型、界面设计模型、用例实现方案已基本就绪子系统设计模型或构件设计模型已部分就绪职责明确输入包括:待设计的类所在的概要设计模型,需求规格说明书,类设计活动的步骤,类设计主要工作步骤:确定类的可见范围精化类之间的关系精化类的操作和属性构造状态图构造活动图设计单元测试用例,类设计活动的步骤,确定类的可见范围如果类仅被其所在的包所使用,那么该类就是“私有的”
21、,否则就是“公开的”。确定类可见范围应遵循以下原则:尽量缩小类的可见范围。精化类之间的关系确定类间的连接关系确定类间连接关系的方向和数量对应形式优化类间连接关系,精化类的属性和操作,属性和操作的作用范围:public:对软件系统中的所有类均可见protected:仅对本类及其子类可见private:仅对本类可见针对每个类添加以下操作:对象创建对象删除对象比较对象复制,5.8 类设计,类设计活动的输出与出口准则输出:精化后的概要设计模型出口准则:对类的属性和操作的描述已经可以提交软件实现类设计活动小结,5.9 数据模型设计,数据模型设计的任务是:确定设计模型中需求持久保存的数据条目,基于关系数据
22、模型设计这些数据条目的组织方式,必要时还需设计特定于本软件项目的关系数据库管理系统的优化机制,以提高持久数据操作的性能。,5.9 数据模型设计,持久数据操作:包括写入、查询、更新和删除这四类基本操作。写入:将数据从运行时的软件系统保存至数据库;查询:按照特定的选择准则从数据库中提取部分数据置入运行时软件系统的制定对象;更新:以运行时软件系统中的新数据替换数据库中符合特定准则的旧数据;删除:将符合特定准则的数据从数据库中删除。,5.9 数据模型设计,数据模型设计活动的参与者数据模型设计由专门的数据模型设计师负责,其他设计人员在此过程中为其提供必要的咨询并释疑。数据模型设计活动的进入准则与输入进入
23、准则:需求分析模型已就绪职责明确输入:各个设计阶段生成的设计模型,包括体系结构模型、用例实现方案、子系统设计方案、构件设计方案、详细设计模型等。,5.9 数据模型设计,数据模型设计活动的步骤确定设计模型中需求持久保存的类的对象及属性确定持久存储的数据之间的组织方式一对一,一对多型关联关系的映射多对多型关联关系的映射继承关系的映射依赖和实现关系在数据模型中无须考虑确定数据模型中的操作进一步优化持久数据操作的性能反规范化创建索引,一对一、一对多型关联关系的映射,多对多型关联关系的映射,继承关系的映射,数据模型设计示例,5.9 数据模型设计,数据模型设计活动的输出与出口准则输出是数据模型,包括以UM
24、L类图表示的数据库表格及其相互之间的关系、存储过程和触发器的定义。出口准则:数据模型可以完全满足设计模型对数据持久存储的需求,数据模型可以提交给软件实现工程师进行表格创建、索引创建、存储过程和触发器编程。数据模型设计活动小结,5.10 设计整合,设计整合的目标:整合迄今获得的各类设计模型,按照事先选定的设计规格说明书模板形成正式的设计规划说明书。,5.10 设计整合,软件设计规格说明书的主要内容包括:系统概述设计指南界面设计模型体系结构模型接口设计用例设计模型子系统设计模型构件设计模型类设计模型数据设计模型需求-设计追踪表实施指南,5.10 设计整合,设计整合活动的主要参与者:软件设计师,文档
25、支持工程师,测试工程师,质量保证师,配置管理工程师等。设计整合活动的进入准则:软件设计活动的输出已就绪设计规格说明书的文档模板已就绪文档支持工程师,5.10 设计整合,设计整合活动的主要工作步骤:整合迄今为止获得的所有设计模型整合迄今为止获得的所有“需求-设计追踪表”,构造统一的追踪表按照设计规格说明书模板撰写设计规格说明将设计规格说明书置于配置管理的控制之下设计整合活动的出口准则设计规格说明书已撰写完成,并且通过了设计评审设计规格说明书已经置于配置管理的控制之下,5.11 设计评审,设计评审的目标:确保设计规格说明书能够实现所有的软件需求,确保设计模型已经精化到合格的软件实现工程师能够据此构
26、造出符合软件设计者期望的目标软件系统。设计评审活动的主要参与者:需求工程师、用户、项目软件经理、软件实现工程师、测试工程师、质量保证工程师、配置管理工程师和软件设计师设计评审活动的进入准则:待评审的设计规格说明书已经置于配置管理之下,5.11 设计评审,设计评审活动的输入是来自配置库的设计规格说明书。设计评审活动输出是通过评审的设计规格说明书。设计评审活动的出口准则:设计规格说明书已通过评审,评审过程中发现的所有问题均得到妥善解决,并且已经建立设计基线。,5.11 设计评审,5.12 设计管理,设计管理活动的参与者包括:软件经理、软件设计师、需求工程师、配置管理工程师、软件质量保证工程师以及所
27、有受到设计变更影响的利益相关者。其中项目软件经理是设计管理职责的主要承担者。设计管理活动的进入准则:设计管理与设计策划活动同步启动,因此其进入准则与设计策划活动相同。,5.12 设计管理,设计管理活动的输入 主要输入是设计策划活动得出的工作计划,次要输入是界面设计模型、体系结构模型和设计规格说明书。设计管理活动的任务和方法设计过程监控设计变更管理,设计管理的任务,设计过程监控的任务设计计划的执行过程的跟踪与监督设计评审的监督设计追踪设计变更管理的任务预先建立设计变更控制规程设计变更的申请设计变更的影响的分析设计变更的评审设计变更的执行,5.12 设计管理,设计管理活动的输出 包括设计计划执行状态报告以及设计变更过程中产生的变更申请及评审表设计管理活动的出口准则所有预期的软件设计成果已通过评审并交付使用所有设计变更已执行完毕,并且不存在进一步的设计变更请求,5.12 设计管理,设计管理活动小结,任务4,根据第五章(软件设计)所学内容,撰写所开发的项目设计说明书。包括:界面设计、体系结构设计、数据库设计三大类,可集中于一个文档。认真阅读本章所讲内容的案例分析(360页)。可以作为课程作业的参考内容。,
链接地址:https://www.31ppt.com/p-6349182.html