软件工程教案-复习(李梁).ppt

上传人:xian****812 文档编号:15161806 上传时间:2020-08-04 格式:PPT 页数:65 大小:684.06KB
收藏 版权申诉 举报 下载
软件工程教案-复习(李梁).ppt_第1页
第1页 / 共65页
软件工程教案-复习(李梁).ppt_第2页
第2页 / 共65页
软件工程教案-复习(李梁).ppt_第3页
第3页 / 共65页
资源描述:

《软件工程教案-复习(李梁).ppt》由会员分享,可在线阅读,更多相关《软件工程教案-复习(李梁).ppt(65页珍藏版)》请在装配图网上搜索。

1、,软件工程复习,重庆理工大学 计算机科学与工程学院 李梁 65263075 ,课程要点,第1-3章 软件工程概、软件过程及软件开发模型 软件、程序、数据、文档的含义 软件危机及其表现、解决方法 软件工程的定义与核心思想 软件工程的基本原理与原则 软件工程的基本范型 软件过程及软件过程模型 软件工程的生命周期的概念以及它的各个阶段的内容,各阶段主要任务 软件工程的主要开发模型:瀑布模式、增量模型、螺旋模型、面向对象过程模型,课程要点,第5章 软件需求分析 软件需求分析概念、主要过程与步骤、软件需求的类型 软件解决方案:目标、性能指标评价、解决方式、可行性分析。 启动分析过程:确认利益相关者、识别

2、视点、协同工作、首次提问 主要的需求获取技术:会谈、调查表、场景描述、 主要的需求描述技术:流程图和用例图,课程要点,第6章 结构化分析建模 分析模型概述 结构化分析模型概念 SA概念和SA法主要模型(功能、数据、行为) 掌握数据流程图的基本画法,会画数据流程图 掌握数据字典的书写格式,会编写数据字典 对已明确需求的软件,会设计其主要数据流程图,编写主要数据字典 掌握决策树、决策表的绘制,熟悉结构式语言表示法; 掌握IPO图的画法,课程要点,第8-9章 结构化软件设计 系统设计(概要设计、过程设计)的任务和步骤(过程) 设计原则:抽象、自顶向下逐步求精、模块化、信息隐藏的、重构概念 常见的模块

3、独立性度量标准:耦合(7种)和内聚(7种) 软件模块结构中的基本术语和启发式设计策略:深度、宽度、扇出、扇入、调用、判断调用、数据信息、控制信息 掌握概要设计(总体设计)绘制工具:层次图和HIPO图、软件结构图 掌握SD法设计的过程与步骤 会区分变换型、事务型数据流图,并掌握相应的映射方法 会使用SD法将DFD转映射成模块结构图 了解对模块结构图的启发式设计策略,课程要点,第8-9章 结构化软件设计 知道详细设计(过程设计)的内容、过程及步骤 界面设计的步骤与基本准则 会使用常见的过程设计工具:程序流程图、NS表、判定表、过程设计语言 了解编码语言的分类,选择设计语言要考虑的因素 知道常见的编

4、程语言和工具(C/S和B/S) 知道常见的数据库产品 知道常见的软件CASE工具 知道开发规范及编码风格的主要内容 知道结构化程序设计的三种基本控制结构,课程要点,第7、10-11章 面向对象分析与设计 面向对象方法学的概念、特点,与面向过程开发方法的区别; 面向对象分析设计的步骤、过程 清楚对象、类、实例、消息、属性、方法(服务)、继承、消息、主题的概念 知道OMT对象建模技术的对象、动态与功能三大模型 知道UML的主要模型(用户、结构、行为、实现、环境)及构成的主要图形(对象类图、顺序图、状态图)的画法和事务(类、属性、服务、主要关联、多重性、角色、包、泛化、聚集、关联类、用例、事件、状态

5、、消息) 对已明确需求的描述,会设计其面向对象的模型(用例图、活动图、对象类图、行为脚本、顺序图、状态图),课程要点,面向对象分析设计技术 知道对象、类、实例、属性、行为、继承、消息、包的概念 知道面向对象的需求分析的过程 知道UML的概念和UML的基本模型 对已明确需求的系统,会设计其面向对象模型及动态模型(用例图、活动图、类图、顺序图、状态图),课程要点,第11-12章 软件实现 知道软件测试的目的、原则、标准和测试步骤 知道黑盒法与白盒法测试技术 知道单元、集成、确认、系统测试的主要内容,在开发过程中的位置和使用的主要技术(注意驱动、桩模块的概念) 会设计黑合测试中等价类划分、边值测试的

