- 1、本文档共269页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件架构与设计教程
本章要点 工程的概念 软件工程的发展 软件工程分析 三种过程模型 工程化思考 工程是什么? 工程简而言之就是多人参与并有计划、有步骤地完成一项任务的活动 工程强调 目的 计划 步骤 软件发展与软件工程起源 软件的发展四个阶段: 1950年前后到1960年前后,程序设计阶段; 1960年前后到1970年前后,软件系统阶段; 1970年前后到1980年前后互联网络兴起,软件工程阶段; 1980年前后到现在,分布式软件工程阶段; 1968年,北大西洋公约组织的计算机科学家召开国际会议,第一次提出软件危机的概念,产生了应对软件危机的对策---软件工程。 软件工程与建筑工程的对比 工程策略 任何工程都有如下的策略: 分而治之 复用 折衷优化 检验并保证质量 软件工程也会充分利用这些策略 分而治之 把复杂的问题分解为小的问题并一一解决 分而治之图示 复用 利用现有的组件来构筑软件的一部分功能 组件技术有:CORBA、EJB、COM 软件复用图示: 软件开发的发展与变化 软件技术的发展带来了一些变化: 1 用户对软件要求的变化:软件规模在扩大;对软件的质量要求在提高; 2 软件技术本身的变化:新的理念、新的方法和新的工具 3 软件开发队伍的变化:从单人开发、小组开发,到大规模团队开发;从稳定、相对稳定到全员流动 软件开发的发展与变化 应对这些变化的是: 1 市场化:软件开发由个人爱好行为转变为企业行为,需要大量的投资、大量的人力,并且要按照市场规律来运作 2 知本化:要求技术的积累、模块的积累和成果的积累; 3 开发过程的规范化:来应对需求多变,人员流动 4 标准化:能力成熟度,质量控制 软件工程的目标 软件工程的目标是提高软件的质量与生产率,最终实现合格的软件。 质量是软件需求方最关心的问题。 生产率是软件供应方最关心的问题。 软件工程的四项基本原则 选取适宜开发范型 采用合适的设计方法 提供高质量的工程支持 重视开发过程的管理 软件工程准则 七条基本准则 1) 生命周期计划; 2) 阶段评审; 3) 变更控制; 4) 改进程序设计技术; 5) 控制人员规模; 6) 定义评审; 7) 不断改进软件工程; 软件工程的要素 方法:软件工程方法为软件开发提供了“如何做”的技术,是完成软件工程项目的技术手段; 工具:软件工具是在开发软件的活动中智力和体力的扩展和延伸,为软件工程方法提供了自动的或半自动的软件支撑环境; 过程:软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。 软件工程的组成 人员管理 项目管理 过程管理 瀑布模型 瀑布模型将软件生命周期的各项活动顺序进行,形如瀑布流水,最终得到软件产品 是最早的软件工程模型,是其他所有现代模型的基础 瀑布模型 continue 阶段任务、结果及人员 瀑布模型特征 从上一项活动接收该项活动的工作对象,作为输入; 利用这一输入实施该项活动应完成的内容; 给出该项活动的工作成果,作为输出传给下一项活动; 对该项活动实施的工作进行评审,若其工作得到确认,则继续下一项活动,否则返回前项,甚至更前项的活动进行返工。 瀑布模型各个阶段概述 可行性分析:做还是不做 需求分析: 都有什么功能 概要设计:供有多少子功能 详细设计:子功能怎么实现 编码:子功能实现了吗 测试:功能完备吗 部署:需要多少设备和软件的支持 维护:软件运行的正常吗 可行性分析 可行性分析因素 经济 技术 社会环境 人才 需求分析 概要设计 提供多少子功能 面向对象分析(OOA) 详细设计 子功能如何实现 面向对象设计(OOD) 编码 子功能是否实现? 程序员严格按照规范编码; 测试 单元测试 系统测试 用户测试 部署 部署要求 增强自动化程度,用ant等工具 培训最终用户 要有详细计划 记录详细的过程数据 及时反馈软件兼容性缺陷 维护 一般维护分三类: 纠错性维护 改正软件漏洞、发布补丁程序 适应性维护 使得软件在新的硬件、操作系统、编译器和解释器下运行 完善性维护 增加新功能、更改原有的设计等 影响维护成本的因素 非技术因素 需求的复杂性 开发人员的岗位稳定性 软件的生命期 外部环境的变化,例如财政政策影响财务软件 技术因素 软件运行环境 编程语言 编程风格 测试工作的有效性 文档的质量 瀑布模型的优点 通过设置里程碑,明确每阶段的任务与目标 可为每阶段制定开发计划,进行成本预算,组织开发力量 通过阶段评审,将开发过程纳入正确轨道 严格的计划性保证软件产品的按时交付 瀑布模型的缺点 缺乏灵活性,不能适应用户需求的改变 开始阶段的小错误被逐级放大,可能导致
文档评论(0)