java面向对象软件开发.pptx





《java面向对象软件开发.pptx》由会员分享,可在线阅读,更多相关《java面向对象软件开发.pptx(168页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、清华大学计算机系清华大学计算机系 谌卫军谌卫军第第1010章章 面向对象软件面向对象软件开发开发教学内容教学内容2团队(团队(team)1软件过程软件过程2软件需求软件需求3面向对象分析与设计面向对象分析与设计4软件测试软件测试5Why work in teams?Why work in teams?团队的重要性团队的重要性双拳难敌四手,好汉架不住人多双拳难敌四手,好汉架不住人多一个篱笆三个桩,一个好汉三个帮一个篱笆三个桩,一个好汉三个帮三个臭皮匠,胜过诸葛亮三个臭皮匠,胜过诸葛亮众人拾柴火焰高众人拾柴火焰高人心齐,泰山移人心齐,泰山移3Why work in teams?Why work i
2、n teams?4Why work in teams?Why work in teams?任务分工任务分工分而治之分而治之“如果一个人粉刷一栋房子需要如果一个人粉刷一栋房子需要4 4个小个小时,请问时,请问1010个人粉刷一栋房子需要多个人粉刷一栋房子需要多长时间?长时间?”5十个人刷房子十个人刷房子能否在能否在2424分钟内粉刷完分钟内粉刷完如果只有如果只有3 3把刷子?把刷子?如果如果1010个人当中只有一个人个人当中只有一个人会会刷?刷?如果如果1010个粉刷工的熟练程度不同?个粉刷工的熟练程度不同?如果如果1010个粉刷工的工作时间不同?个粉刷工的工作时间不同?6时间时间 vs.vs.
3、人数人数7可分解的任务人数月份不可分解的任务月份人数人多力量大?人多力量大?8组成团队的目标组成团队的目标9失败的团队1+1 2分工明确分工明确 定岗定编定岗定编10人员选择人员选择了解个人是组建团队的前提了解个人是组建团队的前提长处长处短处短处现有技能现有技能工作的内在动力工作的内在动力性格类型性格类型11成员互补成员互补团队成员具有互补性团队成员具有互补性性格互补、技术互补性格互补、技术互补家庭团队:内外、强弱、家庭团队:内外、强弱、男女葫芦娃团队:葫芦娃团队:12西游记西游记团队团队13人员人员优点优点缺点缺点团队作用团队作用唐僧意志坚定目标明确上司支持领导力有限,业务能力为零项目经理孙
4、悟空业务能力最强性情急躁不服管束不善沟通核心技术骨干猪八戒业务能力较强、性格开朗、情商高你懂的团队润滑油沙和尚忠厚老实踏实肯干缺少能力缺乏主见后勤管理团队成员人数团队成员人数14团队成员人数团队成员人数15沟通与交流成本沟通与交流成本164人团队双向沟通:6小组个数:114 4人增加到人增加到6 6人人174人团队6人团队双向沟通:6-15小组个数:11-57向一个进度延迟的软件项目中增加人员可能会使其更加推迟。组建一个软件开发团队组建一个软件开发团队18需求:定岗定编需求:定岗定编供给:人员选择、角色分配供给:人员选择、角色分配软件开发团队角色软件开发团队角色19角色角色管理人员管理人员开发
5、人员开发人员支持人员支持人员咨询顾问咨询顾问项目经理项目经理项目组长项目组长系统分析员系统分析员系统架构师系统架构师设计人员设计人员编程人员编程人员测试人员测试人员文档管理员文档管理员配置管理员配置管理员领域专家领域专家技术专家技术专家客户客户最终用户最终用户负责规划整个项目过程,协调和分配资源,管理整个项目团队,制定软件项目计划,并执行和监控项目实施过程。开发团队角色开发团队角色20项目经理项目经理负责引导和协调系统的需求获取,确定系统边界与质量范围,建立系统的功能需求模型,文档化和组织系统需求。系统分析员系统分析员 负责引导和协调整个项目的技术活动,确定软件构架和 关键技术决策,确定设计元
6、素分组及其接口。架构设计师架构设计师负责指定子系统的分析设计,按照规范编写子系统的相关 代码,并测试所开发的组件。设计开发人员设计开发人员负责制定测试计划,编写测试用例和测试程序,通过执行系统测试发现和跟踪系统缺陷。开发团队角色开发团队角色21测试人员测试人员负责管理一个项目组所产生的不同版本开发制品,包括文档、模型和代码等。配置管理员配置管理员客户负责提供对系统高层次的目标要求;最终用户负责提供使用系统的功能需求和非功能需求。用户用户领域专家负责提供应用系统中某个具体领域的专门知识;技术专家负责提供关于系统实现方案方面的知识。咨询顾问咨询顾问团队规模团队规模22典型的团队组成典型的团队组成2
7、3项目组长(1人)测试(1人)程序员(23人)美工(1人)教学内容教学内容24团队(团队(team)1软件过程软件过程2软件需求软件需求3面向对象分析与设计面向对象分析与设计4软件测试软件测试51 1、软件过程、软件过程25产品产品开发过程开发过程产品产品开发过程开发过程反馈反馈新清华学堂大剧院新清华学堂大剧院26穿越历史,如何建造新清穿越历史,如何建造新清华学堂大剧院华学堂大剧院.需求分析需求分析27角色角色需求描述需求描述校长以以“普及高雅艺术、传承优秀文化、推进文化建设普及高雅艺术、传承优秀文化、推进文化建设”为宗旨,大力引进高水平专业演出和邀请艺术名为宗旨,大力引进高水平专业演出和邀请
8、艺术名家来清华讲课,实现艺术的育人功能和文化传承创家来清华讲课,实现艺术的育人功能和文化传承创新功能,服务学校人才培养和大学文化建设。新功能,服务学校人才培养和大学文化建设。分管领导“能演出高水平大中型歌舞剧、举办隆重仪典和国能演出高水平大中型歌舞剧、举办隆重仪典和国际会议际会议”,一般的说法是,一般的说法是“歌剧院式的礼堂歌剧院式的礼堂”校办基建处专业级的声学效果专业级的声学效果20002000座席座席属于文保控建区域,建筑物限高属于文保控建区域,建筑物限高2222米,米,演出大厅、排练厅、多功能厅、化妆间、排练厅、演出大厅、排练厅、多功能厅、化妆间、排练厅、接待室等接待室等设计设计28日本
9、建筑大师矶崎新设计所、日本建筑大师矶崎新设计所、北京市建筑设计研究院和清北京市建筑设计研究院和清华大学建筑设计研究院参与华大学建筑设计研究院参与竞标,清华建筑设计研究院竞标,清华建筑设计研究院胜出。胜出。整体设计整体设计外观设计外观设计室内设计室内设计实现实现29新清华学堂的建设施工单位为中国建筑公司。新清华学堂的建设施工单位为中国建筑公司。软件过程软件过程30l软件过程是为了获得高质量软件而实施的一系列活动,它定义了工作任务、项目里程碑、交付物和质量保证点。软件过程制品软件过程制品312 2、软件过程模型、软件过程模型32软件过程模型是软件过程软件过程模型是软件过程的抽象表示的抽象表示.Wh
10、yWhy软件过程模型?软件过程模型?33客户客户开发团队开发团队非定制商品非定制商品34做出来是啥就是啥,争议主要在商品质量和价格做出来是啥就是啥,争议主要在商品质量和价格简单定制商品简单定制商品35软件是复杂定制商品软件是复杂定制商品36客户需深入参与软件系统的构造过程,但是客户需深入参与软件系统的构造过程,但是.客户客户程序员程序员l客户只知自身业客户只知自身业务,不懂软件;务,不懂软件;l客户只知大概,客户只知大概,不知细节;不知细节;l客户的想法可能客户的想法可能变化变化l交流开销与障碍交流开销与障碍l不是做出来是啥不是做出来是啥就是啥,但客户就是啥,但客户有时也不知要啥有时也不知要啥
11、肿么办?肿么办?软件过程模型软件过程模型常见的软件过程模型常见的软件过程模型瀑布模型瀑布模型(Waterfall Model)原型化模型(原型化模型(Prototype Model)迭代开发(迭代开发(Iterative Development)37瀑布模型瀑布模型38l瀑布模型的开发阶段严格按照线性方式进行,每一个阶段具有相关的里程碑和交付产品,且需要确认和验证。瀑布模型瀑布模型适用场合适用场合适用于在开发的适用于在开发的早期阶段早期阶段软件需求被完整软件需求被完整确定的软件项目确定的软件项目缺点缺点开发过程中间很难响应客户的变更要求开发过程中间很难响应客户的变更要求早期的错误可能要等到开发
12、后期的测试阶早期的错误可能要等到开发后期的测试阶段才能发现段才能发现客户客户不能不能尽早看到软件的效果尽早看到软件的效果39原型化模型原型化模型40l原型化模型需要迅速建造一个可以运行的软件原型,以便理解和澄清问题,使开发人员与用户达成共识。用户驱动的交互用户驱动的交互式系统式系统小型或中等规模小型或中等规模的系统的系统迭代开发迭代开发41l迭代开发是利用迭代的思想,使人们渐进地开发软件,逐步完善软件版本。l类型:增量模型、迭代模型增量模型与迭代模型增量模型与迭代模型42增量模型:适用于需求较明确、架构较稳定的软件开发增量模型:适用于需求较明确、架构较稳定的软件开发迭代模型:适用于需求不甚明确
13、、难度较大的软件开发迭代模型:适用于需求不甚明确、难度较大的软件开发增量模型举例增量模型举例43迭代模型举例迭代模型举例44迭代模型举例迭代模型举例45举例:手机开发项目举例:手机开发项目46教学内容教学内容47团队(团队(team)1软件过程软件过程2软件需求软件需求3面向对象分析与设计面向对象分析与设计4软件测试软件测试51 1、什么是软件需求、什么是软件需求48从用户的角度,描述要解从用户的角度,描述要解决的问题,不考虑具体的决的问题,不考虑具体的实现方案实现方案.What to do,not how to do 需求的重要性需求的重要性49需求的重要性需求的重要性50需求的重要性需求的
14、重要性51据英国媒体报道,据英国媒体报道,西班牙地中海城西班牙地中海城市贝尼多尔姆为市贝尼多尔姆为了吸引高端游客,了吸引高端游客,展示城市新形象,展示城市新形象,在海边建起号称在海边建起号称全欧盟最高的全欧盟最高的4747层的摩天楼。但层的摩天楼。但近日人们发现了近日人们发现了一个意想不到的一个意想不到的悲剧悲剧摩天楼摩天楼眼看要完工,建眼看要完工,建造商却忘了装电造商却忘了装电梯。梯。软件需求的定义软件需求的定义52用户解决问题或达到目标所需的条件或能力用户解决问题或达到目标所需的条件或能力系统或系统部件要满足合同、标准、规范或其它正式规定系统或系统部件要满足合同、标准、规范或其它正式规定文
15、档所需具有的条件或能力。文档所需具有的条件或能力。一种反映上面一种反映上面 或或 所描述的条件或能力的文档说明。所描述的条件或能力的文档说明。IEEE,1999需求是指明必须实现什么的规格说明。它描述了系统的行为、需求是指明必须实现什么的规格说明。它描述了系统的行为、特性或属性,是在开发过程中对系统的约束。特性或属性,是在开发过程中对系统的约束。Sommerville软件需求的层次软件需求的层次53用户需求用户需求从用户期望角度出发,提出的为了解从用户期望角度出发,提出的为了解决用户实际问题而提出的系统在功能决用户实际问题而提出的系统在功能或非功能上应该具备的各种特性。或非功能上应该具备的各种
16、特性。通常使用自然语言、图表和直观的图通常使用自然语言、图表和直观的图形进行描述,只描述系统的外部行为,形进行描述,只描述系统的外部行为,便于用户阅读和理解。便于用户阅读和理解。软件需求的层次软件需求的层次54系统需求系统需求详细地描述系统将要提供的功能或服详细地描述系统将要提供的功能或服务以及系统所受到的约束和限制,它务以及系统所受到的约束和限制,它可能成为客户与软件开发商之间开发可能成为客户与软件开发商之间开发合同的重要内容。合同的重要内容。通常使用更专业化的符号系统进行描通常使用更专业化的符号系统进行描述,包括结构化语言、需求的图形模述,包括结构化语言、需求的图形模型、形式化数学描述等。
17、型、形式化数学描述等。软件需求的层次软件需求的层次55虽然我很可爱,但却是个电脑盲要是能在网上交电话费那就太方便了,我去问问软件工程师方世玉世玉,帮我做一个软件,能够上网缴电话费登录缴费系统输入电话号码并验证正确性查询费用连接网上银行缴费赞!软件需求的类型软件需求的类型56功能需求功能需求系统应该提供的服务、如何对输入做系统应该提供的服务、如何对输入做出反应以及系统在特定条件下的行为出反应以及系统在特定条件下的行为描述。描述。通常涉及用户或外部系统与该系统之通常涉及用户或外部系统与该系统之间的交互,一般不考虑系统的实现细间的交互,一般不考虑系统的实现细节。节。软件需求的类型软件需求的类型57非
18、功能需求非功能需求对系统提供的服务或功能给出的约束,对系统提供的服务或功能给出的约束,包括时间约束、开发过程的约束、标包括时间约束、开发过程的约束、标准等。准等。通常应用于整个系统而不是单个特性通常应用于整个系统而不是单个特性或服务。或服务。软件需求的类型软件需求的类型58软件需求的类型软件需求的类型59软件需求的类型软件需求的类型60程序化交易系统?程序化交易系统?可靠性的重要性可靠性的重要性6120132013年年8 8月月1616日,光大事件日,光大事件2 2、需求获取、需求获取需求获取的关键在于通过与用户的沟通需求获取的关键在于通过与用户的沟通和交流,收集和理解用户的各项要求。和交流,
19、收集和理解用户的各项要求。需求获取的困难需求获取的困难用户通常并不真正知道自己希望计算机系用户通常并不真正知道自己希望计算机系统做什么统做什么用户通常使用业务语言表达需求,而开发用户通常使用业务语言表达需求,而开发人员缺乏相关的领域知识和经验,难以准人员缺乏相关的领域知识和经验,难以准确理解这些需求确理解这些需求不同的用户提出不同的需求,可能存在矛不同的用户提出不同的需求,可能存在矛盾和冲突盾和冲突62需求获取的困难需求获取的困难63需求获取的困难需求获取的困难64写需求就像盲人摸象写需求就像盲人摸象65语言歧义语言歧义66Shoes Must Be WornDogs Must Be Carr
20、iedlMust I carry a dog?lWhat about the new shoes in my shopping bag?lDo dogs have to wear shoes?lWhat are shoes?lWhat are dogs?需求获取的困难需求获取的困难67一产品经理被绑,蒙眼,惊问:一产品经理被绑,蒙眼,惊问:“你们想干什么?你们想干什么?”,对方不语,鞭笞之。,对方不语,鞭笞之。产品经理求饶:产品经理求饶:“别打,想劫财?我给你们钱!别打,想劫财?我给你们钱!”,又一鞭。,又一鞭。“想劫色?可我是男的啊?想劫色?可我是男的啊?”,又一鞭。,又一鞭。产品经理崩溃了
21、:产品经理崩溃了:“你们你们TMDTMD到底想要啥?到底想要啥?”程序员:程序员:“想要啥?我们帮你做项目,写代码的时想要啥?我们帮你做项目,写代码的时候,也很想知道你候,也很想知道你TMDTMD到底想要啥!到底想要啥!”需求获取方法需求获取方法683 3、用例建模方法、用例建模方法用例建模方法是使用用例建模方法是使用UMLUML语言的用例图定义系语言的用例图定义系统的功能需求,它是从系统外部观看系统功统的功能需求,它是从系统外部观看系统功能,并不描述系统内部对功能的具体实现。能,并不描述系统内部对功能的具体实现。69WhyWhy用例建模?用例建模?70传统的软件需求说明书基本上采用的是功能分
22、解的传统的软件需求说明书基本上采用的是功能分解的方式来描述系统功能。方式来描述系统功能。子系统子系统1 1 功能功能 模块模块1.1 1.1 功能功能 模块模块1.2 1.2 功能功能 子系统子系统2 2 功能功能 模块模块2.1 2.1 功能功能 模块模块1.2 1.2 功能功能 缺点:l 缺少主语缺少主语l 缺少各部分之间的关联关系缺少各部分之间的关联关系植物大战僵尸植物大战僵尸71l 撑杆(僵尸)撑杆(僵尸)l 潜水(僵尸)潜水(僵尸)l 鸭子救生圈鸭子救生圈 l 双子向日葵双子向日葵-向日葵向日葵 l 火球火球-豌豆射手豌豆射手 +火炬树桩火炬树桩 用例模型用例模型参与者参与者(Act
23、or)参与者是与系统交互的外部实体。参与者是与系统交互的外部实体。参与者既可以是使用该系统的用户,也可参与者既可以是使用该系统的用户,也可以是与系统交互的其他外部系统、硬件设以是与系统交互的其他外部系统、硬件设备或组织机构。备或组织机构。72用例模型用例模型用例(用例(Use Case)用例是从用户角度描述系统的行为,表示用例是从用户角度描述系统的行为,表示系统所提供的某项服务。系统所提供的某项服务。通讯关联通讯关联(Communication Association)用于表示参与者和用例之间的对应关系。用于表示参与者和用例之间的对应关系。73用例模型用例模型74银行自动提款机的银行自动提款机
24、的主要功能可用下列主要功能可用下列用例图表示:用例图表示:建立用例模型建立用例模型用例建模:使用用例方法来描述系统的用例建模:使用用例方法来描述系统的功能需求功能需求用例图:确定系统中所包含的参与者、用用例图:确定系统中所包含的参与者、用例和两者之间的对应关系,用例图描述的例和两者之间的对应关系,用例图描述的是关于系统功能的一个概述。是关于系统功能的一个概述。用例规格说明:针对每一个用例都应该有用例规格说明:针对每一个用例都应该有一个用例规格说明文档与之相对应,该文一个用例规格说明文档与之相对应,该文档描述了用例的细节内容。档描述了用例的细节内容。75建立用例模型的步骤建立用例模型的步骤76确
25、定参与者确定参与者谁在使用系统?它们在与系统的交谁在使用系统?它们在与系统的交互中扮演什么角色?互中扮演什么角色?确定用例确定用例确定用例,建立参与者与用例之间确定用例,建立参与者与用例之间的联系,绘制用例图。的联系,绘制用例图。编写用例编写用例 描述描述规格说明参与者与系统之间是如何规格说明参与者与系统之间是如何进行交互的。进行交互的。确定参与者确定参与者确定参与者的问题确定参与者的问题系统开发完成后,有哪些人会使用该系统系统开发完成后,有哪些人会使用该系统?系统会为哪些人或其他系统提供数据?系统会为哪些人或其他系统提供数据?系统需要从哪些人或其他系统中获得数据系统需要从哪些人或其他系统中获
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 面向 对象 软件 开发

限制150内