软件工程第四章-软件设计工程_第1页
软件工程第四章-软件设计工程_第2页
软件工程第四章-软件设计工程_第3页
软件工程第四章-软件设计工程_第4页
软件工程第四章-软件设计工程_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章软件设计工程

设计工程概要介绍

1设计模型

4设计实例分析

5设计技术

3设计过程和质量

2小结6本章学习目标123能根据具体项目进行模块划分和软件架构设计掌握软件设计的主要技术、主要内容和主要方法理解软件设计和需求分析之间的相互关系设计工程概要介绍

软件设计定义:在[IEEE610.12-90]中,软件设计定义为软件系统或组件的架构、构件、接口和其他特性的定义过程及该过程的结果。

理念:功在平时,受益最后分析设计编码测试维护设计工程概要介绍

软件设计软件工程生命周期中的一个活动

进行软件编码的基础软件需求分析被转化为软件的内部结构是连接用户需求和软件技术的桥梁用户需求软件技术软件设计设计工程活动软件架构设计(有时称为顶层设计)描述软件的顶层架构和组织,划分不同的组件软件详细设计详细描述各组件以便能够编码实现注意:软件设计主要为分解设计D-design;可以包括系列模式设计FP-design;不包括创新设计I-design;因为创新设计被认为是需求分析和需求规格定义的一部分。设计过程和质量好的设计应该具有如下三个特点设计必须实现在分析模型中包含的所有明确要求,必须满足客户所期望的所有隐含要求;设计必须是对编码人员、测试人员及后续的维护人员必须是可读可理解的;设计应提供该软件的完整视图,以从实现的角度解决数据、功能及行为等各领域方面的问题设计过程和质量设计指导原则设计应该是一种架构设计应该是模块化的设计应该包含数据,体系结构,接口和组件各个方面应该设计出系统所用的数据结构

应该设计出展现独立功能特性的各组件

应该设计出各组件与外部环境连接的各接口设计由软件需求分析过程中获得信息驱动,采用可重复的方法导出

设计应该采用正确清楚地表示设计过程和质量设计质量属性功能性可用性可靠性性能可支持性包含三个属性:扩展性、适应性、可维护性设计技术抽象含义:是“忽略具体的信息将不同事物看成相同事物的过程”抽象机制:参数化、规范化规范化抽象过程抽象数据抽象控制(迭代)抽象设计模式含义在给定上下文环境中一类共同问题的共同解决方案微观结构实体模式结构模式行为模式模块化含义软件被划分为命名和功能相对独立的多个组件(通常称为模块),通过这些组件的集成来满足问题的需求软件的模块性程序可被智能管理的单一属性模块化的理论依据基于人类解决问题观测数据模块化基于人类解决问题观测数据对两个问题p1和p2,如果有

C(p1)>C(p2)(4-1a)则

E(p1)>E(p2)(4-1b)有如下结论:C(p1+p2)>C(p1)+C(p2)(4-2)E(p1+p2)>E(p1)+E(p2)(4-3)推论:无限分解任务,那开发该软件的工作量将变成足够小以至于可以忽略???模块化模块化和软件成本如何确定最小代价区间M

??模块化模块化设计标准模块化分解性模块化组合性模块化可理解性模块化连续性模块化保护信息隐藏模块化基本问题如何分解软件系统以达最佳的模块划分信息隐藏原则模块应该具有彼此相互隐藏的特性即:模块定义和设计时应当保证模块内的信息(过程和数据)不可以被不需要这些信息的其他模块访问特点抽象有助于定义构成软件的过程(或信息)实体。信息隐藏原则定义和隐藏了模块内的过程细节和模块内的本地数据结构。功能独立含义每个模块只解决了需求中特定的子功能并从程序结构的其他部分看该模块具有简单的接口好处易于开发:功能被划分,接口被简化易于维护(和测试):次生影响有限,错误传递减少,模块重用定性衡量标准内聚性:模块的功能相对强度耦合性:模块之间的相互依赖程度细化含义逐步求精的过程与抽象的关系抽象使设计师确定过程和数据,但不局限于底层细节细化有助于设计者在设计过程中揭示底层细节重构含义不改变组件功能和行为条件下简化组件设计(或代码)的一种重组技术方法检查现有设计的冗余情况、未使用的设计元素、无效或不必要的算法、较差的构建方式或不恰当的数据结构,或任何其他可更改并导致更好设计的错误设计技术基本概念小结抽象设计模式模块化信息隐藏功能独立细化重构设计模型模型输入软件需求的数据模型、功能模型和行为模式分类数据设计架构设计接口设计组件级设计设计模型分析模型转换为软件设计分析数据设计含义数据设计(有时也被称为数据架构)构建高层抽象(客户/用户的数据视图)的数据模型、信息模型相关概念数据建模数据结构数据库数据仓库组件级别数据设计设计原则应用于功能和行为系统分析的原则也应适用于数据设计所有的数据结构即其对应的操作都应该确定建立数据字典并在数据定义和程序设计中应用低层次的数据设计应该推迟到设计的后期过程数据结构的表示应该只对直接使用数据结构中数据的模块可见开发有用的数据结构即其对应操作的程序库软件设计和编程语言应该支持抽象数据类型的定义与实现体系结构设计含义及内容系统需要执行的函数功能组件集(如数据库、计算模块)组件之间通信、协同和合作的连接器组件集成构成系统的约束设计人员通过分析其组成部分的已知特性理解系统整体特性的语义模型分析风格和模式简要分类数据中心架构风格和模式简要分类数据流体系架构风格和模式简要分类调用和返回架构风格和模式简要分类面向对象架构系统组件封装数据和处理该数据的操作。组件之间的通信和协作通过消息传递实现层次架构体系结构组织与细化两个基本问题控制结构在架构内部如何实现管理控制?是否有不同的控制架构存在?数据传递组件之间如何进行数据传递?数据流是否连续,或者传递给系统的数据对象是否零散?界面设计高效用户界面设计有三条重要原则:用户控制系统(用户为中心)减少用户记忆负担保持界面一致环境分析确定了用户接口操作的物理结构和社会结构组件设计三种不同类型组件或模块控制模块问题域模块基础模块面向对象的组件级设计以类设计为基础原则:开闭原则、依赖倒置原则概念:耦合、内聚传统的组件级设计结构化编程部署设计含义以部署环境创建开始,在整个生命周期阶段中处于逻辑设计和技术需求阶段包含整个解决方案的逻辑架构和服务质量(QoS)需求项目审批部署设计输出部署架构实施规范实施计划迁移计划安装计划用户管理计划测试计划滚动淘汰计划灾难恢复计划操作计划(运行书)培训计划部署设计的影响因素逻辑体系结构服务质量要求使用情况分析用例服务水平协议总体拥有成本业务目标部署设计方法一般方法估计处理器需求估计安全运输的处理器需求可用性和可扩展性的复制服务设计分析识别瓶颈优化资源管理风险设计实例分析设计实例在线招聘系统体系结构在线招聘系统的模块设计网上招聘系统管理端客户端登录管理用户管理题库管理问卷管理职位管理简历管理面试管理在线招聘系统模块之间的关系图用户登录管理端页面用户管理题库管理问卷管理职位管理简历管理面试管理职位查询填写简历问卷回答客户端页面在线招聘系统中的表关系图本章小结设计是软件工程技术核心数据结构、体系结构、接口和软件组件的过程细节在设计中逐步细化、开发、评审和记录模块化(包括程序和数据)和抽象概念能够使设计人员简化和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论