软件设计与体系结构-齐治昌

上传人:jiups****uk12 文档编号:44708494 上传时间:2018-06-14 格式:PPT 页数:665 大小:11.47MB
返回 下载 相关 举报
软件设计与体系结构-齐治昌_第1页
第1页 / 共665页
软件设计与体系结构-齐治昌_第2页
第2页 / 共665页
软件设计与体系结构-齐治昌_第3页
第3页 / 共665页
软件设计与体系结构-齐治昌_第4页
第4页 / 共665页
软件设计与体系结构-齐治昌_第5页
第5页 / 共665页
点击查看更多>>
资源描述

《软件设计与体系结构-齐治昌》由会员分享,可在线阅读,更多相关《软件设计与体系结构-齐治昌(665页珍藏版)》请在金锄头文库上搜索。

1、软件设计与体系结构主讲教师:1第1章 软件工程与软件设计n 1.1 软件工程 n 1.2 软件生存周期 n 1.3 软件开发过程模型 n 1.4 软件设计 n 1.5 软件体系结构 n 1.6 小结第1章 软件工程与软件设计n以计算机为核心的信息社会 n软件是信息化的灵魂 n以工程化方法和思想开发软件 n软件设计是软件开发过程中的核心活动之一1.1软件工程n软件危机:在计算机软件的开发和维护过 程中所遇到的一系列严重问题 n软件设计:计算机软件发展到一定阶段, 为了应对软件危机 n计算机软件=程序+数据+文档 n计算机软件是逻辑和智力产品,不是物理 产品1.1软件工程n 软件的应用领域和分类系

2、统软件实时软件嵌入式软件科学和工程计算软件事物务理软件人工智能软件个人计算机软件1.1软件工程n软件危机软件危机是指在计算机软件的开发和维护过程中所遇 到的一系列严重问题。即包含两方面的问题:(1)如何开发软件 (2)如何维护软件 n软件危机的原因软件产品生产效率较低软件供需失衡用户需求不明确整个软件开发过程缺乏正确的理论指导软件产品的规模越来越大软件产品开发的复杂度越来越高1.1软件工程n 软件工程软件工程是指导计算机软件开发和维护的工程学科;将系统的、规范的、可度量的工程化方法应用于软件 开发、运行和维护的全过程及上述方法的研究;是用工程、科学和数学的原则与方法研制、维护计算 机软件的有关

3、技术和管理方法; n 软件工程要素:方法、工具、过程方法:为软件开发提供了“如何做”的技术,是完成软 件工程项目的技术手段工具:人类在开发软件的活动中智力和体力的扩展和 延伸,为软件工程方法提供自动或半自动的软件支持 环境过程:将方法和工具综合起来以达到合理、及时地进 行软件开发的目的1.1软件工程n 软件工程的目标和原则在给定成本、进度的前提下,开发出具有可修改性、 有效性、可靠性、可理解性、可维护性、可复用性、 可适应性、可移植性、可跟踪性并满足用户需求的软 件产品。抽象、信息隐藏、模块化、局部化、一致性、完全性 、可验证性n目标可修改性有效性可靠性可理解性可维护性可复用性可适应性可移植性

4、可追踪性 基本目标:基本目标: 付出较低的开发成本付出较低的开发成本 达到要求的软件功能达到要求的软件功能 取得较好的软件性能取得较好的软件性能 开发的软件易于移植开发的软件易于移植 需要较低的维护费用需要较低的维护费用 能按时完成开发工作能按时完成开发工作 及时交付使用及时交付使用软件工程的目标是提高软软件工程的目标是提高软 件的质量与生产率,最终件的质量与生产率,最终 实现软件的工业化生产。实现软件的工业化生产。软件工程的原则软件工程的原则n抽象采用分层次抽象,自顶向下、逐层细化的办法控制软件开发 过程的复杂性 n信息隐蔽将模块设计成“黑箱”,实现的细节隐藏在模块内部,不让模 块的使用者直

5、接访问。这就是信息封装,使用与实现分离的 原则 n模块化如 C 语言程序中的函数过程,C+ 语言程序中的类。模块化 有助于信息隐蔽和抽象,有助于表示复杂的系统。软件工程的原则软件工程的原则n局部化要求在一个物理模块内集中逻辑上相互关联的计算机资源, 保证模块之间具有松散的耦合,模块内部具有较强的内聚。 这有助于控制解的复杂性 n确定性软件开发过程中所有概念的表达应是确定的、无歧义性的、 规范的。 n一致性整个软件系统的各个模块应使用一致的概念、符号和术语。 程序内部接口应保持一致。软件和硬件、操作系统的接口应 保持一致。系统规格说明与系统行为应保持一致。用于形式 化规格说明的公理系统应保持一致