6、测试实例 知道一些主要的专项测试(如测试、测试、可靠性测试、性能测试、恢复测试) 测试用例设计的目的及编制方法 了解软件维护的概念、任务及软件维护的分类,重点技术,需求调查:业务流程图、用例图、活动图 SA法:分层DFD图、数据字典编制(描述)、判断表、判断树 SD法:软件结构图、HIPO图、DFD映射方法:变换分析与事务分析 OO:对象模型(对象类图)、动态模型(行为脚本、状态图、顺序图)、功能模型(DFD) 测试:等价类划分、边值分析设计测试用例 注意:案例方案文档(图书、ATM、POS、短信、出卷),软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。

7、程序是按事先设计的功能和性能要求执行的指令序列 数据是使程序能正常操纵信息的数据结构 文档是与程序开发,维护和使用有关的图文材料 软件=程序+文档 软件危机的概念: 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。即包含两方面的问题:如何开发软件、如何维护软件,软件及软件危机,16:58:21,软件工程的基本概念,软件工程:是以工程化思想进行软件开发,以生产高质量和高效率的软件。教材定义 核心观点:把软件看作是一个工程产品。 Fritz Bauer的定义:软件工程是为了经济地获得能够在实际机器上有效运行的可靠软件而建立和使用的一系列完善的工程化原则。 软件工程基本原理:推迟实

8、现的观点、逐步求精的观点、分解与抽象的观点、信息隐蔽观点、质量保证观点 软件过程是为了开发出软件产品,或者是为了完成软件工程项目而需要完成的有关软件工程的活动。通常使用生命周期模型简洁地描述软件过程 软件过程模型:就是把软件生命周期中各项开发活动的流程用一个合理的框架(开发模型)来规范描述。,16:58:21,16:58:22,CMM(Capability Maturity Model):是用于评价软件机构的软件过程能力成熟度的模型。是指对过程计划或定义水平、过程实施水平、过程管理和控制水平、过程改善潜力等指标的综合评价 思想:管理软件过程的方法不当引起的问题,导致新软件技术的运用并不会自动提

9、高软件的生产率和质量。 核心:CMM为软件企业的过程能力提供一个阶梯式的改进框架,它基于过去所有软件工程过程改进的成果,吸取以往软件工程的经验教训,提供一个基于过程改进的框架。 CMMI (Capability Maturity Model Integration):即能力成熟度模型集成,是CMM模型的最新版本。,能力成熟度模型-CMM,16:58:22,为企业的发展规定过程成熟级别,分为5级: 初始级(Initial):一般企业皆具有 可重复级(Repeatable):成功经验可以重复 已定义级(Defined):一套完整的企业过程,人员自觉遵守(培训) 已管理级(Managed、已控制):

10、过程&产品可度量和控制 优化级(Optimizing):过程持续改进 作用:从无序到有序、从特殊到一般、从定性管理到定量管理、最终达到动态优化。,能力成熟度模型-CMM,16:58:22,瀑布模型提供了软件开发的基本框架。 瀑布模型将软件生命周期划分为软件计划、需求分析和定义、软件设计、软件实现、软件测试、软件运行和维护这6个阶段,规定了它们自上而下、相互衔接的固定次序,如同瀑布流水逐级下落而得名 它是一个软件开发架构,开发过程是通过一系列阶段顺序展开的。 每个阶段都会产生循环反馈 各个阶段产生的文档是维护软件产品时必不可少的,没有文档的软件几乎是不可能维护的。 瀑布模型特点:顺序性和依赖性、

