欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    系统需求分析与定义.ppt

    • 资源ID:4935953       资源大小:882KB        全文页数:207页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    系统需求分析与定义.ppt

    软件工程,1,系统需求分析与定义,一、计算机系统分析二、软件需求分析三、结构化分析方法四、快速原型化方法五、面向对象分析方法六、需求分析文档的原则和评审,软件工程,2,一、计算机系统分析,基于计算机的系统基于计算机的系统的系统元素包括硬件、软件、人、数据库、文档和过程。软件 计算机程序、数据结构、相关文档;硬件 电子计算设备(如CPU,存储器)和外部机电设备(如传感器、马达等);人 硬件和软件的用户;数据库 一个大型的有组织的信息集合;,软件工程,3,基于计算机系统的系统元素,软件工程,4,文档 手册、表格和其它用以描述系统使用和操作的信息;过程 定义每一种系统元素的特定使用步骤,或系统驻留的过程性环境。,系统的层次结构,基于计算机的系统本身可以成为一个更大的基于计算机系统中的一个元素,并称为那个更大系统的宏元素。,软件工程,5,工厂自动化系统,软件工程,6,2.系统分析,系统分析是一个问题求解活动,目的是揭示、分析所期望的功能,并把它们分配到各个单独的系统元素中去。与用户合作确认用户的目标和约束;导出功能、性能、接口、设计约束和信息结构的表示;将它们分配到每一个系统元素中。,软件工程,7,系统分析的任务,识别用户要求评价系统的可行性进行经济分析和技术分析把功能分配给硬件、软件、人、数据库和其他系统元素建立成本和进度限制生成系统规格说明,形成所有后续工程的基础。,软件工程,8,1)识别用户要求,分析员必须考虑以下问题:,功能和性能 可靠性和质量 总的系统目标 成本与进度限制,制造需求 市场与竞争情况 有效的技术 将来可能的扩充,识别希望的功能和性能范围;确定系统的功能、性能、约束和接口;,软件工程,9,2)可行性研究,可行性研究经济可行性技术可行性法律可行性用户操作可行性可行性研究的步骤确定项目的规模和目标研究当前正在运行的系统建立新系统的高层逻辑模型,软件工程,10,导出和评价各种方案推荐可行的方案编写可行性研究报告,经济可行性 成本效益分析,成本估算专家估算技术(Delphi技术)成本估算模型(COCOMO)效益估算投资回收期,软件工程,11,纯收入投资回收率,技术可行性 技术风险分析,技术解决方案的实用性使用的技术实用化程度技术解决方案合理程度技术资源的可用性参与人员的工作基础基础硬件/软件的可用性软件工具实用性,软件工程,12,法律可行性 侵权和责任问题,专利法著作权法软件保护条例,用户操作可行性,用户类型:外行型熟练型专家型操作习惯使用单位的计算机使用情况使用单位的规章制度,软件工程,13,3)功能分配给系统元素的原则,对同一功能,可以分配不同的系统元素。为选取最有效的分配方案,使用一组权衡准则进行评价项目考虑 在预估的成本与进度范围内所选的系统配置能否实现?与成本与进度估算相关的风险有哪些?商业考虑所选的系统配置是最可能有效益的解决方案吗?,软件工程,14,能否成功地占领市场?最终的报偿是否能表明所冒的开发风险是值得的?技术分析是否具备开发所有系统元素的技术实力?能否确保功能和性能得到满足?能否对系统配置进行充分的维护?是否具备技术资源?与技术相关的风险有哪些?生产评估,软件工程,15,生产工具与设备是否有效?必需的过程是否短缺?是否充分地实施了质量保证?人员问题开发人员是否得到培训?用户是否了解这个系统将要做什么?环境接口所提交的系统配置与系统的外部环境的接口是否合适?,软件工程,16,机器与机器、人与机器之间的通信是否以智能方式处理?法律考虑这种配置是否会引入违法的责任风险?对责任问题是否给予了足够的保护?是否存在潜在的破坏问题?,软件工程,17,二、软件需求分析,需求分析是一项软件工程活动,其目的是:清楚地理解所要解决的问题,完整地获取用户要求;刻划出软件的功能和性能;指明软件与其他系统元素的接口;建立软件必须满足的约束。,1.软件需求分析的目的,软件工程,18,需求分析是一项软件工程活动,它包括:需求获取刻划出软件的功能和性能;指明软件与其他系统元素的接口;建立软件必须满足的约束。需求建模需求分析建立起来的模型为日后软件设计人员提供了可被翻译成数据、体系结构、接口和处理过程设计的模型。,2.需求分析的任务,软件工程,19,需求规格说明需求规格说明为开发人员和用户提供软件开发完成时质量评价的依据。需求评审需求分析研究的对象是用户的要求。必须全面理解用户的各项要求,准确表达被接受的用户要求。只有经过确切描述的软件需求才能成为软件设计的基础。,软件工程,20,软件开发是要实现目标系统的物理模型。需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统“做什么”的问题。,软件工程,21,软件工程,22,需求分析的过程可以分成四个阶段:需求获取研究系统的可行性分析报告和软件项目实施计划。从系统角度来理解软件并评审用于产生计划估算的软件范围是否恰当;通过调研确定对目标系统的需求;提出这些需求实现条件,以及需求应达到的标准。,3.需求分析的过程,软件工程,23,建立分析所需要的沟通途径,以保证能顺利地对问题进行分析。,管理人员,用户,分析人员,软件开发组,软件需求说明,软件实施计划,原型,软件实施计划,软件实施计划,软件需求说明,软件需求说明,原型,原型,软件工程,24,需求建模 进行各种要求的一致性检查;逐步细化所有的软件功能;分解数据域,分配给各个子功能;找出系统各成分之间的联系、接口特性和设计限制。判断是否存在不合理的用户要求或用户尚未提出的潜在要求。综合成系统的解决方案,给出目标系统的详细逻辑模型。,软件工程,25,常用的分析方法,面向数据流的结构化分析方法(SA)面向数据结构的Jackson方法(JSD)面向数据结构的结构化数据系统开发方法(DSSD)面向对象的分析方法(OOA)等,软件工程,26,编制需求分析阶段的文档软件需求规格说明;初步的用户手册;确认测试计划;修改和完善软件开发计划。需求评审(确认)作为需求分析阶段工作的复查手段,应该对功能的正确性、文档的一致性、完备性、准确性和清晰性,以及其他需求给予评价。,软件工程,27,需要能够表达和理解问题的信息域和功能域信息流:数据和控制通过一个系统时的变化方式。两个功能之间的数据/控制传递就确定了功能间的接口。信息内容:单个数据或控制对象,它们构成了某个更大的由软件变换生成的信息的集合。信息结构:各种数据和控制项的内部组织。,4.需求分析的原则,软件工程,28,以层次化的方式对问题进行分解和不断细化,软件工程,29,给出系统的逻辑视图和物理视图软件需求的逻辑视图给出的是软件要达到的功能和要处理的数据之间的关系,而不是实现的细节。软件需求的逻辑描述是软件设计的基础。软件需求的物理视图给出的是处理功能和数据结构的实际表现形式,这往往是由设备本身决定的,因此推迟到设计阶段考虑。,软件工程,30,5.需求获取,需求获取是在问题及其最终解决方案之间架设桥梁的第一步。获取需求的一个必不可少的结果是对项目中描述的客户需求的普遍理解。一旦理解了需求,分析人员、开发人员和客户就能探索出描述这些需求的多种解决方案。需求获取技术包括两方面的工作:建立获取用户要求的方法的框架;支持和监控需求获取的过程的机制。,软件工程,31,1)软件需求的层次,业务需求反映了组织或客户开展相关业务的工作流和业务规则,是对系统、产品高层次的目标要求,与该组织或客户的业务领域有关。用户需求 描述用户使用软件需要完成哪些任务,可通过用例(use case)图或场景说明加以阐明。功能非功能需求 定义了开发人员必须实现的软件功能,而非功能需求如表所示:,软件工程,32,软件工程,33,2)需求获取技术的基本特征,一种好的需求获取技术,对于规范需求获取活动,高效准确地获取需求定义,是十分重要的。好的需求获取技术,应具有如下基本特征:提供便于沟通的工具,如易于理解的语言;提供定义系统边界的方法;提供支持抽象的机制,如“分解”、“映射”等;,软件工程,34,鼓励分析员使用面向问题的术语思考问题,编写文档;为分析员提供多种可供选择的解决方案;适应需求的变化。适于以上特征的需求获取方法:基于数据流图的结构化分析方法;基于用例(use case)的建模方法。需求获取技术的关键点在于:深入浅出 需求获取要尽可能全面、细致。,软件工程,35,获取的需求是个全集,系统真正实现的是个子集。细致地调研并不表明在分析时将调研内容都纳入到新系统中,但有利于以后的扩充。以流程为主线 在与用户交流的过程中,应该用流程将所有的内容串起来。如信息、组织结构、处理规则等。这样便于交流沟通。流程的描述既要有宏观,又要有微观。即要强调总体的业务流程、全生存期的业务流程,又要对流程细化,有分支的业务流程。,软件工程,36,3)需求获取应遵循的原则,抽象和分解是在人们认识世界和改造世界的长期实践中总结出来的行之有效的原则,在需求获取的过程中需遵循的三个原则:分解:捕获问题空间的整体部分关系。如问题子问题分解;抽象:捕获问题空间的一般化特殊化关系。如问题的不同变型;投影:捕获问题空间的多维视图。即从不同角度考察。,软件工程,37,4)需求获取的步骤,软件开发项目和组织文化的不同,对于需求开发没有一个简单的、公式化的途径。下面列出9个步骤,用以指导需求获取活动。定义项目的视图和范围 包括组织结构图、各部门的岗位/角色列表。确定用户类 包括人员/责任矩阵。确定目标系统的业务工作流 包括物流、资金流、信息流,建立业务工作流模型。,软件工程,38,运用需求获取技术开发用例(或数据流图)并设置优先级 用以掌握主要业务规则。收集来自用户的质量特性信息和其他非功能需求 将性能、安全性、可靠性等需求和其他设计约束结合业务规则,形成功能需求。分类在用例(或数据流图)中涉及的数据 包括数据的组成和数据之间的关系。详细拟订用例(或数据流图)建立功能模型,并进行审查,用以澄清需求获取的参与者对需求的理解。,软件工程,39,开发并评估界面原型 设想输入设备、输出设备、显示风格、显示方式、输出格式等,建立接口规范和信息流传输规则。从功能描述中开发概念测试用例 用测试用例来验证用例(或数据流图)、功能需求和原型。,软件工程,40,需求获取可能是软件开发中最困难、最关键、最易出错及最需要交流的方面。表现在:需求的不稳定性:在整个软件生存周期内软件需求会随着时间的推移发生变化;需求的不准确性:用户和开发人员的认识会随着使用系统实现业务流程的实践逐步提高,一开始不可能设想得面面俱到。需求获取只有通过有效的客户/开发者的合作才能成功。,软件工程,41,5)针对信息系统的需求调研方法,调研用户的组织结构、岗位设置、职责定义,从功能上区分有多少个子系统,划分系统的大致范围,明确系统的目标。调研每个子系统的工作流程、功能与处理规则,收集原始信息资料,用数据流来表示物流、资金流、信息流三者的关系。对调研内容事先准备,针对不同管理层次的用户询问不同的问题,列出问题清单。将操作层、管理层、决策层的需求既联系又区分开来,形成一个需求的层次。,软件工程,42,对与用户沟通的情况及时总结归纳,整理调研结果,初步构成需求基线。若基线符合要求,则需求获取完成。需求调研的主要手段:发调查表;召开调查会;向用户领域的专家个别咨询;实地考察,跟踪现场业务流程;查阅与待开发系统有关的资料;使用各种调查工具等。,软件工程,43,6)需求整理与表达的方法,采用穷举方法可以避免遗漏。采用归纳方法,通过对各种情况进行综合分类可以使问题条理化。采用抽象方法,可以发现问题的实质,抓住问题的主要矛盾,忽略其次要矛盾。需求整理可以多种手段共用,如组织结构图、业务流程图、多叉树、关系矩阵、文字叙述、表格、图形等。需求描述包括组织结构与岗位定义、业务流程、处理规则、数据项、功能以及上述 5 个方面的关系。,软件工程,44,结构化分析方法最初只是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。扩充后,将建模技术扩展到数据建模、功能建模和行为建模,以实体-关系图、数据流图和控制流图、状态-迁移图为工具,数据字典为核心,从不同视点建立系统的分析模型。,三、结构化分析方法,软件工程,45,结构化分析的分析模型,软件工程,46,1.数据建模,数据模型包括三种互相关联的信息:数据对象,描述对象的属性,描述对象间相互连接的关系。在需求分析阶段描述数据对象和它们之间的关系,使用了E-R图。例如,在教学管理中,一个教师可以教授零门、一门或多门课程,每位学生也需要学习几门课程。因此,教学管理中涉及的对象(实体型)有学生、教师和课程。,软件工程,47,软件工程,48,实例的关联有三种:一对一(1:1);一对多(1:m);多对多(n:m)。这种实例的关联称为“基数”。基数表明了“重复性”。,软件工程,49,E-R图中表示实体关联的符号如下:,一个X与一个Y相关联,一个X与一个或多个Y相关联,一个X与零个或一个Y相关联,一个X与零个,一个或多个Y相关联,一个X与一个Y或Z相关联,一个X与一个Y与Z相关联,软件工程,50,2.功能建模和数据流图,最初,结构化分析方法仅讨论数据流建模。目标系统被表示成如图所示的数据变换流程图。系统的功能体现在核心的数据变换中。,软件工程,51,1)功能建模的思想,功能建模就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。根据DeMarco的论述,功能模型使用了数据流图来表达系统内数据的运动情况,而数据流的变换则用结构化英语、判定表与判定树来描述。,软件工程,52,2)数据流图中的主要图形元素,软件工程,53,分层的数据流图,软件工程,54,3)数据流图的层次结构,为了表达数据处理过程,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系。顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据底层流图是指其加工不需再做分解的数据流图,它处在最底层中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。,软件工程,55,4)功能建模的步骤,对考生送来的报名单进行检查;对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站;对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者;制作考生通知单(含成绩及合格/不合格标志)送给考生;按地区进行成绩分类统计和试题难度分析,产生统计分析表。,实例 考务处理系统的功能,软件工程,56,顶层图封闭在外部实体之间,反映系统与外部的交互。,软件工程,57,这个数据流图只是一个高层的系统逻辑模型,它反映了目标系统要实现的功能以及系统与外界的关系。该图或称为上下文环境图或语境图(Context Diagram)数据流图绘制步骤首先确定系统的输入和输出根据考务处理业务,画出顶层数据流图,以反映最主要业务处理流程经过分析,考务业务处理的主要功能应当,软件工程,58,有登记报名单、统计成绩两大项。主要数据流输入的源点和输出终点是考生、考试中心和阅卷站。然后从输入端开始,根据考务业务工作流,画出数据流流经的各加工框,逐步画到输出端,得到第1层数据流图。画加工的内部:用画第1层图同样的方法画出每个加工的DFD子图。重复第 5 步,直至图中的尚未分解的加工都足够简单。至此得到分层数据流图。,软件工程,59,软件工程,60,软件工程,61,软件工程,62,5)绘制数据流图的原则,数据流图上所有图形符号只限于前述四种基本图形元素,它们的命名应反映其实际含义;数据流图的顶层图上的数据流必须封闭在外部实体之间;每个加工至少有一个输入数据流和一个输出数据流;允许一个加工有多条数据流流向另一个加工,也允许一个加工有两个相同的输出数据流流向两个不同的加工。,软件工程,63,在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系;规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡;如果一个数据文件仅在展开的数据流子图中使用,可以在父图中不画出;可以在数据流图中加入物质流,帮助用户理解数据流图;数据流图中不可夹带控制流,但针对实时系统可以加入控制流,成为数据流图的扩展形式。,软件工程,64,软件工程,65,软件工程,66,3.行为建模,行为建模给出需求分析方法的所有操作原则,但只有结构化分析方法的扩充版本才提供这种建模的符号。状态迁移图Petri网,软件工程,67,1)状态迁移图,例如,有关CPU分配的进程的状态迁移。,软件工程,68,状态迁移图是描述系统的状态如何响应外部的事件进行推移的一种图形表示。“”表示可得到的系统状态“”表示从一种状态向另一种状态的迁移。,软件工程,69,2)Petri网,Petri网已广泛地应用于硬件与软件系统的开发中,它适用于描述与分析相互独立、协同操作的处理系统,也就是并发执行的处理系统。Petri网简称PNG(Petri Net Graph),它有两种结点:位置:符号“”,表示系统状态。转移:符号“|”,表示系统中的事件。有向边“”表示向转移的输入,或从转移的输出。,软件工程,70,标记,或称令牌(token),是表明系统当前处于什么状态的标志。Petri网可能的变化有:,软件工程,71,例如,处理两个进程PR1和PR2的同步问题(此时两个进程共用一个资源R):,软件工程,72,软件工程,73,4.数据字典,数据字典是结构化分析方法的核心。与各模型的图形表示配合,能清楚地表达数据处理的要求词条描述 对于在模型中每一个被命名的图形元素,均加以定义,其内容有:名字,别名或编号,分类,描述,定义,位置,其它,等。,软件工程,74,(1)数据流词条描述数据流名:说明:简要介绍它产生的原因和结果数据流来源:来自何方数据流去向:去向何处数据流组成:数据结构数据量流通量:数据量,流通量,1)词条描述,软件工程,75,(2)数据元素词条描述类型:数字(离散值,连续值),文字(编码类型)长度:取值范围:相关的数据元素及数据结构:(3)数据文件词条描述数据文件名:简述:存放的是什么数据输入数据:输出数据:,软件工程,76,数据文件组成:数据结构存储方式:顺序,直接,关键码存取频率:(4)加工逻辑词条描述加工名:加工编号:反映该加工的层次简要描述:加工逻辑及功能简述输入数据流:输出数据流:加工逻辑:简述加工程序,加工顺序,软件工程,77,(5)数据源及数据谭词条描述名称:外部实体名简要描述:什么外部实体有关数据流:数目:,软件工程,78,2)数据结构的描述,符 号 含 义 举 例 被定义为 与 x=ab.,.或.|.或 x=a,b,x=a|b.或 m.n 重复 x=a,x=3a8(.)可选 x=(a)“.”基本数据元素 x=“a”.连结符 x=1.9,软件工程,79,存折格式,软件工程,80,存折户名所号帐号开户日性质(印密)1存取行50户名2字母24所号“001”.“999”帐号“00000001”.“99999999”开户日年月日性质“1”.“6”注:“1”表示普通户,“5”表示工资户等印密“0”注:印密在存折上不显示存取行日期(摘要)支出存入余额操作复核,软件工程,81,3)基本加工逻辑说明,对数据流图的每一个基本加工,必须有一个基本加工逻辑说明。基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则。加工逻辑说明必须描述实现加工的策略而不是实现加工的细节。加工逻辑说明中包含的信息应是充足的,完备的,有用的,无冗余的。描述加工逻辑说明的工具:结构化语言、决策表、决策树。,软件工程,82,(1)结构化语言,结构化语言是一种伪码,它的词汇表由命令动词数据字典中定义的名字有限的自定义词逻辑关系词 IF_THEN_ELSE、SWITCH、WHILE_DO、FOR、DO_WHILE等组成。它是一种介于自然语言和形式化语言之间的语言。用以消除在语法上的歧义性。,软件工程,83,语言的正文用基本控制结构进行分割,加工中的操作用自然语言短语来表示。其基本控制结构有三种:简单陈述句结构:避免复合语句;重复结构:while_do、for_do或do_while结构。判定结构:if_then_else 或switch_do 结构;用结构化语言描述的规格说明的正文可以在计算机上编辑,不必过多地考虑语言的在语法上的限制,使得分析员可以集中考虑加工的策略或规则。,软件工程,84,商店业务处理系统中“检查发货单”,if 发货单金额超过$500 then if 欠款超过了60天 then 在偿还欠款前不予批准 else(欠款未超期)发批准书,发货单 else(发货单金额未超过$500)if 欠款超过60天 then 发批准书,发货单及赊欠报告 else(欠款未超期)发批准书,发货单,软件工程,85,(2)决策表,如果数据流图的加工需要依赖于多个逻辑条件的取值,使用决策表来描述比较合适。,规则,单个条件,单个动作,软件工程,86,以“检查发货单”为例,软件工程,87,(3)判定树,判定树也是用来表达加工逻辑的一种工具。有时侯它比判定表更直观。,软件工程,88,这是一种有效驾驭风险的技术。通过原型可以增进软件者和用户对系统服务需求的理解,使比较含糊的具有不确定性的软件需求(主要是功能)明确化。可以容易地确定系统的性能,确认各项主要系统服务的可应用性,确认系统设计的可行性,确认系统作为产品的结果。有的原型可以直接成为产品,有的略加修改就可成为最终系统的一个组成部分。,四、快速原型化方法,软件工程,89,探索型:目的是要弄清对目标系统的要求,确定所希望的特性,并探讨多种方案的可行性。实验型:这种原型用于大规模开发和实现之前,考核方案是否合适,规格说明是否可靠。进化型:这种原型的目的不在于改进规格说明,而是将系统建造得易于变化,在改进原型的过程中,逐步将原型进化成最终系统。,1.原型分类,软件工程,90,2.原型使用策略,软件原型支持需求工程的两项活动:需求获取需求有效性验证其他用途:用户培训系统测试原型开发主要分类:进化式原型开发抛弃式原型开发,软件工程,91,1)进化式原型开发,基本思路是:先给出一个系统的最初实现,让用户去使用和评价,不断进行细化和改善,经过多次这样的反复过程后形成最终的完善的系统。,软件工程,92,2)抛弃式原型开发,基本思路是:原型的根本作用是弄清楚需求和为风险评估提供补充信息。通过评估后,原型被抛弃,重新规划和实施系统的开发。,软件工程,93,3.原型开发技术,可执行规格说明基于场景(scenario)的设计自动程序设计专用语言可复用(reusable)的软件简化假设,软件工程,94,1)可执行规格说明,可执行规格说明是用于需求规格说明的一种自动化技术。使用这种方法,人们可以直接观察他们用语言规定的任何系统性行为。包括代数规格说明有限状态模型可执行的数据流图,软件工程,95,代数规格说明,使用集合、定义于这些集合上的函数和定义于这些函数上的方程来描述对象。规格说明的操作语义用这些方程表示。举例:定义一个无界的栈及其操作,NEW_STACK:StackPUSH:Stack,Element StackPOP:Stack(Element|Undefined)POP(NEW_STACK()UndefinedPOP(PUSH(Stack,elem)elem,软件工程,96,有限状态模型,parnas提出的使用最广泛的一种可执行规格说明形式。从一个初始状态开始接收输入,到产生输出,状态在推移变化。施加在状态元素上的约束确定了有效状态的推移。举例:建立用户程序对话,软件工程,97,软件工程,98,可执行的数据流图,数据流图是基于结构化开发方法的结构化规格说明。用一种可执行的语言程序代替定义处理逻辑的结构化英语,数据流图就成为由可执行语言程序模块组成的网络,在一定环境或工具的支持下就可成为一个可以执行的原型系统。,软件工程,99,2)基于场景的设计,场景是指用户界面的原型。一个场景用以模拟在系统运行期间用户经历的事件。它提供了输入处理输出的屏幕格式和有关对话的模型。因此,软件开发人员能够给用户显示系统的逼真的视图,使用户得以判断是否符合他的意图。分析员与用户的沟通往往通过演示场景。可在任一场景中使用一套可复用的软件模块,以表达某一方面的要求。,软件工程,100,可使用一种原型语言来描述原型系统。原型开发过程中用这种语言来定义屏幕数据项相关的操作从系统的外部描述开始,开发与数据库的接口错误处理和恢复过程等系统的与外部视图一致的细节。,软件工程,101,3)自动程序设计,在程序自动生成环境的支持下,利用计算机实现软件的开发。可以自动或半自动地把用户的非过程式问题规格说明转换为某种高级语言程序:演绎综合手段:基于数学推理的构造式证明。程序变换手段:将一程序转换成另一功能等价的程序,并保持其正确性不变。,软件工程,102,实例推广手段:从实例特征出发,将它推广为待编程序的特征,最后得到程序。过程化手段:研究甚高级语言的编译和知识的过程化。,软件工程,103,4)专用语言,专用语言是应用领域的模型化语言。在原型开发中使用专用语言,可方便用户和软件开发者在计划中的系统特性方面的交流。,软件工程,104,5)软件复用技术,利用可复用的模块,做出适当的组合,就可得到快速构造的原型系统。为了快速地构造原型,这些模块必须有简单而清晰的界面;应当尽量不依赖其它的模块或数据结构;应具有一些通用的功能。,软件工程,105,6)简化假设,在开发过程中为使设计者迅速得到一个简化的系统,可以预设一些使得问题简化的假设。尽管这些假设可能实际上并不能成立,但它们在原型开发过程中可以使开发者的注意力集中在一些主要的方面。,软件工程,106,1.为什么要采用面向对象技术,五、面向对象分析方法,系统可维护性的要求在系统中,功能往往是未来可能变化的因素,而问题领域的实体则不会有太多的变化。将这些实体作为对象构建系统,可以构造一个稳定的系统。因为未来的功能变化只需改变对象内部的操作的实现,修改是局部的。系统可复用性的需要代码级的复用使得开发者得以利用已有的程序,软件工程,107,实现新的程序。软件开发实践期望不仅在代码级,而且在设计级、框架级,甚至系统级都能够复用。面向对象技术中的封装性、继承性、类属性等支持各种级别的复用。同一类中所有实例共享数据结构和行为特征;同一应用中所有实例通过继承共享数据结构和行为特征;不同应用中所有实例通过复用共享数据结构和行为特征。程序无关性的期望,软件工程,108,任何机器环境下,使用任意程序语言所编的程序,希望都能够通用。与机器相关的成分应该与处理逻辑无关。面向对象方法采用对象(类的实例)作为系统的基本构造单位。类的多态性以及动态绑定技术,是面向对象方法有别于结构化方法的实质性突破。它提倡接口和实现分开的设计理念并提供程序机制,为程序无关性的理想奠定了基础。,软件工程,109,2.什么是面向对象,Peter Coad 和 Edward Yourdon 提出面向对象方法的概念:面向对象=对象+分类+继承(inheritance)+消息通信(communication with messages)采用这四个概念开发的软件系统是面向对象的。一个面向对象的程序的每一成份应是对象,计算是通过新的对象的建立和对象之间的通信来执行的。,软件工程,110,1)对象(object),对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,由一组属性和一组对属性进行操作的服务组成。对象=对象名+数据(属性)+操作(行为)属性一般只能通过执行对象的操作来改变。操作又称为方法或服务,它描述了对象执行的功能,若通过消息传递,还可以为其他对象使用。,软件工程,111,计算机窗口中的三个多边形,软件工程,112,表示多边形的三个对象,软件工程,113,2)类(classification),把具有相同特征(属性)和行为(操作)的对象归在一起就形成了类(class)。类的定义包括一组数据属性和在数据上的一组合法操作。在一个类中,每个对象都是类的实例(Instance),它们都可使用类中的函数。类定义了各个实例所共有的结构,使用类的构造函数,可以在创建该类的实例时初始化这个实例的状态(实例变量)。,软件工程,114,由两个四边形对象导出一个类,软件工程,115,3)消息(messages),消息是一个实例与另一个实例之间传递的信息,要求该实例执行类中定义的某个操作。消息的使用类似于函数调用,消息中指定了某一个实例,一个操作名和一个参数表(可能是空的)。接收消息的实例执行消息中指定的操作,并将形式参数与参数表中相应的实参值结合起来。消息有 4 类:发送对象激活接收对象;发送对象传送信息给接收对象;发送对象询问接收对象;发送对象请求接收对象提供服务。,软件工程,116,4)继承(inheritance),类与类之间可能具有的一般化和特殊化关系:即“is-a”关系,特殊化类是一般化类的子类,一般化类是特殊化类的父类。在这种关系下形成一种层次的关联。这就是继承关系。,软件工程,117,继承是父类和子类之间共享数据和方法的机制。在定义和实现一个类时,可以在一个现成的类的基础上来进行,把这个现成类所定义的内容作为自己的内容,并加入若干新的内容。,软件工程,118,分类只从一个父类得到继承,叫做“单重继承”。一个子类有两个或更多个父类,则称“多重继承”。,多(重)继承,单(重)继承,软件工程,119,5)多态,不同的对象对同一消息有不同的实现。多态的实现受到继承的支持:利用类的继承的层次关系,把具有通用功能的消息存放在高层次,而不同的实现这一功能的行为放在较低层次,在这些低层次上生成的对象能够给通用消息以不同的响应。参数多态:即模板化的多态,通过参数代换确定所用的数据类型。包含多态:常见的例子就是子类型化,即一个类型是另一个类型的子类型。,软件工程,120,3.面向对象分析(OOA),面向对象分析(Object-Oriented Analysis),简称OOA。OOA的目的:理解应用问题;确定系统的功能、性能要求。面向对象分析法与结构化分析法之间的差别:结构化分析方法中的E-R图,关注实体的属性和相互间的关系;而面向对象的分析,除此之外还要关注实体的行为。,软件工程,121,结构化分析的数据流图,将数据和加工处理分开;而面向对象的分析是将数据实体和他们的处理动作视为不可分割的整体来考虑的。结构化分析方法建造系统的元素是基于功能,或加工处理的;而面向对象分析方法建造系统的基本元素是封装了操作的对象类。因此,面向对象的结果比较容易理解和管理,便于修改,早期阶段的修改容易提高软件的可靠性。,软件工程,122,4.面向对象分析的活动,发现合适的对象类和对象的标识类和对象的细化标识结构标识主题标识属性标识实例连接标识服务和消息,软件工程,123,1)发现合适的对象,面向对象技术应能显著提高软件开发的质量和生产率,但这种好处只有在正确标识了对象集合的基础上才能得以实现。没有一个规范的建立对象的方法,软件开发人员只能盲目地建立对象。,发现对象的方法,对象存储数据并具有职能(即服务)。传统的系统分析工具的主要功能是定义数据或说明处理,对发现对象具有非常重要的作用。,软件工程,124,有 3 种非常有用的传统系统分析工具:数据流图、实体关系图以及状态迁移图,涉及了系统的 3 个不同的、相互独立的方面(处理过程、数据和控制),称为三视图模型 3VM(3-View Modeling)。对象是与应用领域的有关概念紧密结合在一起的。概念的处理主要是基于自然语言:书面语或口语。将语言规则应用到软件系统分析中的处理方法称为基于语言的信息分析(Linguisticbased Information Analysis,简称LIA)。,软件工程,125,3VM和LIA有别于且独立于面向对象分析,这些技术的应用是一个不断反复的过程。目的就是在实际应用中最大限度地降低对象标识的主观性。将3VM和LIA应用于发现对象的过程见图。,软件工程,126,(1)三视图模型(3VM),实体关系模型实体关系图(ERD)是OOA的一个有力的前哨。实体很有可能成为对象;实体的属性则表示成最终要由对象进行存储的数据;实体之间的关系有可能将建立“关联对象”。表示关系(连接)的基数,以及因果条件可能成为维持这些关系的服务。ERD的问题:标识的实体可能与应用领域概念无关;对于那些不存储数据的对象显得无能为力。,软件工程,127,数据流模型 有两种形式的数据流模型上下文图 确定一个全局的系统边界;外部实体就是候选对象;对象集合都必须阐明这些上下文图中的数据流是如何被接收、处理及生成的。分层的数据流图待开发系统的功能可分解成为一些基本单元,这些基本单元可看成是基本处理规格说明(PPSs)。PPSs最后必须对应于对象的方法或服务。,软件工程,128,状态迁移模型 有两种形式的状态迁移模型:事件响应模型标识出系统必须识别的所发生的每一个 事件,以及系统必须作出的预期响应的事件;标识一系列的识别事件的对象、产生响应的对象。状态迁移图能标识事件识别对象和对事件产生响应的对象;有助于标识保存状态信息的属性。注意:并非所有3VM工具对每个系统都是有用的。,软件工程,129,(2)基于语言的信息分析(LIA),3VM技术并不能专门用于指导正确地标识出新系统的对象集合。基于语言的信息分析(LIA)在发现对象方面给出了大量的指导。LIA的目的是标识出应用领域的概念空间及这些概念之间的关系。有两种十分有效的LIA技术:短语频率分析(Phrase Frequency Analysis,简称PFA)矩阵分析(Matrix Analysis,简称MA),软件工程,130,a.短语频率分析(PFA),短语频率分析搜索选定的问题陈述(资源文本),标识可以表示问题领域概念的术语。PFA是标识概念而不是标识语法单元。PFA清单的建立基本上是一个客观的过程,甚至可以自动处理。但可能大多数标识出来的概念是与目标系统无关的。PFA的优点就在于能广泛地标识问题领域的概念集合,并对它们进行评估,判定哪些与目标软件无关。,软件工程,131,associated site,constituent copies,department,corporate,author,continued subscription,direct subscription,author,contributing,contributing author,discount,subscription,软件工程,132,PFA将名词和动词标识为候选实体和属性。但由于名词动词的标识是非常主观的,可根据什么是名词或动词,以及根据分析员的理解,才能确定哪些名词或动词是要找的。对于任一有用的应用领域资源,PFA可能会产生一个长长的概念的清单。许多被标识出的概念因与目标软件无关而被丢弃,但其它的则会成为OOA模型的成份。将PFA清单转换为OOAOOD工作表格。列出对各个概念的理解和选择,这将有助于对象的选出。,软件工程,133,(1),可能的对象类,(5),与实现相关,可能是属于问题领域部分的条目,(2),可能是派生类型基类型结构的一部分,(6),可能是属于人机交互部分的条目,包括泛化特化结构和整体部分结构,(7),可能是属于任务管理部分的条目,(3),可能描述对象类的属性或实例关系,(8),可能是属于数据管理部分的条目,软件工程,134,b.矩阵分析(MA),通常是在初始对象标识出来后再使用。矩阵的行和列是应用领域的概念。矩阵中的元素表示了相对应的行与列上的概念之间的关联关系。分析员标识出应用领域的关系(事务规则);而且还可能会发现新的在初始的PFA中没有产生的对象。,软件工程,135,SBSS 应用领域部分二维MA表,软件工程,136,发现对象过程,用OOAOOD工作表格为指南,对照3VM标识的各种成份检查应用领域的各种概念。例如,查阅部分事件表,有一个事件,叫做“评

    注意事项

    本文(系统需求分析与定义.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开