6、软件工程的原则软件工程的原则n完全性软件系统不丢失任何重要成分,可以完全实现系统所要求功 能的程度。为了保证系统的完备性,在软件开发和运行过 程中需要严格的技术评审。 n可验证性开发大型的软件系统需要对系统自顶向下、逐层分解。系统 分解应遵循系统易于检查、测试、评审的原则,以确保系 统的正确性。软件工程的原则的原则复杂问题子问题1子问题2子问题n程序1程序2程序n软件 系统解决原始问题 集成分解1.2 软件生存周期nSoftware life cycle n软件产品从形成概念开始,经过开发、使用和维护,直到 最后退役的全过程称为软件生存周期 n软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。

7、 这个过程即为计算机软件的生存周期 n软件定义-软件开发-软件使用和维护软件定义(系统分析):可行性研究(软件计划)、需求分析软件开发(系统设计):概要设计、详细设计、软件实现 ( 编码、单元测试)、软件测试(组装测试、确认测试)软件使用、维护退役软件生存周期软件生存周期n可行性研究确定要开发软件系统的总目标给出功能、性能、可靠性以及接口等方面的要求完成该软件任务的可行性研究估计可利用的资源 、成本、效益、开发进度制定出完成开发任务的实施计划,连同可行性研 究报告,提交管理部门审查 n需求分析对用户提出的要求进行分析并给出详细的定义编写软件需求说明书或系统功能说明书及初步的 系统用户手册提交管

8、理机构评审软件生存周期软件生存周期n 概要设计 把各项需求转换成软件的体系结构。结构 中每一组成部分都是意义明确的模块,每个模块都和某 些需求相对应,编写设计说明书,评审 n 详细设计 对每个模块要完成的工作进行具体的描述 ,为源程序编写打下基础,编写设计说明书,提交评审 n 软件构造把软件设计转换成计算机可以接受的程序代码, 即以某一种特定程序设计语言表示的“源程序清 单”;程序应当是结构良好、清晰易读的,且与设计 相一致的。软件生存周期软件生存周期n 软件测试单元测试,查找各模块在功能和结构上存在的问题并加 以纠正 集成测试,将已测试过的模块按一定顺序组装测试确认测试,按规定的各项需求,逐

