信息系统开发基础课件_第1页
信息系统开发基础课件_第2页
信息系统开发基础课件_第3页
信息系统开发基础课件_第4页
信息系统开发基础课件_第5页
已阅读5页,还剩181页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章信息系统开发基础谭火彬FundamentalsofInformationSystemsDevelopment1-系统分析与设计-第二章信息系统开发基础谭火彬Fundamentalsof课程资源联系老师办公地点:6#323联系电话:82338867Email:thbin@课件下载学院ftp服务器地址:9u/p:bse2002/3221Web下载/密码:36212北京航空航天大学软件学院©thbin课程资源联系老师2北京航空航天大学软件学院©thbin复习:系统分析设计基础3北京航空航天大学软件学院©thbin复习:系统分析设计基础3北京航空航天大学软件学院©th选择题信息系统开发过程涉及到的项目干系人,(1)提供软件需求;(2)定义项目范围;(3)设计软件总体结构

A.

系统拥有者 B.

系统用户

C.

系统分析师 D.

系统设计人员

E.

系统构造人员 F.IT厂商和顾问4北京航空航天大学软件学院©thbin选择题信息系统开发过程涉及到的项目干系人,(1)提供软件需求信息系统开发的核心技术系统开发过程过程是为到达目的采用的一系列步骤用于信息系统和软件的开发和维护的一组活动、方法、实践、发布、及自动化工具系统开发方法为系统开发提供了“如何做”的技术系统开发工具为系统开发提供了自动的或半自动的支撑环境5北京航空航天大学软件学院©thbin信息系统开发的核心技术系统开发过程5北京航空航天大学软件学院内容安排系统开发生命周期系统开发过程过程评价准则系统开发方法自动化工具和技术6北京航空航天大学软件学院©thbin内容安排系统开发生命周期6北京航空航天大学软件学院©t内容安排系统开发生命周期系统开发过程过程评价准则系统开发方法自动化工具和技术7北京航空航天大学软件学院©thbin内容安排系统开发生命周期7北京航空航天大学软件学院©t系统开发项目系统开发项目一个有始有终的任务产生预先确定的结果或产品可以是一个大工程,需要许多人进行数千小时的工作;也可以是一个很小的项目成功的项目详细的计划有组织的讲究方法的一系列活动和任务可靠、强大而高效的信息系统8北京航空航天大学软件学院©thbin系统开发项目系统开发项目8北京航空航天大学软件学院©t系统开发生命周期系统开发生命周期(SDLC,SystemDevelopmentLifecycle)把一个项目较简单地组成各个阶段提供了确保成功开发所需要的结构、方法、控制和核对表包含管理原则、计划、组织、问题解决协调、控制、分工、进度安排等问题9北京航空航天大学软件学院©thbin系统开发生命周期系统开发生命周期(SDLC,System生命周期中的各个阶段10北京航空航天大学软件学院©thbin生命周期中的各个阶段10北京航空航天大学软件学院©th计划阶段(PlanningPhase)目标:规划项目范围并做出项目计划活动定义问题确定项目可行性制定项目的进度表为项目安排人员启动项目11北京航空航天大学软件学院©thbin计划阶段(PlanningPhase)目标:规划项目范围并分析阶段(AnalysisPhase)目标:了解并详述用户需求活动收集信息确定系统需求建立需求发现的原型划分需求的优先级产生并评估可替换方案与管理人员一起审查需求12北京航空航天大学软件学院©thbin分析阶段(AnalysisPhase)目标:了解并详述用户设计阶段(DesignPhase)目标:设计系统解决方案活动设计应用程序结构设计用户界面设计并集成数据库设计系统的实现细节设计并集成网络设计并集成系统控制逻辑13北京航空航天大学软件学院©thbin设计阶段(DesignPhase)目标:设计系统解决方案1实现阶段(ImplementationPhase)目标:建立、测试和安装最后的系统活动构造软件构件验证与测试移植数据准备用户文档培训用户安装系统14北京航空航天大学软件学院©thbin实现阶段(ImplementationPhase)目标:建支持阶段(SupportPhase)目标:在系统初始安装后保持系统有效地运行活动提供对最终用户的支持维护和升级系统15北京航空航天大学软件学院©thbin支持阶段(SupportPhase)目标:在系统初始安装后各阶段人员配置情况16北京航空航天大学软件学院©thbin各阶段人员配置情况16北京航空航天大学软件学院©thb内容安排系统开发生命周期系统开发过程过程评价准则系统开发方法自动化工具和技术17北京航空航天大学软件学院©thbin内容安排系统开发生命周期17北京航空航天大学软件学院©从SDLC到开发过程SDLC定义了系统开发的五个阶段阶段并不一定是线性的可以按照合适的方式组织实际的过程系统开发过程针对项目的实际情况,结合SDLC定义合适的过程完成项目开发系统开发过程由关于系统的阶段、状态、方法、技术和开发、维护软件的人员以及相关对象(计划、文档、模型、编码、测试、手册等)组成18北京航空航天大学软件学院©thbin从SDLC到开发过程SDLC定义了系统开发的五个阶段18北京以过程为核心组织软件工程过程技术人员产品客户需求业务条件开发环境19北京航空航天大学软件学院©thbin以过程为核心组织软件工程过程技术人员产品客户业务开发环境19过程中的事件、阶段、活动和任务20北京航空航天大学软件学院©thbin过程中的事件、阶段、活动和任务20北京航空航天大学软件学院典型的软件系统开发过程传统系统开发过程1.编码修正模型2.瀑布模型3.螺旋模型4.原型模型现代软件工程过程5.Rational统一过程(RUP)6.敏捷过程(AP)7.微软解决方案(MSF)21北京航空航天大学软件学院©thbin典型的软件系统开发过程传统系统开发过程21北京航空航天大学软1.编码修正模型编码修正模型(CodeandFix)从一个大致的想法开始工作,然后经过非正规的设计、编码、调试和测试方法,最后完成工作可能有可能没有的规范发布(可能)22北京航空航天大学软件学院©thbin1.编码修正模型编码修正模型(CodeandFix)细说编码修正模型优点成本可能很低只需要很少的专业知识,任何写过程序的人都可以对于一些非常小的、开发完后就会很快丢弃的软件可以采用对于规模稍大的项目,采用这种模型是很危险的23北京航空航天大学软件学院©thbin细说编码修正模型优点23北京航空航天大学软件学院©th2.瀑布模型24北京航空航天大学软件学院©thbin2.瀑布模型24北京航空航天大学软件学院©thbin细说瀑布模型瀑布模型最早提出,所有过程模型的祖宗项目从开始到结束按照一定的顺序执行使用里程碑来界定一个阶段到另一阶段的转变文档驱动的,各个阶段不连续也不交叉主要问题线性的、缺乏灵活性;每个阶段互相独立而且不能回退如:必须在项目开始前说明全部需求25北京航空航天大学软件学院©thbin细说瀑布模型瀑布模型25北京航空航天大学软件学院©th3.螺旋模型26北京航空航天大学软件学院©thbin3.螺旋模型26北京航空航天大学软件学院©thbin细说螺旋模型特点以风险为导向的生命期模型从一个小范围的关键中心地带开始寻找风险因素,制定风险控制计划,并交付给下一步骤,如此迭代,每次迭代将项目扩展到一个更大的规模优势随着迭代的增加(成本的增加),风险程度随之降低缺陷比较复杂,需要责任心,专注和管理方面的知识27北京航空航天大学软件学院©thbin细说螺旋模型特点27北京航空航天大学软件学院©thbi4.原型模型28北京航空航天大学软件学院©thbin4.原型模型28北京航空航天大学软件学院©thbin细说原型模型原型模型是一种解决需求的不确定性和可变性的好办法原型是项目系统中的一个方面或者多个方面的工作模型抛弃型原型:用于试验某些概念,试验完系统将无用处演进型原型:原型系统不断被开发和被修正,最终它变为一个真正的系统29北京航空航天大学软件学院©thbin细说原型模型原型模型是一种解决需求的不确定性和可变性的好办法从另外的角度看待原型从中学到什么?学生经常会做一些软件作业,这些作业被称为原型问题:这些原型和软件系统原型是否相同?作为一个原型必须:描述他们希望从中学到的东西,规划原型评价的方法,报告从原型中真正学到的内容在不同的阶段,原型具有不同的作用原型起作用的程度实物模型(Mock-ups)仿真交互部分模型:水平,垂直(某些特性构造详细的原型)30北京航空航天大学软件学院©thbin从另外的角度看待原型从中学到什么?30北京航空航天大学软件学练习:何时引入原型系统公司的经理需要通过个人计算机上的一个系统来访问管理信息。系统价格必须合适。很多人怀疑是否经理真需要使用该系统可行性研究阶段,采用实物模型的方法支持客户销售人员通过电话回答有关客户询问汽车保险价格的系统设计用户对话界面时保险公司考虑实施一个基于MSAccess的电话销售系统,他们不知道Access是否能够开发出相应界面的系统并具备足够快的相应时间方案设计阶段31北京航空航天大学软件学院©thbin练习:何时引入原型系统公司的经理需要通过个人计算机上的一个系5.Rational统一过程32北京航空航天大学软件学院©thbin5.Rational统一过程32北京航空航天大学软件学院Rational统一过程Rational统一过程(RationalUnifiedProcess,RUP)是一种软件工程过程,它提供了如何在开发组织中严格分配任务和职责的方法是一个过程产品有自己的过程框架捕获了现代软件开发中的最佳实践目标按照预先制定的时间计划和经费预算,开发出高质量的软件产品以满足最终用户的需求33北京航空航天大学软件学院©thbinRational统一过程Rational统一过程(RatioRUP4个阶段9大工作流阶段初始Inception生命周期目标精化Elaboration生命周期构架构造Construction最初运作能力移交(Transition)产品发布工作流业务建模需求分析与设计实现测试部署配置和变更管理项目管理环境34北京航空航天大学软件学院©thbinRUP4个阶段9大工作流阶段工作流34北京航空航天大学软件学RUP中的6项最佳实践控制变更,有序积累资产

迭代开发,提前认知风险基于构件

搭建

弹性构架管理需求

及早

达成共识可视化

建模

打破

沟通壁垒持续

验证质量

降低

缺陷代价35北京航空航天大学软件学院©thbinRUP中的6项最佳实践控制变更,有序积累资产迭代开发,提前RUP三大特点RUP三大特点用例驱动(Usecasedriven)以架构为中心(Architecture-centric)迭代和增量开发(Iterativeandincrementaldevelopment)36北京航空航天大学软件学院©thbinRUP三大特点RUP三大特点36北京航空航天大学软件学院6.敏捷过程(AgileProcess)敏捷代表着有效和灵活那些轻型的、有效的方法即为敏捷方法在重型方法(如RUP)中,经常在一些不必要、重复的中间环节上浪费了太多的精力,而敏捷则避免了这种浪费敏捷联盟宣言IndividualsandinteractionsoverprocessesandtoolsWorkingsoftwareovercomprehensivedocumentationCustomercollaborationovercontractnegotiationRespondingtochangeoverfollowingaplan37北京航空航天大学软件学院©thbin6.敏捷过程(AgileProcess)敏捷代表着有效和极限编程客户作为团队成员用户故事短交互周期验收测试结对编程测试驱动的开发方法集体所有权持续集成可持续的开发速度开放的工作空间计划游戏简单设计重构隐喻极限编程(eXtremeProgramming,XP)是敏捷方法中最著名的一个,它由一系列简单却互相依赖的实践组成38北京航空航天大学软件学院©thbin极限编程客户作为团队成员持续集成极限编程(eXtremeP过程裁剪裁剪(Tailoring):每个项目自身特点这些过程标准只是一个通用的过程框架,需要根据实际情况裁剪裁剪分类过程裁剪、阶段裁剪、文档/产品/工作产品裁剪标准点项目规模、开发过程(生命周期)、项目类型39北京航空航天大学软件学院©thbin过程裁剪裁剪(Tailoring):每个项目自身特点39北京案例:选择合适的过程模型

Giga-Safe公司的区域代理商们吵吵嚷嚷地想要升级Giga-Quote1.0,改正错误并且修改一些令人厌烦的用户界面上的小问题。在部门经理Randy的建议下,Giga-Quote1.0项目后期被调离的Bill又重新当上了Giga-Quote1.1项目的项目经理。 “这些就是你的任务。”Randy说。“上次的进度安排出现了很多问题,所以这次你必须按全力以赴的速度来组织项目。原型法是速度最快的方法,让你的团队采用这种方法。”Bill想想觉得挺不错,过几天开会时,他告诉大家要采用原型法。40北京航空航天大学软件学院©thbin案例:选择合适的过程模型 Giga-Safe公司的区域代理商案例(续1)

Mike是项目的技术负责人,他觉得很惊讶。“Bill,我不同意你的想法”,他说道,“我们有6个星期来修改一系列的错误,而且只是用户界面作一些小的改变。你用原型干什么呢?” “我们需要采用一个原型来提高项目开发速度,”Bill暴躁地说。“原型法是最新、最快的方法,这就足为什么我要求你采用的原因。还有什么问题吗?” “好吧,”Mike说道,“如果那就是你想要的,我们会去开发一个原型。”41北京航空航天大学软件学院©thbin案例(续1) Mike是项目的技术负责人,他觉得很惊讶。“案例(续2)

Mike和另外一个开发人员,Sue,开始做原型。因为和他们做的现有系统几乎一样,没几天就做出了整个系统的仿制品。 在第2周一上班,他们给代理商经理Jack演示了原型。“该死!我怎么能告诉我的区域代理们要用这个东西!”Jack大声叫道。“和现在的程序相比几乎没有什么改进!我的区域代理们只不过想要更好用,我对一些新的报表有点想法而已。就在这儿,我给你们看看。”Mike和Sue耐心地听着,开完会,Mike找到了Bill。42北京航空航天大学软件学院©thbin案例(续2) Mike和另外一个开发人员,Sue,开始做原型案例(续3) “我们给Jack演示了原型。他想增加一些新的报表,而且很坚决。可是我们的工作计划都安排满了。” “我看不成问题。”Bill说。“他是经理。如果他说要这些报表,他们就肯定是需要的。你们这些家伙该做的就是想想办法怎么给他们按时做出来。” “我试试看吧,”Mike说,“但是我得告诉你的是,如果增加这些报表,我们按时完成任务的机会只有1%。” “好吧,你们反正得做,”Bill说,“也许现在采用了原型,工作进展会比你预期的要快。”43北京航空航天大学软件学院©thbin案例(续3) “我们给Jack演示了原型。他想增加一些新的报案例(续4) 两天后,Jack去了Mike的办公室。“我看了那个原型,我想我们还得增加一些数据录入窗口。我昨天在每月的地区代理例会上给我们的一些代理看了你们做的原型。他们说有些想法得和你谈谈。我给了他们你的电话号码,希望你别介意。” 后来,Mike问Bill是否该和Jack谈谈变更的问题,但是Bill说:“不用。” 第二天,Mike接到了两个参加了地区代理例会的代理的电话。他们都想再调整一下系统。接下来的2星期里,他每天接到电话,需要修改的内容累积了一大堆。44北京航空航天大学软件学院©thbin案例(续4) 两天后,Jack去了Mike的办公室。“我看了案例(续5) 他们的项目只有6星期的时间,在第4个星期末,Mike和Sue估计他们还有6星期的活,但却要在2星期内完成。Mike又去找了Bill。“我对你很失望,”Bill说,“我答应过Jack和那些代理会按他们的要求进行修改。看来你没有很好地利用原型模型,这下麻烦就大了。” “麻烦早就有了”,Mike这么想,“只是没想到竟会落到我的头上。”但是Bill还是固执己见。45北京航空航天大学软件学院©thbin案例(续5) 他们的项目只有6星期的时间,在第4个星期末,M案例(续6) 在第8个星期末,Bill开始抱怨Mike和Sue工作不够努力。到了第10个星期末,Bill开始每天两次去他们的办公室检查进展情况。快到第12个星期末的时候,代理们开始抱怨。于是,Bill说,“我们得拿点什么东西出来了,就把你们现在已经完成的部分交付给用户吧。”因为新的报表和新的数据录入窗口都没有完成,Mike和Sue中断了开发编码工作,简单地修改了一些原来计划中要修改的主要错误和用户界面上一些粗糙的地方,就交付了成果。但是他们原计划6个星期的时间变成了12个星期。46北京航空航天大学软件学院©thbin案例(续6) 在第8个星期末,Bill开始抱怨Mike和Su内容安排系统开发生命周期系统开发过程过程评价准则系统开发方法自动化工具和技术47北京航空航天大学软件学院©thbin内容安排系统开发生命周期47北京航空航天大学软件学院©软件过程能力评价-CMMICMM集成2005年12月31日起,美国软件工程研究院(SEI)宣布不再维护SW-CMM(软件CMM2.0版草案),转为维护CMMI(CMM集成)CMMI与CMM的主要区别:CMMI模型中出现了连续模型CMMI模型中比SW-CMM进一步强化了对需求的重视CMMI模型对工程活动进行了一定的强化CMMI中还强调了风险管理48北京航空航天大学软件学院©thbin软件过程能力评价-CMMICMM集成48北京航空航天大学软件CMMI过程域级别对于连续模型,每一个过程区域都具有6个级别0-未完成级(原始态)1-已执行级(可完成由输入到输出的生产)2-已管理级(过程管理制度化)3-已定义级(过程定义制度化)4-量化管理级(量化管理制度化)5-优化级(过程优化)49北京航空航天大学软件学院©thbinCMMI过程域级别对于连续模型,每一个过程区域都具有6个级别CMMI成熟度级别CMMI的阶段模型中,划分了5个成熟度级别(与CMM相同)1-初始级2-已管理级3-已定义级4-量化管理级5-优化级50北京航空航天大学软件学院©thbinCMMI成熟度级别CMMI的阶段模型中,划分了5个成熟度级别系统开发质量51北京航空航天大学软件学院©thbin系统开发质量51北京航空航天大学软件学院©thbin内容安排系统开发生命周期系统开发过程过程评价准则系统开发方法自动化工具和技术52北京航空航天大学软件学院©thbin内容安排系统开发生命周期52北京航空航天大学软件学院©系统开发方法系统开发方法为系统开发提供了“如何做”的技术三类典型的开发方法结构化开发方法面向对象开发方法形式化开发方法53北京航空航天大学软件学院©thbin系统开发方法系统开发方法为系统开发提供了“如何做”的技术过程与方法过程与方法过程是一种“战术”,而方法则是基本的“作战技能”是一种多对多的关系,没有严格的对应,但有些最佳实践过程只是一个模板,每个团队都有自己的特点,结合不同的方法定义自己的过程54北京航空航天大学软件学院©thbin过程与方法过程与方法54北京航空航天大学软件学院©th结构化开发方法一种传统的开发方法使用结构化编程、结构化设计和结构化分析技术的系统开发方法20世纪60年代:结构化编程(首次通过工程化方法来提高计算机编程的质量)20世纪70年代:结构化设计(把分散的程序组合为更加复杂的信息系统)20世纪80年代:结构化分析(开发人员在设计程序之前定义明确的需求)55北京航空航天大学软件学院©thbin结构化开发方法一种传统的开发方法55北京航空航天大学软件学院结构化编程结构化编程(StructuredProgramming,SP)提高程序质量允许其他程序员可以非常容易地阅读和修改程序每个程序模块都有一个开始和一个结束程序执行过程中的每一步都由三种程序结构之一组成:顺序、选择、循环自顶向下(模块化)程序设计:把更复杂的程序分解为程序模块的层次图56北京航空航天大学软件学院©thbin结构化编程结构化编程(StructuredProgramm结构化设计结构化设计(StructuredDesign,SD)是一项技术,它为确定下列事物提供指导:程序集的组成每一个程序应该实现哪些功能如何把这些程序组织成不同层次利用结构图(Structurechart,SC)描述程序的模块层次关系结构化设计基本原则低耦合:模块间尽可能保持相对独立高内聚:每一个模块实现一件清晰的任务57北京航空航天大学软件学院©thbin结构化设计结构化设计(StructuredDesign,SC图示调用数据信息控制信息模块58北京航空航天大学软件学院©thbinSC图示调用数据信息控制信息模块58北京航空航天大学软件学院流程图的基本要素控制流处理过程判定起始、结束符预先定义的过程59北京航空航天大学软件学院©thbin流程图的基本要素控制流处理过程判定起始、结束符预先定义的过程结构化设计中的结构图60北京航空航天大学软件学院©thbin结构化设计中的结构图60北京航空航天大学软件学院©th结构化分析结构化分析(StructuredAnalysis)是一项技术,它帮助开发人员定义:系统需要完成的功能(功能需求)系统需要存储和使用的数据(数据需求)系统需要的输入和输出如何这些功能结合在一起完成任务结构化分析过程数据建模:实体关系图ERD(定义数据对象、属性和关系)功能建模:数据流图DFD、数据字典DD(指明数据如何在系统内被变换)行为建模:状态-迁移图STD、控制流图CFD(描述事件的影响)61北京航空航天大学软件学院©thbin结构化分析结构化分析(StructuredAnalysisER图中的元素描述数据实体(Entity)及实体之间的关系(Relationship)X方框:实体对象连线:关系Relationship短竖线:基数1多线:基数N圆圈:参与度可为0R菱形:关系对象关系之间的“或”关系之间的“与”62北京航空航天大学软件学院©thbinER图中的元素描述数据实体(Entity)及实体之间的关系(结构化分析中的实体关系图63北京航空航天大学软件学院©thbin结构化分析中的实体关系图63北京航空航天大学软件学院©数据流图从数据流动和变换的角度,以图形的方式刻画数据从输入到输出的流动变换过程YourdonGane外部实体数据流数据变换数据存储64北京航空航天大学软件学院©thbin数据流图从数据流动和变换的角度,以图形的方式刻画数据从输入到结构化分析中的数据流图65北京航空航天大学软件学院©thbin结构化分析中的数据流图65北京航空航天大学软件学院©t案例2-2:结构化分析设计售票员根据旅客需要的航班,首先查询有无该航班机票。若有,则负责录入旅客基本信息(姓名、身份证号码、航班号、票价和到达港);保险公司的服务员负责录入保险金额;售票部经理可随时查询每一个航班的售票情况(航班号、售出机票的数量、营业额),并在当日结算时计算出日营业额。66北京航空航天大学软件学院©thbin案例2-2:结构化分析设计售票员根据旅客需要的航班,首先查询由DFD开始分析由需求文本中获取外部交互方,构造顶层DFD图67北京航空航天大学软件学院©thbin由DFD开始分析由需求文本中获取外部交互方,构造顶层DFD图分层细化DFD68北京航空航天大学软件学院©thbin分层细化DFD68北京航空航天大学软件学院©thbin分层细化DFD:查询和录入69北京航空航天大学软件学院©thbin分层细化DFD:查询和录入69北京航空航天大学软件学院©分层细化DFD:统计和计算70北京航空航天大学软件学院©thbin分层细化DFD:统计和计算70北京航空航天大学软件学院©定义数据字典-数据流1.数据流1)

数据流名:旅客基本信息来源:售票员去向:数据变换“录入旅客基本信息”组成:姓名+身份证号码+航班号+票价+到达港+保险金额2)

数据流名:各航班售票信息来源:数据变换“统计各航班售票信息”去向:数据变换“2.2格式化”组成:航班号+座位数+售出机票数71北京航空航天大学软件学院©thbin定义数据字典-数据流1.数据流71北京航空航天大学软件学院定义数据字典-数据存储2.存储1)存储名:旅客基本信息组成:{姓名+身份证号码+航班号+票价+到达港+保险金额}组织:按售票先后顺序2)存储名:机票销售信息组成:{航班号+座位数+售出机票数}组织:按航班号、离港时间的先后顺序排序72北京航空航天大学软件学院©thbin定义数据字典-数据存储2.存储72北京航空航天大学软件学院定义数据字典-数据项3.数据项1)数据项名:姓名类型:字符串长度:202)数据项名:身份证类型:字符串长度:18取值:1-17位为数字,18位为校验位,取值为0-9、X3)数据项名:航班号类型:字符串长度:6取值:前两位汉语拼音字母+后四位数字73北京航空航天大学软件学院©thbin定义数据字典-数据项3.数据项73北京航空航天大学软件学院定义数据字典-数据变换4.数据变换1)变换名:录入保险金额 编号:1.4激活条件:接到服务员输入的旅客信息和保险级别输入:保险级别输出:保险金额变换逻辑:保险服务员根据每位旅客的要求,输入保险级别,系统按照保险金额规定的标准,录入旅客保险金额74北京航空航天大学软件学院©thbin定义数据字典-数据变换4.数据变换74北京航空航天大学软件评审DFD,找出变换中心变换中心输入模块输出模块75北京航空航天大学软件学院©thbin评审DFD,找出变换中心变换中心输入模块输出模块75北京航空根据变换中心设计顶层、一层SC变换输入输出模块76北京航空航天大学软件学院©thbin根据变换中心设计顶层、一层SC变换输入输出模块76北京航空航设计下层SC…77北京航空航天大学软件学院©thbin设计下层SC…77北京航空航天大学软件学院©thbin详细设计(以录入保险信息为例)78北京航空航天大学软件学院©thbin详细设计(以录入保险信息为例)78北京航空航天大学软件学院接口设计-定义模块间的接口//获取保险信息structBX_info*get_BX_info();//获取保险级别intget_BX_rank();//获取保险标准intget_BX_stand();//录入保险信息structbasic_BX_info*BX_input(charinput*);79北京航空航天大学软件学院©thbin接口设计-定义模块间的接口//获取保险信息79北京航空航天大数据设计-定义程序级数据结构//个人保险信息structBX_info{structbasic_BX_infobasic_info;int rank;intstand;};//个人基本保险信息structbasic_BX_info{char[21]name;int sum;};80北京航空航天大学软件学院©thbin数据设计-定义程序级数据结构//个人保险信息//个人基本保险过程设计-获取保险信息算法//获取保险信息structBX_info*get_BX_info();功能描述:

获取乘客的保险信息,返回一个包含这些信息的结构指针输入:

乘客保险级别和保险标准:intrank,intstand,以及乘客的基本保险信息structbasic_BX_info;输出:

包含乘客保险信息的结构指针:structBX_info*;81北京航空航天大学软件学院©thbin过程设计-获取保险信息算法//获取保险信息功能描述:

获取乘算法表述82北京航空航天大学软件学院©thbin算法表述82北京航空航天大学软件学院©thbin面向对象的开发方法面向对象方法是一种把面向对象的思想运用于软件开发过程,指导开发活动的系统方法,包括分析、设计和实现等活动面向对象方法学基于对象概念,以对象为中心,以类和继承为构造机制,充分利用接口和多态提供的灵活性,来认识、理解、刻划客观世界和设计、构建相应的软件系统83北京航空航天大学软件学院©thbin面向对象的开发方法面向对象方法是一种把面向对象的思想运用于软面向对象的开发方法示例84北京航空航天大学软件学院©thbin面向对象的开发方法示例84北京航空航天大学软件学院©t面向对象开发方法的一般思路面向对象方法的一般思路取得一组需求用各种手段构造对象模型识别与问题有关的类与类间的关联添加与解决方案相关的类对类进行编码和测试,得出结果主要难点从需求中识别出对象,并构造相应的类如何验证识别出的类和对象能够满足需求85北京航空航天大学软件学院©thbin面向对象开发方法的一般思路面向对象方法的一般思路85北京航空常见的面向对象方法20世纪80年代末、90年代初,随着C++语言的广泛应用,面向对象的技术得到广泛认可,结合软件工程理论和实践,产生了许多面向对象的开发方法P.Coad和E.Yourdon提出OOA和OODG.Booch提出面向对象开发方法Rumbaugh提出的OMT方法Jacobson提出OOSE方法……1997年11月诞生的UML已成为面向对象建模的事实标准第4章将全面介绍面向对象和UML建模方法86北京航空航天大学软件学院©thbin常见的面向对象方法20世纪80年代末、90年代初,随着C++形式化开发方法形式化方法(formalmethods)是建立在严格数学基础上,具有精确数学语义的开发方法简单地说,凡在系统研究中,应用了数学的方法,都是形式化方法形式化的开发方法可以帮助软件开发人员开发出无二义性、完整的和准确的需求规格说明,进而通过严格的验证发现问题,以达到对软件质量、开发成本和开发进度的有效控制87北京航空航天大学软件学院©thbin形式化开发方法形式化方法(formalmethods)是建形式化开发方法发展历史起始于20世纪60年代末的Floyd、Hoare和Manna等在程序正确性证明方面的研究20世纪80年代末,在硬件设计领域形式化方法的工业应用结果,又掀起了软件形式化开发方法的学术研究和工业应用的热潮,建立了一些较为成熟的方法和语言Petri网、statecharts、通信顺序过程、通信系统演算、程序正确性证明、时态逻辑、模型验证、Z语言、B语言、VDM及Larch等88北京航空航天大学软件学院©thbin形式化开发方法发展历史起始于20世纪60年代末的Floyd、实例:自动售货机Petri网模型自动面包售货机:可接收面值为0.5元和1.0元的硬币,销售价格为1.5和2.0元的面包,售货机的最大硬币储存量为2.0元89北京航空航天大学软件学院©thbin实例:自动售货机Petri网模型自动面包售货机:可接收面值为内容安排系统开发生命周期系统开发过程过程评价准则系统开发方法自动化工具和技术90北京航空航天大学软件学院©thbin内容安排系统开发生命周期90北京航空航天大学软件学院©自动工具与技术Computer-aidedsystemsengineering(CASE)计算机辅助系统工程Applicationdevelopmentenvironments(ADEs)应用开发环境Processandprojectmanagers过程与项目管理91北京航空航天大学软件学院©thbin自动工具与技术Computer-aidedsystemsCASE工具CASE工具-软件,能自动化或支持绘制、分析系统模型,提供系统模型到应用系统的转换CASE工具-功能框图工具描述工具原型工具质量管理工具文档工具设计和编码生成工具前向工程-系统设计=〉系统模型逆向工程-应用系统=〉系统模型92北京航空航天大学软件学院©thbinCASE工具CASE工具-软件,能自动化或支持绘制、分析系统本课程所涉及的工具分析设计工具结构化建模工具:VisioUML工具:RationalRose数据库设计工具:PowerDesigner开发工具VisualStudio.NetEclipse……辅助工具文档工具:MicrosoftWord表格工具:MicrosoftExcel项目管理工具:MicrosoftProject93北京航空航天大学软件学院©thbin本课程所涉及的工具分析设计工具93北京航空航天大学软件学院第二章信息系统开发基础谭火彬FundamentalsofInformationSystemsDevelopment94-系统分析与设计-第二章信息系统开发基础谭火彬Fundamentalsof课程资源联系老师办公地点:6#323联系电话:82338867Email:thbin@课件下载学院ftp服务器地址:9u/p:bse2002/3221Web下载/密码:362195北京航空航天大学软件学院©thbin课程资源联系老师2北京航空航天大学软件学院©thbin复习:系统分析设计基础96北京航空航天大学软件学院©thbin复习:系统分析设计基础3北京航空航天大学软件学院©th选择题信息系统开发过程涉及到的项目干系人,(1)提供软件需求;(2)定义项目范围;(3)设计软件总体结构

