软件开发过程之《软件是这样炼成的》ppt课件.pptx
《软件开发过程之《软件是这样炼成的》ppt课件.pptx》由会员分享,可在线阅读,更多相关《软件开发过程之《软件是这样炼成的》ppt课件.pptx(69页珍藏版)》请在三一办公上搜索。
1、软件是这样炼成的,制作人:郑培泰2016年6月25日,开篇故事,某政府要建造一座20层的办公楼,用于机关单位办公。建筑面积2万平米,投资预算1.2亿。某建筑设计研究院参与了楼房设计。某建筑公司承接了大楼的建造工程。同时,政府聘请了监理公司参与工程的监督管理。,那么,整个大楼从筹划到建造完成是怎样一个流程呢?,这和软件开发流程有什么相似的地方吗?,Back,开篇故事分析(一),政府单位:是客户,大楼这个产品的使用者。所关心的是:,投资的规模楼层高度、建筑面积建造地址的选择大楼的功能要求其他需求,点评:从客户那里,能了解到他们需要的是什么。是产品设计、开发的最根本依据。,Back,开篇故事分析(二
2、),设计研究院:产品的设计者,主要工作:,第一步:了解客户所关心的东西客户需求,点评:设计研究院分析客户需求,并将需求转化为产品设计,再将设计蓝图细化落实为施工图纸。,第二步:根据客户需求进行大楼的设计选择合适的体系结构(居民楼、办公楼、教学楼)选择合适的建筑风格(中式、欧式、其他)进行楼体结构设计、外观设计、水电气管道设计、消防安全设计等,形成设计蓝图。,第三步:根据设计蓝图,设计具体的施工图纸。,投资的规模楼层高度、建筑面积建造地址的选择大楼的功能要求其他需求,Back,开篇故事分析(三),建筑公司:根据施工图纸和施工规范施工完成大楼的建造。,施工图纸、手册施工规范施工工具、器械建筑材料工
3、地搭建等,点评:建筑公司,相当于程序员,配置好软硬件开发环境,根据设计图、手册和编码规范,完成软件的“建造”工作。,监理公司:负责施工工程的质量鉴定控制和验收工作。,Back,故事总结建筑工程与软件开发流程对比图,区别:,Back,进入正题:软件是这样“炼”成的,本书作者:王朔韬研究软件企业开发过程改进和软件架构,出 版 社:清华大学出版社,主要内容:从需求开发到软件成型交付的整个软件开发流程。全书以投核保系统为唯一案例,全程记录了软件开发、设计的全过程。,编写特点:“学院派”(注重理论)与“应用派”(注重应用)结合,不过分注重抽象概念的定义,结合实际案例理解为主。比如:当一个概念不容易去弄明
4、白是什么时,就先去弄明白它能做些什么、怎么做、他的引入带来的好处,然后再去思考它是什么。,Back,正题:软件是这样“炼”成的内容结构,上册分三篇:软件需求开发软件架构设计(概要设计、详细设计)数据架构设计,两册六篇125章,今天只讲上册。,涉及三个评审一个讨论:需求报告评审会概要设计评审会数据库设计评审会关于详细设计的讨论,Back,第一篇:软件需求开发,Back,1.1需求分析报告评审会第一个评审会,项目名称:投核保系统项目规模:大型金融项目产品经理:在项目合同签署10天就完成了业务调研和需求分析 报告的编写参会人员:客户代表、市场部、产品开发部、质量保证部、测试部、 评审专家顾问等PPT
5、 讲解:产品经理开始对需求分析报告PPT进行讲解,前后用了 10分钟讨论意见:PPT讲解结束,大家都觉得汇报非常成功。评审专家:公司聘请的改进公司当前项目开发管理流程的顾问,向与 会的每个人提问了解情况,提出评审意见。,专家评审意见:,不通过,为什么呢,?,存在的问题:需求分析报告脱离了业务调研报告,没有业务调研报告,闭门造车凭空设想没有实际意义。将组织机构图照搬为系统结构图。文档结构不清晰,逻辑混乱。对UML和面向对象分析方法一知半解,专业知识不够。领域类图抽象不完整,对领域类图的理解不够,不能为系统架构过程提供任何知道没有具体的指标,用词含糊,无法为架构师和测试人员提供测试标准。,【现场情
6、景】,点评: 该案例中,出现的问题也是很多软件开发企业存在的问题。尤其是很多中小软件企业,不注重软件开发前期的准备工作。由于工期紧张,为了节省时间往往需求调研还不够充分的情况下,就开始进入了软件设计开发阶段,造成后期编码过程中不断翻工、修改,甚至出现推到重做的情况。 所谓磨刀不误砍柴工。下面要讲的内容就是“磨刀阶段”之“业务调研阶段”,主要包括:面向对象和UML等基础知识、业务调研报告的结构和编写要求。,Back,1.2 面向对象的概念(一),系统分析法中最流行的方法:面向对象分析法。面向对象的建模语言:统一建模语言(Unified Modeling Language,UML)业界内认可对比较
7、高的一种语言,什么是对象?,万物皆对象!,比如:一辆汽车、一个人、一张成绩单、一份课程表,什么是类?,具有相同属性和功能的所有对象的集合。,比如:交通工具、淄博人等,什么面向对象?,面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。,Back,1.2 面向对象的概念(二),什么是接口?,是一个抽象的概念,是指系统对外提供的所有服务。,接口描述系统能够提供哪些服务,但不包含服务的实现细节。每个对象都是服务提供者,所以每个对象都有接口。,类和接口的对比!,类:Class! 接口:Interface!,类是对象的集合接口是服务的集合,没有实现代码接口一般需要某个类来支
8、持他(实现它的服务细节)接口的真正用途:提供一种规范。实现这个接口的类,实际上就是满足了这个接口的规范。,比如:世界上有1000种插头,但只有两种插口,2孔和3孔,类,接口,支持,Back,1.2 面向对象的概念(三),面向对象的三个技术!,一、封装:是一种信息隐藏技术,二、继承:是类与类之间的一种关系(父类、子类关系),三、多态:是将多种不同的特殊行为进行抽象的一种能力,是指将一组数据和与这组数据有关的操作放在一起,形成一个能动的实体对象封装机制的目的就是将对象的使用者和设计者分开,类层次反映了现实世界中普遍存在的一般与特殊的关系,本质是从已有的类基础上扩充、改造得到新的类。可以修改和重写父
9、类中的方法。优点:提高软件的重用性,便于实现多态性便于系统的扩展,使得语言具有根据对象的不同类型以不同方式处理通常要结合继承性一起发挥作用,Back,1.2 面向对象的概念(四),什么是面向对象分析技术?,面向对象分析方法(Object-Oriented Analysis,OOA),是在一个系统的开发过程中进行系统业务调查以后,按照面向对象的思想来分析问题。,建模语言:UML语言UML动态模型图:包括交互图、行为图(一)交互图:时序图、协作图;(二)行为图:状态图、活动图。UML静态图:包括类图、用例图、包图、组建图、配置图,面向对象软件设计一般步骤:需求分析、分析设计、编码实现、测试和维护。
10、,面向对象的基本准则:,信息隐藏:通过对象的封装来实现。减少通信开销:设计中应做到子系统的各个部件之间的通信量达到最小。良好的可扩展性:继承和多态在程序设计中有很好的可扩展性。高内聚:内聚度高的模块很容易理解很容易被服用、扩展和维护低耦合:使系统中某一部分的变化对其他部分的影响降到最低,各个系统模块之间应该相互独立。,Back,1.3 UML介绍(一),UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言,用模型来描述系统的静态特征和动态特征。 UML可以从不同的角度为系统架构进行建模,为不同的开发人员,形成不同的视图。,UML的组成:,图:UML中分9种(后面讲),视图:是有一个或多
11、个图组成的对系统的抽象。分5种(后面讲),模型元素:包括事物和关系,通用机制:包括修饰、注释、规格说明、通用规划和扩展机制。,图是UML的重要组成部分,所有的视图都可以由前述的9种基本图组成。,UML图分为静态图和动态图:静态图主要包括:用例图、类图、对象图、组件图、部署图。动态图主要包括:协作图、状态图、活动图、顺序图。,UML视图分五类:用例视图:从用户角度来描述系统应具有的功能,是对系统的抽象表示逻辑视图:是从系统的静态结构和动态行为角度分析如何实现系统的功能实现视图:主要供开发者使用,进程视图部署视图:主要描述系统的部署方式,UML图:,UM视图:,事物:代表一切可以定义的东西。分为:
12、结构事物、行为事物、分组事物,2. 关系:把事物联系在一起,组成有意义的结构。分为:关联关系、依赖关系、泛化关系、实现关系、聚合关系,Back,用例是抽象出来的用以描述人或事物具有哪些功能的概念。需求分析中用例图会用到。后面再讲.,1.3 UML介绍(二),UML关系,能够很好的将用户所理解的事物符号联系起来,描述一个有意义的结构。 UML中,根据不同的视图对关系进行分类,但大体一致,用例关系,关联关系:最直观简单的关系。UML中用实箭头表示,包含关系:原有类分出的几个功能片段。基类没有了被包含类是不完整的。用虚箭头加include,扩展关系:在原有类的基础上进行功能扩展,扩展类具有相对的独立
13、性。基类没有了扩展类也是完整的。用虚箭头加extend,泛化关系:表示继承关系,子例与父例相似,继承父例的所有结构、行为和关系,但表现出更特别的行为。用三角箭头表示,Back,1.3 UML介绍(三),类关系,关联关系:最一般简单的关系。UML中用实线表示,泛化关系:继承关系,同用例关系。用空心箭头表示,实现关系:类与接口之间最常见的关系。用虚线空心箭头表示,依赖关系:一个对象的存在需要另外一个对象的存在。用虚线箭头表示。用虚线箭头表示,聚合关系:整体与部分的关系,且整体与部分可分离,均具有独立的生命周期。用实线空心菱形箭头表示,组合关系:整体与部分的关系,比聚合关系更强,整体与部分不可分割,
14、其中一个部分的生命结束就代表整体的结束。用实线实心菱形箭头表示。,依赖是最弱的关系。关联、组合和聚合都是依赖关系的一种。组合和聚合关系也是关联关系的一种。关联、聚合、组合,关系一次增强!,Back,1.3 UML介绍(四),包关系,包的组成:类、接口、组件、节点、协作、用例、图,以及子包,包:可以理解为文件夹,名称空间。用于将元素根据语义进行分组,包的表示:UML中,包用两个矩形来表示,包的关系:引入和访问依赖关系(可访问其他包,前提得先引入该包。具有传递性)、泛化关系,组件:又叫构件,可以是一组接口。,组件分类:三大类配置组件、执行组件、工作产品组件。,组件关系:,组件关系:组件与接口的关系
15、(分实现关系、依赖关系)、组件与组件的关系(依赖关系,同类之间的依赖关系),Back,1.3 UML介绍(五),UML机制,就是UML绘图时的辅助功能。UML机制包括修饰、注释、规格说明、通用划分和扩展机制,通用机制,规格说明:描述系统的细节,修饰:对模型元素进行修饰,增加了模型元素的语义。比如加粗、下划线,注释:是一种图形符号用来限制或给一个元素加上注释。注释用一个带有折角的矩形表示,通用划分:类、对象二分法,接口、实现二分法。,扩展机制,UML扩展机制允许使用者自定义些自己构造型语言成分。,UML扩展机制包括:构造型、约束、标记值。,Back,1.4 业务调研方式,尽量到各部门,各科室的办
16、公现场去调研,尽量不要以召集会议的方式进行调研。尽量收齐所有业务单据、台账、报表、业务流程、规章制度等材料,以及相应的电子版材料。细节研究。用户无法面面俱到,需要我们去分析、理解和提问绘制业务流程图。在业务调研结束后,及时整理业务流程图,可以手工业务流程,现场请求客户确认。,一般是在调查问卷填写结束和面谈结束后、需要跨部门或跨职能业务流程确认时进行。,采用该方法的原因:专业差别、沟通困难,但可以将某些元素总结出来以问卷的形式针对性了解。 问卷调查的优点:能够方便快速的获取软件开发所需的信息内容,(一)问卷调查,(二)面谈,(三)组织讨论,Back,1.5 业务调研报告的编写(一),业务调研,整
17、理静态结构,整理动态结构,非业务调研,文档整理,问卷调查,面谈方式,部门岗位职责描述,组织讨论,组织结构图,文档变动性调研,原始表单整理,业务流程图,地域性调研,部门变动性调研,业务流程变动性调研,岗位职责变动性调研,编写流程:,Back,1.5 业务调研报告的编写(二),业务调研报告的静态结构,首先绘制单位的组织结构图。,再对部门职责进行描述,一般采用表格形式。,然后对每个岗位承担的职责详细描述,一般采用表格形式。,最后对每个岗位职责上生成的原始资料整理,分门别类的处理。(数据字典里会用到),Back,1.5 业务调研报告的编写(三),业务调研报告的动态结构,即业务流程图,采用泳道图的方式绘
18、制,再对各运行节点用表格进行描述。,业务流程图:是物理模型。描述的是组织内各单位、人员之间的业务关系、工作顺序、业务信息流向图表。,用途:帮助系统分析人员找出不合理的流。,分类:顶层业务流程图、底层业务流程图。,泳道式业务流程图,Back,1.5 业务调研报告的编写(四),非业务调研,非业务调研其实就是在企业现有业务运行的基础上,需要对客户进行进一步沟通,了解客户在业务范围之外的一些特殊情况。,客户系统的运行地域性变动,部门变动性:单位内部部门的组织结调整的频繁程度,业务流程变化性:组织结构内部对业务流程调整的频度,岗位职责的变动性:某些岗位的工作职责的变化频率问题,文件资料的变动性:文档的变
19、化频度,比如文档格式、文档数据项、文档的使用者,非业务调研是需求分析中非功能性功能需求的基础!,Back,1.5 业务调研报告的编写(五),业务调研报告内容格式,目标组织结构(一)组织结构图(二)部门职责描述(三)岗位职责分析,目标流程设计(一)分层说明(二)一层业务流程图:泳道图、运行节点描述(三)底层业务流程图:泳道图、运行节点描述,表单资料整理(一)需要整理的格式文件(二)不需要整理的格式文件(三)不惜要整理的图像文件,现行系统状况 当前系统建设情况、存在的问题、可重复利用的资源等,以便在此基础上进行系统建设。,非业务分析(一)地域性调研:城市分布、办公区域分布、物理地址分布等(二)部门
20、变动调研:比如新部门的增加(三)业务流程变动性调研:(四)岗位职责变化性调研:(五)文档变化性调研:,特别期许(一)为了适应客户工作过程流程的灵活变化,要求系统至少能够实现业务流程定制工作。(二)无纸化办公,除签字部分。(三)自动化程度高,系统自动实现一些功能,并给出,比如,初审意见。(四)工作角色变化灵活化。为适应工作人员职责的灵活变化,系统能够根据不同的角色分配系统功能。(五)数据访问权限设置,不同职级的人员查血的信息不同,Back,业务调研报告小结,回想本篇驱动案例中存在的问题。UML基础知识的了解和一份内容完整、结构清晰的业务调研报告,解决了案例中第1、第2和第4条问题。业务调研报告的
21、编写,是为了给需求分析报告编写依据。需求分析报告不能脱离业务调研报告。那么如何从业务调研报告中挖掘需求,形成需求分析报告呢?,Back,1.6 用例规划需求分析最基础部分,什么是用例?,用例是系统给外部提供的可视化的功能单元。代表的一个外部功能块,不考虑内部实现过程,UML表示:椭圆,下方标注用例名称,用途:从外部看系统该有的功能,将客户的想法用更加容易理解的图形化样式展现出来。,来源:业务调研报告。抽取自关键业务中的动词或动词词组。,前面“用例关系”中提到过,用例具有参与者,是与用例有来往的人或事物,是系统的外部实体。,用例的参与者,UML表示:用人形图标表示,下方为参与者名称,用途:一个系
22、统中必然有参与者,否则系统没有任何存在意义,参与者与用例连接在一起,表示两者之间有信息交互,参与者的存在是为了执行用例的,参与者之间的关系类似于类关系。最常见的就是泛化关系继承关系。,Back,什么是用例图?,用例图是业务调研后,最先用来跟用户交流讨论的UML图,用途:从外部看系统该有的功能,将客户的想法用更加容易理解的图形化样式展现出来。,来源:业务调研报告,抽取自关键业务中的动词或动词词组。,1.6 用例规划用例图,组成:参与者、用例、用例间的关系,用例描述,用例图仅仅是文字说明的补充,需要结合用例描述来完成。用例描述往往会被一些系统分析员所忽略。,Back,1.6 用例规划从业务流程中归
23、纳用例,Back,1.7 数据字典需求分析中最易被忽略的部分,什么是数据字典?,数据字典是一个定义应用程序中使用的所有数据元素和结构的含义、类型、数据大小、格式、度量单位、精度以及允许取值范围的共享仓库,数据字典是需求分析报告的重要组成部分,数据字典的维护,一般独立于软件需求规格说明,数据字典确保了数据在整个开发过程中的唯一性,指导系统架构师、数据架构师、程序员等完成架构和实施等工作,与数据字典有关的概念:,元数据:关于数据的数据。元数据引领好数据,数据元:对象类与其某种特性构成的数据表示,可以对应多个意思。如人和年龄,构成数据元“人的年龄”。,数据集:为特定的目的而收集的、具有特定主体的一组
24、数据,是若干数据元的集合体。如姓名完全表示有姓名、昵称、化名、笔名、中文名、外文名、曾用名、曾用名使用时间等。,这里所讲的数据字典与数据库设计中的数据字典概念要大。它是为所有的开发人员服务的,包括为数据库设计提供服务,Back,1.7 数据字典解读业务调研,编写数据字典,解读业务调研报告,业务调研报告是系统分析和设计的唯一入口,不能脱离它编写数据字典用例规划,是根据业务调研报告中的业务流程图解读出来的而数据字典,是从业务碉堡恭的原始表单中整理出来的,分析用例与原始表单关系,检查用例汇总是否有遗漏的原始表单,如有遗漏及时补充。建立原始表单整理表,编写数据字典的编写规范,包括数据命名规范、数据集编
25、号规范、数据项命名规范、数据项英文命名规范等,建立系统数据字典编写规范,对应原始表单,建立系统数据集确认表,对应数据集,对数据项进行归类整理,建立数据集数据项列表,为所有数据项建立字典说明其定义、数据类型、标识符等。,将所有的输将解释说明编排整理汇总,完成数据字典数据库的创建。,Back,1.8 领域类图描述的是系统中的操作对象,什么是领域类?,用例是系统的外部功能数据字典是对系统中的数据类型的描述领域类是用例这个系统功能的操作对象。,领域模型来自业务描述中的名词以及对名词的抽象,领域模型是一个分析模型,是帮助分析人员、用户认识现实业务的工具,是需求分析的产物,描述的是业务中涉及的实体及其相互
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件是这样炼成的 软件 开发 过程 这样 ppt 课件
链接地址:https://www.31ppt.com/p-1420704.html