软件工程教案复习李梁公开课一等奖优质课大赛微课获奖课件_第1页
软件工程教案复习李梁公开课一等奖优质课大赛微课获奖课件_第2页
软件工程教案复习李梁公开课一等奖优质课大赛微课获奖课件_第3页
软件工程教案复习李梁公开课一等奖优质课大赛微课获奖课件_第4页
软件工程教案复习李梁公开课一等奖优质课大赛微课获奖课件_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程复习 重庆理工大学计算机科学与工程学院 李梁 第1页课程关键点第1-3章 软件工程概、软件过程及软件开发模型软件、程序、数据、文档含义软件危机及其表现、处理方法软件工程定义与关键思想软件工程基本原理与标准软件工程基本范型软件过程及软件过程模型软件工程生命周期概念以及它各个阶段内容,各阶段主要任务 软件工程主要开发模型:瀑布模式、增量模型、螺旋模型、面向对象过程模型第2页课程关键点第5章 软件需求分析软件需求分析概念、主要过程与步骤、软件需求类型软件处理方案:目标、性能指标评价、处理方式、可行性分析。开启分析过程:确认利益相关者、识别视点、协同工作、首次提问主要需求获取技术:会谈、调查表

2、、场景描述、主要需求描述技术:流程图和用例图第3页课程关键点第6章 结构化分析建模分析模型概述结构化分析模型概念 SA概念和SA法主要模型(功效、数据、行为)掌握数据流程图基本画法,会画数据流程图掌握数据字典书写格式,会编写数据字典对已明确需求软件,会设计其主要数据流程图,编写主要数据字典掌握决议树、决议表绘制,熟悉结构式语言表示法;掌握IPO图画法第4页课程关键点第8-9章 结构化软件设计系统设计(概要设计、过程设计)任务和步骤(过程)设计标准:抽象、自顶向下逐步求精、模块化、信息隐藏、重构概念常见模块独立性度量标准:耦合(7种)和内聚(7种)软件模块结构中基本术语和启发式设计策略:深度、宽

3、度、扇出、扇入、调用、判断调用、数据信息、控制信息掌握概要设计(总体设计)绘制工具:层次图和HIPO图、软件结构图掌握SD法设计过程与步骤会区分变换型、事务型数据流图,并掌握对应映射方法会使用SD法将DFD转映射成模块结构图了解对模块结构图启发式设计策略第5页课程关键点第8-9章 结构化软件设计知道详细设计(过程设计)内容、过程及步骤界面设计步骤与基本准则会使用常见过程设计工具:程序流程图、NS表、判定表、过程设计语言了解编码语言分类,选择设计语言要考虑原因知道常见编程语言和工具(C/S和B/S)知道常见数据库产品知道常见软件CASE工具知道开发规范及编码格调主要内容知道结构化程序设计三种基本

4、控制结构 第6页课程关键点第7、10-11章 面向对象分析与设计面向对象方法学概念、特点,与面向过程开发方法区分;面向对象分析设计步骤、过程清楚对象、类、实例、消息、属性、方法(服务)、继承、消息、主题概念知道OMT对象建模技术对象、动态与功效三大模型知道UML主要模型(用户、结构、行为、实现、环境)及组成主要图形(对象类图、次序图、状态图)画法和事务(类、属性、服务、主要关联、多重性、角色、包、泛化、聚集、关联类、用例、事件、状态、消息)对已明确需求描述,会设计其面向对象模型(用例图、活动图、对象类图、行为脚本、次序图、状态图)第7页课程关键点面向对象分析设计技术知道对象、类、实例、属性、行

