软件工程讲义 软件工程电子书ppt课件.ppt
《软件工程讲义 软件工程电子书ppt课件.ppt》由会员分享,可在线阅读,更多相关《软件工程讲义 软件工程电子书ppt课件.ppt(402页珍藏版)》请在三一办公上搜索。
1、1,实用软件工程,2,1课程学时 总学时:48学时;其中讲课:32学时; 上机:16学时2. 学习成绩考核方法 平时成绩(包括考勤和作业)30%,上机10%,期末考试60%。,3,Chapter 1 概述,1.1 软件工程的产生1.2 软件工程学1.3 软件生命周期1.4 软件开发模型1.5 案例-在线宠物商店,4,1.1.1 软件工程发展史软件是指计算机程序及其有关的数据和文档。软件生产的各个阶段必需完成的有关计算机程序的功能、设计和使用的文字或图形资料,这些资料称为“文档”。1. 程序设计阶段2. 软件=程序+文档阶段3. 软件工程阶段4. 第4代技术阶段,1.1 软件工程的产生,5,1.
2、1 软件工程的产生,1.1.2 软件危机爆发时间1967年NATO的研究组首次提出1968年NATO软件工程会议首次提出软件工程概念1968-2011, 近40年“危机”一词软件危机依然存在,Crisis!,6,1.1 软件工程的产生,软件危机面对的问题艺术 vs. 标准化错误的发现软件需求获取软件支持和维护开发速度 vs. 市场需求开发周期过长、开发成本过高研发风险软件Trouble软件开发中的复杂的协作(人员,问题,过程)不同角色的软件神话(管理者,用户,开发者,大众),7,1.1 软件工程的产生,采用什么方法缓解危机硬件 ?建筑学?拍电影?软件工程!,8,1.2 软件工程学,1.2.1
3、什么是软件定义Program + Data Structure + Documents Wang Jiahua, 软件工程, pp.1软件的性质复杂性难以描述性不可见性变化性,风险性易于副本的大批量生产强合作性,9,1.2 软件工程学,1.2.1 什么是软件工程Fritz Bauer:“建立和应用完善的工程原理以便经济地得到在真实机器上可靠和有效运行的软件重原理、轻技术、无度量IEEE:(1)应用系统的有规则的定量的方法开发、使用和维护软件;即应用工程于软件。(2)研究(1)中的方法粗糙,10,1.2 软件工程学,Definition软件工程是软件开发、运行、维护和引退的系统方法。因而软件工程
4、是指导计算机软件开发和维护的工程学科。软件工程采用工程的概念、原理、技术和方法来开发与维护软件。软件工程的目标是实现软件的优质高产,软件工程的目的是在规定的时间、规定的开发费用内,开发出满足用户需求的、高质量的软件产品。,11,1.2 软件工程学,1.2.3 软件工程学的内容 软件开发技术和软件工程管理。软件开发技术包含软件工程方法学、软件工具和软件工程环境。软件工程管理学包含软件工程经济学和软件管理学。1. 软件工程方法学 三个要素:方法,工具,过程。2. 软件工具,12,1.2 软件工程学,3. 软件工程环境:是方法和工具的结合。 “软件开发环境是相关的一组软件工具集合,它支持一定的软件开
5、发方法或按照一定的软件开发模型组织而成”。 计算机辅助软件工程(Computer Aided Software Engineering,CASE) 是一组工具和方法的集合,可以辅助软件生命周期各阶段进行软件开发活动。4. 软件工程管理目的是为了能按预定的时间和费用,成功地生产软件产品。内容:费用管理、人员组织、工程计划管理、软件配置管理。软件工程各阶段所产生的全部文档和软件本身构成软件配置。,13,1.2 软件工程学,1.2.4 软件过程软件过程的定义ISO 9000把软件过程定义为:“把输入转化为输出的一组彼此相关的资源和活动”。软件开发过程,是把用户要求转化为软件需求,把软件需求转化为设计
6、,用代码实现设计并对代码进行测试,完成文档编制并确认软件可以投入运行使用的过程。,14,1.2 软件工程学,为什么要引入软件过程?(1/2)软件工作的范围软件的开发风险(规模、周期、复杂度),涉及整个软件生存周期,扩展到,少,可预知、可控,多,不易预知,不易控制,发展到,只考虑编写程序,15,1.2 软件工程学,为什么要引入软件过程?(2/2)软件开发的角色软件标准,团队中更多的角色,扩展到,软件产品的标准化,软件开发过程的标准化,扩展到,程序员,16,1.2 软件工程学,1.2.5 软件工程基本原理用分阶段的生命周期计划进行严格的管理;坚持进行阶段评审;实行严格的产品控制;采用现代程序设计技
7、术;软件工程结果应能清楚地审查;开发小组的人员应该少而精;承认不断改进软件工程实践的必要性。,17,1.3 软件生命周期,1. 软件生命周期定义从设计软件产品开始到产品不能使用为止的时间周期。软件生命周期中,软件开发与维护时的费用越低,软件的使用寿命越长,产生的价值就越大,这就是掌握软件工程学的目的。2. 软件生命周期划分的原则各阶段的任务彼此间尽可能相对独立。同一阶段的工作任务性质尽可能相同。,18,1.3 软件生命周期,3. 软件生命周期各阶段的任务由软件计划、软件开发和软件运行维护三个时期组成。软件计划时期:问题定义、可行性研究、需求分析三阶段。软件开发时期:软件概要设计、软件详细设计、
8、软件实现、综合测试等阶段。软件运行过程中需要不断地进行维护,使软件持久满足用户需要。,19,1.4 软件开发模型,为什么需要模型?模型帮助我们解释事物如何工作模型能够拓宽我们的视野(抽象)软件过程模型一个过程模型是一个过程的抽象表示过程模型帮助我们更好地理解软件开发,20,3.1 过程模型概念(2/5),21,1.4.1 瀑布模型(Waterfall Model),1.4 软件开发模型,22,1.4.2 快速原型模型快速原型模型(Rapid Prototype Model)是快速开发一个可以运行的原型系统,通常有三种类型:渐增式的原型:也称增量模型。用于验证软件需求的原型。用于验证设计方案的原
9、型。,1.4 软件开发模型,23,1.4.3 增量模型,增量方式包括:增量开发增量提交,1.4 软件开发模型,24,1.4.4 喷泉模型,适用于面向对象方法。主张分析和设计过程的重叠、不严格区分。模块集成过程: 反复经过 分析、设计、测试、集成,再分析、设计、测试、集成。,1.4 软件开发模型,25,1.4.5 螺旋模型,1.4 软件开发模型,26,1.4.6 RUP(统一过程),RUP(Rational Unified Process)使用UML,采用用例驱动和架构优先的策略,采用迭代增量建造方法。通常,结构化方法可使用瀑布模型、增量模型和螺旋模型进行开发;面向数据结构方法可使用瀑布模型、增
10、量模型进行开发;面向对象方法可采用快速原型、喷泉模型、软件重用开发模型(11章)和统一过程RUP进行开发。,1.4 软件开发模型,27,案例-在线宠物商店(1/3),宠物大战SUN Vs. Microsoft主要功能:列举宠物商品类别和提供搜索功能显示宠物列表和宠物具体信息提供用户登录验证、注册新用户和维护用户信息等功能管理购物车实现结帐处理查询订货情况统计销售记录,28,案例-在线宠物商店(2/3),问题(1/2):从何开始?采用什么技术?需要多少时间?需要多少人?哪些角色?能否并行、协作地开发?人力应该如何高效率的投入?开发计划?直接编码? 需求?设计方案和模型?人机交互的界面?功能优先级
11、?,29,案例-在线宠物商店(3/3),问题(2/2):开发风险?可扩展性?复用?设计模式? 编码规范?需求变更?测试?开发过程?软件度量? 最后期限?,30,Chapter 2 软件计划,2.1 软件问题定义及可行性研究2.2 需求分析的任务2.3 需求分析步骤2.4 实体-关系图2.5 数据流图2.6 状态转换图2.7 数据字典2.8 需求分析的其他图形工具2.9软件计划阶段文档,31,2.1 软件问题定义及可行性研究,2.1.1软件问题定义What问题定义是软件开发过程当中的一个定义要解决的问题并确定系统范围的活动。Why形成一个早期判断,达成一个最初共识 When项目日程表的最前端占整
12、个软件开发时间中的比例很小,32,2.1 软件问题定义及可行性研究,Who系统分析师、出资方领导、出资方技术人员、开发方领导和项目经理 Where客户现场,33,2.1 软件问题定义及可行性研究,How,34,2.1 软件问题定义及可行性研究,2.1.2 可行性研究What可行性研究是以相对短的时间和相对低的成本来确定给定的问题在其约束条件内是否有解、有几种解以及哪个是最佳解。 Why必须要先确立满足约束条件的方案是否存在、是否可行、是否最优,然后再在最优方案的基础上进行开发,35,2.1 软件问题定义及可行性研究,When项目的早期阶段占整个软件开发时间中的比例较小,但比问题定义活动所消耗的
13、时间长Who系统分析师、出资方领导、出资方技术人员、用户代表、开发方领导、项目经理、架构设计师、领域专家、财务人员、市场人员、软件质量保证(SQA,Software Quality Assure)人员等Where客户现场。,36,2.1 软件问题定义及可行性研究,How,How(1/2),37,2.1 软件问题定义及可行性研究,2.1.3 制定项目开发计划完成软件问题定义和可行性研究之后,可以制定初步的项目开发计划。制定工程计划进度有两种方法:Gantt图法和工程网络技术,详细见9.3节。,38,2.2 需求分析的任务,What(1/3)需求:主要是在产品构建之前确定的系统必须符合的条件或具备
14、的功能,它们是关于系统将要完成什么工作的一段描述语句,它们必须经过所有相关人员的认可,其目的是彻底地解决客户的问题。 需求文档一组需求的集合 用户需求文档、系统需求文档和软件规约文档,39,2.2 需求分析的任务,功能性需求和非功能性需求 功能性需求:描述了系统应该做什么,即具备的功能或服务。(输入、输出和计算等)非功能性需求:描述了系统必须遵守的约束条件。(响应时间、吞吐量 、可靠性、可移植性、可扩展性、易用性、安全性、资源要求、可复用性、技术要求、文化和政策需求、法律需求、道德要求、隐私要求,等等) 描述需求的标准是完整的、正确的、必要的、无歧义的、可行的、可验证的以及被设置了优先级别的。
15、,40,2.3 需求分析步骤,Why需求不一致、模糊、矛盾需求变更客户忽略领域常识/知识/术语 客户集中于现有系统的不足之处,而忽略了系统要实现的关键功能零碎、无组织、不明确、表达不清不分轻重缓急,41,2.3 需求分析步骤,When项目的早期阶段?,贯穿于整个软件开发过程的需求活动,42,2.3 需求分析步骤,Who系统分析师、需求阐释者、客户代表、用户代表、开发方领导、项目经理、架构设计师、领域专家、财务人员、市场人员、软件质量保证(SQA,Software Quality Assure)人员、程序员、测试人员、部署人员、技术文档编写人员、培训人员等。Where调研时,在客户现场编纂软件需
16、求规约文档时,可以在开发单位复审相关的需求文档时,根据需要来安排,43,2.3 需求分析步骤,How,44,2.4 实体-关系图,E-R图实体联系图,用以表示应用领域中的实体及其相互关系通过E-R图可以很快转成关系数据库概念实体:一切事物,如操作员、顾客、宠物等属性:客观实体和联系实体所拥有的性质关系:事物间关系,45,2.4 实体-关系图,46,2.5 数据流图,什么是数据流程图是一个分层的概念模型,分为三个层次:总体图、零级图、细节图,分别描述系统的不同特征。4种符号:方,圆,开口矩(平行线),箭头 3个层次:总体图,零级图,细节图优点容易理解,容易在开发方和用户方之间进行交流,以及在开发
17、组织内部交流,47,2.5 数据流图,表示符号外部实体数据处理 数据存储数据流,48,2、数据流图的附加符号, 表示数据流之间是“与”关系(同时存在) 表示数据流之间是“或”关系 表示只能从几个数据流中选一个(互斥关系),49,2.5 数据流图,分层表示的数据处理总体图:描述了系统和周围环境的关系 零级图:表示一个系统的主要功能或者是一个大型系统的主要组成子系统细节图:表示一个复杂的处理的详细内部表示,50,2.5 数据流图,分层表示的数据处理总体图,51,2.5 数据流图,分层表示的数据处理零级图,52,2.5 数据流图,分层表示的数据处理细节图,53,2.5 数据流图,数据流程图绘制的有关
18、规定(1/2)外部实体只能出现在总体图和零级图中 数据存储只能出现在零级图和细节图中 数据存储在分层的DFD图中只能出现一次数据存储必须既有读操作,也有写操作 数据流要有名字 数据流必须开始或结束在处理圆圈上数据流不表示有关的控制逻辑,54,2.5 数据流图,数据流程图绘制的有关规定(2/2)每个处理要有编号,但不表示先后顺序每个图中处理的数不应超过9个 每个处理应该既有输入的数据流,也有输出的数据流 子图与父图中对应的处理必须执行相同的功能,并且子图与对应的处理流入和流出的数据流相同 输入/输出命令不能作为DFD图中的处理,55,2.5 数据流图,规定举例1,56,2.5 数据流图,规定举例
19、2,57,数据流程图(DFD)规定举例3,规定举例3,58,2.5 数据流图,规定举例4,E1-DS1数据流未与处理相连DS1-DS2数据流无处理处理P1无输出数据流 处理P2无输入数据流数据存储DS2无读操作 所有数据流没有名字,2,59,2.5 数据流图,规定举例5,DS1无写操作,60,2.5 数据流图,例子,61,Data Flow Diagrams,Example,62,2.5 数据流图,例子,63,2.6 状态转换图,表示符号状态:是可以被观察到的系统的行为模式 圆圈或矩形表示,并在圆圈或矩形中标明状态的名字 变迁表示一种状态向另一种状态的迁移带箭头的线来表示,在线上要标注出事件的
20、名称,需要时也可以和把DFD图中相关的处理标注进来,64,2.6 状态转换图,例子1:进程,65,2.7 数据字典,数据流程图的问题数据流程图描述了一个系统的主要处理逻辑,所存取的数据文件或数据库及其输入和输出的关系。但不能反映系统的具体细节。什么是数据字典配合数据流程图,反映具体细节。二者结合,精确描述。作用:统一定义,便于通讯,便于共享,66,2.7 数据字典,数据字典的内容数据元素最小数据单元 数据流基本数据单元,有关的数据元素所组成的动态的数据结构 数据存储数据结构的载体,静态的数据结构 处理具体处理逻辑外部项数据源或数据终点等外部实体,表示数据的来源和去向,67,2.7.2 数据字典
21、使用的符号, 表示“等价于”或“定义为” 连接 ,| 表示“或”,用“|”分隔,表示可任选其中某一项 表示“重复” ( ) 表示“可选”,用“,”号隔开1A 表示 A 的内容至少要出现 1 次。B 表示 B 的内容允许重复 0 至任意次。 如: 成绩单学号姓名1课程名成绩3 也可写为 成绩单学号姓名 课程名成绩,2.7 数据字典,68,2.7 数据字典,数据元素,69,2.7 数据字典,数据流,70,2.7 数据字典,数据存储,71,处理,72,2.8.1 层次图层次图是一系列多层次的树形结构矩形框,用来描述数据的层次结构,也可描述程序结构。,2.8 需求分析的其他图形工具,73,2.8.2
22、Warnier 图 (Warnier diagram),表示数据层次结构(Warnier-Orr图)可表达数据结构也可表达程序结构Warnier 图使用的符号:()花括号 表示属于数据结构的同一层次。()异或符号 ,符号的上、下方的两个名字代表的数据只能出现一个。 ()圆括号( ) ,数据重复出现的次数。,2.8 需求分析的其他图形工具,74,2.8.3 IPO 图,输入处理输出(Input Process Output )图的简称。【例2.10】招聘考试成绩管理系统 IPO 图。,2.8 需求分析的其他图形工具,75,2.9.1 软件计划阶段文档的编写步骤,(1)编写软件问题定义文档。(2)
23、书写可行性研究报告。(3)编写软件需求说明书。(4)修改、完善项目开发计划。(5)制定初步的系统测试的计划,作为今后软件确认和验收的依据。(6)编写初步的用户手册。(7)编写数据要求说明书。,2.9 软件计划阶段文档,76,Chapter 3 结构化设计,3.1 软件设计步骤3.2 软件结构设计3.3 软件结构设计的图形工具3.4 面向数据流的设计方法3.5 过程设计工具3.6 系统人机界面的设计3.7 数据代码设计3.8 面向数据结构的设计方法3.9 软件设计文档,77,3.1 软件设计步骤,What 设计:是在系统的约束条件下(如预算、时间、人力资源、用户软、硬件环境和用户对系统的操作能力
24、等),为了实现系统的功能性需求和非功能性需求,而找到并描述的一种遵循高质量的通用原则的方法,其交付文档能够指导开发人员实现系统。,78,3.1 软件设计步骤,总体设计任务是根据软件需求规约文档,确定一个合理的软件体系结构。这个体系结构包括合理地划分组成系统的模块、模块间的调用关系以及模块间的接口关系。软件体系结构还从总体方面决定了系统的可扩充性、可维护性,以及系统的性能等。总体设计的设计粒度较大,有时也被称为概要设计、架构设计。,79,3.1 软件设计步骤,详细设计 详细设计地任务是在总体设计的基础上进一步确定如何实现目标系统,包括系统的数据对象的设计、人机接口的设计以及模块逻辑的详细设计。设
25、计部件的粒度系统、子系统、框架、构件、组件、模块、类、方法等,80,3.1 软件设计步骤,Why软件架构是软件系统的核心应对复杂多变的情况,同时保持完整性应对系统在扩展功能当中出现的问题大规模复用的有效基础 项目管理的基础,81,3.1 软件设计步骤,When项目的中、早期阶段?,工作量,早期 中期 后期,项目时间,大小,贯穿于整个软件开发过程的设计活动,82,3.1 软件设计步骤,Who主要包括架构设计师、软件设计员、复用工程师、设计复审员、项目经理、财务人员、软件质量保证(SQA,Software Quality Assure)人员和需求变更者等Where建议在软件企业内部进行设计,83,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程讲义 软件工程电子书ppt课件 软件工程 讲义 电子书 ppt 课件
链接地址:https://www.31ppt.com/p-1444613.html