




已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程SoftwareEngineering 2020 2 22 张永新山东师范大学数学科学学院waterzyx 近20年软件与硬件的发展谁更快一些 硬件什么是软件及软件开发 软件 程序软件开发是个过程软件开发过程中最大的困难是什么 并不是程序编写中的技术问题软件开发是个吃青春饭的行业 软件工作者的职业生涯 引子 从几个问题开始 2020 2 22 2 58 程序员 出身 编程这活究竟该干多久 程序员是吃 青春饭 的 合适的年龄20 30岁20岁 大学 水平差 进步快25岁 技能和效率达到最高 水平停滞不前30岁 编程效率下降 已经不是编程主力程序员应从事更有价值的工作30岁的程序员还有没有前途 软件工作者的职业生涯 2020 2 22 3 58 程序员的收入和在企业的地位收入中等偏下面临年轻程序员的压力程序员的编程水平使用一种语言 2年可成为 专家 技能和经验到达一定水平 很难再有提高年长程序员的出路软件工程项目管理 2020 2 22 4 58 软件开发人员的职业发展之路第一阶段 职业程序员第二阶段 成为项目经理或技术负责人第三阶段 成为机构管理人员软件开发中的角色程序员软件测试人员系统分析师架构设计师界面设计师数据库设计师项目经理 2020 2 22 5 58 项目经理的职业发展之路 1 2020 2 22 6 58 项目经理的职业发展之路 2 2020 2 22 7 58 教学目标熟练掌握软件与软件工程的基本概念和基本知识熟练掌握生存周期与软件开发模式掌握结构化程序设计的编程思想掌握面向对象分析 设计方法掌握有关软件的测试与维护 项目计划与项目管理方法能用软件工程的方法参与软件项目的分析 设计 实现和维护教学方式理论讲述 核心 实践案例 段子 期末考试 教学目标及方式 2020 2 22 8 58 CH1软件工程学概述 2周 CH2可行性研究 1周 CH3需求分析 1周 CH4形式化说明技术 自学内容 CH5总体设计 1周 CH6详细设计 1周 CH7实现 2周 CH8维护 1周 2020 2 22 9 58 总目录 教学计划 CH9面向对象方法学引论 2周 CH10面向对象分析 2周 CH11面向对象设计 2周 CH12面向对象实现 自学内容 CH13软件项目管理 2周 2020 2 22 10 58 总目录 cont 张海藩 软件工程 软件工程导论 教材与参考书 2020 2 22 11 58 赵池龙 杨林 实用软件工程 2020 2 22 12 58 课件及资料共享 163邮箱网盘相应文件夹中maths sdnu 教学资源 2020 2 22 13 58 1 0引子 什么是软件1 1软件危机1 2软件工程1 3软件生命周期1 4软件过程 2020 2 22 14 58 CH1软件工程学概述 1 0引子 什么是软件1 1软件危机1 2软件工程1 3软件生命周期1 4软件过程 2020 2 22 15 58 软件包括在运行中能提供所希望的功能和性能的指令集 即程序 使程序能够正确运行的数据结构描述程序研制过程和方法使用的文档 软件的概念 2020 2 22 16 58 程序 软件 可执行部分 不可执行部分 文档1 文档2 文档3 基于软件功能的划分系统软件支撑软件应用软件基于软件服务对象的范围定制软件 项目 产品软件 产品 软件的划分 2020 2 22 17 58 1 0引子 什么是软件1 1软件危机1 2软件工程1 3软件生命周期1 4软件过程 2020 2 22 18 58 阶段1 程序设计阶段时间 1950S初期至1960S中期特点 个体化的软件环境 除了程序清单 没有任何资料阶段2 程序系统阶段时间 1960S中期至1970S末期特点 软件工坊 阶段3 软件工程阶段时间 始于1970S中期特点 引入工程方法和管理技术阶段4 软件发展阶段 2020 2 22 19 58 软件危机含义软件的开发和维护过程所遇到的一系列问题如何开发软件 以满足日益增长的需求如何维护数量不断膨胀的已有软件软件危机表现对软件开发成本和进度的估计常常很不准确用户对 已完成的 软件系统不满意的现象经常发生软件产品质量往往靠不住软件常常是不可维护的软件通常没有适当的文档资料软件成本在计算机系统总成本中所占比例逐年上升软件开发生产率提高的速度跟不上需求 软件危机及其表现 2020 2 22 20 58 与软件本身的特点有关逻辑部件 可见性差客观上软件维护比较困难规模庞大 复杂性高需要人员协作和科学管理与软件开发与维护的方法不正确有关错误的观念 方法和技术 由一体化开发而来的 软件的生命周期 定义 开发 使用 维护 废弃编码只是软件开发中的一部分 10 20 不同阶段的修改代价不同忽视软件需求分析的重要性 过早地开始编码工作越早开始写程序 完成时间往往越长轻视软件维护的重要性维护费用占软件总投资的55 70 产生软件危机的原因 2020 2 22 21 58 对软件有一个正确的认识软件 程序 方法 规则 数据 文档 IEEE 83 软件开发应该组织良好 管理严密 协调配合并非个体劳动的神秘技巧推广使用成功的技术和方法开发和使用更好的软件工具软件工程 管理 技术 消除软件危机的途径 2020 2 22 22 58 1 0引子 什么是软件1 1软件危机1 2软件工程1 3软件生命周期1 4软件过程 2020 2 22 23 58 软件危机 分析根源 解决途径 软件工程产生 1968 NATO计算机科学会议软件工程的含义软件工程是指导计算机软件开发和维护的一门工程学科 采用工程的概念 原理 技术和方法来开发与维护软件 把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来 以经济地开发出高质量的软件并有效地维护它 软件工程的产生 2020 2 22 24 58 软件工程关注大型程序的构造小型程序与大型程序软件工程的中心课题是控制复杂性软件交付后仍需经常修改开发软件的效率非常重要和谐地合作是软件开发成功的关键软件必须有效地支持它的用户产品 用户手册 培训资料不同文化背景的人创造产品 软件工程的本质特征 2020 2 22 25 58 软件工程专家B W Boehm提出软件工程的七条基本原理1 用分阶段的生命周期计划严格管理2 坚持进行阶段评审大部分错误是在编码之前造成的3 实行严格的产品控制配置管理4 采用现代程序设计技术5 结果应能清楚的审查提高 可见性 量化标准6 开发小组的人员应少而精7 承认不断改进软件工程实践的必要性 软件工程的基本原理 2020 2 22 26 58 方法学 methodology 指在软件生命周期全过程中使用的一整套技术的集合 也称为范型 paradigm 三要素 方法 工具和过程方法 完成软件开发的各项任务的技术方法 如何做 工具 为方法的运用提供自动的或半自动的软件支撑环境过程 为了获得高质量的软件所需要完成的一系列任务的框架目前使用得最广泛的软件工程方法学传统方法学面向对象方法学 软件工程方法学 2020 2 22 27 58 特点 生命周期方法或结构化范型将软件过程依次分成若干阶段按顺序开展每个阶段的任务每个阶段进行严格的技术审查和管理复审提交 最新的 文档优点 阶段划分 降低难度严格审查 保证质量 提高可维护性缺点 当软件规模庞大 或者对软件的需求是模糊的或会随时间而变化的时候原因 把数据和操作人为地分离成了两个独立的部分 传统方法学 2020 2 22 28 58 特点 模拟人类认识和解决问题的方法和过程主导反复迭代的演化过程把数据和行为封装在一起4个要点 对象 Object 数据 数据上的操作行为类 Class 具有相同属性和操作的所有对象类的层次结构对象彼此间仅能通过发送消息互相联系优点 降低了软件产品的复杂性提高了软件的可理解性简化了软件的开发和维护工作促进了软件重用 面向对象方法学 2020 2 22 29 58 1 0引子 什么是软件1 1软件危机1 2软件工程1 3软件生命周期1 4软件过程 2020 2 22 30 58 软件生命周期 2020 2 22 31 58 软件定义 软件开发 运行维护 生命周期模型 过程模型 2020 2 22 32 58 可行性研究 需求分析 概要设计 详细设计 实现 集成测试 确认测试 使用与维护 废弃 软件定义 软件开发 软件使用与维护 1 问题定义 要解决的问题是什么 2 可行性研究 上一个阶段所确定的问题是否有行得通的解决办法 3 需求分析 目标系统必须做什么 用正式文档准确地记录对目标系统的需求 规格说明specification 4 概要设计 大致将如何实现目标系统 设计程序的体系结构 即确定程序的模块组成以及模块关系 2020 2 22 33 58 5 详细设计 应该怎样具体地实现这个系统 详细规格说明6 编码和单元测试写出正确的容易理解 容易维护的程序模块程序员自测试及交叉单元测试7 综合测试通过各种类型的测试 及相应的调试 使软件达到预定的要求集成测试 装配各模块验收测试 按照规格说明书 用户验收8 软件维护通过各种必要的维护活动使系统持久地满足用户的需要改正性维护 适应性维护 完善性维护 预防性维护 2020 2 22 34 58 1 0引子 什么是软件1 1软件危机1 2软件工程1 3软件生命周期1 4软件过程 2020 2 22 35 58 软件过程是为获得高质量软件所需完成的一系列任务的框架 它规定了完成各项任务的工作步骤3W1H Who When What How过程定义了运用方法的顺序 应交付的文档 所需采取的管理措施 以及标示阶段任务的里程碑通常使用生命周期模型简洁地描述软件过程 2020 2 22 36 58 软件过程 简介 在20世纪58年代之前 瀑布模型一直是唯一被广泛采用的生命周期模型现在仍是应用最广泛的过程模型特点 阶段间具有顺序性和依赖性必须前一工作做完才能进行后一工作前一阶段的输出为后一阶段的输入推迟实现的观点清楚区分逻辑设计与物理设计质量保证的观点合格文档的完成时阶段结束的标志每个阶段结束前都要评审所完成的文档 2020 2 22 37 58 瀑布模型 实际的瀑布模型传统的瀑布模型是理想化的实际的瀑布模型是带 反馈环 的 2020 2 22 38 58 优点 强迫开发人员采用规范的方法严格规定了每个阶段必须提交的文档要求每个阶段交出的所有产品都必须经过仔细的质量保证验证总结 瀑布模型的成功在很大程度上是由于它基本上是一种文档驱动的模型缺点 由文档驱动 缺乏灵活性仅通过静态的规格说明很难全面正确地认识动态的软件产品要求用户不经过实践就提出完整准确的需求是不切实际的总结 由于瀑布模型完全依赖于书面的规格说明 很可能导致最终开发出的软件不能真正满足用户的需要 2020 2 22 39 58 瀑布模型的优缺点 简介 快速建立起来的可以在计算机上运行的程序 它所能完成的功能往往是最终产品能完成的功能的一个子集 2020 2 22 40 58 快速原型模型 2020 2 22 41 58 特点 快速原型的本质是 快速 采用软件重用技术在算法的时空开销上也可以让步原型应充分展示软件的可见部分优点 有助于获取用户需求尽早发现软件中的错误支持需求的动态变化缺点 不能支持风险分析适用于需求动态变化 事先难以确定系统 增量模型亦称渐增模型把产品作为一系列的增量构件来设计 编码 集成和测试每个构件由多个相互作用的模块构成 并且能够完成特定的功能第一个增量构件往往实现软件的基本需求 提供最核心的功能 2020 2 22 42 58 增量模型 优点 能在较短的时间内向用户提交可完成部分功能的产品逐步增加产品功能可以使用户有较充裕的时间学习和适应困难 在把每个新的增量构件集成到现有的软件体系结构中时 必须不破坏原来已经开发的产品软件体系结构必须是开放的从长远观点看 很有意义本身具有矛盾性一方面要求开发人员把软件看作一个整体另一方面要求开发人员把软件看作构件序列 构件间彼此独立 2020 2 22 43 58 风险更大的增量模型并行地构造部件 2020 2 22 44 58 螺旋模型 2020 2 22 45 58 简介 螺旋模型是瀑布模型 原型模型的有机结合 同时增加了风险分析简化的螺旋模型 右图 2020 2 22 46 58 螺旋模型沿着螺线旋转 在四个象限上分别表达四个方面的活动 即 制定计划 确定软件目标 选定实施方案 弄清项目开发的限制风险分析 分析所选方案 考虑如何识别和消除风险实施工程 实施软件开发客户评估 评价开发工作 提出修正建议 并计划下一个阶段的任务 优点 有助于获取用户需求 加强对需求的理解尽早发现软件中的错误支持需求的动态变化支持风险分析 可降低或者消除软件开发风险缺点 过多的迭代次数会增加开发成本 延迟提交时间只适合大型软件项目的开发 否则 每个阶段的风险分析将占用很大一部分资源 增加成本对开发人员的风险分析能力是极大的考验适用于 需求动态变化 事先难以确定并且开发风险较大的系统 2020 2 22 47 58 简介迭代是软件开发过程中普遍存在内在属性喷泉模型体现了面向对象软件开发过程的迭代和无缝的特性 喷泉模型 2020 2 22 48 58 简介RationalUnifiedProcess RUPRational公司推出的一种完整的软件过程总结多年商业化验证的6条有效的开发经验 被称为 最佳实践 迭代开发 可运行版本 管理需求 用例 使用基于构件的体系结构可视化建模 UML 验证软件质量 内建的质量评估过程 控制软件变更 Rational统一过程 2020 2 22 49 58 RUP软件开发生命周期二维生命周期模型横轴 核心工作流纵轴 时间核心工作流业务建模 需求 分析和设计 实现 测试 部署支持工作流配置和变更管理 项目管理 环境 2020 2 22 50 58 RUP工作阶段把软件生命周期划分成4个阶段初始阶段精华阶段构建阶段移交阶段RUP迭代式开发迭代和渐增式开发 2020 2 22 51 58 敏捷过程AgileProcess AP4条价值声明 2001 2 个体和交互胜过过程和工具可以工作的软件胜过详尽的文档与客户协作胜过合同谈判响应计划胜过遵循计划 敏捷过程与极限编程 2020 2 22 52 58 极
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚协议书离婚
- 金融研究合作协议的法律框架
- 奢侈品市场分析报告研究
- 伊朗核协议书中国作用
- 宅基地赠与协议书
- 北美自由贸易协议书
- 车商收车协议书
- 企业并购协议书
- 企业代理协议书
- 诉讼离婚协议书
- 某地区地质灾害-崩塌勘查报告
- 导尿术操作护理课件
- 推进班组信息化建设:利用信息技术提高工作效率
- 2023年上海市虹口区初三一模语文试卷(含答案)
- 优势视角课件完整版
- 花城版音乐课时15-第12课 走近戏曲(一)观赏京剧学习念白-京剧丑角的念白《报灯名》-课件
- 《食品安全法》与粮食质量安全专题培训课件
- 2023年安康市交通建设投资集团有限公司招聘笔试题库及答案解析
- 文理分科心理测试问卷
- 初中作文讲座教学课件
- 农村厕所改建技术培训-三格化粪池式厕所课件
评论
0/150
提交评论