11、推迟实现、质量保证的观点、是一种线性模型、强调文档的作用。,瀑布模型,16:58:22,瀑布模型软件开发各阶段的任务表,面向对象是一种的程序设计方法,或者说它是一种程序设计范型。 基本思想是使用对象,类,继承,封装,消息等基本概念来进行程序设计。 面向对象的要素: 抽象:强调实体的本质、内在的属性,忽略一些无关紧要的属性。类实现了对象的数据(即状态)和行为的抽象,是对象的共性的抽象。 封装性:指所有软件部件内部都有明确的范围以及清楚的外部边界。 共享性: 面向对象的特征:对象惟一性;分类性;继承性;多态性(多形性)。,面向对象过程模型,16:58:22,自行开发方式 是一种完全依靠 用户自身的

12、开发 力量,由用户单 位自身的员工组 成项目组,根据 用户单位的特点 来开发软件系统,软件系统的开发方式,联合开发方式 是由用户单位与 用户单位外的单 位共同组成系统 开发小组,针对 企业具体的情况 和要求,共同完 成系统开发任务,外包开发方式是一种“交钥匙”工程的开发方式,即承包方根据用户单位提出开发的要求,提出软件系统的大体框架和开发所需费用等,当双方签订合同后,将系统开发的任务全部外包给专业软件开发单位。,具有不同功能 的信息系统作为 一种商品越来越 多,用户单位可 以象购买其他物 品一样,到市场 购买所需要的软件系统,这就是 采取购买的方式,几种开发方式的比较,可行性研究,可行性研究的

13、任务:用最小的代价在尽可能短的时间内确定问题是否能够解决。可行性研究的目的不是解决问题,而是确定问题是否值得解决。 经济可行性、技术可行性、操作可行性研究系统是否可行 可行性研究的输入是系统的一个框架描述和高层逻辑模型 输出是一份需求开发评价报告,对需求工程和系统开发是否值得做的具体建议和意见。 三个问题: 系统是否符合机构的总体要求? 系统是否可在现有技术条件、预算和时间限制内完成? 系统能否把已存在的其他系统集成?,16:58:22,设定优先级 设定的基本原则:时间投入、成本投入和获得效益(包括无形的社会性效益)是最主要的三个考核指标。 设定优先级的因素 目标系统能降低成本?何时、何地、如

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

15、具有反复性。 基础性:需求分析是在可行性研究阶段的基础上进行的,需要仔细研究可行性阶段提出的甲乙双方的需求并进一步具体化。 重要性:软件项目中40%60%的问题都是在需求分析阶段埋下的“祸根”。由于采用一些不合规范的方法,导致开发者开发的与用户所想得到的软件存在着巨大期望差异。软件需求分析的基本任务是准确地回答“做什么?”。需求分析是系统分析与软件设计之间的重要桥梁。,软件需求,16:58:22,功能需求:描述系统预期提供的功能或服务。 对系统应提供的服务 如何对输入做出反应 系统在特定条件下的行为 非功能需求:指那些不直接与系统具体功能相关的一类需求。通常划分为: 产品需求:产品行为的需求。

16、 机构需求:客户、开发者所在机构的政策和规定需求。 外部需求:系统的外部因素和开发过程总和。 领域需求:源于系统应用领域的需求。例如,信用卡安全登陆的密码隐藏需求等。 领域需求常常影响到系统的可用性,是基本的应用问题。,基于功能软件需求的分类,软件需求的类型,16:58:22,业务需求反映组织机构或客户对系统、产品的概括性要求,包括所要达到的业务目标,由项目视图与范围文档说明。 用户需求描述用户使用系统而要完成的各种任务,由用例(use case)文档或方案脚本说明。 功能需求定义开发人员必须实现的软件功能,源于用户需求,是软件需求说明书中重要的组成部分。,基于层次的软件需求分类,16:58:

