软件工程(全)

上传人:资****亨 文档编号:131113095 上传时间:2020-05-04 格式:PPT 页数:336 大小:8.40MB
返回 下载 相关 举报
软件工程(全)_第1页
第1页 / 共336页
软件工程(全)_第2页
第2页 / 共336页
软件工程(全)_第3页
第3页 / 共336页
软件工程(全)_第4页
第4页 / 共336页
软件工程(全)_第5页
第5页 / 共336页
点击查看更多>>
资源描述

《软件工程(全)》由会员分享,可在线阅读,更多相关《软件工程(全)(336页珍藏版)》请在金锄头文库上搜索。

1、 目录 软件工程概述 第1章 1 了解软件的概念 特点及主要分类 2 掌握软件危机的产生 表现及原因 3 掌握软件工程的定义以及基本原理 4 掌握软件生存周期概念 5 理解软件开发模型 6 了解软件开发工具与环境 1 1软件与软件危机 第1章 1 软件的定义软件是计算机中与硬件相互依存的另一部分 软件包括程序 数据及其相关文档的完整集合 1 1 1软件的定义及其特点 软件 程序 数据 文档 程序是按事先设计的功能和性能要求执行的指令序列 数据是使程序能够正确地处理信息的数据结构 文档是与程序开发 维护和使用有关的图文资料 2 软件具有下列特点 1 1软件与软件危机 第1章 1 1 1软件的定义

2、及其特点 软件 是逻辑产品 生产与硬件不同 不会磨损和老化 依赖硬件 手工开发为主 成本高 风险高 比硬件发展慢 1 软件技术的发展 1 1软件与软件危机 第1章 1 1 2软件的发展及其分类 程序设计 程序系统 软件工程 2 软件的分类 1 1软件与软件危机 第1章 1 1 2软件的发展及其分类 重点掌握 1 软件危机的主要表现 1 1软件与软件危机 第1章 1 1 3软件危机 1 软件不能满足用户的需求 2 软件开发成本严重超标 开发周期大大超过规定日期 3 软件质量难于保证 可靠性差 4 软件难于维护 5 软件开发速度跟不上计算机发展速度 2 软件危机产生的原因 1 1软件与软件危机 第

3、1章 1 1 3软件危机 1 忽视软件开发前期的调研和需求分析工作 2 缺乏软件开发的经验和有关软件开发数据的积累 使得开发计划很难制定 3 开发过程缺乏统一的 规范化的方法论指导 4 忽视与用户 开发组成员间的及时有效的沟通 5 文档资料不规范或不准确 导致开发者失去工作的基础 管理者失去管理的依据 6 没有完善的质量保证体系 3 软件危机解决途径 1 1软件与软件危机 第1章 1 1 3软件危机 要解决软件危机问题 需要采取以下措施 1 使用好的软件开发技术和方法 2 使用好的软件开发工具 提高软件生产率 3 有良好的组织 严密的管理 各方面人员相互配合共同完成任务 为了解决软件危机 既要

4、有技术措施 好的方法和工具 也要有组织管理措施 软件工程正是从技术和管理两方面来研究如何更好地开发和维护计算机软件的 为了克服软件危机 1968年10月在北大西洋公约组织 NATO 召开的计算机科学会议上 FritzBauer首次提出 软件工程 的概念 按工程化的原则和方法组织软件开发工作是有效的 是摆脱软件危机的一条主要出路 软件工程的主要思想是强调软件开发过程中应用工程化原则的重要性 软件工程的目标是实现软件的优质高产 软件工程的目的是在经费的预算范围内 按期交付出用户满意的 质量合格的软件产品 1 2软件工程 第1章 1 2 1软件工程的定义和目标 著名软件工程专家Boehm提出 1 用

5、分阶段的软件生存周期计划进行严格的质量管理 2 坚持进行阶段评审 3 实行严格的产品控制 4 采用现代程序设计技术 5 软件工程结果应能清楚地审查 6 开发小组的人员应该少而精 7 承认不断改进软件工程实践的必要性 1 2软件工程 第1章 1 2 2软件工程的基本原理 1 2软件工程 第1章 1 2 3软件工程的研究内容 1 3软件生存周期 第1章 1 4软件开发模型 第1章 1 4 1瀑布模型 1 4软件开发模型 第1章 1 4 1瀑布模型 瀑布模型的主要优点 1 原理简单 容易掌握 2 各阶段间都有验证和确认环节 以便进行质量管理 3 主要用于支持结构化方法 瀑布模型的主要缺点 1 缺乏灵

