软件工程与项目案例教程.ppt
《软件工程与项目案例教程.ppt》由会员分享,可在线阅读,更多相关《软件工程与项目案例教程.ppt(214页珍藏版)》请在三一办公上搜索。
1、主讲:邱焕耀,软件工程与项目案例教程,2,经历,华南理工大学,博士,计算机控制曾任职以下公司:中国民航信息广州公司(香港上市)技术总监广州金鹏集团(电子百强)项目总监广东金宇恒(佛山最大软企)技术总监曾获国家创新基金、广州科学技术奖中联通炫铃广东/湖南/广西项目负责人(用户800万)长期移动、民航、政府、互联网行业软件研发,项目一 软件工程概述,任务1 软件工程任务2 软件生命周期与软件开发模型任务3 建模工具,4,最富哲理的软件工程,5,UML是“三人帮”“捣”出来的,6,迭代开发过程这样流转,7,软件工程水平是这样提高的,8,敏捷开发过程Scrum,9,任务1 软件工程,软件的定义及其特点
2、 软件危机 软件工程概念,10,软件的定义及其特点,软件的定义软件是计算机系统中与硬件相互依存的部分,它是包括程序、数据及相关文档的完整集合。,软件的定义及其特点,软件=程序+数据+文档,程序:按事先设计的功能和性能需求执行的指令序列数据:是程序能正常操纵信息的数据结构文档:与程序开发、维护和使用有关的图文材料,11,软件的定义及其特点,软件的定义及其特点,软件的特点(1)抽象性;(2)无明显的制造过程;(3)无磨损、老化的问题(4)对硬件系统的依懒性;(5)复杂性;(6)成本昂贵;(7)社会性;,12,软件危机,Tacoma Narrows大桥的崩溃,13,软件危机,软件危机 在软件开发和维
3、护过程中所遇到的一系列严重问题 软件危机的表现对软件开发成本和进度的估算很不准确用户很不满意质量很不可靠没有适当的文档软件成本比重上升供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势,软件危机,14,软件危机,软件危机,原因客观:软件本身特点逻辑部件规模庞大主观:不正确的开发方法忽视需求分析错误认为:软件开发=程序编写轻视软件维护,15,软件危机,软件危机,产生的原因(软件开发人员的错误观点):“有一个对目标的概括描述就足以着手编写程序了,许多细节可以在以后再补充”“所谓软件开发就是编写程序并设法使它运行”“用户对软件的要求不断变化,然而软件是柔软而灵活的,可以轻易地改动”“软件投入生产
4、性运行以后需要的维护工作并不多,而且维护是一件很容易做的简单工作”,16,软件危机的解决,软件危机,解决途径组织管理工程项目管理方法技术措施软件开发技术与方法软件工具,软件工程管理软件管理学软件经济学软件度量学软件工程学指导计算机软件开发和维护的工程学科 工程管理+开发技术软件开发技术软件开发方法学软件工具软件工程环境,17,软件工程概念,软件工程的概念 应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题,指导计算机软件开发和维护的一门工程学科。软件工程的原则,软件工程概念,18,任务2 软件生命周期与软件开发模型,软件生命周期 软件开发模型,19,软件生命周期,软件定义
5、 阶段软件开发阶段软件的使用和维护阶段 退役,Page 19,软件生命周期,20,瀑布模型,软件开发模型,软件开发模型,强调阶段的划分及其顺序性、各阶段工作及其文档的完备性,是一种严格线性的、按阶段顺序的、逐步细化的开发模式。,21,软件开发模型,演化模型 螺旋模型 喷泉模型,22,两种典型的建模工具:1IBM Rational Rose 2Microsoft Office Visio,任务3 建模工具,23,IBM Rational Rose,Page 23,IBM Rational Rose,24,Visio是一个图表绘制程序,可以帮助用户描述复杂设想以及系统的业务和技术图表。使用Visi
6、o创建图表可以使信息形象化,能够以更为直观有效的方式进行信息交流,这是单纯的文字和数字无法比拟的。,Page 24,Microsoft Office Visio,Microsoft Office Visio,25,软件工程课程设计,考核方式:课程设计(附设计说明文档,正文字数不少于1000字)(60%)+平时作业及实验(30%)+平时表现(10%),按优秀、良好、中、及格、不及格五级评定成绩通过演示及讲述,讲解课程设计的整体情况,针对其设计提出一些技术及细节问题确认是否真正理解课程设计中的要点、是否掌握了进行系统设计的知识和能力、是否本人完成。如通发现没有真正设计或者不清楚技术细节,则课程设计
7、不及格。答辩部分:40分(没有课程设计说明文档不予参加答辩)设计部分:60分选题:创新性,实用性,界面美观友好(15分)难度:设计包含的难度(15分)设计的完整性(30分),26,迭代和增量开发方式,27,迭代过程的优势,复杂系统分解多个简单系统提高软件项目可控性降低软件开发风险有效地应对需求变更,在迭代过程中,功能的不确定性逐渐减小,我们对功能的描述越来越明确。,28,何时使用迭代开发?,只对希望成功的项目使用,2004年2月4日,马克扎克伯格在大学的宿舍里鼓捣了一个约会网站,项目二 统一建模语言UML,30,任务1 UML概述,UML的概念UML的发展UML的主要内容,31,UML与OO(
8、面向对象),32,UML的概念,UML的概念UML Unified Modeling Language 统一建模语言统一建模语言是一种通用的可视化建模语言,用于对软件系统的制品进行规范化、可视化处理,然后构造它们并建立它们的文档。,UML的概念,33,UML的发展过程,Grady Booch,James Rumbaugh和Ivar Jacobson,34,图 与 语言 谁一级棒?,这把刀,也不知道有多长、多宽、多重、由什么材质铸成,由谁铸造?很普通,很平常,也许在我们手中!但,只要是他拿着,握着,这把刀就有了生命,有了气息,追魂的刀,亦是救命的刀,就看他是如何赋予它使命的!,该用图用图 该代码
9、用代码,35,UML的优势,过去数十种面向对象的建模语言各自为战,而UML可以消除一些潜在差异,一统江湖通过统一语义和符号表示,提高面向对象技术使项目建立在一个成熟的标准建模语言基础之上便于沟通和交流,统一的理解,36,UML主要内容,精确的元模型定义 UML表示法 UML表示符 UML可视化的图形建模语言UML提供了五类图形,UML的主要内容,37,任务2 UML的概念模型,UML Structure,构造块building blocks,公共机制common mechanisms,构架architecture,基本UML建模元素、关系和图,达到特定目标的公共UML方法,系统架构的UML视图
10、,38,UML基本的构造块,Page 38,构造块building blocks,事物things,关系relationships,图diagrams,建模元素本身,把事物联系在一起,关系说明两个或多个事物时如何语义相关的,UML模型的视图,它们展现事物的集合,“讲述关于软件系统的故事”,是我们可视化系统将做什么(分析级图)或者系统如何做(设计级图)的方法,39,事物,事物things,结构物件,行为物件,分组物件,注解物件,UML模型中的名词,如类、接口、协作、用例、活动类、组件、节点,UML模型的动词,如交互、状态机,包,它用于把语义上相关的建模元素分组为内聚的单元,注解,它附加到模型以捕
11、获特殊信息,同黄色便笺很相像,40,关系,关系relationships,关联association,依赖dependency,泛化generalization,实现realization,描述对象之间的一组链接,事物的改变引起依赖物件的语义改变,一个元素是另一个元素的特化,而且它可以取代更一般的元素,类元之间的关系,一个类元说明一份契约,另一个类元保证实现该契约,41,图,图diagrams,类图class diagrams,对象图object diagrams,构件图component diagrams,部署图deployment diagrams,用例图use case diagrams
12、,顺序图sequence diagrams,协作图collaboration diagrams,状态图statechart diagrams,活动图activity diagrams,静态模型(系统结构),动态模型(系统行为),42,UML 公共机制,公共机制common mechanisms,规格说明specifications,修饰adornments,公共分类common divisions,扩展机制extensibility mechanisms,43,规格说明,UML模型:使用图和图标可视化模型各种建模元素的规格说明所组成规格说明模型元素的特征和语义的文本描述模型的“肉”形成了承载模
13、型的语义背板,赋予模型意义,各种图仅仅是该背板的视图或者可视化投影,44,修饰,修饰:图中建模元素上暴露的信息项任何UML图仅是模型的视图,只有在修饰增强了图的整体清晰性和可读性或者突出模型的某些重要特征时,才应该表示那些修饰,Window,45,公共分类,描述认识世界的特殊方法类和实例类元:一类事物的抽象概念;如“银行帐户”实例:一类事物的特定实例;如“张三丰帐户”接口和实现接口:说明事物行为的契约(做什么)实现:事物是如何工作的特殊细节(如何做),46,扩展机制,约 束:允许对模型元素添加新的规则构造型:基于已有的建模元素引入新的建模元素标记值:允许为模型元素添加新的特性,是带有相关值得关
14、键字,47,JAVA开发平台体系结构,构架是一个系统的组织结构包括:1.系统分解成的各个部分 2.它们的连接性 3.交互机制 4.通知系统设计的向导规则,48,JAVA开发平台架构,构架是一个系统的组织结构包括:1.系统分解成的各个部分 2.它们的连接性 3.交互机制 4.通知系统设计的向导规则,49,架构,构架是一个系统的组织结构包括:1.系统分解成的各个部分 2.它们的连接性 3.交互机制 4.通知系统设计的向导规则,50,4+1视图,51,UML小结,52,用例图 类图 对象图 包 使用类图的建议,任务3 UML静态建模机制,53,用例图,Page 53,用例图,参与者,参与者1,参与者
15、2,用例1,用例2,54,用例“捕获需求”,用例图从系统外部、从用户角度出发描述系统的功能集用例图所描述的系统功能依靠外部用户或另一个系统激活,为用户或另一个系统提供服务,55,用例表达“做什么”,用例图中可以包含若干个用例,用例表达了系统的功能用例只描述参与者和系统在交互过程中做些什么,并不描述怎么做。,56,用例图,Page 56,保险销售用例,57,用例图,Page 57,商品订单用例,58,用例图,Page 58,教学管理用例,59,用例用于什么情况?,不知道什么情况不用用例如果没有用到用例,闭门反省,60,实例:监听器用例,61,实例:监听器用例,功能需求 监听删除操作,保证数据的安
16、全。场景 监听删除操作 删除操作一旦执行,立即被监听器捕获到,进而在执行 删除操作前执行自定义的函数体,即判断实体有无undeletable标签,有则中断删除操作,无则正常删除。,62,关系 关联关系;依赖关系;泛化关系;关系的扩展,用例图,Page 62,63,类图,类 名称;属性;操作关联关系泛化 依赖关系 约束,类图,64,类图,类图,泛化,关联,65,何时用 类图?,类图是面向对象方法的支柱如果没用到类图?找电杆撞下,看是否用面向对象方法,66,用 类图 的危险!,类图用滥了,建狗屋画了10页类图类图没分清粗细层次:概念类图规约类图实现类图,67,鸟类图,68,鸟类图,69,鸟类图,7
17、0,鸟类图,71,实例:监听器类图,72,使用类图的建议,不要试图使用所有的符号 根据项目开发的不同阶段,用正确的观点来画类图 不要为每个事物都画一个模型,应该把精力放在关键的领域,使用类图的建议,73,对象图,对象图 表示在某一时刻类的具体实例和这些实例之间的具体连接关系,对象图,丁一家里的PC:计算机名称:DELL446内存:128,丁一:作家姓名:丁一年龄:30,74,类 与 对象 关系,75,类 与 对象 关系,对象图使用的是与类图相同的符号和关系,76,类图和对象图的区别,77,包,包 一种分组机制,把各种各样的模型元素通过内在的语义连在一起成为一个整体就叫做包,包,BC,A,A,7
18、8,包的关系,引用,使用,79,包软件比赛作品,80,架构图包图的变形,81,任务4 UML动态建模机制,对象之间的交互 状态图 交互图 活动图 四种图的运用,82,对象之间的交互,简单消息 同步消息 异步消息 同步且立即返回消息,对象之间的交互,83,什么是状态图?,状态图 用来建模对象是如何改变其状态以响应事件,展示对象从创建到删除的生命周期,状态图,发票状态图,84,状态图,状态标记符,85,状态图,状态和转移 事件,状态图,86,状态图,子状态,状态图,87,航班状态,88,交互图,顺序图,交互图,89,实例:监听器交互图,90,交互图,协作图 链接;消息流;对象生命周期,交互图,91
19、,活动图,活动和转移 泳道 对象 信号,活动图,92,活动图,活动和转移 泳道 对象 信号,活动图,93,四种图的运用,正确画图的做法是:为帮助理解类而画它的状态图。状态图描述跨越多个用例的单个对象的行为,而不适合描述多个对象间的行为合作,四种图的运用,项目三项目市场调研,95,项目三主要任务,1.系统的研发背景图书馆系统的提出国内外研发现状建立系统需求原型 2.软件开发计划 问题定义可行性分析可行性分析报告系统的开发计划,96,系统的研发背景,1.图书馆系统的提出 传统的手工方式对图书信息的管理已越来越不能适应社会发展的需要,尤其是随着计算机网络和Internet的普及,运用先进的信息管理系
20、统对信息进行科学化和网络化管理,已成为图书信息管理系统发展的趋势。,97,系统的研发背景,2.国内外研发现状国内外应用的图书管理系统的划分:(1)开发方式(2)开发方法(3)结构形式(4)开发平台(5)系统使用的范围(6)按照系统开发主体面向的对象,98,软件开发计划,1.问题定义(1)问题定义的任务(2)问题定义的内容,99,软件开发计划,1.问题定义(1)问题定义的任务(2)问题定义的内容,100,软件开发计划,2.可行性分析(1)可行性分析的主要内容 可行性分析的内容可概括为:环境、技术和经济3个方面(2)可行性分析的主要步骤确定目标进行系统调查 列出可能的技术方案 技术先进性分析 经济
21、效益分析综合评价 优选可取方案并写出可行性分析报告,101,软件开发计划,(3)可行性分析的评价原则 效益性原则 经济性原则 可靠性原则 可比性原则,102,软件开发计划,3.可行性分析报告可行性分析报告的一般格式 可行性分析报告通常包括封面和内容两个部分可行性分析报告案例 4.系统的开发计划 开发计划主要任务 项目开发计划编写提示,103,小结,项目3从图书馆管理系统研发的背景出发,介绍了软件开发的计划及软件开发的可行性分析。接着针对图书馆管理系统的开发提出了可行性分析内容,包括可行性分析的主要任务、基本的步骤,以及如何编写可行性分析报告。最后介绍了开发计划的主要任务和计划的制订。,项目四
22、软件项目需求分析,105,项目四主要任务,1.调查系统的需求 功能需求和技术需求系统相关者建立系统需求原型 2.模型 模型的作用及类型 逻辑模型和物理模型3.事件 事件的概念和类型 事件定义 图书馆管理系统中的事件,106,项目四主要任务,4.事物 事物的概念和类型 事物间的关系 事物的属性 数据实体和对象5.实体联系图6.类图用面向对象的方法分析事物类图的符号 建模的目标 需求分析规格说明书编写提纲,107,调查系统的需求,1.功能需求和技术需求(1)系统需求通常可以分为两类:功能需求和技术需求。功能需求是系统必须完成的活动,也就是系统将要投入的业务应用。功能需求直接来自系统规划阶段确定的系
23、统功能。(2)技术需求是指和企业的环境、硬件和软件有关的所有可操作目标。,108,调查系统的需求,2.系统相关者(1)用户:那些实际使用系统处理日常事务的人。(2)客户:那些购买和拥有系统的人。(3)技术人员:确保系统运行在公司的计算机环境下的人。(4)外部实体:例如公司的顾客。,109,调查系统的需求,3.建立系统需求原型 传统的系统需求开发过程可分为以下4个步骤:(1)确定现有系统的物理过程和活动。(2)从现有物理过程中提取出业务逻辑功能。(3)为将在新系统中使用的方法开发出业务逻辑功能。(4)定义新系统的物理处理需求。,110,模型,1.模型的作用及类型(1)模型的作用有助于提取系统需求
24、信息 有助于系统分析员整理思路 有助于系统的分析和集成 有助于记忆和把握相关细节 有助于系统开发小组以及小组成员之间进行交流 为未来的维护和升级提供文档参考(2)模型的类型 数学模型 描述模型 图形模型,111,模型,2.逻辑模型和物理模型(1)逻辑模型 在系统分析阶段所建立的模型详细定义了系统需求但并没有局限于某一具体技术,因此这些模型通常被称为“逻辑模型”。(2)物理模型 在系统设计阶段也会建立许多模型。这些模型显示了如何使用具体技术来实现系统的某些方面,因此它们被称为“物理模型”。,112,事件,1.事件的概念和类型(1)外部事件(2)临时事件(3)状态事件 2.事件定义(1)区分事件和
25、触发事件的条件以及系统响应(2)跟踪事务处理的生命周期(3)暂不考虑技术依赖事件和系统控制 3.图书馆管理系统中的事件,113,事物,1.事物的概念和类型 2.事物间的关系3.事物的属性4.数据实体和对象,114,实体联系图,结构化分析方法把重点集中在系统的数据存储需求上。数据存储需求包括数据实体、数据实体的属性以及它们之间的关系。用来定义数据存储需求的模型被称为实体联系图(Entity-Relation Diagram,ERD)。,115,类图,1.用面向对象的方法分析事物(1)对事物进行概括具体的层次分析可以使用概括具体层次图来描述,它把事物按照从最概括到最具体的顺序进行排列。(2)分类就
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 项目 案例 教程
链接地址:https://www.31ppt.com/p-6206838.html