17、22,需求分析主要是理解客户需要什么、做什么,分析要求、评价可行性、协商合理的方案、无歧义地详细说明方案、确认规格说明、管理需求,并将这些需求转化为可行的系统。 需求分析过程包括 初步沟通 导出需求 分析和精化 可行性研究 协商与沟通 规格说明 需求验证 变更管理,需求分析过程,16:58:22,确定利益相关者 利益相关者是指直接或间接从正在开发的系统中获益的人,或者与正开发系统有利益关系的人,因此也称关联人员,按照利益大致分为6类:所有者、用户、系统设计师、系统构造师、系统分析师、软硬件供应商和咨询顾问 软件开发团队的人员构成:作为商品化的软件开发团队,其人员构成是以上述前5类人员为主;作为

18、非商品化软件的开发团队,以第25种人员为主,此时,用户常常就代表了所有者的利益。对于第6类人员,通常不会纳入开发团队的。,启动分析过程,16:58:22,软件关联人员的关注点 由于利益不同,关联人员的出发点和关注点也就不同 所有者:关注软件的范围,如用途、目标、任务、远景、成本和收益等; 用户:关注软件的需求,如软件是干什么的,怎么干,效果会怎么样? 系统设计员:关注软件的具体设计内容,如何使用信息技术实现软件?常常,系统设计人员也是系统构造人员; 系统构造员:关注软件的构造,软件实际的技术实现?如何测试软件?如何发布软件? 系统分析员:关注软件开发工作的顺利进行,沟通团队中技术人员与非技术人

19、员,推动团队的开发工作; 软硬件供应商和咨询顾问:关注信息技术的选型、价格、技术要求、交货时间、售后服务和系统架构等。,启动分析过程,16:58:22,识别视点 视点:指软件关联人员从不同的视角看待该系统。比如,超市POS机的收银员关心准确、快速生成一次销售,且没有支付错误;超市的售货员关注销售业绩和提成;大学生关注课程的作用、学分、成绩和收费等等。 问题:软件关联人员的视点、信息都可能存在不一致、甚至矛盾的地方,软件开发技术人员的工作重点就是识别、分析视点中涉及的信息类型、需求属性等。例如,超市POS机系统就需要制定严格的操作流程,如款清帐明、人清日结、高层管理退货退款等,启动分析过程,16

20、:58:22,实例分析:出卷系统 利益相关者: 教师:关注如何出一份合理的试卷,并能根据样式打印与输出。 学生:关注如何通过生成一些模拟试题,并在线学习和检查学习结果。 题库维护人员:关注试题的添加、更新和删除等工作。 视点: 教师关注自动出卷、手工出卷、试卷编辑和试卷输出。 学生关注随时抽卷、联系试卷和评价分析。 题库维护人员关注试题管理。,非形式化需求分析技术,16:58:22,非形式化需求分析技术,图书馆系统的共利益者与视点有: 图书流通管理:负责图书借还工作。 用户:希望快速得到借书,还书服务,能够续借、预约图书,以及查询个人和图书信息。 编目管理员:负责图书的管理、用户管理和处理罚金

21、等。,16:58:22,会谈 正式会谈:提出一些可自由回答的问题。 非正式会谈:提出一些事先准备好的议题。 情景分析:需求分析从对场景的评论中得到信息,然后再将其以形式化方式表示出来。 调查表 制定调查表 分析 建立原型 界面 执行过程,非形式化需求分析技术,16:58:22,场景分析 分析员与项目相关人员共同识别出情景,并捕获这些情景的细节。 把细节加入到一个纲要的需求描述中时,情景特别有用。 情景是对交互实例片断的描述,每个情景可能包含一个或多个交互,它们能在不同的细节层次上提供不同类型的情景信息。 情景开始于一个框架,在导出过程中,细节被逐渐增加,直到产生交互的一个完整的描述。,非形式化

