软件工程讲义-软件工程电子书ppt课件.ppt
《软件工程讲义-软件工程电子书ppt课件.ppt》由会员分享,可在线阅读,更多相关《软件工程讲义-软件工程电子书ppt课件.ppt(402页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1实用软件工程实用软件工程我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物21课程学时 总学时:总学时:48学时;其中讲课:学时;其中讲课:32学时;学时; 上机:上机:16学时学时2. 学习成绩考核方法 平时成绩(包括考勤和作业)平时成绩(包括考勤和作业)30%,上机,上机10%,期末考试,期末考试60%。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物3Chapter 1 概述概述 1.1 软件工程的产生 1.2 软
2、件工程学 1.3 软件生命周期 1.4 软件开发模型 1.5 案例-在线宠物商店我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物41.1.1 软件工程发展史 软件是指计算机程序及其有关的数据和文档。 软件生产的各个阶段必需完成的有关计算机程序的功能、设计和使用的文字或图形资料,这些资料称为“文档”。1. 程序设计阶段2. 软件=程序+文档阶段3. 软件工程阶段4. 第4代技术阶段1.1 软件工程的产生软件工程的产生我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快
3、,证实我的猜测没有错:表里边有一个活的生物51.1 软件工程的产生软件工程的产生 1.1.2 软件危机爆发时间 1967年NATO的研究组首次提出 1968年NATO软件工程会议首次提出软件工程概念 1968-2011, 近40年“危机”一词软件危机依然存在Crisis!我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物61.1 软件工程的产生软件工程的产生 软件危机面对的问题 艺术 vs. 标准化 错误的发现 软件需求获取 软件支持和维护 开发速度 vs. 市场需求 开发周期过长、开发成本过高 研发风险 软
4、件Trouble 软件开发中的复杂的协作(人员,问题,过程) 不同角色的软件神话(管理者,用户,开发者,大众)我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物71.1 软件工程的产生软件工程的产生 采用什么方法缓解危机硬件 ?建筑学?拍电影?软件工程!我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物81.2 软件工程学软件工程学1.2.1 什么是软件 定义Program + Data Structure + Docume
5、nts Wang Jiahua, 软件工程, pp.1 软件的性质复杂性难以描述性不可见性变化性风险性易于副本的大批量生产强合作性我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物91.2 软件工程学软件工程学1.2.1 什么是软件工程 Fritz Bauer: “建立和应用完善的工程原理以便经济地得到在真实机器上可靠和有效运行的软件 重原理、轻技术、无度量 IEEE: (1)应用系统的有规则的定量的方法开发、使用和维护软件;即应用工程于软件。(2)研究(1)中的方法 粗糙我吓了一跳,蝎子是多么丑恶和恐怖的东
6、西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物101.2 软件工程学软件工程学 Definition软件工程是软件开发、运行、维护和引退的系统方法。因而软件工程是指导计算机软件开发和维护的工程学科。软件工程采用工程的概念、原理、技术和方法来开发与维护软件。软件工程的目标是实现软件的优质高产,软件工程的目的是在规定的时间、规定的开发费用内,开发出满足用户需求的、高质量的软件产品。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物111.2 软件工程学软件工
7、程学1.2.3 软件工程学的内容 软件开发技术和软件工程管理。 软件开发技术包含软件工程方法学、软件工具和软件工程环境。 软件工程管理学包含软件工程经济学和软件管理学。1. 软件工程方法学 三个要素:方法,工具,过程。2. 软件工具 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物121.2 软件工程学软件工程学3. 软件工程环境:是方法和工具的结合。 “软件开发环境是相关的一组软件工具集合,它支持一定的软件开发方法或按照一定的软件开发模型组织而成”。 计算机辅助软件工程 ( Computer Aided
8、Software Engineering,CASE) 是一组工具和方法的集合,可以辅助软件生命周期各阶段进行软件开发活动。4. 软件工程管理 目的是为了能按预定的时间和费用,成功地生产软件产品。 内容:费用管理、人人员组织、工程计划管理、软件配置管理。 软件工程各阶段所产生的全部文档和软件本身构成软件配置。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物131.2 软件工程学软件工程学1.2.4 软件过程 软件过程的定义ISO 9000把软件过程定义为:“把输入转化为输出的一组彼此相关的资源和活动”。软件开
9、发过程,是把用户要求转化为软件需求,把软件需求转化为设计,用代码实现设计并对代码进行测试,完成文档编制并确认软件可以投入运行使用的过程。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物141.2 软件工程学软件工程学 为什么要引入软件过程?(1/2)软件工作的范围软件的开发风险(规模、周期、复杂度)涉及整个软件生存周期扩展到少,可预知、可控多,不易预知,不易控制发展到只考虑编写程序我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一
10、个活的生物151.2 软件工程学软件工程学 为什么要引入软件过程?(2/2)软件开发的角色软件标准团队中更多的角色扩展到软件产品的标准化软件开发过程的标准化扩展到程序员我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物161.2 软件工程学软件工程学1.2.5 软件工程基本原理 用分阶段的生命周期计划进行严格的管理; 坚持进行阶段评审; 实行严格的产品控制; 采用现代程序设计技术; 软件工程结果应能清楚地审查; 开发小组的人员应该少而精; 承认不断改进软件工程实践的必要性。我吓了一跳,蝎子是多么丑恶和恐怖的东
11、西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物171.3 软件生命周期软件生命周期1. 软件生命周期定义 从设计软件产品开始到产品不能使用为止的时间周期。 软件生命周期中,软件开发与维护时的费用越低,软件的使用寿命越长,产生的价值就越大,这就是掌握软件工程学的目的。2. 软件生命周期划分的原则 各阶段的任务彼此间尽可能相对独立。 同一阶段的工作任务性质尽可能相同。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物181.3 软件生命周期软件生命周期3.
12、软件生命周期各阶段的任务 由软件计划、软件开发和软件运行维护三个时期组成。 软件计划时期:问题定义、可行性研究、需求分析三阶段。 软件开发时期:软件概要设计、软件详细设计、软件实现、综合测试等阶段。 软件运行过程中需要不断地进行维护,使软件持久满足用户需要。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物191.4 软件开发模型软件开发模型 为什么需要模型?模型帮助我们解释事物如何工作模型能够拓宽我们的视野(抽象) 软件过程模型一个过程模型是一个过程的抽象表示过程模型帮助我们更好地理解软件开发我吓了一跳,蝎
13、子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物203.1 过程模型概念过程模型概念(2/5)我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物211.4.1 瀑布模型(Waterfall Model) 1.4 软件开发模型软件开发模型我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物22 1.4.2 快速原型模型 快速原型模型(Rapid Proto
14、type Model)是快速开发一个可以运行的原型系统, 通常有三种类型:v 渐增式的原型:也称增量模型。v 用于验证软件需求的原型。v 用于验证设计方案的原型。1.4 软件开发模型软件开发模型我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物231.4.3 增量模型增量模型增量方式包括: 增量开发 增量提交1.4 软件开发模型软件开发模型我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物241.4.4 喷泉模型喷泉模型 适
15、用于面向对象方法。 主张分析和设计过程的重叠、不严格区分。 模块集成过程: 反复经过 分析、设计、测试、集成,再分析、设计、测试、集成。 1.4 软件开发模型软件开发模型我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物251.4.5 螺旋模型螺旋模型 1.4 软件开发模型软件开发模型我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物261.4.6 RUP(统一过程)(统一过程) RUP(Rational Unified P
16、rocess)使用UML, 采用用例驱动和架构优先的策略, 采用迭代增量建造方法。v通常,结构化方法可使用瀑布模型、增量模型和螺旋模型进行开发;v面向数据结构方法可使用瀑布模型、增量模型进行开发;v面向对象方法可采用快速原型、喷泉模型、软件重用开发模型(11章)和统一过程RUP进行开发。1.4 软件开发模型软件开发模型我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物27案例案例-在线宠物商店在线宠物商店(1/3) 宠物大战 SUN Vs. Microsoft 主要功能: 列举宠物商品类别和提供搜索功能 显示
17、宠物列表和宠物具体信息 提供用户登录验证、注册新用户和维护用户信息等功能 管理购物车 实现结帐处理 查询订货情况 统计销售记录我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物28案例案例-在线宠物商店在线宠物商店(2/3) 问题(1/2): 从何开始? 采用什么技术? 需要多少时间? 需要多少人?哪些角色?能否并行、协作地开发?人力应该如何高效率的投入? 开发计划? 直接编码? 需求? 设计方案和模型? 人机交互的界面? 功能优先级? 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界
18、里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物29案例案例-在线宠物商店在线宠物商店(3/3) 问题(2/2): 开发风险? 可扩展性? 复用? 设计模式? 编码规范? 需求变更? 测试? 开发过程? 软件度量? 最后期限?我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物30Chapter 2 软件计划软件计划 2.1 软件问题定义及可行性研究 2.2 需求分析的任务 2.3 需求分析步骤 2.4 实体-关系图 2.5 数据流图 2.6 状态转换图 2.7 数据字典 2.8 需求分析的其他
19、图形工具 2.9软件计划阶段文档我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物312.1 软件问题定义及可行性研究软件问题定义及可行性研究2.1.1软件问题定义 What 问题定义是软件开发过程当中的一个定义要解决的问题并确定系统范围的活动。 Why 形成一个早期判断,达成一个最初共识 When 项目日程表的最前端 占整个软件开发时间中的比例很小 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物322.1 软件问题定义
20、及可行性研究软件问题定义及可行性研究 Who系统分析师、出资方领导、出资方技术人员、开发方领导和项目经理 Where客户现场 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物332.1 软件问题定义及可行性研究软件问题定义及可行性研究 How我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物342.1 软件问题定义及可行性研究软件问题定义及可行性研究2.1.2 可行性研究 What可行性研究是以相对短的时间和相对低的成本来
21、确定给定的问题在其约束条件内是否有解、有几种解以及哪个是最佳解。 Why必须要先确立满足约束条件的方案是否存在、是否可行、是否最优,然后再在最优方案的基础上进行开发 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物352.1 软件问题定义及可行性研究软件问题定义及可行性研究 When 项目的早期阶段 占整个软件开发时间中的比例较小,但比问题定义活动所消耗的时间长 Who 系统分析师、出资方领导、出资方技术人员、用户代表、开发方领导、项目经理、架构设计师、领域专家、财务人员、市场人员、软件质量保证(SQA,S
22、oftware Quality Assure)人员等 Where 客户现场。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物362.1 软件问题定义及可行性研究软件问题定义及可行性研究 How How(1/2)我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物372.1 软件问题定义及可行性研究软件问题定义及可行性研究2.1.3 制定项目开发计划完成软件问题定义和可行性研究之后,可以制定初步的项目开发计划。制定工程计划进度
23、有两种方法:Gantt图法和工程网络技术,详细见9.3节。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物382.2 需求分析的任务需求分析的任务 What(1/3)需求:主要是在产品构建之前确定的系统必须符合的条件或具备的功能,它们是关于系统将要完成什么工作的一段描述语句,它们必须经过所有相关人员的认可,其目的是彻底地解决客户的问题。 需求文档 一组需求的集合 用户需求文档、系统需求文档和软件规约文档 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的
24、猜测没有错:表里边有一个活的生物392.2 需求分析的任务需求分析的任务功能性需求和非功能性需求 功能性需求:描述了系统应该做什么,即具备的功能或服务。(输入、输出和计算等) 非功能性需求:描述了系统必须遵守的约束条件。(响应时间、吞吐量 、可靠性、可移植性、可扩展性、易用性、安全性、资源要求、可复用性、技术要求、文化和政策需求、法律需求、道德要求、隐私要求,等等) 描述需求的标准 是完整的、正确的、必要的、无歧义的、可行的、可验证的以及被设置了优先级别的。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物
25、402.3 需求分析步骤需求分析步骤 Why需求不一致、模糊、矛盾需求变更客户忽略领域常识/知识/术语 客户集中于现有系统的不足之处,而忽略了系统要实现的关键功能零碎、无组织、不明确、表达不清不分轻重缓急 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物412.3 需求分析步骤需求分析步骤 When项目的早期阶段?贯穿于整个软件开发过程的需求活动我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物422.3 需求分析步骤需求
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 讲义 电子书 ppt 课件
限制150内