《信息系统开发基础课件.ppt》由会员分享,可在线阅读,更多相关《信息系统开发基础课件.ppt(93页珍藏版)》请在三一办公上搜索。
1、第二章 信息系统开发基础,谭火彬,Fundamentals of Information Systems Development,北京航空航天大学软件学院 thbin,2,课程资源,联系老师办公地点:6#323联系电话:82338867Email:课件下载学院ftp服务器地址:ftp:/202.112.128.79u/p:bse2002/3221Web下载http:/,北京航空航天大学软件学院 thbin,3,复习:系统分析设计基础,北京航空航天大学软件学院 thbin,4,选择题,信息系统开发过程涉及到的项目干系人,(1)提供软件需求;(2)定义项目范围;(3)设计软件总体结构A.系统拥有者
2、B.系统用户C.系统分析师D.系统设计人员E.系统构造人员F.IT厂商和顾问,北京航空航天大学软件学院 thbin,5,信息系统开发的核心技术,系统开发过程过程是为到达目的采用的一系列步骤用于信息系统和软件的开发和维护的一组活动、方法、实践、发布、及自动化工具系统开发方法为系统开发提供了“如何做”的技术系统开发工具为系统开发提供了自动的或半自动的支撑环境,北京航空航天大学软件学院 thbin,6,内容安排,系统开发生命周期系统开发过程过程评价准则系统开发方法自动化工具和技术,北京航空航天大学软件学院 thbin,7,内容安排,系统开发生命周期系统开发过程过程评价准则系统开发方法自动化工具和技术
3、,北京航空航天大学软件学院 thbin,8,系统开发项目,系统开发项目一个有始有终的任务产生预先确定的结果或产品可以是一个大工程,需要许多人进行数千小时的工作;也可以是一个很小的项目成功的项目详细的计划有组织的讲究方法的一系列活动和任务可靠、强大而高效的信息系统,北京航空航天大学软件学院 thbin,9,系统开发生命周期,系统开发生命周期(SDLC,System Development Lifecycle)把一个项目较简单地组成各个阶段提供了确保成功开发所需要的结构、方法、控制和核对表包含管理原则、计划、组织、问题解决协调、控制、分工、进度安排等问题,北京航空航天大学软件学院 thbin,10
4、,生命周期中的各个阶段,北京航空航天大学软件学院 thbin,11,计划阶段(Planning Phase),目标:规划项目范围并做出项目计划活动定义问题确定项目可行性制定项目的进度表为项目安排人员启动项目,北京航空航天大学软件学院 thbin,12,分析阶段(Analysis Phase),目标:了解并详述用户需求活动收集信息确定系统需求建立需求发现的原型划分需求的优先级产生并评估可替换方案与管理人员一起审查需求,北京航空航天大学软件学院 thbin,13,设计阶段(Design Phase),目标:设计系统解决方案活动设计应用程序结构设计用户界面设计并集成数据库设计系统的实现细节设计并集成
5、网络设计并集成系统控制逻辑,北京航空航天大学软件学院 thbin,14,实现阶段(Implementation Phase),目标:建立、测试和安装最后的系统活动构造软件构件验证与测试移植数据准备用户文档培训用户安装系统,北京航空航天大学软件学院 thbin,15,支持阶段(Support Phase),目标:在系统初始安装后保持系统有效地运行活动提供对最终用户的支持维护和升级系统,北京航空航天大学软件学院 thbin,16,各阶段人员配置情况,北京航空航天大学软件学院 thbin,17,内容安排,系统开发生命周期系统开发过程过程评价准则系统开发方法自动化工具和技术,北京航空航天大学软件学院
6、thbin,18,从SDLC到开发过程,SDLC定义了系统开发的五个阶段阶段并不一定是线性的可以按照合适的方式组织实际的过程系统开发过程针对项目的实际情况,结合SDLC定义合适的过程完成项目开发系统开发过程由关于系统的阶段、状态、方法、技术和开发、维护软件的人员以及相关对象(计划、文档、模型、编码、测试、手册等)组成,北京航空航天大学软件学院 thbin,19,以过程为核心组织软件工程,北京航空航天大学软件学院 thbin,20,过程中的事件、阶段、活动和任务,北京航空航天大学软件学院 thbin,21,典型的软件系统开发过程,传统系统开发过程1.编码修正模型2.瀑布模型3.螺旋模型4.原型模
7、型现代软件工程过程5.Rational统一过程(RUP)6.敏捷过程(AP)7.微软解决方案(MSF),北京航空航天大学软件学院 thbin,22,1.编码修正模型,编码修正模型(Code and Fix)从一个大致的想法开始工作,然后经过非正规的设计、编码、调试和测试方法,最后完成工作,可能有可能没有的规范,发布(可能),北京航空航天大学软件学院 thbin,23,细说编码修正模型,优点成本可能很低只需要很少的专业知识,任何写过程序的人都可以对于一些非常小的、开发完后就会很快丢弃的软件可以采用对于规模稍大的项目,采用这种模型是很危险的,北京航空航天大学软件学院 thbin,24,2.瀑布模型
8、,北京航空航天大学软件学院 thbin,25,细说瀑布模型,瀑布模型最早提出,所有过程模型的祖宗项目从开始到结束按照一定的顺序执行使用里程碑来界定一个阶段到另一阶段的转变文档驱动的,各个阶段不连续也不交叉主要问题线性的、缺乏灵活性;每个阶段互相独立而且不能回退如:必须在项目开始前说明全部需求,北京航空航天大学软件学院 thbin,26,3.螺旋模型,北京航空航天大学软件学院 thbin,27,细说螺旋模型,特点以风险为导向的生命期模型从一个小范围的关键中心地带开始寻找风险因素,制定风险控制计划,并交付给下一步骤,如此迭代,每次迭代将项目扩展到一个更大的规模优势随着迭代的增加(成本的增加),风险
9、程度随之降低缺陷比较复杂,需要责任心,专注和管理方面的知识,北京航空航天大学软件学院 thbin,28,4.原型模型,北京航空航天大学软件学院 thbin,29,细说原型模型,原型模型是一种解决需求的不确定性和可变性的好办法原型是项目系统中的一个方面或者多个方面的工作模型抛弃型原型:用于试验某些概念,试验完系统将无用处演进型原型:原型系统不断被开发和被修正,最终它变为一个真正的系统,北京航空航天大学软件学院 thbin,30,从另外的角度看待原型,从中学到什么?学生经常会做一些软件作业,这些作业被称为原型问题:这些原型和软件系统原型是否相同?作为一个原型必须:描述他们希望从中学到的东西,规划原
10、型评价的方法,报告从原型中真正学到的内容在不同的阶段,原型具有不同的作用原型起作用的程度实物模型(Mock-ups)仿真交互部分模型:水平,垂直(某些特性构造详细的原型),北京航空航天大学软件学院 thbin,31,练习:何时引入原型系统,公司的经理需要通过个人计算机上的一个系统来访问管理信息。系统价格必须合适。很多人怀疑是否经理真需要使用该系统可行性研究阶段,采用实物模型的方法支持客户销售人员通过电话回答有关客户询问汽车保险价格的系统设计用户对话界面时保险公司考虑实施一个基于MS Access的电话销售系统,他们不知道Access是否能够开发出相应界面的系统并具备足够快的相应时间方案设计阶段
11、,北京航空航天大学软件学院 thbin,32,5.Rational统一过程,北京航空航天大学软件学院 thbin,33,Rational统一过程,Rational统一过程(Rational Unified Process,RUP)是一种软件工程过程,它提供了如何在开发组织中严格分配任务和职责的方法是一个过程产品有自己的过程框架捕获了现代软件开发中的最佳实践目标按照预先制定的时间计划和经费预算,开发出高质量的软件产品以满足最终用户的需求,北京航空航天大学软件学院 thbin,34,RUP4个阶段9大工作流,阶段初始Inception生命周期目标精化Elaboration生命周期构架构造Const
12、ruction最初运作能力移交(Transition)产品发布,工作流业务建模需求分析与设计实现测试部署配置和变更管理项目管理环境,北京航空航天大学软件学院 thbin,35,RUP中的6项最佳实践,北京航空航天大学软件学院 thbin,36,RUP三大特点,RUP三大特点用例驱动(Use case driven)以架构为中心(Architecture-centric)迭代和增量开发(Iterative and incremental development),北京航空航天大学软件学院 thbin,37,6.敏捷过程(Agile Process),敏捷代表着有效和灵活那些轻型的、有效的方法即为
13、敏捷方法在重型方法(如RUP)中,经常在一些不必要、重复的中间环节上浪费了太多的精力,而敏捷则避免了这种浪费敏捷联盟宣言Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a plan,北京航空航天大学软件学院 thbin,38,极限编程,客户作为团队成员用户故事短交互周期验收测
14、试结对编程测试驱动的开发方法集体所有权,持续集成可持续的开发速度开放的工作空间计划游戏简单设计重构隐喻,极限编程(eXtreme Programming,XP)是敏捷方法中最著名的一个,它由一系列简单却互相依赖的实践组成,北京航空航天大学软件学院 thbin,39,过程裁剪,裁剪(Tailoring):每个项目自身特点这些过程标准只是一个通用的过程框架,需要根据实际情况裁剪裁剪分类过程裁剪、阶段裁剪、文档/产品/工作产品裁剪标准点项目规模、开发过程(生命周期)、项目类型,北京航空航天大学软件学院 thbin,40,案例:选择合适的过程模型,Giga-Safe公司的区域代理商们吵吵嚷嚷地想要升级
15、Giga-Quote 1.0,改正错误并且修改一些令人厌烦的用户界面上的小问题。在部门经理Randy的建议下,Giga-Quote 1.0项目后期被调离的Bill又重新当上了Giga-Quote 1.1项目的项目经理。“这些就是你的任务。”Randy说。“上次的进度安排出现了很多问题,所以这次你必须按全力以赴的速度来组织项目。原型法是速度最快的方法,让你的团队采用这种方法。”Bill想想觉得挺不错,过几天开会时,他告诉大家要采用原型法。,北京航空航天大学软件学院 thbin,41,案例(续1),Mike是项目的技术负责人,他觉得很惊讶。“Bill,我不同意你的想法”,他说道,“我们有6个星期来
16、修改一系列的错误,而且只是用户界面作一些小的改变。你用原型干什么呢?”“我们需要采用一个原型来提高项目开发速度,”Bill暴躁地说。“原型法是最新、最快的方法,这就足为什么我要求你采用的原因。还有什么问题吗?”“好吧,”Mike说道,“如果那就是你想要的,我们会去开发一个原型。”,北京航空航天大学软件学院 thbin,42,案例(续2),Mike和另外一个开发人员,Sue,开始做原型。因为和他们做的现有系统几乎一样,没几天就做出了整个系统的仿制品。在第2周一上班,他们给代理商经理Jack演示了原型。“该死!我怎么能告诉我的区域代理们要用这个东西!”Jack大声叫道。“和现在的程序相比几乎没有什
17、么改进!我的区域代理们只不过想要更好用,我对一些新的报表有点想法而已。就在这儿,我给你们看看。”Mike和Sue耐心地听着,开完会,Mike 找到了Bill。,北京航空航天大学软件学院 thbin,43,案例(续3),“我们给Jack演示了原型。他想增加一些新的报表,而且很坚决。可是我们的工作计划都安排满了。”“我看不成问题。”Bill说。“他是经理。如果他说要这些报表,他们就肯定是需要的。你们这些家伙该做的就是想想办法怎么给他们按时做出来。”“我试试看吧,”Mike说,“但是我得告诉你的是,如果增加这些报表,我们按时完成任务的机会只有1。”“好吧,你们反正得做,”Bill说,“也许现在采用了
18、原型,工作进展会比你预期的要快。”,北京航空航天大学软件学院 thbin,44,案例(续4),两天后,Jack去了Mike的办公室。“我看了那个原型,我想我们还得增加一些数据录入窗口。我昨天在每月的地区代理例会上给我们的一些代理看了你们做的原型。他们说有些想法得和你谈谈。我给了他们你的电话号码,希望你别介意。”后来,Mike问Bill是否该和Jack谈谈变更的问题,但是Bill说:“不用。”第二天,Mike接到了两个参加了地区代理例会的代理的电话。他们都想再调整一下系统。接下来的2星期里,他每天接到电话,需要修改的内容累积了一大堆。,北京航空航天大学软件学院 thbin,45,案例(续5),他
19、们的项目只有6星期的时间,在第4个星期末,Mike和Sue估计他们还有6星期的活,但却要在2星期内完成。Mike又去找了Bill。“我对你很失望,”Bill说,“我答应过Jack和那些代理会按他们的要求进行修改。看来你没有很好地利用原型模型,这下麻烦就大了。”“麻烦早就有了”,Mike 这么想,“只是没想到竟会落到我的头上。”但是Bill还是固执己见。,北京航空航天大学软件学院 thbin,46,案例(续6),在第8个星期末,Bill开始抱怨Mike和Sue工作不够努力。到了第10个星期末,Bill开始每天两次去他们的办公室检查进展情况。快到第12个星期末的时候,代理们开始抱怨。于是,Bill
20、说,“我们得拿点什么东西出来了,就把你们现在已经完成的部分交付给用户吧。”因为新的报表和新的数据录入窗口都没有完成,Mike和Sue中断了开发编码工作,简单地修改了一些原来计划中要修改的主要错误和用户界面上一些粗糙的地方,就交付了成果。但是他们原计划6个星期的时间变成了12个星期。,北京航空航天大学软件学院 thbin,47,内容安排,系统开发生命周期系统开发过程过程评价准则系统开发方法自动化工具和技术,北京航空航天大学软件学院 thbin,48,软件过程能力评价-CMMI,CMM集成2005年12月31日起,美国软件工程研究院(SEI)宣布不再维护SW-CMM(软件CMM2.0 版草案),转
21、为维护CMMI(CMM集成)CMMI与CMM的主要区别:CMMI模型中出现了连续模型CMMI模型中比SW-CMM进一步强化了对需求的重视CMMI模型对工程活动进行了一定的强化CMMI中还强调了风险管理,北京航空航天大学软件学院 thbin,49,CMMI过程域级别,对于连续模型,每一个过程区域都具有6个级别0-未完成级(原始态)1-已执行级(可完成由输入到输出的生产)2-已管理级(过程管理制度化)3-已定义级(过程定义制度化)4-量化管理级(量化管理制度化)5-优化级(过程优化),北京航空航天大学软件学院 thbin,50,CMMI成熟度级别,CMMI的阶段模型中,划分了5个成熟度级别(与CM
22、M相同)1-初始级2-已管理级3-已定义级4-量化管理级5-优化级,北京航空航天大学软件学院 thbin,51,系统开发质量,北京航空航天大学软件学院 thbin,52,内容安排,系统开发生命周期系统开发过程过程评价准则系统开发方法自动化工具和技术,北京航空航天大学软件学院 thbin,53,系统开发方法,系统开发方法为系统开发提供了“如何做”的技术三类典型的开发方法结构化开发方法面向对象开发方法形式化开发方法,北京航空航天大学软件学院 thbin,54,过程与方法,过程与方法过程是一种“战术”,而方法则是基本的“作战技能”是一种多对多的关系,没有严格的对应,但有些最佳实践过程只是一个模板,每
23、个团队都有自己的特点,结合不同的方法定义自己的过程,北京航空航天大学软件学院 thbin,55,结构化开发方法,一种传统的开发方法使用结构化编程、结构化设计和结构化分析技术的系统开发方法20世纪60年代:结构化编程(首次通过工程化方法来提高计算机编程的质量)20世纪70年代:结构化设计(把分散的程序组合为更加复杂的信息系统)20世纪80年代:结构化分析(开发人员在设计程序之前定义明确的需求),北京航空航天大学软件学院 thbin,56,结构化编程,结构化编程(Structured Programming,SP)提高程序质量允许其他程序员可以非常容易地阅读和修改程序每个程序模块都有一个开始和一个
24、结束程序执行过程中的每一步都由三种程序结构之一组成:顺序、选择、循环自顶向下(模块化)程序设计:把更复杂的程序分解为程序模块的层次图,北京航空航天大学软件学院 thbin,57,结构化设计,结构化设计(Structured Design,SD)是一项技术,它为确定下列事物提供指导:程序集的组成每一个程序应该实现哪些功能如何把这些程序组织成不同层次利用结构图(Structure chart,SC)描述程序的模块层次关系结构化设计基本原则低耦合:模块间尽可能保持相对独立高内聚:每一个模块实现一件清晰的任务,北京航空航天大学软件学院 thbin,58,SC图示,北京航空航天大学软件学院 thbin,
25、59,流程图的基本要素,控制流,处理过程,判定,起始、结束符,预先定义的过程,北京航空航天大学软件学院 thbin,60,结构化设计中的结构图,北京航空航天大学软件学院 thbin,61,结构化分析,结构化分析(Structured Analysis)是一项技术,它帮助开发人员定义:系统需要完成的功能(功能需求)系统需要存储和使用的数据(数据需求)系统需要的输入和输出如何这些功能结合在一起完成任务结构化分析过程数据建模:实体关系图ERD(定义数据对象、属性和关系)功能建模:数据流图DFD、数据字典DD(指明数据如何在系统内被变换)行为建模:状态-迁移图STD、控制流图CFD(描述事件的影响),
26、北京航空航天大学软件学院 thbin,62,ER图中的元素,描述数据实体(Entity)及实体之间的关系(Relationship),北京航空航天大学软件学院 thbin,63,结构化分析中的实体关系图,北京航空航天大学软件学院 thbin,64,数据流图,从数据流动和变换的角度,以图形的方式刻画数据从输入到输出的流动变换过程,北京航空航天大学软件学院 thbin,65,结构化分析中的数据流图,北京航空航天大学软件学院 thbin,66,案例2-2:结构化分析设计,售票员根据旅客需要的航班,首先查询有无该航班机票。若有,则负责录入旅客基本信息(姓名、身份证号码、航班号、票价和到达港);保险公司
27、的服务员负责录入保险金额;售票部经理可随时查询每一个航班的售票情况(航班号、售出机票的数量、营业额),并在当日结算时计算出日营业额。,北京航空航天大学软件学院 thbin,67,由DFD开始分析,由需求文本中获取外部交互方,构造顶层DFD图,北京航空航天大学软件学院 thbin,68,分层细化DFD,北京航空航天大学软件学院 thbin,69,分层细化DFD:查询和录入,北京航空航天大学软件学院 thbin,70,分层细化DFD:统计和计算,北京航空航天大学软件学院 thbin,71,定义数据字典-数据流,1.数据流1)数据流名:旅客基本信息来源:售票员去向:数据变换“录入旅客基本信息”组成:
28、姓名+身份证号码+航班号+票价+到达港+保险金额2)数据流名:各航班售票信息来源:数据变换“统计各航班售票信息”去向:数据变换“2.2格式化”组成:航班号+座位数+售出机票数,北京航空航天大学软件学院 thbin,72,定义数据字典-数据存储,2.存储1)存储名:旅客基本信息组成:姓名+身份证号码+航班号+票价+到达港+保险金额组织:按售票先后顺序2)存储名:机票销售信息组成:航班号+座位数+售出机票数组织:按航班号、离港时间的先后顺序排序,北京航空航天大学软件学院 thbin,73,定义数据字典-数据项,3.数据项1)数据项名:姓名类型:字符串长度:202)数据项名:身份证类型:字符串长度:
29、18取值:1-17位为数字,18位为校验位,取值为0-9、X3)数据项名:航班号类型:字符串长度:6取值:前两位汉语拼音字母后四位数字,北京航空航天大学软件学院 thbin,74,定义数据字典-数据变换,4.数据变换1)变换名:录入保险金额编号:1.4激活条件:接到服务员输入的旅客信息和保险级别输入:保险级别输出:保险金额变换逻辑:保险服务员根据每位旅客的要求,输入保险级别,系统按照保险金额规定的标准,录入旅客保险金额,北京航空航天大学软件学院 thbin,75,评审DFD,找出变换中心,变换中心,输入模块,输出模块,北京航空航天大学软件学院 thbin,76,根据变换中心设计顶层、一层SC,
30、变换,输入,输出模块,北京航空航天大学软件学院 thbin,77,设计下层SC,北京航空航天大学软件学院 thbin,78,详细设计(以录入保险信息为例),北京航空航天大学软件学院 thbin,79,接口设计-定义模块间的接口,/获取保险信息struct BX_info*get_BX_info();/获取保险级别int get_BX_rank();/获取保险标准int get_BX_stand();/录入保险信息struct basic_BX_info*BX_input(char input*);,北京航空航天大学软件学院 thbin,80,数据设计-定义程序级数据结构,/个人保险信息stru
31、ct BX_info struct basic_BX_info basic_info;int rank;int stand;,/个人基本保险信息struct basic_BX_info char21 name;int sum;,北京航空航天大学软件学院 thbin,81,过程设计-获取保险信息算法,/获取保险信息struct BX_info*get_BX_info();,功能描述:获取乘客的保险信息,返回一个包含这些信息的结构指针,输入:乘客保险级别和保险标准:int rank,int stand,以及乘客的基本保险信息struct basic_BX_info;,输出:包含乘客保险信息的结构指
32、针:struct BX_info*;,北京航空航天大学软件学院 thbin,82,算法表述,北京航空航天大学软件学院 thbin,83,面向对象的开发方法,面向对象方法是一种把面向对象的思想运用于软件开发过程,指导开发活动的系统方法,包括分析、设计和实现等活动面向对象方法学基于对象概念,以对象为中心,以类和继承为构造机制,充分利用接口和多态提供的灵活性,来认识、理解、刻划客观世界和设计、构建相应的软件系统,北京航空航天大学软件学院 thbin,84,面向对象的开发方法示例,北京航空航天大学软件学院 thbin,85,面向对象开发方法的一般思路,面向对象方法的一般思路取得一组需求用各种手段构造对
33、象模型识别与问题有关的类与类间的关联添加与解决方案相关的类对类进行编码和测试,得出结果主要难点从需求中识别出对象,并构造相应的类如何验证识别出的类和对象能够满足需求,北京航空航天大学软件学院 thbin,86,常见的面向对象方法,20世纪80年代末、90年代初,随着C+语言的广泛应用,面向对象的技术得到广泛认可,结合软件工程理论和实践,产生了许多面向对象的开发方法P.Coad和E.Yourdon提出OOA和OOD G.Booch提出面向对象开发方法Rumbaugh提出的OMT方法Jacobson提出OOSE方法1997年11月诞生的UML已成为面向对象建模的事实标准第4章将全面介绍面向对象和U
34、ML建模方法,北京航空航天大学软件学院 thbin,87,形式化开发方法,形式化方法(formal methods)是建立在严格数学基础上,具有精确数学语义的开发方法简单地说,凡在系统研究中,应用了数学的方法,都是形式化方法 形式化的开发方法可以帮助软件开发人员开发出无二义性、完整的和准确的需求规格说明,进而通过严格的验证发现问题,以达到对软件质量、开发成本和开发进度的有效控制,北京航空航天大学软件学院 thbin,88,形式化开发方法发展历史,起始于20世纪60年代末的Floyd、Hoare和Manna等在程序正确性证明方面的研究20世纪80年代末,在硬件设计领域形式化方法的工业应用结果,又
35、掀起了软件形式化开发方法的学术研究和工业应用的热潮,建立了一些较为成熟的方法和语言Petri网、statecharts、通信顺序过程、通信系统演算、程序正确性证明、时态逻辑、模型验证、Z语言、B语言、VDM及Larch等,北京航空航天大学软件学院 thbin,89,实例:自动售货机Petri网模型,自动面包售货机:可接收面值为0.5元和1.0元的硬币,销售价格为1.5和2.0元的面包,售货机的最大硬币储存量为2.0元,北京航空航天大学软件学院 thbin,90,内容安排,系统开发生命周期系统开发过程过程评价准则系统开发方法自动化工具和技术,北京航空航天大学软件学院 thbin,91,自动工具与
36、技术,Computer-aided systems engineering(CASE)计算机辅助系统工程Application development environments(ADEs)应用开发环境Process and project managers过程与项目管理,北京航空航天大学软件学院 thbin,92,CASE工具,CASE工具-软件,能自动化或支持绘制、分析系统模型,提供系统模型到应用系统的转换CASE工具-功能框图工具描述工具原型工具质量管理工具文档工具设计和编码生成工具前向工程-系统设计=系统模型逆向工程-应用系统=系统模型,北京航空航天大学软件学院 thbin,93,本课程所涉及的工具,分析设计工具结构化建模工具:VisioUML工具:Rational Rose数据库设计工具:PowerDesigner开发工具Visual Studio.NetEclipse辅助工具文档工具:Microsoft Word表格工具:Microsoft Excel项目管理工具:Microsoft Project,