22、需求分析技术,16:58:22,一个情景可能包括如下内容: 在情景开始部分有一个系统状态描述; 一个关于标准事件流的描述; 一个关于哪儿会出错,以及如何处理错误的描述; 有关其他可能在同一时间进行的活动的信息; 在情景完成后系统状态的描述。,非形式化需求分析技术,16:58:22,结构化分析(SA,Structured Analysis)方法是20世纪70年代,由E.Yourdon等人倡导的一种适用于大型数据处理系统的、面向数据流的需求分析方法。 结构化分析方法是一种传统的系统建模技术,其过程是创建描述信息内容和数据流的模型,依据功能和行为对系统进行划分,并描述必须建立的系统要素。 结构化分析

23、将系统自顶向下逐层分解,达到表达系统的目的,它采用一组过程模型图形化地描述一个系统的逻辑模型。 结构化需求分析指导性原则:理解问题、开发模型、描述需求、建立系统模型、确定需求优先级、验证需求 结构化分析方法是一种建模技术 基于计算机的系统是数据流和一系列的转换构成的 在模型的核心是数据词典,它描述了所有的在目标系统中使用的和生成的数据对象。围绕着这个核心的有三种图: ERD、DFD、STD,结构化分析概述,16:58:22,结构化分析模型,分析模型的目的是为基于计算机系统提供必须的信息、功能和行为域的说明。 模型是对系统某个方面的抽象,抛弃了具体细节,对系统中最突出的特征作简化。 分析模型的所

24、有元素都可以直接映射到设计模型 结构化分析模型的组成 数据建模和对象描述 功能建模和数据流图 基本加工逻辑说明 行为建模(时序图) 数据词典,16:58:22,面向数据流的建模,面向数据流的建模是结构化需求分析方法之一 采用自顶向下逐层分解,描绘满足用户要求的软件模型(数据模型、功能模型、行为模型) 表示: 数据流图:描述系统处理过程 数据字典:模型中的数据信息集合 状态转换图:描述系统对内部或外部事件响应的行为模型,16:58:22,软件设计阶段的基本目标是构造系统“怎么做”的模型描述。 “设计先于编码” 是软件工程“推迟实现”基本原则。 软件系统设计是把软件需求“变换”为用于构造软件的蓝图

25、。 “输入”是需求分析各种模型元素 “输出”是软件设计模型和表示 软件设计的目标是对将要实现的软件系统的体系结构、系统的数据、系统模块间的接口,以及所采用的算法给出详尽的描述。,软件设计概述,16:58:22,软件设计概念,总体设计,或称概要设计,或软件结构设计,或高层设计 分析需求规格说明 模块划分,形成具有预定功能的模块组成结构 表示出模块间的控制关系 给出模块之间的接口 软件详细设计,也称(模块) 过程设计,或低层设计。 设计模块细节 确定模块所需的算法 和数据结构等 编写所有代码 设计测试和复审,16:58:22,软件结构设计过程 含系统设计和结构设计。系统设计确定系统的具体实现对象,

26、结构设计确定软件的体系结构。软件结构设计步骤: 设计供选择的方案 选取合理的方案 推荐最佳方案 功能分解和设计软件结构 数据库设计 制定软件设计测试计划 编制设计文档 审查和复审,软件设计过程,16:58:22,软件模块化设计,模块是一个独立命名的,拥有明确定义的输入、输出和特性的程序实体。 把一个大型软件系统的全部功能,按照一定的原则合理地划分为若干个模块,每个模块完成一个特定子功能,所有的这些模块以某种结构形式组成一个整体,这就是软件的模块化设计(Modular Design)。 软件模块化设计可以简化软件的设计和实现,提高软件的可理解性和可测试性,并使软件更容易得到维护。 分解、抽象、逐

