软件工程与项目案例教程t.ppt
《软件工程与项目案例教程t.ppt》由会员分享,可在线阅读,更多相关《软件工程与项目案例教程t.ppt(343页珍藏版)》请在三一办公上搜索。
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是一个图表绘制程序,可以帮助用户描述复杂设想以及系统的业务和技术图表。使用Visio创建图表可以
6、使信息形象化,能够以更为直观有效的方式进行信息交流,这是单纯的文字和数字无法比拟的。,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,任务1 UML概述任务2 UML静态建模任务3 UML动态建模,30,任务1 UML概述,UML的概念
8、UML的发展UML的主要内容,31,UML与OO(面向对象),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建模元素、关系和图,
10、达到特定目标的公共UML方法,系统架构的UML视图,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 diag
12、rams,用例图use case diagrams,顺序图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,用例图
15、,Page 53,用例图,参与者,参与者1,参与者2,用例1,用例2,54,用例“捕获需求”,用例图从系统外部、从用户角度出发描述系统的功能集用例图所描述的系统功能依靠外部用户或另一个系统激活,为用户或另一个系统提供服务,55,用例表达“做什么”,用例图中可以包含若干个用例,用例表达了系统的功能用例只描述参与者和系统在交互过程中做些什么,并不描述怎么做。,56,用例图,关联关系,Page 56,57,用例图,泛化关系,Page 57,58,用例图,泛化关系,Page 58,59,用例图,Page 59,保险销售用例,60,用例图,Page 60,商品订单用例,61,用例图,Page 61,教学
16、管理用例,62,用例用于什么情况?,不知道什么情况不用用例如果没有用到用例,闭门反省,63,实例:监听器用例,64,实例:监听器用例,功能需求 监听删除操作,保证数据的安全。场景 监听删除操作 删除操作一旦执行,立即被监听器捕获到,进而在执行 删除操作前执行自定义的函数体,即判断实体有无undeletable标签,有则中断删除操作,无则正常删除。,65,关系 关联关系;依赖关系;泛化关系;关系的扩展,用例图,Page 65,66,类图,类 名称;属性;操作关联关系泛化 依赖关系 约束,类图,67,类图,类 名称;属性;操作,68,类图,类图,69,类图,类图,70,类图,类图,泛化,关联,71
17、,类图,类图,72,类图,类图,73,何时用 类图?,类图是面向对象方法的支柱如果没用到类图?找电杆撞下,看是否用面向对象方法,74,用 类图 的危险!,类图用滥了,建狗屋画了10页类图类图没分清粗细层次:概念类图规约类图实现类图,75,鸟类图,76,鸟类图,77,鸟类图,78,鸟类图,79,实例:监听器类图,80,使用类图的建议,不要试图使用所有的符号 根据项目开发的不同阶段,用正确的观点来画类图 不要为每个事物都画一个模型,应该把精力放在关键的领域,使用类图的建议,81,对象图,对象图 表示在某一时刻类的具体实例和这些实例之间的具体连接关系,对象图,丁一家里的PC:计算机名称:DELL44
18、6内存:128,丁一:作家姓名:丁一年龄:30,82,类 与 对象 关系,83,类 与 对象 关系,对象图使用的是与类图相同的符号和关系,84,类图和对象图的区别,85,包,包 一种分组机制,把各种各样的模型元素通过内在的语义连在一起成为一个整体就叫做包,包,BC,A,A,86,包的关系,引用,使用,87,包软件比赛作品,88,架构图包图的变形,89,任务4 UML动态建模机制,对象之间的交互 状态图 交互图 活动图 四种图的运用,90,软件模型与现实,模型与现实要匹配,91,对象之间的交互,简单消息 同步消息 异步消息 同步且立即返回消息,对象之间的交互,92,什么是状态图?,状态图 用来建
19、模对象是如何改变其状态以响应事件,展示对象从创建到删除的生命周期,状态图,发票状态图,93,状态图,状态标记符,94,状态图,实例:打电话,95,状态图,状态和转移 事件,状态图,96,状态图,如果你太喜欢,97,状态图,详细状态,98,状态图,子状态,状态图,99,状态图,子状态,状态图,100,状态图,子状态,状态图,101,航班状态,102,放松下,103,交互图,顺序图,交互图,104,交互图,顺序图,交互图,105,实例:监听器顺序图,106,电影动画软件模型,电影大量使用3D动画,107,交互图,协作图:交互关系 和 链接关系 链接;消息流;对象生命周期,108,交互图,协作图:交
20、互关系 和 链接关系,109,交互图,协作图 链接;消息流;对象生命周期,交互图,110,顺序图与协作图,相同点 描述对象间的交互关系不同点 顺序图:交互的时间顺序 协作图:交互的静态链接关系,111,3D电影动态建模,112,活动图 状态变种,活动和转移 泳道 对象 信号,113,活动图 状态变种,活动和转移 泳道 对象 信号,114,活动图,活动和转移 泳道 对象 信号,活动图,115,活动图,活动和转移 泳道 对象 信号,116,四种图的运用,动态建模目的、侧重不同状态图只有极少关键对象顺序图、协作图:单用例中几个对象的行为顺序图突出顺序,协作图着重对象间链接关系,四种图的运用,项目三项
21、目市场调研,任务1.系统的研发背景任务2.软件开发计划,118,油画创作背景,波洛克1948年第五号1.4亿$,最昂贵画作这幅画在一副优雅的4x8英尺画布上以画家特有的滴溅泼洒的艺术手法来进行风暴式设计并拨开油彩。,119,任务1 系统的研发背景,追问:为什么呢?你好,这里是梦幻家园售楼处,我是蔡小姐。我是张总,我严重警告你。为什么呢?试用期2月了,你有业绩吗?你卖出去过一套房子吗?为什么呢?问你自己!哦为什么呢?今天下班之前你要再不卖出一套房子去,你就给我卷铺盖走人!(电话挂了)为什么呢?,120,项目背景钢琴练奏师,问:为什么开发这个软件?答:传统的音乐播放器功能单一用户对音乐缺少参与感问
22、:开发这个软件目标是什么?答:提高用户对音乐的学习和娱乐参与创作音乐,121,项目背景钢琴练奏师,问:为什么传统音乐程序不好?答:传统音乐程序功能单一,容易令人感到枯燥无味,没有吸引力;传统音乐程序强调单方向,用户没有参与感;传统音乐程序设计不够灵活,扩展性差。,122,项目背景钢琴练奏师,问:开发内容包括什么?答:本项目从Android的声音处理入手,实现音乐功能,根据用户的兴趣,提高用户参与度。问:有什么应用价值?答:本项目是一个能提高用户参与和娱乐程序的项目,具有一定的使用价值。,123,追求的结果钢琴练奏师,1.2 项目背景传统的音乐播放器功能单一,用户对音乐缺少参与感,本项目志在提高
23、用户对音乐的学习和娱乐,参与创作音乐:(1)传统音乐程序功能单一,容易令人感到枯燥无味,没有吸引力;(2)传统音乐程序强调单方向,用户没有参与感;(3)传统音乐程序设计不够灵活,扩展性差。本项目从Android的声音处理入手,实现音乐功能,根据用户的兴趣,提高用户参与度。本项目是一个能提高用户参与和娱乐程序的项目,具有一定的使用价值。,124,系统的研发背景,1.图书馆系统的提出 传统的手工方式对图书信息的管理已越来越不能适应社会发展的需要,尤其是随着计算机网络和Internet的普及,运用先进的信息管理系统对信息进行科学化和网络化管理,已成为图书信息管理系统发展的趋势。,125,系统的研发背
24、景,2.国内外研发现状图书管理系统的发展历史国内外应用的图书管理系统调研(1)开发方式(2)开发方法(3)结构形式(4)开发平台(5)系统使用的范围(6)按照系统开发主体面向的对象 国内图书管理系统应用情况,126,国内Android开发行业市场现状,国内的Android开发还是以应用开发为主,主要分成3类:为企业开发应用开发通用应用(Android Market或者其他App Market销售)游戏开发(Android Market或者其他App Market销售)。,127,国内Android开发行业市场现状,第一类开发者在较大的公司,为自有品牌或者其他品牌设计手机或者平板电脑的总体方案。
25、根据需求对系统进行定制外,为系统编写定制的应用。第二类开发者在创业型公司或者是独立开发者,盈利方式主要2种:为国外公司外包开发,或者通过Google的移动广告(AdMob)点击分成。通过付费下载的形式来盈利的,现在国内鲜见成功者。第三类开发者和第二类开发者类似。开发者提交的应用开发数目远超游戏开发。,128,任务2 软件开发计划,问题定义,可行性研究,可行否?,否,是,终止项目,.,129,任务2 软件开发计划,难于上青天!做项目计划,如同给一个待出生的婴儿写传记易如反掌!如果项目结束后再写计划,那就轻松多了,并且可以100%地准确,130,软件开发计划,1.问题定义 目标!目标!目标!。,1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 项目 案例 教程
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5634574.html