6、活性 不能适应用户需求的变化 2 缺乏演化性 返回上一级的开发需要付出十分高昂的代价 3 是线性的软件开发模型 回溯性很差 1 4软件开发模型 第1章 1 4 2快速原型模型 1 4软件开发模型 第1章 1 4 2快速原型模型 快速原型模型的优点 1 增强了开发者与用户间的交流 有助于满足用户的真实需求 2 用户可及早得到有用的产品 可及早发现问题 随时纠正错误 3 减小技术 应用风险 可降低开发费用 缩短开发时间 快速原型模型的缺点 1 缺乏丰富而强有力的软件工具和开发环境 2 对设计人员水平及开发环境要求较高 3 在多次重复改变原型的过程中 程序员会厌倦 4 对于做到彻底测试 更新文档较为

7、困难 1 4软件开发模型 第1章 1 4 3渐增模型 1 4软件开发模型 第1章 1 4 3渐增模型 渐增模型的优点 渐增模型是瀑布模型的一个变体 可以看作是重复执行的多个瀑布模型 具有瀑布模型的所有优点 此外 还有以下优点 1 可分批次提交软件产品 方便用户及时了解软件开发进展情况 及早发现问题 2 以组件为单位进行开发 降低了软件开发风险 3 开发顺序灵活 优先级最高的服务首先交付 渐增模型的缺点 1 由于对整个软件系统的需求没有一个完整的定义 会给总体设计带来麻烦 2 在把每个新的增量构件集成到现有软件结构中时 必须不破坏原来已开发出的产品 3 软件的体系结构必须是开放的 即向现有产品中

8、加入新构件的过程必须简单 方便 每次增量开发的产品都应当是可测试的 可扩充的 1 4软件开发模型 第1章 1 4 4喷泉模型 1 4软件开发模型 第1章 1 4 4喷泉模型 喷泉模型的主要特点 1 各阶段相互重叠 反映了软件过程的并行性 2 以分析为基础 资源消耗呈塔形 在分析阶段消耗资源最多 3 反映了软件过程迭代的自然特性 从高层返回低层无资源消耗 4 强调增量开发 依据分析一点 设计一点的原则 不要求一个阶段的彻底完成 整个过程是一个迭代的逐步提炼的过程 5 是对象驱动的过程 对象是所有活动作用的主体 也是项目管理的基本内容 1 4软件开发模型 第1章 1 4 5螺旋模型 1 4软件开发

9、模型 第1章 1 4 5螺旋模型 1 5软件开发方法 第1章 1 结构化方法结构化方法又称传统方法 生存周期法 面向过程的方法 面向功能的方法 面向数据流的方法 所谓结构化分析 就是根据分解与抽象的原则 按照系统中数据处理的流程 用数据流图来建立系统的功能模型 从而完成需求分析 所谓结构化设计 就是根据模块独立性准则 软件结构准则 将数据流图转换为软件的体系结构 用软件结构图来建立系统的物理模型 实现系统的总体设计 所谓结构化程序设计 就是根据结构程序设计原理 将每个模块的功能用相应的标准控制结构表示出来 从而实现详细设计 1 5软件开发方法 第1章 2 面向数据结构方法面向数据结构方法 也称

10、为Jackson方法 该方法从目标系统的输入 输出数据结构入手 导出程序框架结构 再补充其他细节 就可得到完整的程序结构图 这一方法以数据结构为驱动 其优点是通俗易懂 特别适合信息系统中数据层 数据库服务器 上的设计与实现 对输入 输出数据结构明确的中小型系统特别有效 其缺点是实现窗口界面较困难 该方法也可与其他方法结合 用于模块的详细设计 1 5软件开发方法 第1章 3 面向对象方法面向对象方法是一种自底向上和自顶向下相结合的方法 该方法把对象作为数据和在数据上的操作 服务 相结合的软件构件 用对象分解取代结构化方法的功能分解 把所有对象都划分成类 把若干个相关的类组织成具有层次结构的系统

11、下层的类继承上层的类所定义的属性和服务 对象之间通过发送消息进行联系 使用面向对象方法开发软件时 可以重复使用对象和类等构件 从而降低了软件开发成本 所开发的软件能适应需求变化 稳定性好 可重用性好 可维护性好 对于大型 复杂及交互性比较强的系统 使用面向对象方法更有优势 1 6软件工具与开发环境 第1章 1 6 1软件工具 软件工具是指用来辅助计算机软件开发 维护和管理的软件 按照软件过程活动可将软件工具分为支持软件开发过程的工具 支持软件维护过程的工具 支持软件管理过程与支持过程的工具等 支持软件开发过程的工具包括需求分析工具 设计工具 编码与排错工具和测试工具等 支持软件维护过程的工具包