27、步求精、信息隐蔽和模块独立性,是软件模块化设计的指导思想。,16:58:22,软件系统的模块化是指整个软件被划分成若干单独命名和独立访问部分,称之为模块。每个模块完成一个子功能,把全部模块集成起来构成一个整体,可以完成指定的功能,满足用户的需求。 把问题子问题的分解与软件开发中的系统子系统或系统模块对应起来,就能够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。 模块化可以使一个复杂的大型程序能被人的智力限制所管理,是软件应该具备的最重要的属性。 事实上,每个程序都相应地有一个最适当的模块数目,可使软件系统的开发成本最小。 模块划分的目的: 进行功能分解,把复杂的大的功能划分成简单

28、的小的子功能,尽量降低每个模块的成本。尽量使每个模块间的接口不能太多,太多会使接口成本增加。兼顾二者可取得最佳的划分状态,确保软件总成本最低。,软件模块化,16:58:22,模块的独立性,模块的独立性(Module Independence)是模块化、抽象、信息隐蔽等概念的直接结果,也是判断模块化结构是否合理的标准。 模块独立性是指开发具有独立功能而和其他模块没有过多关联的模块。 模块独立性两大优点: 独立的模块由于分解了功能,简化了接口,使得软件比较容易开发; 独立的模块比较容易测试和维护。 模块独立性由两个定性标准度量: 耦合是模块之间的互相连接的紧密程度的度量 内聚是模块功能强度(一个模

29、块内部各个元素彼此结合的紧密程度)的度量。 模块独立性愈高,则块内联系越强,块间联系越弱。,16:58:22,概要设计,概要设计也称总体设计,确定软件的结构以及各组成成分(子系统或模块)之间的相互关系。 概要设计的主要任务是: 将系统划分成模块; 决定每个模块的功能; 决定模块的调用关系; 决定模块的界面,即模块间传递的数据。 概要设计的实现方式:通过数据流图来确定系统的结构图,并且对这些结构图进行分析和细化。 在概要设计阶段,结构化设计主要采用面向数据流的设计方法。,16:58:22,详细设计,详细设计就是在概要设计的基础上决定如何具体实现各模块的内部细节,直到对系统中的每个模块给出足够详细