5、为、继承、消息、包概念知道面向对象需求分析过程知道UML概念和UML基本模型对已明确需求系统,会设计其面向对象模型及动态模型(用例图、活动图、类图、次序图、状态图)第8页课程关键点第11-12章 软件实现知道软件测试目标、标准、标准和测试步骤知道黑盒法与白盒法测试技术知道单元、集成、确认、系统测试主要内容,在开发过程中位置和使用主要技术(注意驱动、桩模块概念)会设计黑合测试中等价类划分、边值测试测试实例知道一些主要专题测试(如测试、测试、可靠性测试、性能测试、恢复测试)测试用例设计目标及编制方法了解软件维护概念、任务及软件维护分类第9页重点技术需求调查:业务流程图、用例图、活动图SA法:分层D

6、FD图、数据字典编制(描述)、判断表、判断树SD法:软件结构图、HIPO图、DFD映射方法:变换分析与事务分析OO:对象模型(对象类图)、动态模型(行为脚本、状态图、次序图)、功效模型(DFD)测试:等价类划分、边值分析设计测试用例注意:案例方案文档(图书、ATM、POS、短信、出卷)第10页软件是计算机系统中与硬件相互依存另一部分,它是包含程序,数据及其相关文档完整集合。程序是按事先设计功效和性能要求执行指令序列数据是使程序能正常操纵信息数据结构文档是与程序开发,维护和使用相关图文材料软件=程序+文档软件危机概念: 软件危机是指在计算机软件开发和维护过程中所碰到一系列严重问题。即包含两方面问

7、题:怎样开发软件、怎样维护软件软件及软件危机09:31:47第11页软件工程基本概念软件工程:是以工程化思想进行软件开发,以生产高质量和高效率软件。教材定义关键观点:把软件看作是一个工程产品。Fritz Bauer定义:软件工程是为了经济地取得能够在实际机器上有效运行可靠软件而建立和使用一系列完善工程化标准。软件工程基本原理:推迟实现观点、逐步求精观点、分解与抽象观点、信息隐蔽观点、质量确保观点软件过程是为了开发出软件产品,或者是为了完成软件工程项目而需要完成相关软件工程活动。通常使用生命周期模型简练地描述软件过程软件过程模型:就是把软件生命周期中各项开发活动流程用一个合理框架(开发模型)来规

8、范描述。09:31:47第12页阶段关键问题结束标准(任务)问题定义问题是什么?关于规模和目标汇报书可行性研究是否可行?系统高层逻辑模型;数据流图;成本/效益分析需求分析系统必须做什么?系统逻辑模型;数据流图;数据字典,算法描述 概要设计任何处理问题?系统流程图;成本/效益分析层次图和结构图详细设计怎样详细实现HIPO或PDL编码和单元测试正确程序模块源程序清单;单元测试方案和结果测试符合要求软件综合测试方案和结果;完整一致软件配置运行、维护持久地满足用户需要完整准确维护统计09:31:47第13页CMM(Capability Maturity Model):是用于评价软件机构软件过程能力成熟

9、度模型。是指对过程计划或定义水平、过程实施水平、过程管理和控制水平、过程改进潜力等指标综合评价思想:管理软件过程方法不妥引发问题,造成新软件技术利用并不会自动提升软件生产率和质量。关键:CMM为软件企业过程能力提供一个阶梯式改进框架,它基于过去全部软件工程过程改进结果,吸收以往软件工程经验教训,提供一个基于过程改进框架。CMMI (Capability Maturity Model Integration):即能力成熟度模型集成,是CMM模型最新版本。能力成熟度模型-CMM09:31:47第14页为企业发展要求过程成熟级别,分为5级:初始级(Initial):普通企业皆含有可重复级(Repea

10、table):成功经验能够重复已定义级(Defined):一套完整企业过程,人员自觉恪守(培训)已管理级(Managed、已控制):过程&产品可度量和控制优化级(Optimizing):过程连续改进作用:从无序到有序、从特殊到普通、从定性管理到定量管理、最终到达动态优化。能力成熟度模型-CMM09:31:47第15页瀑布模型提供了软件开发基本框架。瀑布模型将软件生命周期划分为软件计划、需求分析和定义、软件设计、软件实现、软件测试、软件运行和维护这6个阶段,要求了它们自上而下、相互衔接固定次序,如同瀑布流水逐层下落而得名它是一个软件开发架构,开发过程是经过一系列阶段次序展开。每个阶段都会产生循环

