软件开发过程之《软件是这样炼成的》

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

心系健康,诚信天下Page1软件是这样炼成的制作人:郑培泰2016年6月25日心系健康,诚信天下Page2开篇故事某政府要建造一座20层的办公楼,用于机关单位办公。建筑面积2万平米,投资预算1.2亿。某建筑设计研究院参与了楼房设计。某建筑公司承接了大楼的建造工程。同时,政府聘请了监理公司参与工程的监督管理。那么,整个大楼从筹划到建造完成是怎样一个流程呢?这和软件开发流程有什么相似的地方吗?Back心系健康,诚信天下Page3开篇故事——分析(一)政府单位:是客户,大楼这个产品的使用者。所关心的是:•投资的规模•楼层高度、建筑面积•建造地址的选择•大楼的功能要求•其他需求点评:从客户那里,能了解到他们需要的是什么。是产品设计、开发的最根本依据。Back心系健康,诚信天下Page4开篇故事——分析(二)设计研究院:产品的设计者,主要工作:第一步:了解客户所关心的东西——客户需求点评:设计研究院分析客户需求,并将需求转化为产品设计,再将设计蓝图细化落实为施工图纸。第二步:根据客户需求进行大楼的设计1.选择合适的体系结构(居民楼、办公楼、教学楼)2.选择合适的建筑风格(中式、欧式、其他)3.进行楼体结构设计、外观设计、水电气管道设计、消防安全设计等,形成设计蓝图。第三步:根据设计蓝图,设计具体的施工图纸。•投资的规模•楼层高度、建筑面积•建造地址的选择•大楼的功能要求•其他需求Back心系健康,诚信天下Page5开篇故事——分析(三)建筑公司:根据施工图纸和施工规范施工完成大楼的建造。•施工图纸、手册•施工规范•施工工具、器械•建筑材料•工地搭建等点评:建筑公司,相当于程序员,配置好软硬件开发环境,根据设计图、手册和编码规范,完成软件的“建造”工作。监理公司:负责施工工程的质量鉴定控制和验收工作。Back心系健康,诚信天下Page6故事总结——建筑工程与软件开发流程对比图区别:Back心系健康,诚信天下Page7进入正题:《软件是这样“炼”成的》本书作者:王朔韬——研究软件企业开发过程改进和软件架构出版社:清华大学出版社主要内容:从需求开发到软件成型交付的整个软件开发流程。全书以《投核保系统》为唯一案例,全程记录了软件开发、设计的全过程。编写特点:“学院派”(注重理论)与“应用派”(注重应用)结合,不过分注重抽象概念的定义,结合实际案例理解为主。比如:当一个概念不容易去弄明白是什么时,就先去弄明白它能做些什么、怎么做、他的引入带来的好处,然后再去思考它是什么。Back心系健康,诚信天下Page8正题:《软件是这样“炼”成的》内容结构上册分三篇:软件需求开发软件架构设计(概要设计、详细设计)数据架构设计两册六篇125章,今天只讲上册。涉及三个评审一个讨论:《需求报告》评审会《概要设计》评审会《数据库设计》评审会关于详细设计的讨论Back心系健康,诚信天下Page9第一篇:软件需求开发•1.1评审会现场情形案例驱动:《需求分析报告》评审会•1.2面向对象概念•1.3UML和绘图工具:RationalRose、Visio、SmartDraw知识补充•1.4业务调研方式•1.5内容结构:静态结构、动态结构和非业务调研业务调研报告•1.6用例规划:用例图、用例描述和关系分析•1.7数据字典:元数据、数据元、数据集与原始表单•1.8领域类图:领域类图、非功能需求分析•1.9内容结构:用例图、领域类图、非功能需求、数据字典需求分析报告Back心系健康,诚信天下Page101.1《需求分析报告》评审会——第一个评审会•项目名称:投核保系统•项目规模:大型金融项目•产品经理:在项目合同签署10天就完成了《业务调研》和《需求分析报告》的编写•参会人员:客户代表、市场部、产品开发部、质量保证部、测试部、评审专家顾问等•PPT讲解:产品经理开始对《需求分析报告PPT》进行讲解,前后用了10分钟•讨论意见:PPT讲解结束,大家都觉得汇报非常成功。•评审专家:公司聘请的改进公司当前项目开发管理流程的顾问,向与会的每个人提问了解情况,提出评审意见。为什么呢?存在的问题:1.需求分析报告脱离了业务调研报告,没有业务调研报告,闭门造车凭空设想没有实际意义。2.将组织机构图照搬为系统结构图。3.文档结构不清晰,逻辑混乱。4.对UML和面向对象分析方法一知半解,专业知识不够。5.领域类图抽象不完整,对领域类图的理解不够,不能为系统架构过程提供任何知道6.没有具体的指标,用词含糊,无法为架构师和测试人员提供测试标准。————————【现场情景】—————————点评:该案例中,出现的问题也是很多软件开发企业存在的问题。尤其是很多中小软件企业,不注重软件开发前期的准备工作。由于工期紧张,为了节省时间往往需求调研还不够充分的情况下,就开始进入了软件设计开发阶段,造成后期编码过程中不断翻工、修改,甚至出现推到重做的情况。所谓磨刀不误砍柴工。下面要讲的内容就是“磨刀阶段”之“业务调研阶段”,主要包括:面向对象和UML等基础知识、业务调研报告的结构和编写要求。Back心系健康,诚信天下Page111.2面向对象的概念(一)系统分析法中最流行的方法:面向对象分析法。面向对象的建模语言:统一建模语言(UnifiedModelingLanguage,UML)——业界内认可对比较高的一种语言比如:一辆汽车、一个人、一张成绩单、一份课程表比如:交通工具、淄博人等Back心系健康,诚信天下Page121.2面向对象的概念(二)类接口Back心系健康,诚信天下Page131.2面向对象的概念(三)是一种信息隐藏技术是类与类之间的一种关系(父类、子类关系)是将多种不同的特殊行为进行抽象的一种能力是指将一组数据和与这组数据有关的操作放在一起,形成一个能动的实体——对象封装机制的目的就是将对象的使用者和设计者分开类层次反映了现实世界中普遍存在的一般与特殊的关系,本质是从已有的类基础上扩充、改造得到新的类。可以修改和重写父类中的方法。优点:提高软件的重用性,便于实现多态性便于系统的扩展使得语言具有根据对象的不同类型以不同方式处理通常要结合继承性一起发挥作用Back心系健康,诚信天下Page141.2面向对象的概念(四)面向对象分析方法(Object-OrientedAnalysis,OOA),是在一个系统的开发过程中进行系统业务调查以后,按照面向对象的思想来分析问题。1.建模语言:UML语言2.UML动态模型图:包括交互图、行为图(一)交互图:时序图、协作图;(二)行为图:状态图、活动图。3.UML静态图:包括类图、用例图、包图、组建图、配置图面向对象软件设计一般步骤:需求分析、分析设计、编码实现、测试和维护。面向对象的基本准则:1.信息隐藏:通过对象的封装来实现。2.减少通信开销:设计中应做到子系统的各个部件之间的通信量达到最小。3.良好的可扩展性:继承和多态在程序设计中有很好的可扩展性。4.高内聚:内聚度高的模块很容易理解很容易被服用、扩展和维护5.低耦合:使系统中某一部分的变化对其他部分的影响降到最低,各个系统模块之间应该相互独立。Back心系健康,诚信天下Page151.3UML介绍(一)UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言,用模型来描述系统的静态特征和动态特征。UML可以从不同的角度为系统架构进行建模,为不同的开发人员,形成不同的视图。UML的组成:•图:UML中分9种(后面讲)•视图:是有一个或多个图组成的对系统的抽象。分5种(后面讲)•模型元素:包括事物和关系•通用机制:包括修饰、注释、规格说明、通用规划和扩展机制。图是UML的重要组成部分所有的视图都可以由前述的9种基本图组成。UML图分为静态图和动态图:1.静态图主要包括:用例图、类图、对象图、组件图、部署图。2.动态图主要包括:协作图、状态图、活动图、顺序图。UML视图分五类:1.用例视图:从用户角度来描述系统应具有的功能,是对系统的抽象表示2.逻辑视图:是从系统的静态结构和动态行为角度分析如何实现系统的功能3.实现视图:主要供开发者使用,4.进程视图5.部署视图:主要描述系统的部署方式UML图:UM视图:1.事物:代表一切可以定义的东西。分为:结构事物、行为事物、分组事物2.关系:把事物联系在一起,组成有意义的结构。分为:关联关系、依赖关系、泛化关系、实现关系、聚合关系Back心系健康,诚信天下Page16用例是抽象出来的用以描述人或事物具有哪些功能的概念。需求分析中用例图会用到。后面再讲.1.3UML介绍(二)UML关系,能够很好的将用户所理解的事物符号联系起来,描述一个有意义的结构。UML中,根据不同的视图对关系进行分类,但大体一致用例关系•关联关系:最直观简单的关系。UML中用实箭头表示•包含关系:原有类分出的几个功能片段。基类没有了被包含类是不完整的。用虚箭头加《include》•扩展关系:在原有类的基础上进行功能扩展,扩展类具有相对的独立性。基类没有了扩展类也是完整的。用虚箭头加《extend》•泛化关系:表示继承关系,子例与父例相似,继承父例的所有结构、行为和关系,但表现出更特别的行为。用三角箭头表示Back心系健康,诚信天下Page171.3UML介绍(三)类关系•关联关系:最一般简单的关系。UML中用实线表示•泛化关系:继承关系,同用例关系。用空心箭头表示•实现关系:类与接口之间最常见的关系。用虚线空心箭头表示•依赖关系:一个对象的存在需要另外一个对象的存在。用虚线箭头表示。用虚线箭头表示•聚合关系:整体与部分的关系,且整体与部分可分离,均具有独立的生命周期。用实线空心菱形箭头表示•组合关系:整体与部分的关系,比聚合关系更强,整体与部分不可分割,其中一个部分的生命结束就代表整体的结束。用实线实心菱形箭头表示。依赖是最弱的关系。关联、组合和聚合都是依赖关系的一种。组合和聚合关系也是关联关系的一种。关联、聚合、组合,关系一次增强!Back心系健康,诚信天下Page181.3UML介绍(四)包关系•包的组成:类、接口、组件、节点、协作、用例、图,以及子包•包:可以理解为文件夹,名称空间。用于将元素根据语义进行分组•包的表示:UML中,包用两个矩形来表示•包的关系:引入和访问依赖关系(可访问其他包,前提得先引入该包。具有传递性)、泛化关系•组件:又叫构件,可以是一组接口。•组件分类:三大类——配置组件、执行组件、工作产品组件。组件关系:•组件关系:组件与接口的关系(分实现关系、依赖关系)、组件与组件的关系(依赖关系,同类之间的依赖关系)Back心系健康,诚信天下Page191.3UML介绍(五)UML机制,就是UML绘图时的辅助功能。UML机制包括修饰、注释、规格说明、通用划分和扩展机制通用机制•规格说明:描述系统的细节•修饰:对模型元素进行修饰,增加了模型元素的语义。比如加粗、下划线•注释:是一种图形符号用来限制或给一个元素加上注释。注释用一个带有折角的矩形表示•通用划分:类、对象二分法,接口、实现二分法。扩展机制•UML扩展机制允许使用者自定义些自己构造型语言成分。•UML扩展机制包括:构造型、约束、标记值。Back心系健康,诚信天下Page201.4业务调研方式1.尽量到各部门,各科室的办公现场去调研,尽量不要以召集会议的方式进行调研。2.尽量收齐所有业务单据、台账、报表、业务流程、规章制度等材料,以及相应的电子版材料。3.细节研究。用户无法面面俱到,需要我们去分析、理解和提问4.绘制业务流程图。在业务调研结束后,及时整理业务流程图,可以手工业务流程,现场请求客户确认。一般是在调查问卷填写结束和面谈结束后、需要跨部门或跨职能业务流程确认时进行。采用该方法的原因:专业差别、沟通困难,但可以将某些元素总结出来以问卷的形式针对性了解。问卷调查的优点:能够方便快速的获取软件开发所需的信息内容Back心系健康,诚信天下Page211.5业务调研报告的编写(一)问卷调查面谈方式部门岗位职责描述组织讨论组织结构图文档变动性调研原始表单整理业务

1 / 69
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功