欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    软件工程与项目案例教程t.ppt

    • 资源ID:5634574       资源大小:27.83MB        全文页数:343页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件工程与项目案例教程t.ppt

    软件工程与项目案例教程,2,经历,华南理工大学,博士,计算机控制曾任职以下公司:中国民航信息广州公司(香港上市)技术总监广州金鹏集团(电子百强)项目总监广东金宇恒(佛山最大软企)技术总监曾获国家创新基金、广州科学技术奖中联通炫铃广东/湖南/广西项目负责人(用户800万)长期移动、民航、政府、互联网行业软件研发,项目一 软件工程概述,任务1 软件工程任务2 软件生命周期与软件开发模型任务3 建模工具,4,最富哲理的软件工程,5,UML是“三人帮”“捣”出来的,6,迭代开发过程这样流转,7,软件工程水平是这样提高的,8,敏捷开发过程Scrum,9,任务1 软件工程,软件的定义及其特点 软件危机 软件工程概念,10,软件的定义及其特点,软件的定义软件是计算机系统中与硬件相互依存的部分,它是包括程序、数据及相关文档的完整集合。,软件的定义及其特点,软件=程序+数据+文档,程序:按事先设计的功能和性能需求执行的指令序列数据:是程序能正常操纵信息的数据结构文档:与程序开发、维护和使用有关的图文材料,11,软件的定义及其特点,软件的定义及其特点,软件的特点(1)抽象性;(2)无明显的制造过程;(3)无磨损、老化的问题(4)对硬件系统的依懒性;(5)复杂性;(6)成本昂贵;(7)社会性;,12,软件危机,Tacoma Narrows大桥的崩溃,13,软件危机,软件危机 在软件开发和维护过程中所遇到的一系列严重问题 软件危机的表现对软件开发成本和进度的估算很不准确用户很不满意质量很不可靠没有适当的文档软件成本比重上升供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势,软件危机,14,软件危机,软件危机,原因客观:软件本身特点逻辑部件规模庞大主观:不正确的开发方法忽视需求分析错误认为:软件开发=程序编写轻视软件维护,15,软件危机,软件危机,产生的原因(软件开发人员的错误观点):“有一个对目标的概括描述就足以着手编写程序了,许多细节可以在以后再补充”“所谓软件开发就是编写程序并设法使它运行”“用户对软件的要求不断变化,然而软件是柔软而灵活的,可以轻易地改动”“软件投入生产性运行以后需要的维护工作并不多,而且维护是一件很容易做的简单工作”,16,软件危机的解决,软件危机,解决途径组织管理工程项目管理方法技术措施软件开发技术与方法软件工具,软件工程管理软件管理学软件经济学软件度量学软件工程学指导计算机软件开发和维护的工程学科 工程管理+开发技术软件开发技术软件开发方法学软件工具软件工程环境,17,软件工程概念,软件工程的概念 应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题,指导计算机软件开发和维护的一门工程学科。软件工程的原则,软件工程概念,18,任务2 软件生命周期与软件开发模型,软件生命周期 软件开发模型,19,软件生命周期,软件定义 阶段软件开发阶段软件的使用和维护阶段 退役,Page 19,软件生命周期,20,瀑布模型,软件开发模型,软件开发模型,强调阶段的划分及其顺序性、各阶段工作及其文档的完备性,是一种严格线性的、按阶段顺序的、逐步细化的开发模式。,21,软件开发模型,演化模型 螺旋模型 喷泉模型,22,两种典型的建模工具:1IBM Rational Rose 2Microsoft Office Visio,任务3 建模工具,23,IBM Rational Rose,Page 23,IBM Rational Rose,24,Visio是一个图表绘制程序,可以帮助用户描述复杂设想以及系统的业务和技术图表。使用Visio创建图表可以使信息形象化,能够以更为直观有效的方式进行信息交流,这是单纯的文字和数字无法比拟的。,Page 24,Microsoft Office Visio,Microsoft Office Visio,25,软件工程课程设计,考核方式:课程设计(附设计说明文档,正文字数不少于1000字)(60%)+平时作业及实验(30%)+平时表现(10%),按优秀、良好、中、及格、不及格五级评定成绩通过演示及讲述,讲解课程设计的整体情况,针对其设计提出一些技术及细节问题确认是否真正理解课程设计中的要点、是否掌握了进行系统设计的知识和能力、是否本人完成。如通发现没有真正设计或者不清楚技术细节,则课程设计不及格。答辩部分:40分(没有课程设计说明文档不予参加答辩)设计部分:60分选题:创新性,实用性,界面美观友好(15分)难度:设计包含的难度(15分)设计的完整性(30分),26,迭代和增量开发方式,27,迭代过程的优势,复杂系统分解多个简单系统提高软件项目可控性降低软件开发风险有效地应对需求变更,在迭代过程中,功能的不确定性逐渐减小,我们对功能的描述越来越明确。,28,何时使用迭代开发?,只对希望成功的项目使用,2004年2月4日,马克扎克伯格在大学的宿舍里鼓捣了一个约会网站,项目二 统一建模语言UML,任务1 UML概述任务2 UML静态建模任务3 UML动态建模,30,任务1 UML概述,UML的概念UML的发展UML的主要内容,31,UML与OO(面向对象),32,UML的概念,UML的概念UML Unified Modeling Language 统一建模语言统一建模语言是一种通用的可视化建模语言,用于对软件系统的制品进行规范化、可视化处理,然后构造它们并建立它们的文档。,UML的概念,33,UML的发展过程,Grady Booch,James Rumbaugh和Ivar Jacobson,34,图 与 语言 谁一级棒?,这把刀,也不知道有多长、多宽、多重、由什么材质铸成,由谁铸造?很普通,很平常,也许在我们手中!但,只要是他拿着,握着,这把刀就有了生命,有了气息,追魂的刀,亦是救命的刀,就看他是如何赋予它使命的!,该用图用图 该代码用代码,35,UML的优势,过去数十种面向对象的建模语言各自为战,而UML可以消除一些潜在差异,一统江湖通过统一语义和符号表示,提高面向对象技术使项目建立在一个成熟的标准建模语言基础之上便于沟通和交流,统一的理解,36,UML主要内容,精确的元模型定义 UML表示法 UML表示符 UML可视化的图形建模语言UML提供了五类图形,UML的主要内容,37,任务2 UML的概念模型,UML Structure,构造块building blocks,公共机制common mechanisms,构架architecture,基本UML建模元素、关系和图,达到特定目标的公共UML方法,系统架构的UML视图,38,UML基本的构造块,Page 38,构造块building blocks,事物things,关系relationships,图diagrams,建模元素本身,把事物联系在一起,关系说明两个或多个事物时如何语义相关的,UML模型的视图,它们展现事物的集合,“讲述关于软件系统的故事”,是我们可视化系统将做什么(分析级图)或者系统如何做(设计级图)的方法,39,事物,事物things,结构物件,行为物件,分组物件,注解物件,UML模型中的名词,如类、接口、协作、用例、活动类、组件、节点,UML模型的动词,如交互、状态机,包,它用于把语义上相关的建模元素分组为内聚的单元,注解,它附加到模型以捕获特殊信息,同黄色便笺很相像,40,关系,关系relationships,关联association,依赖dependency,泛化generalization,实现realization,描述对象之间的一组链接,事物的改变引起依赖物件的语义改变,一个元素是另一个元素的特化,而且它可以取代更一般的元素,类元之间的关系,一个类元说明一份契约,另一个类元保证实现该契约,41,图,图diagrams,类图class diagrams,对象图object diagrams,构件图component diagrams,部署图deployment diagrams,用例图use case diagrams,顺序图sequence diagrams,协作图collaboration diagrams,状态图statechart diagrams,活动图activity diagrams,静态模型(系统结构),动态模型(系统行为),42,UML 公共机制,公共机制common mechanisms,规格说明specifications,修饰adornments,公共分类common divisions,扩展机制extensibility mechanisms,43,规格说明,UML模型:使用图和图标可视化模型各种建模元素的规格说明所组成规格说明模型元素的特征和语义的文本描述模型的“肉”形成了承载模型的语义背板,赋予模型意义,各种图仅仅是该背板的视图或者可视化投影,44,修饰,修饰:图中建模元素上暴露的信息项任何UML图仅是模型的视图,只有在修饰增强了图的整体清晰性和可读性或者突出模型的某些重要特征时,才应该表示那些修饰,Window,45,公共分类,描述认识世界的特殊方法类和实例类元:一类事物的抽象概念;如“银行帐户”实例:一类事物的特定实例;如“张三丰帐户”接口和实现接口:说明事物行为的契约(做什么)实现:事物是如何工作的特殊细节(如何做),46,扩展机制,约 束:允许对模型元素添加新的规则构造型:基于已有的建模元素引入新的建模元素标记值:允许为模型元素添加新的特性,是带有相关值得关键字,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,参与者2,用例1,用例2,54,用例“捕获需求”,用例图从系统外部、从用户角度出发描述系统的功能集用例图所描述的系统功能依靠外部用户或另一个系统激活,为用户或另一个系统提供服务,55,用例表达“做什么”,用例图中可以包含若干个用例,用例表达了系统的功能用例只描述参与者和系统在交互过程中做些什么,并不描述怎么做。,56,用例图,关联关系,Page 56,57,用例图,泛化关系,Page 57,58,用例图,泛化关系,Page 58,59,用例图,Page 59,保险销售用例,60,用例图,Page 60,商品订单用例,61,用例图,Page 61,教学管理用例,62,用例用于什么情况?,不知道什么情况不用用例如果没有用到用例,闭门反省,63,实例:监听器用例,64,实例:监听器用例,功能需求 监听删除操作,保证数据的安全。场景 监听删除操作 删除操作一旦执行,立即被监听器捕获到,进而在执行 删除操作前执行自定义的函数体,即判断实体有无undeletable标签,有则中断删除操作,无则正常删除。,65,关系 关联关系;依赖关系;泛化关系;关系的扩展,用例图,Page 65,66,类图,类 名称;属性;操作关联关系泛化 依赖关系 约束,类图,67,类图,类 名称;属性;操作,68,类图,类图,69,类图,类图,70,类图,类图,泛化,关联,71,类图,类图,72,类图,类图,73,何时用 类图?,类图是面向对象方法的支柱如果没用到类图?找电杆撞下,看是否用面向对象方法,74,用 类图 的危险!,类图用滥了,建狗屋画了10页类图类图没分清粗细层次:概念类图规约类图实现类图,75,鸟类图,76,鸟类图,77,鸟类图,78,鸟类图,79,实例:监听器类图,80,使用类图的建议,不要试图使用所有的符号 根据项目开发的不同阶段,用正确的观点来画类图 不要为每个事物都画一个模型,应该把精力放在关键的领域,使用类图的建议,81,对象图,对象图 表示在某一时刻类的具体实例和这些实例之间的具体连接关系,对象图,丁一家里的PC:计算机名称:DELL446内存:128,丁一:作家姓名:丁一年龄:30,82,类 与 对象 关系,83,类 与 对象 关系,对象图使用的是与类图相同的符号和关系,84,类图和对象图的区别,85,包,包 一种分组机制,把各种各样的模型元素通过内在的语义连在一起成为一个整体就叫做包,包,BC,A,A,86,包的关系,引用,使用,87,包软件比赛作品,88,架构图包图的变形,89,任务4 UML动态建模机制,对象之间的交互 状态图 交互图 活动图 四种图的运用,90,软件模型与现实,模型与现实要匹配,91,对象之间的交互,简单消息 同步消息 异步消息 同步且立即返回消息,对象之间的交互,92,什么是状态图?,状态图 用来建模对象是如何改变其状态以响应事件,展示对象从创建到删除的生命周期,状态图,发票状态图,93,状态图,状态标记符,94,状态图,实例:打电话,95,状态图,状态和转移 事件,状态图,96,状态图,如果你太喜欢,97,状态图,详细状态,98,状态图,子状态,状态图,99,状态图,子状态,状态图,100,状态图,子状态,状态图,101,航班状态,102,放松下,103,交互图,顺序图,交互图,104,交互图,顺序图,交互图,105,实例:监听器顺序图,106,电影动画软件模型,电影大量使用3D动画,107,交互图,协作图:交互关系 和 链接关系 链接;消息流;对象生命周期,108,交互图,协作图:交互关系 和 链接关系,109,交互图,协作图 链接;消息流;对象生命周期,交互图,110,顺序图与协作图,相同点 描述对象间的交互关系不同点 顺序图:交互的时间顺序 协作图:交互的静态链接关系,111,3D电影动态建模,112,活动图 状态变种,活动和转移 泳道 对象 信号,113,活动图 状态变种,活动和转移 泳道 对象 信号,114,活动图,活动和转移 泳道 对象 信号,活动图,115,活动图,活动和转移 泳道 对象 信号,116,四种图的运用,动态建模目的、侧重不同状态图只有极少关键对象顺序图、协作图:单用例中几个对象的行为顺序图突出顺序,协作图着重对象间链接关系,四种图的运用,项目三项目市场调研,任务1.系统的研发背景任务2.软件开发计划,118,油画创作背景,波洛克1948年第五号1.4亿$,最昂贵画作这幅画在一副优雅的4x8英尺画布上以画家特有的滴溅泼洒的艺术手法来进行风暴式设计并拨开油彩。,119,任务1 系统的研发背景,追问:为什么呢?你好,这里是梦幻家园售楼处,我是蔡小姐。我是张总,我严重警告你。为什么呢?试用期2月了,你有业绩吗?你卖出去过一套房子吗?为什么呢?问你自己!哦为什么呢?今天下班之前你要再不卖出一套房子去,你就给我卷铺盖走人!(电话挂了)为什么呢?,120,项目背景钢琴练奏师,问:为什么开发这个软件?答:传统的音乐播放器功能单一用户对音乐缺少参与感问:开发这个软件目标是什么?答:提高用户对音乐的学习和娱乐参与创作音乐,121,项目背景钢琴练奏师,问:为什么传统音乐程序不好?答:传统音乐程序功能单一,容易令人感到枯燥无味,没有吸引力;传统音乐程序强调单方向,用户没有参与感;传统音乐程序设计不够灵活,扩展性差。,122,项目背景钢琴练奏师,问:开发内容包括什么?答:本项目从Android的声音处理入手,实现音乐功能,根据用户的兴趣,提高用户参与度。问:有什么应用价值?答:本项目是一个能提高用户参与和娱乐程序的项目,具有一定的使用价值。,123,追求的结果钢琴练奏师,1.2 项目背景传统的音乐播放器功能单一,用户对音乐缺少参与感,本项目志在提高用户对音乐的学习和娱乐,参与创作音乐:(1)传统音乐程序功能单一,容易令人感到枯燥无味,没有吸引力;(2)传统音乐程序强调单方向,用户没有参与感;(3)传统音乐程序设计不够灵活,扩展性差。本项目从Android的声音处理入手,实现音乐功能,根据用户的兴趣,提高用户参与度。本项目是一个能提高用户参与和娱乐程序的项目,具有一定的使用价值。,124,系统的研发背景,1.图书馆系统的提出 传统的手工方式对图书信息的管理已越来越不能适应社会发展的需要,尤其是随着计算机网络和Internet的普及,运用先进的信息管理系统对信息进行科学化和网络化管理,已成为图书信息管理系统发展的趋势。,125,系统的研发背景,2.国内外研发现状图书管理系统的发展历史国内外应用的图书管理系统调研(1)开发方式(2)开发方法(3)结构形式(4)开发平台(5)系统使用的范围(6)按照系统开发主体面向的对象 国内图书管理系统应用情况,126,国内Android开发行业市场现状,国内的Android开发还是以应用开发为主,主要分成3类:为企业开发应用开发通用应用(Android Market或者其他App Market销售)游戏开发(Android Market或者其他App Market销售)。,127,国内Android开发行业市场现状,第一类开发者在较大的公司,为自有品牌或者其他品牌设计手机或者平板电脑的总体方案。根据需求对系统进行定制外,为系统编写定制的应用。第二类开发者在创业型公司或者是独立开发者,盈利方式主要2种:为国外公司外包开发,或者通过Google的移动广告(AdMob)点击分成。通过付费下载的形式来盈利的,现在国内鲜见成功者。第三类开发者和第二类开发者类似。开发者提交的应用开发数目远超游戏开发。,128,任务2 软件开发计划,问题定义,可行性研究,可行否?,否,是,终止项目,.,129,任务2 软件开发计划,难于上青天!做项目计划,如同给一个待出生的婴儿写传记易如反掌!如果项目结束后再写计划,那就轻松多了,并且可以100%地准确,130,软件开发计划,1.问题定义 目标!目标!目标!。,131,软件开发计划,1.问题定义(1)问题定义的任务开发目标开发规模开发时间(2)问题定义的内容文档化以上内定,132,问题定义案例,项目名称:教材销售系统开发背景:人工发售教材手续繁琐,且易出错。项目目标:建立一个效率比人工操作提高2倍、差错率下降50%的系统。项目范围利用现有PC(不增加设备)软件开发费用不超过100万元完成时间2012年10月31日初步想法:在系统中增加采购功能、对缺书的统计可行性研究的计划进行大约2周的可行性研究,133,项目可行性,遇到挑战(完成了,但超时或超支),成功,失败,基于23,000多个项目统计,134,软件开发计划,可行性分析:决定“做还是不做”需求分析:决定“做什么,不做什么”。实际案例:机票代理人项目老板的干活,135,软件开发计划,2.可行性分析(1)主要内容 可行性分析四大要素:经济技术环境人,136,可行性分析案例1,炫铃项目的可行性无人无积累(技术)环境(有市场前景)资金(1年),137,可行性分析案例2,华为任正非早期冒险:人不够(一边开发,一边找人)无积累(无技术红宝书)资金(前期约1年,后欠工资)环境(有市场,政策无支持)一拍脑袋:“豁出去,干!”,138,可行性分析案例3,联想集团柳传志没钱赚的事我们不干;有钱赚但投不起钱的事不干;有钱赚也投得起钱但没有可靠的人选,这样的事也不干。,139,成本收益分析,成本:(1)办公室房租。(2)办公用品,如桌、椅、书柜、电器、空调。(3)计算机、打印机、网络等硬件设备。(4)电话、传真等通讯设备以及通讯费用。(5)资料费。(6)办公消耗,如水电费、打印复印费等。(7)软件开发人员与行政人员工资。(8)系统软件费用,如数据库、开发工具等。(9)市场调查、可行性分析、需求分析的费用。(10)公司人员培训费用。(11)产品宣传费用。(12)如果客户攻关费,吃喝玩乐的费用。(13)管理费。每戳一个公章都要化一把钞票。,收入:项目收入(合同),人在钱没了,140,技术可行性,技术可行性可以表述为:做得了吗?做得好吗?做得快吗?,141,社会环境的可行性,社会环境的可行性:市场未成熟的市场成熟的市场将消亡的市场政策例:民航收费电信收费,142,人才可行性,有人吗?手上的人挖掘一下够用吗?要多少才够成本超支可找吗?挖得到给得起¥,21世纪人才最贵,143,软件开发计划,2.可行性分析(2)可行性分析的主要步骤确定目标进行系统调查 列出可能的技术方案 技术先进性分析 经济效益分析综合评价 优选可取方案并写出可行性分析报告,144,软件开发计划,(3)可行性分析的评价原则 效益性原则 经济性原则 可靠性原则 可比性原则,145,软件开发计划,3.可行性分析报告可行性分析报告的一般格式 可行性分析报告通常包括封面和内容两个部分可行性分析报告案例 图书管理系统,146,软件开发计划,4.系统的开发计划 开发计划主要任务 项目开发计划编写提示图书馆管理,苹果飞船总部计划1.3万人,147,小结,案例:图书馆管理系统研发背景问题定义可行性分析主要任务基本的步骤分析报告开发的计划主要任务计划的制订,项目四 软件项目需求分析,149,项目四 软件项目需求分析,任务1.调查系统的需求 任务2.模型 任务3.事件 任务4.事物任务5.实体联系图任务6.类图,陷阱:武器的进步,150,任务1.调查系统的需求,1.调查系统的需求 功能需求和技术需求系统相关者建立系统需求原型,151,需求分析的困难!,(1)客户说不清楚需求;(2)需求自身经常变动;(3)分析人员或客户理解有误。,152,需求分析的困难!,(1)客户说不清楚需求例:买鞋子脚大小形状,153,需求分析的困难!,(2)需求自身经常变动没有一个软件的需求改动少于三次唯一改动需求两次的在去第三次改动需求的路上去世了例:时装,154,需求分析的困难!,(3)分析人员或客户理解有误,155,调查系统的需求,1.功能需求和技术需求功能需求系统必须完成的活动,是系统将要投入的业务应用技术需求和企业的环境、硬件和软件有关的所有可操作目标,156,调查系统的需求,树上有10只鸟,打了1只,还有几只?“是无声手枪或别的无声的枪吗?”“不是。”“枪声有多大?”“80-100分贝。”“那就是说会震的耳朵疼?”“是。”“在这个城市里打鸟犯不犯法?”“不犯。”“您确定那只鸟真的被打死啦?”“确定。”偶已经不耐烦了“拜托,你告诉我还剩几只就行了,ok”“ok,树上的鸟里有没有聋子?”“没有。”“有没有关在笼子里的?”“没有。”,“边上还有没有其他的树,树上还有没有其他鸟?”“没有。”“有没有残疾的或饿的飞不动的鸟?”“没有。”“算不算怀孕肚子里的小鸟?”“不算。”“打鸟的人眼有没有花?保证是十只?”“没有花,就十只。”偶已经满脑门是汗,且下课铃响,但他继续问,“有没有傻的不怕死的?”“都怕死。”“会不会一枪打死两只?”“不会。”“所有的鸟都可以自由活动吗?”“完全可以。”学生满怀信心的说,“打死的鸟要是挂在树上没掉下来,那么就剩一只,如果掉下来,就一只不剩。”,157,调查系统的需求,2.系统相关者 用户:实际使用系统处理日常事务的人客户:那些购买和拥有系统的人技术人员:确保系统运行的人外部实体:例如公司的顾客,比尔-盖茨:“我家没有任何一款苹果产品,我们全家也从来不吃苹果。”乔布斯:“我家一个窗户都没有。”,158,调查系统的需求,需求调查方法:直接与客户交谈足球评论员“大嘴”侃出需求有些需求客户讲不清楚请教行家“听君一席言,胜读十年书。”客户与分析人员想都没有想过分析同类软件,优点、缺点坐享其成,巴乔在前有追兵,后有堵截的情况下带球冲入禁区.AC米兰队目前以1:3领先.球员30公里外一脚远射!,159,调查系统的需求,3.建立系统需求原型(1)确定现有系统的物理过程和活动(2)从现有物理过程中提取出业务逻辑功能(3)为将在新系统中使用的方法开发出业务逻辑功能(删)(4)定义新系统的物理处理需求(物理改为业务),160,任务2 模型,2.模型 模型的作用及类型 逻辑模型和物理模型例:法拉利牌坦克酷性能突出,流线型设计符合年轻人爱好战斗力很差,161,模型,1.模型的作用及类型(1)模型的作用提取系统需求信息 系统分析员整理思路 系统的分析和集成 记忆和把握相关细节 系统开发小组间进行交流 为维护和升级提供文档参考,大爆炸宇宙模型,162,模型,1.模型的作用及类型(2)模型的类型 数学模型描述系统技术方面的一系列数学公式如:利润收入成本 描述模型描述系统某些方面的叙述性的备忘录、报表、列表、文字等如,监听删除操作:删除操作一旦执行,立即被监听器捕获到,进而在执行删除操作前执行自定义的函数体,即判断实体有无undeletable标签,有则中断删除操作,无则正常删除。图形模型描述系统的图表或系统某些方面的示意性表示,163,模型,2.逻辑模型和物理模型(1)逻辑模型在系统分析阶段所建立的模型详细定义了系统需求但并没有局限于某一具体技术 常用逻辑模型用例图类图顺序图状态图/协作图注意:面向对象 与 面向过程,164,模型,2.逻辑模型和物理模型(2)物理模型在系统设计阶段建立的模型显示了如何使用具体技术来实现系统的某些方面常用模型界面报表数据库结构流程网络分布,165,任务3 事件,3.事件 事件的概念和类型 事件定义 图书馆管理系统中的事件,黑屏事件,166,事件,1.事件的概念和类型(1)外部事件(2)临时事件(3)状态事件 2.事件定义(1)区分事件和触发事件的条件以及系统响应(2)跟踪事务处理的生命周期(3)暂不考虑技术依赖事件和系统控制,167,事件,3.图书馆管理系统中的事件 书目查询帐户查询及更改预约/退订图书借/还书逾期罚款丢失赔偿催还图书借书排行,168,事件,3.图书馆管理系统中的事件 书目查询借/还书,169,金刚3D软件建模,2.07亿美元 3500台计算机“金刚”完全电脑特效 电影技术进入电脑时代,170,任务4 事物,4.事物1.事物的概念和类型 2.事物间的关系3.事物的属性4.数据实体和对象,“人要么是天才,要么是笨蛋!”“你想一辈子卖糖水,还是改变世界?”“我们从不以偷窃别人的伟大作品为耻!”“软件就是用户体验。”,171,事物,1.事物的概念和类型,172,事物,1.事物的概念和类型特征驱动开发(FDD)四色建模,173,事物,2.事物间的关系3.事物的属性,174,事物,4.数据实体和对象,175,任务5 实体联系图,数据存储需求结构化分析方法把重点集中在系统的数据存储需求上数据存储需求:数据实体数据实体的属性实体间的关系,176,任务5 实体联系图,数据存储需求结构化分析方法数据流图(DFD),177,实体联系图(ERD)用来定义数据存储需求的模型,任务5 实体联系图,178,任务5 实体联系图,179,任务5 实体联系图,180,任务5 实体联系图,181,任务6 类图,6.类图用面向对象的方法分析事物类图的符号 建模的目标 需求分析规格说明书编写提纲,182,类图,1.用面向对象的方法分析事物 分类分析方法(概括具体)继承,183,类图,1.用面向对象的方法分析事物 分类分析方法(概括具体)继承,184,类图,1.用面向对象的方法分析事物 整体局部分析方法聚合合成,185,类图,2.类图的符号 基于统一建模语言(UML)面向对象系统开发中建立模型的实际标准,186,类图,2.类图的符号 基于统一建模语言(UML)面向对象系统开发中建立模型的实际标准,187,类图,3.建模的目标 结构化方法:错误的!事件表数据流图(DFD)面向对象方法:事件表用例图类图顺序图/状态图,188,类图,3.建模的目标 结构化方法-错误的!面向对象方法,189,需求分析规格说明书,仅仅建模还是不够的需求分析成果需求分析说明书需求分析规格说明书提纲1引言2任务概述3需求规定4运行环境设定5缩写词表6参考文献,190,送餐管理系统需求分析过程,分析员:“在你们打理生意时,哪些事情促使你们决定采用计算机管理?告诉我通常这些业务是如何进行的。”客户:“是这样,当客户打电话订餐时,我需要把它记下来,然后通知给相应的餐馆。我需要决定派哪一个司机去送货,因此要司机打电话告诉我他们什么时间有空。有时,客户会又打电话更改订单内容,因此我必须找到原始订单,然后通知餐馆更改。”分析员:“好的,那你们又怎么管理现金呢?”客户:“司机取饭菜时会从餐馆直接拿到账单的副本,账单和我们的计算应该是一致的,然后司机送货时收取相应的现金并加上服务费。在下班时,司机报账,我们把司机收到的现金汇总起来,和我们的记录进行比较,所有的司机都交完账后,我们需要开张银行存款单,存入当天的现金总收入。每周末,我们按提前约定的批发价来计算欠餐馆多少钱,把结算单和支票寄给他们。”,191,送餐管理系统需求分析过程,分析员:“那你们还想从这个系统中获取别的信息吗?”客户:“如果每周末能统计出每个餐馆有多少订单、城里每个区有多少订单等信息就更好了。这能帮助我们制定广告策略及与餐馆的合同,而且我们还需要每月财务状况统计结果。”在客户说话时,分析员记下了几个要点,画了几张草图。之后,他花了一些时间仔细考虑,总结出“送餐管理”的需求状况。,192,送餐管理系统需求分析过程,1.在发生如下事件时,系统可以进行处理:客户打电话下订餐订单客户打电话修改订单送货司机汇报工作情况送货司机上交一天的收入2.在特定时间内系统产生所需信息:生成日结算存款单生成周末餐馆支付帐单生成周销售报表生成月财务报表,3.需要建立业务实体:餐馆菜单客户订单订单支付帐单司机(送餐员),193,送餐管理系统用例图,194,送餐管理系统类图,195,送餐管理系统顺序图,196,小结,面向对象分析方法(掌握)用例图类图顺序图状态图/协作图(可选)结构化分析方法(了解)实体联系图数据流图,项目五软件项目总体设计,198,软件项目总体设计,1.总体设计基本内容 2.结构化软件设计3.面向对象软件设计,199,任务1 软件总体设计,1.总体设计的基本内容 软件设计定义总体设计的目标与步骤总体设计的基本任务总体设计的准则,200,软件设计分解过程,总体设计,详细设计,201,总体设计的基本内容,1.软件设计设计解决从需求(做什么?)到(怎么做?)概要设计(总体设计)将软件需求转化为软件体系架构确定系统级接口全局数据结构或数据库模式详细设计确立每个模块的实现算法和局部数据结构用适当方法表示算法和数据结构的细节,202,软件设计,总体设计体系结构就如同人的骨架如骨架是猴子,无论怎样喂养和美容,始终是猴子,成不了人。模块(子系统)就如同人的器官,有特定的功能最出色的子系统是手,只有几种动作,却能做无限多的事情。最糟糕的模块设计之一是嘴巴,混合毫无相干的功能(如吃饭、说话、亲吻),203,软件设计,详细设计数据结构与算法如同人的血脉和神经(发挥功能)聋子天生就是哑巴(关系)人体的数据结构与算法设计十分神奇也十分可笑用户界面如同人的外表,让人一见钟情(或一见呕吐)Unix系统是健壮的汉子和妇人Windows系统是妩媚的小白脸和狐狸精化妆可以获得更好的界面,204,总体设计的基本内容,1.总体设计的目标 设计合理的软件架构分解为合理的模块(包)2.总体设计的步骤:(1)用户需要系统逻辑模型(2)系统分解成一组模块(包)(3)确定模块的功能满足需求(4)形成总体设计文档,205,总体设计的基本任务,1.设计软件结构2.数据结构及数据库设计(一般在详细设计)3.编写总体设计文档4.评审,206,总体设计的基本内容,1.软件设计 软件架构是总体设计的核心内容,207,体系结构是本质的,软件系统中最本质的东西对复杂事物的一种抽象 在一定的时间内保持稳定常见层次结构和WEB结构,208,总体设计层次结构,为什么分层次?系统太复杂无法一口气干完与人的认识符合,209,总体设计体系结构,JAVA开发平台体系结构,210,总体设计网络结构,JAVA开发平台网络结构,211,总体设计系统架构,JAVA开发平台架构,212,总体设计模块功能划分,体系结构(决定)各模块功能从功能上划分模块模块化设计原则保持“功能独立”抽象(事物本质)信息隐藏,213,总体设计模块功能划分,保持“功能独立”降低开发、测试、维护等阶段的代价沟通成本最低例:美国独立战争(独立国家),214,总体设计模块功能划分,抽象(事物本质)抽象是设计的本质例:微软和联通有仇?国际码,“啊”:B0A1,215,总体设计模块功能划分,信息隐藏模块只提供对外的接口模块内部不对外开放好事不出门,坏事传千里!(克林顿)老师:要是坐在后排聊天的同学能象中间打牌的同学那么安静,就不会影响到前排睡觉的同学。,216,总体设计UI模块,JAVA开发平台UI模块,217,总体设计DAO模块,JAVA开发平台DAO模块,218,总体设计DAO模块,JAVA开发平台MVC模块,219,总体设计DAO模块,JAVA开发平台Model模块,220,总体设计的基本内容,3系统架构3.1系统总体架构3.1.1UI构件3.1.2DAO构件3.1.3MVC构件3.1.4MODEL构件,总体设计的说明1前言1.1目标1.2系统设计特点1.3系统体系结构2系统网络结构2.1系统网络拓扑2.2软硬件要求,221,总体设计的准则,Davis的设计准则(1)设计考虑各种可选方案,根据需求/资源/概念决定(2)设计应可以跟踪需求分析模型(3)设计资源都是有限的(4)设计应体现统一的风格(5)设计的结构应尽可能满足变更的要求(6)设计的结构应能处理异常(7)设计不是编码,编码也不是设计(8)设计的质量评估应在设计的过程中进行(9)设计评审应关注概念性的错误,而不是细节,程序猿,222,任务2 结构化的软件设计,1.结构化设计的基本概念(1)模块(2)模块的独立性(3)抽象(4)信息隐蔽,冷兵器,223,结构化的软件设计,2.结构化的设计方法(1)功能模块划分设计(2)面向数据流设计(3)输入/输出设计,224,模块划分的设计,功能模块划分设计,系统管理,图书管理,读者管理,225,面向数据流设计,变换型数据流设计,226,面向数据流设计,事务型数据流,227,输入/输出设计,输入/处理/输出设计,228,结构化的软件设计,3.运行环境设计 硬件平台CPU硬盘内存软件平台操作系统数据库,229,任务3 面向对象设计,面向对象的的设计方法系统行为图书管理系统的用例图对象交互图书管理系统的交互图 对象行为图书管理系统的状态图,230,面向对象的软件设计,231,面向对象的软件设计,是一种新的程序设计范型是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件开发方法,232,面向对象方法主要思想,从现实世界中存在的事物出发建立软件系统以问题域(现实世界)中的事物为中心来思考问题、认识问题根据这些事物的本质特征,抽象地表示为系统中的对象使系统直接映射问题域,保持问题域中事物及其相互关系的本来面貌充分运用人类日常的思维方式,233,面向对象方法主要思想,从现实世界中存在的事物出发建立软件系统充分运用人类日常的思维方式运用人类在日常的逻辑思维中采用的思想方法与原则,例如抽象、分类、继承、聚合、封装等软件开发者能更有效地思考问题,其他人能看得懂的方式把自己的认识表达出来,234,面向对象开发方法的开发过程,面向对象分析,面向对象设计,面向对象编程,235,软件开发全过程运用面向对象方法,面向对象语言正取得令人振奋的发展编程并不是软件开发问题的主要根源需求分析与设计问题更为普遍并且更值得解决适合于解决分析与设计期间的复杂性实现分析与设计的复用在软件生命周期采用一种全新的方法软件工程百科全书,236,面向对象方法,对象:属性+服务(独立的系统单位)尽可能隐蔽对象的内部细节,237,面向过程与面向对象的区别,238,面向对象的软件设计,1.面向对象的的设计方法 设计特点:抽象性信息隐藏性功能独立性模块化设计步骤:识别对象确定属

    注意事项

    本文(软件工程与项目案例教程t.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开