11、反馈各个阶段产生文档是维护软件产品时必不可少,没有文档软件几乎是不可能维护。瀑布模型特点:次序性和依赖性、推迟实现、质量确保观点、是一个线性模型、强调文档作用。瀑布模型09:31:47第16页阶段目标关键问题主要活动阶段结果问题定义发觉事实,并描述问题是什么?事实问题:发觉和研究系统面临问题项目提议书可行性分析明确问题是否值得做?回答是否能够做?问题提议:系统初步调查与分析可行性分析汇报项目立项处理项目标立项问题提议项目:编制初步需求和立项审批表;立项评审项目立项书项目计划处理项目标控制问题项目计划:编制项目计划;评审与修订项目计划项目计划书需求分析回答系统做什么?明确系统不能做什么?问题需求

12、:需求详细调查;问题转化与需求描述;需求评审;需求分析系统分析汇报总体设计处理框架性怎样做问题?需求软件架构:需求转化与设计;设计评审与修改;补充调研概要设计汇报详细设计回答详细细节怎么做问题软件架构软件结构:需求分析与研究;设计评审与修改;补充调研详细设计汇报编码回答详细做问题软件结构程序代码:编码、单元测试,硬件安装与测试,系统集成源程序清单测试与公布评价做怎样代码软件:系统测试;系统安装与测试;系统公布;系统培训;系统切换系统测试汇报用户手册运行与维护持久地满足用户需要,尽可能延长系统生命力软件答案:结构系统之前发觉问题答案,处理问题系统运行日志项目验收汇报系统总结汇报瀑布模型软件开发各

13、阶段任务表第17页面向对象是一个程序设计方法,或者说它是一个程序设计范型。基本思想是使用对象,类,继承,封装,消息等基本概念来进行程序设计。面向对象要素: 抽象:强调实体本质、内在属性,忽略一些无关紧要属性。类实现了对象数据(即状态)和行为抽象,是对象共性抽象。封装性:指全部软件部件内部都有明确范围以及清楚外部边界。 共享性:面向对象特征:对象惟一性;分类性;继承性;多态性(多形性)。面向对象过程模型09:31:47第18页自行开发方式是一个完全依靠用户本身开发力量,由用户单位本身员工组成项目组,依据用户单位特点来开发软件系统软件系统开发方式联合开发方式是由用户单位与用户单位外单位共同组成系统

14、开发小组,针对企业详细情况和要求,共同完成系统开发任务外包开发方式是一个“交钥匙”工程开发方式,即承包方依据用户单位提出开发要求,提出软件系统大致框架和开发所需费用等,当双方签署协议后,将系统开发任务全部外包给专业软件开发单位。含有不一样功效信息系统作为一个商品越来越多,用户单位可以象购置其它物品一样,到市场购置所需要软件系统,这就是采取购置方式自行开发联合开发外包购置第19页自行开发联合开发外包购置系统分析与设计能力要求非常需要非常需要不太需要不需要编程能力要求非常需要不太需要不太需要不需要系统可维护性轻易轻易比较困难困难程序可维护性轻易相当困难相当困难困难开发费用用于单位外部小大大小用于单

15、位内部大中等小小开发风险大比较大比较大小几个开发方式比较第20页可行性研究可行性研究任务:用最小代价在尽可能短时间内确定问题是否能够处理。可行性研究目标不是处理问题,而是确定问题是否值得处理。经济可行性、技术可行性、操作可行性研究系统是否可行可行性研究输入是系统一个框架描述和高层逻辑模型输出是一份需求开发评价汇报,对需求工程和系统开发是否值得做详细提议和意见。三个问题:系统是否符合机构总体要求?系统是否可在现有技术条件、预算和时间限制内完成?系统能否把已存在其它系统集成?09:31:47第21页设定优先级设定基本标准:时间投入、成本投入和取得效益(包含无形社会性效益)是最主要三个考评指标。设定

