




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件设计与体系结构 1 先修课程 后继课程 先修课程数据结构面向对象程序设计语言数据库系统软件工程UML统一建模后继课程软件质量控制软件项目管理 软件工程知识体系 SWEBOK 指南2004版 软件需求 软件设计 软件构造 软件测试 软件维护 软件需求基础 需求过程 需求获取 需求分析 需求规格说明 需求确认 实际考虑 软件设计基础 软件设计关键问题 软件结构与体系结构 软件设计质量的分析与评价 软件设计符号 软件设计策略与方法 软件构造基础 管理构造 实际考虑 软件测试基础 测试级别 测试技术 与测试相关的度量 需求分析 测试过程 软件维护基础 软件维护关键问题 维护过程 维护技术 软件设计 软件设计基础 软件设计关键问题 软件结构与体系结构 软件设计质量的分析与评价 软件设计符号 软件设计策略与方法 一般设计概念 软件设计上下文 软件设计过程 使能技术 并发性 事件处理与控制 组件分布 错误与异常处理 容错 交互与表现 数据持久性 质量属性 体系结构与视点 体系结构风格 宏观体系结构 设计模式 微观体系结构 软件结构与体系结构 程序与框架族 质量分析与评价技术 度量 结构描述 表态视图 行为描述 动态视图 一般策略 面向工程的设计 结构化设计 面向对象的设计 数据结构为中心的设计 基于组件的设计 其它方法 软件设计是后续开发步骤及软件维护工作的基础 如果没有设计 只能建立一个不稳定的系统结构 本课程教学内容内容 软件工程与软件设计整体设计软件体系结构的设计界面设计详细设计设计模式软件体系结构评估 第1章软件工程与软件设计 1 1软件工程1 2软件生存周期1 3软件开发过程模型1 4软件设计1 5软件体系结构1 6小结 第1章软件工程与软件设计 以计算机为核心的信息社会软件是信息化的灵魂以工程化方法和思想开发软件软件设计是软件开发过程中的核心活动之一 1 1软件工程 软件危机 在计算机软件的开发和维护过程中所遇到的一系列严重问题软件设计 计算机软件发展到一定阶段 为了应对软件危机计算机软件 程序 数据 文档计算机软件是逻辑和智力产品 不是物理产品 1 1软件工程 软件的应用领域和分类系统软件实时软件嵌入式软件科学和工程计算软件事物务理软件人工智能软件个人计算机软件 1 1软件工程 软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题 即包含两方面的问题 1 如何开发软件 2 如何维护软件软件危机的原因软件产品生产效率较低软件供需失衡用户需求不明确整个软件开发过程缺乏正确的理论指导软件产品的规模越来越大软件产品开发的复杂度越来越高 1 1软件工程 软件工程软件工程是指导计算机软件开发和维护的工程学科 将系统的 规范的 可度量的工程化方法应用于软件开发 运行和维护的全过程及上述方法的研究 是用工程 科学和数学的原则与方法研制 维护计算机软件的有关技术和管理方法 软件工程要素 方法 工具 过程方法 为软件开发提供了 如何做 的技术 是完成软件工程项目的技术手段工具 人类在开发软件的活动中智力和体力的扩展和延伸 为软件工程方法提供自动或半自动的软件支持环境过程 将方法和工具综合起来以达到合理 及时地进行软件开发的目的 1 1软件工程 软件工程的目标和原则目标 在给定成本 进度的前提下 开发出具有可修改性 有效性 可靠性 可理解性 可维护性 可复用性 可适应性 可移植性 可跟踪性并满足用户需求的软件产品 原则 抽象 信息隐藏 模块化 局部化 一致性 完全性 可验证性 目标可修改性有效性可靠性可理解性可维护性可复用性可适应性可移植性可追踪性 基本目标 付出较低的开发成本达到要求的软件功能取得较好的软件性能开发的软件易于移植需要较低的维护费用能按时完成开发工作及时交付使用软件工程的目标是提高软件的质量与生产率 最终实现软件的工业化生产 软件工程的原则 抽象采用分层次抽象 自顶向下 逐层细化的办法控制软件开发过程的复杂性信息隐蔽将模块设计成 黑箱 实现的细节隐藏在模块内部 不让模块的使用者直接访问 这就是信息封装 使用与实现分离的原则模块化如C语言程序中的函数过程 C 语言程序中的类 模块化有助于信息隐蔽和抽象 有助于表示复杂的系统 软件工程的原则 局部化要求在一个物理模块内集中逻辑上相互关联的计算机资源 保证模块之间具有松散的耦合 模块内部具有较强的内聚 这有助于控制解的复杂性确定性软件开发过程中所有概念的表达应是确定的 无歧义性的 规范的 一致性整个软件系统的各个模块应使用一致的概念 符号和术语 程序内部接口应保持一致 软件和硬件 操作系统的接口应保持一致 系统规格说明与系统行为应保持一致 用于形式化规格说明的公理系统应保持一致 软件工程的原则 完全性软件系统不丢失任何重要成分 可以完全实现系统所要求功能的程度 为了保证系统的完备性 在软件开发和运行过程中需要严格的技术评审 可验证性开发大型的软件系统需要对系统自顶向下 逐层分解 系统分解应遵循系统易于检查 测试 评审的原则 以确保系统的正确性 软件工程的原则 解决原始问题 集成 分解 1 2软件生存周期 Softwarelifecycle软件产品从形成概念开始 经过开发 使用和维护 直到最后退役的全过程称为软件生存周期软件有一个孕育 诞生 成长 成熟 衰亡的生存过程 这个过程即为计算机软件的生存周期软件定义 软件开发 软件使用和维护软件定义 系统分析 可行性研究 软件计划 需求分析软件开发 系统设计 概要设计 详细设计 软件实现 编码 单元测试 软件测试 组装测试 确认测试 软件使用 维护退役 软件生存周期 可行性研究确定要开发软件系统的总目标给出功能 性能 可靠性以及接口等方面的要求完成该软件任务的可行性研究估计可利用的资源 成本 效益 开发进度制定出完成开发任务的实施计划 连同可行性研究报告 提交管理部门审查需求分析对用户提出的要求进行分析并给出详细的定义编写软件需求说明书或系统功能说明书及初步的系统用户手册提交管理机构评审 软件生存周期 概要设计 把各项需求转换成软件的体系结构 结构中每一组成部分都是意义明确的模块 每个模块都和某些需求相对应 编写设计说明书 评审详细设计 对每个模块要完成的工作进行具体的描述 为源程序编写打下基础 编写设计说明书 提交评审软件构造把软件设计转换成计算机可以接受的程序代码 即以某一种特定程序设计语言表示的 源程序清单 程序应当是结构良好 清晰易读的 且与设计相一致的 软件生存周期 软件测试单元测试 查找各模块在功能和结构上存在的问题并加以纠正集成测试 将已测试过的模块按一定顺序组装测试确认测试 按规定的各项需求 逐项进行有效性确认测试 决定已开发的软件是否合格 能否交付用户使用使用与维护 在用户特定的环境中 在测试通过后移交用户使用改正性维护 运行中发现软件中的错误需要修正适应性维护 为了适应变化了的软件工作环境 需做适当变更完善性维护 为了增强软件的功能需做变更 软件生存周期的 V 模型 可行性研究 需求分析 概要设计 详细设计 软件构造 单元测试 集成测试 确认测试 使用与维护 1 3软件开发过程模型 软件开发过程模型是跨越整个生存期的系统开发 运作和维护所实施的全部过程 活动和任务的结构框架瀑布模型原型模型螺旋模型统一软件开发过程RUP 瀑布模型 生存周期模型 W W Royce1970提出瀑布模型 是既自顶向下结构化开发模型优点 奠定了软件工程方法的基础 流水依赖 便于分工协作 推迟现实 文档易修改 有复审质量保证 缺点 用户需求明确困难 用户见面晚 纠错慢 难于克服系统分析员不懂专业领域的知识 用户不懂计算机的困难 成功率低 适合于系统要求明确的小系统 带反馈的瀑布模型 快速原型模型 rapidprototypemodel根据用户提出的软件定义 快速的开发一个原型 在征求用户对原型意见的过程中 再进一步修改 完善 直至达成一致 模拟软件的人机界面开发一个原型 实现部分功能向用户展示正在运行的类似软件优点 与用户见面快 开发成功率高 适合于需求不确定的大系统 缺点 周期长 开发成本高 快速原型模型 螺旋模型 螺旋模型沿着螺线旋转 一个螺旋式周期 在四个象限上分别表达四个方面的活动 即 制定计划 确定软件目标 选定实施方案 弄清项目开发的限制 选定完成目标的策略风险分析 分析所选方案 考虑如何识别和消除风险 风险角度分析该策略实施工程 实施软件开发 启动一个开发阶段客户评估 评价前一步开发工作 提出修正建议 计划下一轮的工作特点瀑布模型 快速原型 风险分析迭代过程 统一软件开发过程 统一软件开发过程 RUP RationalUnifiedProcess 是一套软件工程过程 是一套软件工程方法的框架 各个组织可根据自身的实际情况 以及项目规模对RUP进行裁剪和修改 以制定出合乎需要的软件工程过程 适合与统一建模语言 UML UnifiedModelLanguage 结合起来使用支持六大最佳软件开发实践迭代式开发管理需求基于构件的软件体系结构可视化建模验证软件质量控制变更 统一软件开发过程 统一软件开发过程 横轴 时间轴 表示软件开发的顺序开启阶段精化阶段构建阶段产品化阶段纵轴 谁 在 何时 如何 去做 何事 9个工作流程各个阶段实施的工作流程 在不同的时间段内工作流所占工作量不同 1 4软件设计 对软件如何被开发出来的一种规范化描述软件需求分析和软件设计受到重视编码所占比例越来越少软件设计的重要性对软件需求的直接体现为软件实现提供直接依据考虑软件系统的各种约束条件并给出相应方案决定最终软件系统的质量及早发现软件设计中存在的错误减少软件修复和维护的成本 1 4软件设计 软件设计的特征出现新的问题需要软件来解决 解决问题和实施决策的过程 一系列转换过程 满足各种约束的过程过程 不断演化的过程 给出一个方案 新思路 新想法软件设计的要素目标描述 设计约束 产品描述 设计原理 开发规划 使用描述 1 5软件体系结构 软件设计是从软件需求到软件实现的活动 它把各种软件需求转换为能直接实现的软件结构软件需求与软件设计之间存在难以逾越的鸿沟 如何有效的将软件需求软化为相应的设计 软件需求 软件设计 软件实现软件体系结构 1 5软件体系结构 软件体系结构的定义软件体系结构是软件系统的结构
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园监控日常管理制度
- 校园食堂制度管理制度
- 2024年观光型酒店资金申请报告代可行性研究报告
- 医院医疗质量管理奖励部分
- 苗族银饰工艺传承-洞察及研究
- 机械设计制造专业证明书(6篇)
- 外聘讲师合作合同协议书
- 读书破万卷我的阅读之旅作文13篇
- java中dubbo面试题及答案
- 与时间为伴的四季写景作文(9篇)
- 规章制度之培训学校教学管理制度
- 部编人教版小学4四年级《道德与法治》下册全册教案
- DB34T 4705-2024 职业健康检查工作规范
- 《 大学生军事理论教程》全套教学课件
- 无线电装接工考试:初级无线电装接工考试题库(题库版)
- 探索神奇的植物世界智慧树知到期末考试答案章节答案2024年成都师范学院
- 2024-2030年中国机器人关节模组行业市场竞争态势及前景战略研判报告
- 实验室仪器设备等采购项目培训方案
- UASB+SBR处理果汁废水设计说明书及图纸
- 华图教育:2024年国考面试白皮书
- 2024年海港区社区工作者招聘笔试冲刺题(带答案解析)
评论
0/150
提交评论