30、的过程描述。 在编码实现阶段可以完全按照详细设计的细节过程来映射到代码,最终实现整个系统。 一般使用结构化程序设计工具来描述,16:58:22,细设计的基本任务,为每个模块进行详细的算法设计 为模块内的数据结构进行设计 为数据结构进行物理设计,即确定数据库的物理结构 其他设计:根据软件系统的类型,还可能要进行以下设计: 代码设计 输入/输出格式设计 人机对话设计 编写详细设计文档 评审,16:58:22,面向对象概念,面向对象是一种的程序设计方法,或者说它是一种程序设计范型,其基本思想是使用对象、类、继承、封装、消息等基本概念来进行程序设计。 面向对象方法学 面向对象分析(OOA,Object

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

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

33、类和对象之间的关系。使用的图形文档包括六种:类图、对象图、状态转换图、交互图、模块图和进程图。UML之前比较普及的一种面向对象软件设计方法。,面向对象概念,16:58:22,面向对象模型,面向对象模型的三种主流形式按照产生顺序排 对象模型:定义“做什么”的实体。它可表达系统的数据或对数据的处理,它是数据流和语义数据模型的结合。 动态模型:规定在何种状态下,接受什么事件的触发而“做什么”。它表示瞬间的、行为化的系统“控制”性质,并规定了对象模型中对象的合法变化序列。 功能模型:指明系统应该“做什么”。它直接反映用户对目标系统的需求。,16:58:22,对象模型,对象模型表示静态的、结构化系统的“

34、数据”性质。描述的是系统一种静态结构,是对模拟客观世界实体的对象,以及对象彼此间的关系的映射。 对象模型的基本组成形式 = 类(包括其属性和行为) + 对象(类的实例) + 类或对象之间关系。 类名是一类对象的抽象命名,其命名是否恰当对系统的可理解性影响相当大。 对象模型还必须表示类/对象之间的结构关系。类/对象之间的关系一般可概括为关联、归纳/继承(泛化)、组合(聚集)三类。,16:58:22,动态模型,动态模型表示瞬间的、行为化的系统“控制”性质,它规定了对象模型中对象的合法变化序列。也可以说,动态模型是基于共享而相互联系的一组状态集合。 对象运行周期中的阶段就是对象的状态,对象状态是对对

35、象属性的一种抽象。 对象之间相互触发/作用的行为(称为事件),引起一系列的状态变化。 事件是引起对象状态转换的控制信息。事件没有持续时间,是瞬间完成的。 对象对事件的响应,取决于接受该触发的对象当时所处的状态,其响应包括改变自己的状态,或者是形成一个新的触发行为(事件)。 动态模型描绘了对象的状态,触发状态转换的事件,以及对象行为(对事件的响应)。,16:58:22,统一建模语言UML,统一建模语言(UML,Unified Modeling Language)是一种基于面向对象的可视化建模语言。 UML用丰富的图形符号隐含表示了模型元素的语法,而用这些图形符号组成元模型表达语义,组成模型描述系

36、统结构(或称为静态特征)以及行为(或称为动态特征)。 UML的模型元素: 一类模型元素用于表示模型中的某个概念,如类、对象、用例、结点、构件、包、接口等; 另一类模型元素用于表示模型元素之间相互连接的关系,主要有关联、泛化(表示一般与特殊的关系)、依赖、聚集(表示整体与部分的关系)等。,16:58:22,UML可以从不同视角为系统建模,形成不同的视图。 视图是系统完整描述中的一个抽象,代表该系统一个特定的方面。每个视图由一组图构成,图包含强调系统某一方面的信息 五类视图 用例视图用于描述系统应该具有的功能集, 强调从用户的角度看到的或需要的系统功能,是对系统的抽象表示。 逻辑视图用来展现系统的

37、静态或结构组件及特征。显示系统内部功能是怎样设计,利用系统静态结构和动态行为来刻划系统的功能。 并发视图体现系统的动态或行为特征。显示系统的并发工作状况。 组件视图用来显示代码组件的组织方式,描述了实现模块和它们之间的依赖关系,体现了系统实现的结构和行为特征 展开视图用来显示系统的物理架构,即系统的物理展开,体现了系统实现环境的结构和行为特征。,UML视图与图,16:58:22,面向对象分析过程,面向对象分析阶段的主要任务是获取用户的需求,并构建系统初步的逻辑模型。 用例建模:获取用户的需求,构建用例模型。 识别外部用户 场景分析 构建活动图 构建用例图 领域建模:目的是建立系统的概念模型。

38、抽取领域对象 构建领域模型 构建初步的交互模型,16:58:22,面向对象分析过程,面向对象设计过程主要是对分析阶段建立的对象模型或类模型和交互模型进行精化的过程。 精化类模型和对象模型 交互行为建模 设计类精化 构建逻辑架构,16:58:22,用例驱动分析过程 用例建模分析 开发活动图 开发泳道图 用例着眼于为用户增加价值,提供了一种捕获功能需求的系统且直观的方法,可驱动整个开发过程。 用例从某个特定参与者的角度用简单易懂的语言说明一个特定的使用场景。 要开始开发用例,应列出特定参与者执行的功能或者活动。 用例模型帮助客户、用户和开发人员在如何使用系统方面达成共识。 用例图描述部分用例模型,

39、显示带有联系的用例和参与者的集合,用例驱动分析,16:58:22,领域与业务建模,领域模型能捕获语境中最重要的对象模型,领域对象代表系统工作的环境中存在的事情或发生的事件。 领域有三种典型的形式: 业务对象,表示业务中可操作的东西。例如订单、帐单、帐户和合同等。 系统需要处理的现实世界中的对象和概念。如导弹、轮船、学籍、ATM、POS等。 将要发生或已经发生的事件。例如飞机起飞、午餐、休息、学籍籍点、取款、制造计划等。 领域建模的目的是理解和描述在领域语境中最重要的类。,16:58:22,分析类,分析类侧重于处理功能性需求,通过较高的、非形式化层次的职责类定义某行为 分析类三种基本构造型: 边

40、界类:边界类用于建立系统与其参与者之间交互的模型,经常代表对窗口、窗体、窗幕、通信接口、打印机接口、传感器、终端以及API等的抽象。每个边界类至少应该与一个参与者有关,反之亦然。 控制类:控制类代表协调、排序、事务处理以及其他对象的控制,经常用于封装与某个具体用例有关的控制。控制类还可以用来表示复杂的派生与演算,如业务逻辑。 实体类:实体类用于对长效持久的信息建模。大多数情况下,实体类是直接从业务对象模型中相应的业务实体类得到的。,16:58:22,识别属性和操作,属性描述类的性质,可以通过分析该类存在的一些信息类构建。 操作定义了某个对象的行为。 操作可以分为四种类型: 以某种方式操纵数据,

41、例如:添加、删除、选择、更新等。 执行计算的操纵,例如:销售中的计算总价。 请求某个对象状态的操作。 监视某个对象发生某个控制事件的操作。 操作的构造需要交互图和场景描述等手段多次反复分析才能获取。在研究语法分析并分离动词作为候选的操作。推荐的一个方法是使用CRC技术。,16:58:22,系统行为建模,行为模型显示了软件如何对外部事件或激励做出响应。要生成行为模型,分析师必须按如下步骤进行: 评估所有的用例,以使得完成理解系统内的交互序列。 识别驱动交互序列的事件,并理解这些事件如何和具体的类相互关联。 为每个用例生产序列。 创建系统状态图。 评估行为模型以验证准确性和一致性。,16:58:2

42、2,软件测试的及定义 用户的角度:普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。 软件开发者的角度:希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。 软件测试的定义 (1) 测试是程序的执行过程,目的在于发现错误; (2) 一个好的测试用例在于能发现至今未发现的错误; (3) 一个成功的测试是发现了至今未发现的错误的测试。 以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。 测试附带收获:能够证明软件功能和性能与需求说明相符合 测试结果数据为可靠性分析提供了依据。 测试不能表明软件中不存在错误,只能说明

43、软件中存在错误。,软件测试的定义,软件测试三个最佳实践:尽早测试、连续测试、自动化测试 所有的测试都应该能追溯到用户需求。 应该远在测试开始之前就制定出测试计划。 严格执行测试计划,排除测试的随意性。 测试用例应由测试输入数据和对应的预期输出结果这两部分组成。 程序员应避免检查自己的程序。为了达到最佳的测试效果,应该由独立的第三方从事测试工作 在设计测试用例时,应包括合理的输入条件和不合理的输入条件。 穷举错误是不可能的,因此,测试只能证明程序中有错误,而不能证明程序中没有错误。,软件测试准则,16:58:22,验证与确认,验证是指已经实现的软件产品是按照它的需求做的,是符合需求说明书的。 确

44、认是指已经实现的软件产品或产品组件在用户环境下实现了用户的需要。 验证测试指测试人员在模拟用户环境的测试环境下对软件进行测试。 确认测试是指测试人员在真实的用户环境下检查软件。 同行评审及测试是主要的验证方法。 确认主要是对中间及最终产品的检查与验收。 确认与验证紧密结合。,16:58:22,考试试卷分布,1、选择题(30分,15题) 2、简答题(15分,3题):基本概念(如软件工程、软件危机、生命周期、软件开发模型、需求分析、软件设计、模块独立性度量标准等) 3、论述题(25分,3题):分析、设计、实现方面的过程、方法、工具,如数据字典、判断表(树)、软件工具 4、综合分析设计题(30分,1个例子):需求获取(利益相关者和视点描述、场景描述、功能需求描述、业务流程图、用例图、活动图)、SA法(数据流程图、数据字典)、SD法(DFD转换成软件结构图)、OO法(对象类图、状态图、顺序图)、黑盒测试用例设计(等价类划分、边值分析),

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!