16、优先级原因目标系统能降低成本?何时、何地、怎样降低?花费代价怎么样目标系统能增加收入?何时、何地、怎样增加?花费代价怎么样目标系统能产生更多信息或更多结果吗?目标系统能为客户和企业自己提供更加好服务?目标系统能在合理时间内完成吗?目标系统能为企业提供多长服务期限?具备必要人力、财力、技术、管理和资金资源吗?注意事项系统分析员尽可能采取有形方式评价系统无形成本/效益是影响设定级别主要原因设定优先级是一个综合权衡过程,没有绝正确、只有相正确。仁者见刃,智者见智可行性研究09:31:47第22页软件需求: 就是指用户对自己目标系统在功效、行为、性能和约束等方面期望。在实际操作过程中,软件需求会跨越多

17、阶段,同时含有重复性。基础性:需求分析是在可行性研究阶段基础上进行,需要仔细研究可行性阶段提出甲乙双方需求并深入详细化。主要性:软件项目中40%60%问题都是在需求分析阶段埋下“祸根”。因为采取一些不合规范方法,造成开发者开发与用户所想得到软件存在着巨大期望差异。软件需求分析基本任务是准确地回答“做什么?”。需求分析是系统分析与软件设计之间主要桥梁。软件需求09:31:47第23页功效需求:描述系统预期提供功效或服务。对系统应提供服务怎样对输入做出反应系统在特定条件下行为非功效需求:指那些不直接与系统详细功效相关一类需求。通常划分为:产品需求:产品行为需求。机构需求:客户、开发者所在机构政策和

18、要求需求。外部需求:系统外部原因和开发过程总和。领域需求:源于系统应用领域需求。比如,信用卡安全登陆密码隐藏需求等。领域需求经常影响到系统可用性,是基本应用问题。基于功效软件需求分类完整一致准确要 求软件需求类型09:31:47第24页业务需求反应组织机构或客户对系统、产品概括性要求,包含所要到达业务目标,由项目视图与范围文档说明。用户需求描述用户使用系统而要完成各种任务,由用例(use case)文档或方案脚本说明。功效需求定义开发人员必须实现软件功效,源于用户需求,是软件需求说明书中主要组成部分。 基于层次软件需求分类09:31:47第25页需求分析主要是了解客户需要什么、做什么,分析要求

19、、评价可行性、协商合理方案、无歧义地详细说明方案、确认规格说明、管理需求,并将这些需求转化为可行系统。需求分析过程包含初步沟通导出需求分析和精化可行性研究协商与沟通规格说明需求验证变更管理需求分析过程09:31:47第26页确定利益相关者利益相关者是指直接或间接从正在开发系统中获益人,或者与正开发系统有利益关系人,所以也称关联人员,按照利益大致分为6类:全部者、用户、系统设计师、系统结构师、系统分析师、软硬件供给商和咨询顾问软件开发团体人员组成:作为商品化软件开发团体,其人员组成是以上述前5类人员为主;作为非商品化软件开发团体,以第25种人员为主,此时,用户经常就代表了全部者利益。对于第6类人

20、员,通常不会纳入开发团体。开启分析过程09:31:47第27页软件关联人员关注点因为利益不一样,关联人员出发点和关注点也就不一样全部者:关注软件范围,如用途、目标、任务、远景、成本和收益等;用户:关注软件需求,如软件是干什么,怎么干,效果会怎么样?系统设计员:关注软件详细设计内容,怎样使用信息技术实现软件?经常,系统设计人员也是系统结构人员;系统结构员:关注软件结构,软件实际技术实现?怎样测试软件?怎样公布软件?系统分析员:关注软件开发工作顺利进行,沟通团体中技术人员与非技术人员,推进团体开发工作;软硬件供给商和咨询顾问:关注信息技术选型、价格、技术要求、交货时间、售后服务和系统架构等。开启分