12、括版本控制工具 文档分析工具 开发信息库工具 逆向工程工具和再工程工具等 支持软件管理与软件支持的工具包括项目管理工具 配置管理工具和软件评价工具等 1 6软件工具与开发环境 第1章 1 6 2软件开发环境 1 计算机辅助软件工程计算机辅助软件工程 ComputerAidedSoftwareEngineering CASE 将各种软件工具 开发机器和一个存放开发过程信息的工程数据库组合起来形成一个软件工程环境 2 集成化CASE环境集成化开发环境 Integrated CASE I CASE 是一种把支持多种软件开发方法和过程模型的软件工具集成到一起的软件开发环境 3 软件工程环境软件工程环境

13、 SoftwareEngineeringEnvironment SEE 是指以软件工程为依据 支持典型软件生产的系统 包括三层含义 一组软件工具的集合 工具按一定方法或模型组织 工具支持整个生存周期各阶段或部分阶段 软件的定义及可行性研究 第2章 2 1问题定义 第2章 1 问题的背景 弄清楚待开发系统现在处于什么状态 为什么要开发它 是否具备开发条件等问题 2 提出开发系统的问题要求以及总体要求 3 明确问题的性质 类型和范围 4 明确待开发系统要实现的目标 功能和规模 5 提出开发的条件要求和环境要求 以上主要内容应写在问题定义报告 或系统目标和范围说明书 中 作为这一阶段的 工作总结 2

14、 1问题定义 第2章 2 1 1问题定义的内容 具体步骤如下 首先 系统分析员要针对用户的要求做详细的调查研究 认真听取用户对问题的介绍 阅读与问题有关的资料 必要时还要深入现场 亲自操作 调查开发系统的背景 了解用户对开发的要求 其次是与用户反复讨论 以使问题进一步确定化 经过用户和系统分析员双方充分协商 确定问题定义的内容 最后写出双方均认可的问题定义报告 2 1问题定义 第2章 2 1 2问题定义的方法 可行性研究是在问题定义之后进行的 它是软件定义时期的第二个阶段 可行性研究是指在项目进行开发之前 根据项目发起文件 或称项目建议书 和实际情况 对该项目是否能在特定的资源 时间等制约条件

15、下完成做出评估 并且确定该项目是否值得去开发 可行性研究的目的不在于如何解决问题 而在于确定问题 是否能够解决 和 是否值得解决 其中的项目发起文件 或称项目建议书 是项目发起时 由发起人或单位递交给项目支持者或领导的书面材料 其作用是让项目支持者或领导明白项目的必要性和可行性 2 2可行性研究 第2章 2 2可行性研究 第2章 1 技术可行性技术可行性从技术的角度去研究系统实现的可行性 主要包括风险 资源和技术分析 风险分析主要考虑在给定的约束条件下设计和实现系统的风险 资源分析是考虑技术资源的可行性 也就是参与人员的技术基础 基础硬件与软件的可用性和软件工具的实用性 技术分析是考虑技术解决

16、方案的实用性 即所使用技术的实用化程度和技术解决方案的合理程度 2 经济可行性经济可行性从经济角度评价开发一个新系统是否可行 主要任务是对软件开发项目进行成本估算 效益估算和成本 效益分析 分析实现这个系统有没有经济效益和社会效益 2 2 1可行性研究的任务 2 2可行性研究 第2章 3 运行可行性 或用户使用可行性 即判断为新系统规定的运行方式是否可行 首先要分析用户类型 如外行型 熟练型或专家型 然后从操作习惯 使用单位的计算机使用情况和相关规章制度等方面进行分析 判断当系统交付使用后 使用单位是否有能力保证系统的正常运行和使用 4 法律可行性研究新系统的开发在社会上和政治上会不会引起侵权和责任问题 如是否违反专利法 著作权法和软件保护条例等法律 是否涉及信息安全和个人隐私等问题 2 2 1可行性研究的任务 2 2可行性研究 第2章 1 审核系统的规模和目标2 分析研究现行系统3 设计新系统的高层逻辑模型4 获得并比较可行的方案5 撰写可行性研究报告 2 2 2可行性研究的步骤 2 2可行性研究 第2章 2 2 3系统流程图 2 2可行性研究 第2章 在可行性研究过程中 经济可行性

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

当前位置:首页 > 高等教育 > 大学课件

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