9、项进行有效性确认测 试,决定已开发的软件是否合格,能否交付用户使用n 使用与维护:在用户特定的环境中,在测试通过后移交用户使用改正性维护:运行中发现软件中的错误需要修正适应性维护:为了适应变化了的软件工作环境,需做适 当变更完善性维护:为了增强软件的功能需做变更1.3 软件开发过程模型n软件开发过程模型是跨越整个生存期的系统开发、运作和维护 所实施的全部过程、活动和任务的结构框架 瀑布模型 原型模型 螺旋模型 统一软件开发过程瀑布模型(生存周期模型瀑布模型(生存周期模型 )nW. W. Royce 1970 提出 n瀑布模型,是既自顶向下结构化开发模型 n优点:奠定了软件工程方法的基础;流水依

10、 赖;便于分工协作;推迟现实;文档易修改 ;有复审质量保证。 n缺点:用户需求明确困难;用户见面晚;纠 错慢;难于克服系统分析员不懂专业领域的 知识,用户不懂计算机的困难,成功率低。 适合于系统要求明确的小系统。带反馈的瀑布模型快速原型模型n rapid prototype model n 根据用户提出的软件定义,快速的开发一 个原型,在征求用户对原型意见的过程中 ,再进一步修改、完善,直至达成一致。模拟软件的人机界面开发一个原型,实现部分功能向用户展示正在运行的类似软件 n 优点:与用户见面快;开发成功率高,适 合于需求不确定的大系统。 n 缺点:周期长,开发成本高。快速原型模型螺旋模型n

11、螺旋模型沿着螺线旋转(一个螺旋式周期 ),在四个象限 上分别表达四个方面的活动,即: n 制定计划确定软件目标,选定实施方案,弄清项目开发 的限制,选定完成目标的策略 n 风险分析分析所选方案,考虑如何识别和消除风险,风 险角度分析该策略 n 实施工程实施软件开发,启动一个开发阶段 n 客户评估评价前一步开发工作,提出修正建议,计划下 一轮的工作 n 特点瀑布模型+快速原型+风险分析迭代过程统一软件开发过程n n统一软件开发过程统一软件开发过程(RUP, Rational Unified Process )是 一套软件工程过程,是一套软件工程方法的框架,各个 组织可根据自身的实际情况,以及项目

12、规模对RUP进行 裁剪和修改,以制定出合乎需要的软件工程过程。 n适合与统一建模语言(UML, Unified Model Language) 结合起来使用 n支持六大最佳软件开发实践迭代式开发管理需求基于构建的软件体系结构可视化建模验证软件质量控制变更统一软件开发过程统一软件开发过程n横轴:时间轴,表示软件开发的顺序开启阶段精化阶段构建阶段产品化阶段 n纵轴:“谁”在“何时”、“如何”去做“何事”9个工作流程各个阶段实施的工作流程,在不同的时间段内 工作流所占工作量不同1.4 软件设计n 对软件如何被开发出来的一种规范化描述软件需求分析和软件设计受到重视编码所占比例越来越少 n 软件设计的重

13、要性对软件需求的直接体现为软件实现提供直接依据考虑软件系统的各种约束条件并给出相应方 案决定最终软件系统的质量及早发现软件设计中存在的错误减少软件修 复和维护的成本1.4 软件设计n软件设计的特征出现新的问题需要软件来解决、解决问题和实施决策的过程、一系列转换过程、满足各种约束的过程过程、不断演化的过程、给出一个方案、新思路、新想法 n软件设计的要素目标描述、设计约束、产品描述、设计原理、开发规划、使用描述1.5 软件体系结构n软件设计是从软件需求到软件实现的活动,它 把各种软件需求转换为能直接实现的软件结构 n软件需求与软件设计之间存在难以逾越的鸿沟 ,如何有效的将软件需求软化为相应的设计?

14、 n软件需求?软件设计软件实现软件体系结构1.5 软件体系结构n 软件体系结构的定义软件体系结构是软件系统的结构,包含软件 元素、软件元素外部可见的属性以及这些软 件元素之间的关系;软件体系结构是软件系统的基本组织、包含 构件、构件之间、构件与环境之间的关系, 以及相关的设计与演化原则;软件体系结构是程序或系统中组件的结构、 组件之间的相互关系、设计的基本原则以及 随时间进化的指导方针;1.5 软件体系结构软件体系结构的发展历程“无体系结构”设计阶段萌芽阶段以汇编语言进行小规模应用程序开 发为特征以描述系统的高层抽象结构为中心, 不关心具体的建模细节,划分了体系 结构模型与传统软件结构的界限,

15、该 阶段以Kruchten提出的“4+1”模型为标 志出现了从不同侧面描述系统的结构模 型,以UML为典型代表。出现了程序结构设计主题,以控制流 图和数据流图构成软件结构为特征高级阶段初期阶段1.5 软件体系结构n 软件体系结构的内容软件体系结构的描述:软件体系结构描述语言软件体系结构的设计方法软件体系结构的分析方法软件体系结构的复用本章完第二章:统一建模语言UML内容内容2.12.1UMLUML概述概述2.22.2面向对象开发方法面向对象开发方法2.32.3UML 2.0UML 2.0结构建模结构建模2.42.4UML 2.0UML 2.0行为建模行为建模(1)UML的发展历程n 多种面向对

16、象分析与设计方法的存在不利于面向对象方法 的发展,也给用户的选择带来一些困惑。 n 1994年Booch和Rumbaugh首先将各自先前的研究成果统 一起来,于1995年10月发布了UM 0.8 。 n 经过Booch、Rumbaugh和Jacobson三人的共同努力,于 1996年发布UML 0.9,并从此将UM命名为UML。 n UML结束了“模型论战”,融合了众多优秀的面向对象建模 方法以及软件工程方法,消除了因建模方法相互独立带来 的诸多不便。 UML 2.0n 1997年对象管理组织(Object Management Group,OMG)采纳UML作为其标准建模语言, 并通过严格有序的OMG过程对其进行修订和维护 。 n 1999,UML 1.3,相对稳定成熟阶段 n 2001-05, UML

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号