21、析过程09:31:47第28页识别视点视点:指软件关联人员从不一样视角对待该系统。比如,超市POS机收银员关心准确、快速生成一次销售,且没有支付错误;超市售货员关注销售业绩和分成;大学生关注课程作用、学分、成绩和收费等等。问题:软件关联人员视点、信息都可能存在不一致、甚至矛盾地方,软件开发技术人员工作重点就是识别、分析视点中包括信息类型、需求属性等。比如,超市POS机系统就需要制订严格操作流程,如款清帐明、人清日结、高层管理退货退款等开启分析过程09:31:47第29页实例分析:出卷系统利益相关者:教师:关注怎样出一份合理试卷,并能依据样式打印与输出。学生:关注怎样经过生成一些模拟试题,并在线

22、学习和检验学习结果。题库维护人员:关注试题添加、更新和删除等工作。视点:教师关注自动出卷、手工出卷、试卷编辑和试卷输出。学生关注随时抽卷、联络试卷和评价分析。题库维护人员关注试题管理。非形式化需求分析技术09:31:47第30页非形式化需求分析技术图书馆系统共利益者与视点有:图书流通管理:负责图书借还工作。用户:希望快速得到借书,还书服务,能够续借、预约图书,以及查询个人和图书信息。编目管理员:负责图书管理、用户管理和处理罚金等。09:31:47第31页会谈正式会谈:提出一些可自由回答问题。非正式会谈:提出一些事先准备好议题。情景分析:需求分析从对场景评论中得到信息,然后再将其以形式化方式表示

23、出来。调查表制订调查表分析建立原型界面执行过程非形式化需求分析技术09:31:47第32页场景分析分析员与项目相关人员共同识别出情景,并捕捉这些情景细节。把细节加入到一个纲要需求描述中时,情景尤其有用。情景是对交互实例片断描述,每个情景可能包含一个或多个交互,它们能在不一样细节层次上提供不一样类型情景信息。情景开始于一个框架,在导出过程中,细节被逐步增加,直到产生交互一个完整描述。非形式化需求分析技术09:31:47第33页一个情景可能包含以下内容: 在情景开始部分有一个系统状态描述; 一个关于标准事件流描述; 一个关于哪儿会犯错,以及怎样处理错误描述; 相关其它可能在同一时间进行活动信息;

24、在情景完成后系统状态描述。非形式化需求分析技术09:31:47第34页结构化分析(SA,Structured Analysis)方法是20世纪70年代,由E.Yourdon等人提倡一个适合用于大型数据处理系统、面向数据流需求分析方法。结构化分析方法是一个传统系统建模技术,其过程是创建描述信息内容和数据流模型,依据功效和行为对系统进行划分,并描述必须建立系统要素。结构化分析将系统自顶向下逐层分解,到达表示系统目标,它采取一组过程模型图形化地描述一个系统逻辑模型。结构化需求分析指导性标准:了解问题、开发模型、描述需求、建立系统模型、确定需求优先级、验证需求结构化分析方法是一个建模技术基于计算机系统