A.

系统拥有者 B.

系统用户

C.

系统分析师 D.

系统设计人员

E.

系统构造人员 F.IT厂商和顾问97北京航空航天大学软件学院©thbin选择题信息系统开发过程涉及到的项目干系人,(1)提供软件需求信息系统开发的核心技术系统开发过程过程是为到达目的采用的一系列步骤用于信息系统和软件的开发和维护的一组活动、方法、实践、发布、及自动化工具系统开发方法为系统开发提供了“如何做”的技术系统开发工具为系统开发提供了自动的或半自动的支撑环境98北京航空航天大学软件学院©thbin信息系统开发的核心技术系统开发过程5北京航空航天大学软件学院内容安排系统开发生命周期系统开发过程过程评价准则系统开发方法自动化工具和技术99北京航空航天大学软件学院©thbin内容安排系统开发生命周期6北京航空航天大学软件学院©t内容安排系统开发生命周期系统开发过程过程评价准则系统开发方法自动化工具和技术100北京航空航天大学软件学院©thbin内容安排系统开发生命周期7北京航空航天大学软件学院©t系统开发项目系统开发项目一个有始有终的任务产生预先确定的结果或产品可以是一个大工程,需要许多人进行数千小时的工作;也可以是一个很小的项目成功的项目详细的计划有组织的讲究方法的一系列活动和任务可靠、强大而高效的信息系统101北京航空航天大学软件学院©thbin系统开发项目系统开发项目8北京航空航天大学软件学院©t系统开发生命周期系统开发生命周期(SDLC,SystemDevelopmentLifecycle)把一个项目较简单地组成各个阶段提供了确保成功开发所需要的结构、方法、控制和核对表包含管理原则、计划、组织、问题解决协调、控制、分工、进度安排等问题102北京航空航天大学软件学院©thbin系统开发生命周期系统开发生命周期(SDLC,System生命周期中的各个阶段103北京航空航天大学软件学院©thbin生命周期中的各个阶段10北京航空航天大学软件学院©th计划阶段(PlanningPhase)目标:规划项目范围并做出项目计划活动定义问题确定项目可行性制定项目的进度表为项目安排人员启动项目104北京航空航天大学软件学院©thbin计划阶段(PlanningPhase)目标:规划项目范围并分析阶段(AnalysisPhase)目标:了解并详述用户需求活动收集信息确定系统需求建立需求发现的原型划分需求的优先级产生并评估可替换方案与管理人员一起审查需求105北京航空航天大学软件学院©thbin分析阶段(AnalysisPhase)目标:了解并详述用户设计阶段(DesignPhase)目标:设计系统解决方案活动设计应用程序结构设计用户界面设计并集成数据库设计系统的实现细节设计并集成网络设计并集成系统控制逻辑106北京航空航天大学软件学院©thbin设计阶段(DesignPhase)目标:设计系统解决方案1实现阶段(ImplementationPhase)目标:建立、测试和安装最后的系统活动构造软件构件验证与测试移植数据准备用户文档培训用户安装系统107北京航空航天大学软件学院©thbin实现阶段(ImplementationPhase)目标:建支持阶段(SupportPhase)目标:在系统初始安装后保持系统有效地运行活动提供对最终用户的支持维护和升级系统108北京航空航天大学软件学院©thbin支持阶段(SupportPhase)目标:在系统初始安装后各阶段人员配置情况109北京航空航天大学软件学院©thbin各阶段人员配置情况16北京航空航天大学软件学院©thb内容安排系统开发生命周期系统开发过程过程评价准则系统开发方法自动化工具和技术110北京航空航天大学软件学院©thbin内容安排系统开发生命周期17北京航空航天大学软件学院©从SDLC到开发过程SDLC定义了系统开发的五个阶段阶段并不一定是线性的可以按照合适的方式组织实际的过程系统开发过程针对项目的实际情况,结合SDLC定义合适的过程完成项目开发系统开发过程由关于系统的阶段、状态、方法、技术和开发、维护软件的人员以及相关对象(计划、文档、模型、编码、测试、手册等)组成111北京航空航天大学软件学院©thbin从SDLC到开发过程SDLC定义了系统开发的五个阶段18北京以过程为核心组织软件工程过程技术人员产品客户需求业务条件开发环境112北京航空航天大学软件学院©thbin以过程为核心组织软件工程过程技术人员产品客户业务开发环境19过程中的事件、阶段、活动和任务113北京航空航天大学软件学院©thbin过程中的事件、阶段、活动和任务20北京航空航天大学软件学院典型的软件系统开发过程传统系统开发过程1.编码修正模型2.瀑布模型3.螺旋模型4.原型模型现代软件工程过程5.Rational统一过程(RUP)6.敏捷过程(AP)7.微软解决方案(MSF)114北京航空航天大学软件学院©thbin典型的软件系统开发过程传统系统开发过程21北京航空航天大学软1.编码修正模型编码修正模型(CodeandFix)从一个大致的想法开始工作,然后经过非正规的设计、编码、调试和测试方法,最后完成工作可能有可能没有的规范发布(可能)115北京航空航天大学软件学院©thbin1.编码修正模型编码修正模型(CodeandFix)细说编码修正模型优点成本可能很低只需要很少的专业知识,任何写过程序的人都可以对于一些非常小的、开发完后就会很快丢弃的软件可以采用对于规模稍大的项目,采用这种模型是很危险的116北京航空航天大学软件学院©thbin细说编码修正模型优点23北京航空航天大学软件学院©th2.瀑布模型117北京航空航天大学软件学院©thbin2.瀑布模型24北京航空航天大学软件学院©thbin细说瀑布模型瀑布模型最早提出,所有过程模型的祖宗项目从开始到结束按照一定的顺序执行使用里程碑来界定一个阶段到另一阶段的转变文档驱动的,各个阶段不连续也不交叉主要问题线性的、缺乏灵活性;每个阶段互相独立而且不能回退如:必须在项目开始前说明全部需求118北京航空航天大学软件学院©thbin细说瀑布模型瀑布模型25北京航空航天大学软件学院©th3.螺旋模型119北京航空航天大学软件学院©thbin3.螺旋模型26北京航空航天大学软件学院©thbin细说螺旋模型特点以风险为导向的生命期模型从一个小范围的关键中心地带开始寻找风险因素,制定风险控制计划,并交付给下一步骤,如此迭代,每次迭代将项目扩展到一个更大的规模优势随着迭代的增加(成本的增加),风险程度随之降低缺陷比较复杂,需要责任心,专注和管理方面的知识120北京航空航天大学软件学院©thbin细说螺旋模型特点27北京航空航天大学软件学院©thbi4.原型模型121北京航空航天大学软件学院©thbin4.原型模型28北京航空航天大学软件学院©thbin细说原型模型原型模型是一种解决需求的不确定性和可变性的好办法原型是项目系统中的一个方面或者多个方面的工作模型抛弃型原型:用于试验某些概念,试验完系统将无用处演进型原型:原型系统不断被开发和被修正,最终它变为一个真正的系统122北京航空航天大学软件学院©thbin细说原型模型原型模型是一种解决需求的不确定性和可变性的好办法从另外的角度看待原型从中学到什么?学生经常会做一些软件作业,这些作业被称为原型问题:这些原型和软件系统原型是否相同?作为一个原型必须:描述他们希望从中学到的东西,规划原型评价的方法,报告从原型中真正学到的内容在不同的阶段,原型具有不同的作用原型起作用的程度实物模型(Mock-ups)仿真交互部分模型:水平,垂直(某些特性构造详细的原型)123北京航空航天大学软件学院©thbin从另外的角度看待原型从中学到什么?30北京航空航天大学软件学练习:何时引入原型系统公司的经理需要通过个人计算机上的一个系统来访问管理信息。系统价格必须合适。很多人怀疑是否经理真需要使用该系统可行性研究阶段,采用实物模型的方法支持客户销售人员通过电话回答有关客户询问汽车保险价格的系统设计用户对话界面时保险公司考虑实施一个基于MSAccess的电话销售系统,他们不知道Access是否能够开发出相应界面的系统并具备足够快的相应时间方案设计阶段124北京航空航天大学软件学院©thbin练习:何时引入原型系统公司的经理需要通过个人计算机上的一个系5.Rational统一过程125北京航空航天大学软件学院©thbin5.Rational统一过程32北京航空航天大学软件学院Rational统一过程Rational统一过程(RationalUnifiedProcess,RUP)是一种软件工程过程,它提供了如何在开发组织中严格分配任务和职责的方法是一个过程产品有自己的过程框架捕获了现代软件开发中的最佳实践目标按照预先制定的时间计划和经费预算,开发出高质量的软件产品以满足最终用户的需求126北京航空航天大学软件学院©thbinRational统一过程Rational统一过程(RatioRUP4个阶段9大工作流阶段初始Inception生命周期目标精化Elaboration生命周期构架构造Construction最初运作能力移交(Transition)产品发布工作流业务建模需求分析与设计实现测试部署配置和变更管理项目管理环境127北京航空航天大学软件学院©thbinRUP4个阶段9大工作流阶段工作流34北京航空航天大学软件学RUP中的6项最佳实践控制变更,有序积累资产

迭代开发,提前认知风险基于构件

搭建

弹性构架管理需求

及早

达成共识可视化

建模

打破

沟通壁垒持续

验证质量

降低

缺陷代价128北京航空航天大学软件学院©thbinRUP中的6项最佳实践控制变更,有序积累资产迭代开发,提前RUP三大特点RUP三大特点用例驱动(Usecasedriven)以架构为中心(Architecture-centric)迭代和增量开发(Iterativeandincrementaldevelopment)129北京航空航天大学软件学院©thbinRUP三大特点RUP三大特点36北京航空航天大学软件学院6.敏捷过程(AgileProcess)敏捷代表着有效和灵活那些轻型的、有效的方法即为敏捷方法在重型方法(如RUP)中,经常在一些不必要、重复的中间环节上浪费了太多的精力,而敏捷则避免了这种浪费敏捷联盟宣言IndividualsandinteractionsoverprocessesandtoolsWorkingsoftwareovercomprehensivedocumentationCustomercollaborationovercontractnegotiationRespondingtochangeoverfollowingaplan130北京航空航天大学软件学院©thbin6.敏捷过程(AgileProcess)敏捷代表着有效和极限编程客户作为团队成员用户故事短交互周期验收测试结对编程测试驱动的开发方法集体所有权持续集成可持续的开发速度开放的工作空间计划游戏简单设计重构隐喻极限编程(eXtremeProgramming,XP)是敏捷方法中最著名的一个,它由一系列简单却互相依赖的实践组成131北京航空航天大学软件学院©thbin极限编程客户作为团队成员持续集成极限编程(eXtremeP过程裁剪裁剪(Tailoring):每个项目自身特点这些过程标准只是一个通用的过程框架,需要根据实际情况裁剪裁剪分类过程裁剪、阶段裁剪、文档/产品/工作产品裁剪标准点项目规模、开发过程(生命周期)、项目类型132北京航空航天大学软件学院©thbin过程裁剪裁剪(Tailoring):每个项目自身特点39北京案例:选择合适的过程模型

Giga-Safe公司的区域代理商们吵吵嚷嚷地想要升级Giga-Quote1.0,改正错误并且修改一些令人厌烦的用户界面上的小问题。在部门经理Randy的建议下,Giga-Quote1.0项目后期被调离的Bill又重新当上了Giga-Quote1.1项目的项目经理。 “这些就是你的任务。”Randy说。“上次的进度安排出现了很多问题,所以这次你必须按全力以赴的速度来组织项目。原型法是速度最快的方法,让你的团队采用这种方法。”Bill想想觉得挺不错,过几天开会时,他告诉大家要采用原型法。133北京航空航天大学软件学院©thbin案例:选择合适的过程模型 Giga-Safe公司的区域代理商案例(续1)

Mike是项目的技术负责人,他觉得很惊讶。“Bill,我不同意你的想法”,他说道,“我们有6个星期来修改一系列的错误,而且只是用户界面作一些小的改变。你用原型干什么呢?” “我们需要采用一个原型来提高项目开发速度,”Bill暴躁地说。“原型法是最新、最快的方法,这就足为什么我要求你采用的原因。还有什么问题吗?” “好吧,”Mike说道,“如果那就是你想要的,我们会去开发一个原型。”134北京航空航天大学软件学院©thbin案例(续1) Mike是项目的技术负责人,他觉得很惊讶。“案例(续2)

Mike和另外一个开发人员,Sue,开始做原型。因为和他们做的现有系统几乎一样,没几天就做出了整个系统的仿制品。 在第2周一上班,他们给代理商经理Jack演示了原型。“该死!我怎么能告诉我的区域代理们要用这个东西!”Jack大声叫道。“和现在的程序相比几乎没有什么改进!我的区域代理们只不过想要更好用,我对一些新的报表有点想法而已。就在这儿,我给你们看看。”Mike和Sue耐心地听着,开完会,Mike找到了Bill。135北京航空航天大学软件学院©thbin案例(续2) Mike和另外一个开发人员,Sue,开始做原型案例(续3) “我们给Jack演示了原型。他想增加一些新的报表,而且很坚决。可是我们的工作计划都安排满了。” “我看不成问题。”Bill说。“他是经理。如果他说要这些报表,他们就肯定是需要的。你们这些家伙该做的就是想想办法怎么给他们按时做出来。” “我试试看吧,”Mike说,“但是我得告诉你的是,如果增加这些报表,我们按时完成任务的机会只有1%。” “好吧,你们反正得做,”Bill说,“也许现在采用了原型,工作进展会比你预期的要快。”136北京航空航天大学软件学院©thbin案例(续3) “我们给Jack演示了原型。他想增加一些新的报案例(续4) 两天后,Jack去了Mike的办公室。“我看了那个原型,我想我们还得增加一些数据录入窗口。我昨天在每月的地区代理例会上给我们的一些代理看了你们做的原型。他们说有些想法得和你谈谈。我给了他们你的电话号码,希望你别介意。” 后来,Mike问Bill是否该和Jack谈谈变更的问题,但是Bill说:“不用。” 第二天,Mike接到了两个参加了地区代理例会的代理的电话。他们都想再调整一下系统。接下来的2星期里,他每天接到电话,需要修改的内容累积了一大堆。137北京航空航天大学软件学院©thbin案例(续4) 两天后,Jack去了Mike的办公室。“我看了案例(续5) 他们的项目只有6星期的时间,在第4个星期末,Mike和Sue估计他们还有6星期的活,但却要在2星期内完成。Mike又去找了Bill。“我对你很失望,”Bill说,“我答应过Jack和那些代理会按他们的要求进行修改。看来你没有很好地利用原型模型,这下麻烦就大了。” “麻烦早就有了”,Mike这么想,“只是没想到竟会落到我的头上。”但是Bill还是固执己见。138北京航空航天大学软件学院©thbin案例(续5) 他们的项目只有6星期的时间,在第4个星期末,M案例(续6) 在第8个星期末,Bill开始抱怨Mike和Sue工作不够努力。到了第10个星期末,Bill开始每天两次去他们的办公室检查进展情况。快到第12个星期末的时候,代理们开始抱怨。于是,Bill说,“我们得拿点什么东西出来了,就把你们现在已经完成的部分交付给用户吧。”因为新的报表和新的数据录入窗口都没有完成,Mike和Sue中断了开发编码工作,简单地修改了一些原来计划中要修改的主要错误和用户界面上一些粗糙的地方,就交付了成果。但是他们原计划6个星期的时间变成了12个星期。139北京航空航天大学软件学院©thbin案例(续6) 在第8个星期末,Bill开始抱怨Mike和Su内容安排系统开发生命周期系统开发过程过程评价准则系统开发方法自动化工具和技术140北京航空航天大学软件学院©thbin内容安排系统开发生命周期47北京航空航天大学软件学院©软件过程能力评价-CMMICMM集成2005年12月31日起,美国软件工程研究院(SEI)宣布不再维护SW-CMM(软件CMM2.0版草案),转为维护CMMI(CMM集成)CMMI与CMM的主要区别:CMMI模型中出现了连续模型CMMI模型中比SW-CMM进一步强化了对需求的重视CMMI模型对工程活动进行了一定的强化CMMI中还强调了风险管理141北京航空航天大学软件学院©thbin软件过程能力评价-CMMICMM集成48北京航空航天大学软件CMMI过程域级别对于连续模型,每一个过程区域都具有6个级别0-未完成级(原始态)1-已执行级(可完成由输入到输出的生产)2-已管理级(过程管理制度化)3-已定义级(过程定义制度化)4-量化管理级(量化管理制度化)5-优化级(过程优化)142北京航空航天大学软件学院©thbinCMMI过程域级别对于连续模型,每一个过程区域都具有6个级别CMMI成熟度级别CMMI的阶段模型中,划分了5个成熟度级别(与CMM相同)1-初始级2-已管理级3-已定义级4-量化管理级5-优化级143北京航空航天大学软件学院©thbinCMMI成熟度级别CMMI的阶段模型中,划分了5个成熟度级别系统开发质量144北京航空航天大学软件学院©thbin系统开发质量51北京航空航天大学软件学院©thbin内容安排系统开发生命周期系统开发过程过程评价准则系统开发方法自动化工具和技术145北京航空航天大学软件学院©thbin内容安排系统开发生命周期52北京航空航天大学软件学院©系统开发方法系统开发方法为系统开发提供了“如何做”的技术三类典型的开发方法结构化开发方法面向对象开发方法形式化开发方法146北京航空航天大学软件学院©thbin系统开发方法系统开发方法为系统开发提供了“如何做”的技术过程与方法过程与方法过程是一种“战术”,而方法则是基本的“作战技能”是一种多对多的关系,没有严格的对应,但有些最佳实践过程只是一个模板,每个团队都有自己的特点,结合不同的方法定义自己的过程147北京航空航天大学软件学院©thbin过程与方法过程与方法54北京航空航天大学软件学院©th结构化开发方法一种传统的开发方法使用结构化编程、结构化设计和结构化分析技术的系统开发方法20世纪60年代:结构化编程(首次通过工程化方法来提高计算机编程的质量)20世纪70年代:结构化设计(把分散的程序组合为更加复杂的信息系统)20世纪80年代:结构化分析(开发人员在设计程序之前定义明确的需求)148北京航空航天大学软件学院©thbin结构化开发方法一种传统的开发方法55北京航空航天大学软件学院结构化编程结构化编程(StructuredProgramming,SP)提高程序质量允许其他程序员可以非常容易地阅读和修改程序每个程序模块都有一个开始和一个结束程序执行过程中的每一步都由三种程序结构之一组成:顺序、选择、循环自顶向下(模块化)程序设计:把更复杂的程序分解为程序模块的层次图149北京航空航天大学软件学院©thbin结构化编程结构化编程(StructuredProgramm结构化设计结构化设计(StructuredDesign,SD)是一项技术,它为确定下列事物提供指导:程序集的组成每一个程序应该实现哪些功能如何把这些程序组织成不同层次利用结构图(Structurechart,SC)描述程序的模块层次关系结构化设计基本原则低耦合:模块间尽可能保持相对独立高内聚:每一个模块实现一件清晰的任务150北京航空航天大学软件学院©thbin结构化设计结构化设计(StructuredDesign,SC图示调用数据信息控制信息模块151北京航空航天大学软件学院©thbinSC图示调用数据信息控制信息模块58北京航空航天大学软件学院流程图的基本要素控制流处理过程判定起始、结束符预先定义的过程152北京航空航天大学软件学院©thbin流程图的基本要素控制流处理过程判定起始、结束符预先定义的过程结构化设计中的结构图153北京航空航天大学软件学院©thbin结构化设计中的结构图60北京航空航天大学软件学院©th结构化分析结构化分析(StructuredAnalysis)是一项技术,它帮助开发人员定义:系统需要完成的功能(功能需求)系统需要存储和使用的数据(数据需求)系统需要的输入和输出如何这些功能结合在一起完成任务结构化分析过程数据建模:实体关系图ERD(定义数据对象、属性和关系)功能建模:数据流图DFD、数据字典DD(指明数据如何在系统内被变换)行为建模:状态-迁移图STD、控制流图CFD(描述事件的影响)154北京航空航天大学软件学院©thbin结构化分析结构化分析(StructuredAnalysisER图中的元素描述数据实体(Entity)及实体之间的关系(Relationship)X方框:实体对象连线:关系Relationship短竖线:基数1多线:基数N圆圈:参与度可为0R菱形:关系对象关系之间的“或”关系之间的“与”155北京航空航天大学软件学院©thbinER图中的元素描述数据实体(Entity)及实体之间的关系(结构化分析中的实体关系图156北京航空航天大学软件学院©thbin结构化分析中的实体关系图63北京航空航天大学软件学院©数据流图从数据流动和变换的角度,以图形的方式刻画数据从输入到输出的流动变换过程YourdonGane外部实体数据流数据变换数据存储157北京航空航天大学软件学院©thbin数据流图从数据流动和变换的角度,以图形的方式刻画数据从输入到结构化分析中的数据流图158北京航空航天大学软件学院©thbin结构化分析中的数据流图65北京航空航天大学软件学院©t案例2-2:结构化分析设计售票员根据旅客需要的航班,首先查询有无该航班机票。若有,则负责录入旅客基本信息(姓名、身份证号码、航班号、票价和到达港);保险公司的服务员负责录入保险金额;售票部经理可随时查询每一个航班的售票情况(航班号、售出机票的数量、营业额),并在当日结算时计算出日营业额。159北京航空航天大学软件学院©thbin案例2-2:结构化分析设计售票员根据旅客需要的航班,首先查询由DFD开始分析由需求文本中获取外部交互方,构造顶层DFD图160北京航空航天大学软件学院©thbin由DFD开始分析由需求文本中获取外部交互方,构造顶层DFD图分层细化DFD161北京航空航天大学软件学院©thbin分层细化DFD68北京航空航天大学软件学院©thbin分层细化DFD:查询和录入162北京航空航天大学软件学院©thbin分层细化DFD:查询和录入69北京航空航天大学软件学院©分层细化DFD:统计和计算163北京航空航天大学软件学院©thbin分层细化DFD:统计和计算70北京航空航天大学软件学院©定义数据字典-数据流1.数据流1)

数据流名:旅客基本信息来源:售票员去向:数据变换“录入旅客基本信息”组成:姓名+身份证号码+航班

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论