25、是数据流和一系列转换组成在模型关键是数据词典,它描述了全部在目标系统中使用和生成数据对象。围绕着这个关键有三种图: ERD、DFD、STD结构化分析概述09:31:47第35页结构化分析模型分析模型目标是为基于计算机系统提供必须信息、功效和行为域说明。模型是对系统某个方面抽象,抛弃了详细细节,对系统中最突出特征作简化。分析模型全部元素都能够直接映射到设计模型结构化分析模型组成数据建模和对象描述功效建模和数据流图基本加工逻辑说明行为建模(时序图)数据词典09:31:47第36页面向数据流建模面向数据流建模是结构化需求分析方法之一采取自顶向下逐层分解,描绘满足用户要求软件模型(数据模型、功效模型、

26、行为模型)表示:数据流图:描述系统处理过程数据字典:模型中数据信息集合状态转换图:描述系统对内部或外部事件响应行为模型09:31:47第37页软件设计阶段基本目标是结构系统“怎么做”模型描述。“设计先于编码” 是软件工程“推迟实现”基本标准。软件系统设计是把软件需求“变换”为用于结构软件蓝图。“输入”是需求分析各种模型元素“输出”是软件设计模型和表示软件设计目标是对将要实现软件系统体系结构、系统数据、系统模块间接口,以及所采取算法给出详尽描述。软件设计概述09:31:47第38页软件设计概念总体设计,或称概要设计,或软件结构设计,或高层设计分析需求规格说明模块划分,形成含有预定功效模块组成结构

27、表示出模块间控制关系给出模块之间接口软件详细设计,也称(模块) 过程设计,或低层设计。设计模块细节确定模块所需算法 和数据结构等编写全部代码设计测试和复审09:31:47第39页软件结构设计过程 含系统设计和结构设计。系统设计确定系统详细实现对象,结构设计确定软件体系结构。软件结构设计步骤:设计供选择方案选取合理方案推荐最正确方案功效分解和设计软件结构数据库设计制订软件设计测试计划编制设计文档审查和复审软件设计过程09:31:47第40页软件模块化设计模块是一个独立命名,拥有明确定义输入、输出和特征程序实体。把一个大型软件系统全部功效,按照一定标准合理地划分为若干个模块,每个模块完成一个特定子

28、功效,全部这些模块以某种结构形式组成一个整体,这就是软件模块化设计(Modular Design)。软件模块化设计能够简化软件设计和实现,提升软件可了解性和可测试性,并使软件更轻易得到维护。分解、抽象、逐步求精、信息隐蔽和模块独立性,是软件模块化设计指导思想。09:31:47第41页软件系统模块化是指整个软件被划分成若干单独命名和独立访问部分,称之为模块。每个模块完成一个子功效,把全部模块集成起来组成一个整体,能够完成指定功效,满足用户需求。把问题子问题分解与软件开发中系统子系统或系统模块对应起来,就能够把一个大而复杂软件系统划分成易于了解比较单纯模块结构。模块化能够使一个复杂大型程序能被人智

29、力限制所管理,是软件应该具备最主要属性。实际上,每个程序都对应地有一个最适当模块数目,可使软件系统开发成本最小。模块划分目标: 进行功效分解,把复杂大功效划分成简单小子功效,尽可能降低每个模块成本。尽可能使每个模块间接口不能太多,太多会使接口成本增加。兼顾二者可取得最正确划分状态,确保软件总成本最低。软件模块化09:31:47第42页模块独立性模块独立性(Module Independence)是模块化、抽象、信息隐蔽等概念直接结果,也是判断模块化结构是否合理标准。模块独立性是指开发含有独立功效而和其它模块没有过多关联模块。模块独立性两大优点:独立模块因为分解了功效,简化了接口,使得软件比较轻

30、易开发;独立模块比较轻易测试和维护。模块独立性由两个定性标准度量:耦合是模块之间相互连接紧密程度度量内聚是模块功效强度(一个模块内部各个元素彼此结合紧密程度)度量。模块独立性愈高,则块内联络越强,块间联络越弱。09:31:47第43页概要设计概要设计也称总体设计,确定软件结构以及各组成成份(子系统或模块)之间相互关系。概要设计主要任务是:将系统划分成模块;决定每个模块功效;决定模块调用关系;决定模块界面,即模块间传递数据。概要设计实现方式:经过数据流图来确定系统结构图,而且对这些结构图进行分析和细化。在概要设计阶段,结构化设计主要采取面向数据流设计方法。09:31:47第44页详细设计详细设计

31、就是在概要设计基础上决定怎样详细实现各模块内部细节,直到对系统中每个模块给出足够详细过程描述。在编码实现阶段能够完全按照详细设计细节过程来映射到代码,最终实现整个系统。普通使用结构化程序设计工具来描述09:31:47第45页细设计基本任务为每个模块进行详细算法设计为模块内数据结构进行设计为数据结构进行物理设计,即确定数据库物理结构其它设计:依据软件系统类型,还可能要进行以下设计: 代码设计输入/输出格式设计人机对话设计编写详细设计文档评审09:31:47第46页面向对象概念面向对象是一个程序设计方法,或者说它是一个程序设计范型,其基本思想是使用对象、类、继承、封装、消息等基本概念来进行程序设计

32、。面向对象方法学面向对象分析(OOA,Object-Oriented Analysis)是一个半形式化规格说明技术。面向对象设计(OOD)面向对象实现(OOP)面向对象测试(OOT)09:31:47第47页面向对象概念面向对象特征抽象性:强调实体本质、内在属性,忽略一些无关紧要属性。类实现了对象数据(即状态)和行为抽象,是对象共性抽象。封装性:指全部软件部件内部都有明确范围以及清楚外部边界。每个软件部件都有友好界面接口,软件部件内部实现与外部可访问性分离。 共享性:面向对象技术在不一样级别上促进了共享。面向对象分析(OOA,Object-Oriented Analysis)是一个半形式化规格说

33、明技术。OOA是当前软件开发主流方法,是软件工程人才必须具备基础知识和必备能力。在进行系统业务调查后,按面向对象思想分析问题。09:31:47第48页OOA与SA区分:OOA强调在系统调查资料基础上,针对OO方法所需要素材进行归类分析和整理,而SA强调对管理业务现实状况和方法分析。 当前最流行OOA技术:OMT(Object Modeling Technology, 对象建模技术):它从对象模型、动态模型和功效模型三个方面对系统进行建模,每个模型从一个侧面反应系统特征。Booch开发技术:Booch方法所采取对象模型要素是:封装、模块化、层次类型、并发。主要概念模型是类和对象、类和对象特征、类

34、和对象之间关系。使用图形文档包含六种:类图、对象图、状态转换图、交互图、模块图和进程图。UML之前比较普及一个面向对象软件设计方法。面向对象概念09:31:47第49页面向对象模型面向对象模型三种主流形式按照产生次序排对象模型:定义“做什么”实体。它可表示系统数据或对数据处理,它是数据流和语义数据模型结合。动态模型:要求在何种状态下,接收什么事件触发而“做什么”。它表示瞬间、行为化系统“控制”性质,并要求了对象模型中对象正当改变序列。功效模型:指明系统应该“做什么”。它直接反应用户对目标系统需求。09:31:47第50页对象模型对象模型表示静态、结构化系统“数据”性质。描述是系统一个静态结构,

35、是对模拟客观世界实体对象,以及对象彼此间关系映射。对象模型基本组成形式 = 类(包含其属性和行为) + 对象(类实例) + 类或对象之间关系。类名是一类对象抽象命名,其命名是否恰当对系统可了解性影响相当大。对象模型还必须表示类/对象之间结构关系。类/对象之间关系普通可概括为关联、归纳/继承(泛化)、组合(聚集)三类。09:31:47第51页动态模型动态模型表示瞬间、行为化系统“控制”性质,它要求了对象模型中对象正当改变序列。也能够说,动态模型是基于共享而相互联络一组状态集合。对象运行周期中阶段就是对象状态,对象状态是对对象属性一个抽象。对象之间相互触发/作用行为(称为事件),引发一系列状态改变

36、。事件是引发对象状态转换控制信息。事件没有连续时间,是瞬间完成。对象对事件响应,取决于接收该触发对象当初所处状态,其响应包含改变自己状态,或者是形成一个新触发行为(事件)。动态模型描绘了对象状态,触发状态转换事件,以及对象行为(对事件响应)。09:31:47第52页统一建模语言UML统一建模语言(UML,Unified Modeling Language)是一个基于面向对象可视化建模语言。UML用丰富图形符号隐含表示了模型元素语法,而用这些图形符号组成元模型表示语义,组成模型描述系统结构(或称为静态特征)以及行为(或称为动态特征)。UML模型元素:一类模型元素用于表示模型中某个概念,如类、对象

37、、用例、结点、构件、包、接口等;另一类模型元素用于表示模型元素之间相互连接关系,主要相关联、泛化(表示普通与特殊关系)、依赖、聚集(表示整体与部分关系)等。09:31:47第53页UML能够从不一样视角为系统建模,形成不一样视图。视图是系统完整描述中一个抽象,代表该系统一个特定方面。每个视图由一组图组成,图包含强调系统某首先信息五类视图用例视图用于描述系统应该含有功效集, 强调从用户角度看到或需要系统功效,是对系统抽象表示。 逻辑视图用来展现系统静态或结构组件及特征。显示系统内部功效是怎样设计,利用系统静态结构和动态行为来刻划系统功效。 并发视图表达系统动态或行为特征。显示系统并发工作情况。

38、组件视图用来显示代码组件组织方式,描述了实现模块和它们之间依赖关系,表达了系统实现结构和行为特征 展开视图用来显示系统物理架构,即系统物理展开,表达了系统实现环境结构和行为特征。UML视图与图09:31:47第54页面向对象分析过程面向对象分析阶段主要任务是获取用户需求,并构建系统初步逻辑模型。用例建模:获取用户需求,构建用例模型。识别外部用户场景分析构建活动图构建用例图领域建模:目标是建立系统概念模型。抽取领域对象构建领域模型构建初步交互模型09:31:47第55页面向对象分析过程面向对象设计过程主要是对分析阶段建立对象模型或类模型和交互模型进行精化过程。精化类模型和对象模型交互行为建模设计

39、类精化构建逻辑架构09:31:47第56页用例驱动分析过程用例建模分析开发活动图开发泳道图用例着眼于为用户增加价值,提供了一个捕捉功效需求系统且直观方法,可驱动整个开发过程。用例从某个特定参加者角度用简单易懂语言说明一个特定使用场景。要开始开发用例,应列出特定参加者执行功效或者活动。用例模型帮助客户、用户和开发人员在怎样使用系统方面达成共识。用例图描述部分用例模型,显示带有联络用例和参加者集合用例驱动分析09:31:47第57页领域与业务建模领域模型能捕捉语境中最主要对象模型,领域对象代表系统工作环境中存在事情或发生事件。领域有三种经典形式:业务对象,表示业务中可操作东西。比如订单、帐单、帐户

40、和协议等。系统需要处理现实世界中对象和概念。如导弹、轮船、学籍、ATM、POS等。将要发生或已经发生事件。比如飞机起飞、午餐、休息、学籍籍点、取款、制造计划等。领域建模目标是了解和描述在领域语境中最主要类。09:31:47第58页分析类分析类侧重于处理功效性需求,经过较高、非形式化层次职责类定义某行为分析类三种基本结构型:边界类:边界类用于建立系统与其参加者之间交互模型,经常代表对窗口、窗体、窗幕、通信接口、打印机接口、传感器、终端以及API等抽象。每个边界类最少应该与一个参加者相关,反之亦然。控制类:控制类代表协调、排序、事务处理以及其它对象控制,经惯用于封装与某个详细用例相关控制。控制类还能够用来表示复杂派生与演算,如业务逻辑。实体类:实体类用于对长期有效持久信息建模。大多数情况下,实体类是直接从业务对象

温馨提示

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

评论

0/150

提交评论