首页 软件工程课件

软件工程课件

举报
开通vip

软件工程课件nullnull软件工程 null内容摘要 本书为配合国家技能型紧缺人才培养培训工程并根据《计算机应用和软件专业领域技能型紧缺人才培养培训指导方案》的要求而编写。 本书针对职业院校学生的特点,充分体现《指导方案》中素质为基础、能力为本位、需求为依据、就业为导向的基本原则,教学内容注重选择当前软件工程中的一些新理论、新方法与新技术,通过一个小型软件项目为案例贯穿全书,使学生在学完后能基本掌握软件工程的基本理论与方法在软件项目开发中的实际应用。其主要内容涉及软件工程中的软件策划、需求分析、软件设计、编码实现、软件...

软件工程课件
nullnull软件工程 null内容摘要 本书为配合国家技能型紧缺人才培养培训工程并根据《计算机应用和软件专业领域技能型紧缺人才培养培训指导 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 》的要求而编写。 本书针对职业院校学生的特点,充分体现《指导方案》中素质为基础、能力为本位、需求为依据、就业为导向的基本原则,教学内容注重选择当前软件工程中的一些新理论、新方法与新技术,通过一个小型软件项目为案例贯穿全书,使学生在学完后能基本掌握软件工程的基本理论与方法在软件项目开发中的实际应用。其主要内容涉及软件工程中的软件策划、需求分析、软件设计、编码实现、软件测试及实施与维护等方面的内容,考虑职业院校学生的就业定位,重点侧重于详细设计、软件编码、软件测试、软件维护这几个方面的基本知识与技能。为保持教学内容的先进性同时便于对教学进行科学灵活的组织,对诸如UML方法、面向对象的分析、设计与编程、面向对象软件测试、CMM等也作了介绍。 本书可以作为职业院校计算机类专业的软件工程课程的教材或教学参考书,也可作为IT行业程序员、测试员、维护员等的培训教材或参考书。null主要内容第1章 软件工程概述第2章 系统策划第3章 需求分析第4章 软件设计第5章 编码第6章 软件测试第7章 软件实施与维护第8章 软件项目管理第9章 软件过程管理null第一章 软件工程概述null本章主要内容1.1 软件与软件工程1.2 软件生存周期与开发模型1.3 软件工程过程1.4 软件开发工具简介1.5 学习指南null11 软件及软件工程—软件软件的定义在运行中能提供所希望的功能与性能的程序 使程序能够正确运行的数据及其结构 描述软件研制过程和方法所用的文档 软件的特点软件角色的双重性 软件不是传统意义上的被制造 软件不会“磨损”,但会退化 软件都是手工定制的 开发过程的复杂与费用的昂贵 null11 软件及软件工程—软件软件的分类null11 软件及软件工程—软件工程软件危机软件开发的生产率远远不能满足客观需要 开发的软件产品往往不能满足用户的实际需要 软件产品的质量低下且可维护性差 很难估计软件开发的进度 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 与成本 软件神话有了软件开发书籍,就可以解决软件开发中的一切问题 进度滞后了?好,增加程序员 只要程序正确,项目就成功,文档可有可无 软件质量只能在正式投入运行后才知道null11 软件及软件工程—软件工程软件工程的定义IEEE定义:软件工程是将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件。 通俗地说,软件工程是指导软件开发和维护的一门工程学科。它采用工程的概念、原理、技术和方法,把经过时间检验而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,用于开发和维护软件。 null11 软件及软件工程—软件工程软件工程—层次化技术软件工程三个要素:方法、工具、过程null11 软件及软件工程—软件工程软件工程的作用【成功案例】美国联邦速递公司(FedEX)的管理信息系统 【失败案例】英国伦敦的急救服务管理信息系统 软件工程的基本原理用分阶段的生存周期计划严格管理 坚持进行阶段评审 实行严格的产品控制 采用现代程序设计技术 结果应能清楚地审查 开发小组的人员应该少而精 承认不断改进软件工程实践的必要性 null12 软件生存周期与开发模型—生存周期软件生存周期人的生存周期婴儿——幼儿——儿童——少年——青年——中年——老年——死亡 软件的生存周期软件定义软件开发软件支持问题定义可行性分析需求分析概要设计详细设计编 码测 试软件发布软件运行维护或退役null12 软件生存周期与开发模型—生存周期软件定义阶段问题定义 可行性分析 立项或签订合同软件开发阶段需求分析 软件设计 编码与测试 发布或安装验收软件开发阶段软件的使用、运行 软件维护null12 软件生存周期与开发模型—开发模型问题的提出—软件工程需要解决什么问题?软件开发模型做什么软件? 怎么做软件? 软件如何适应变化?软件开发过程概括,是软件工程思想的具体化 它是跨越整个软件生存周期的各个阶段所需要的全部工作与任务的结构框架 null12 软件生存周期与开发模型—开发模型瀑布模型—线性顺序模型可行性分析需求分析设 计编 码测 试支 持null12 软件生存周期与开发模型—开发模型瀑布模型的特点:瀑布模型的应用范围阶段间具有顺序性和依赖性 每个阶段必须完成规定的文档;每个阶段结束前完成文档审查,及早改正错误,但: 开发过程一般不能逆转,否则代价太大。 实际的项目开发很难严格按该模型进行。 客户往往很难清楚地给出所有的需求,而该模型却要求如此。 软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。 用户的需求非常清楚全面,且在开发过程中没有或很少变化 开发人员对软件的应用领域很熟悉。 用户的使用环境非常稳定。 开发工作对用户参与的要求很低 null12 软件生存周期与开发模型—开发模型原型模型用户测试 运行原型建造/修改 原型 听取用 户意见null12 软件生存周期与开发模型—开发模型原型模型的特点:原型模型的应用范围可以得到比较良好的需求定义,容易适应需求的变化。 有利于开发与培训的同步。 开发费用低、开发周期短、维护容易且对用户更友好。 客户与开发者对原型理解不同 准确的原型设计比较困难 不利于开发人员的创新对所开发的领域比较熟悉而且有快速的原型开发工具 项目招投标时,可以以原型模型作为软件的开发模型 进行产品移植或升级时,或对已有产品原型进行客户化工作时,原型模型是非常适合的。 null12 软件生存周期与开发模型—开发模型基于构件的开发模型特点:属于演化式开发或迭代式开发,其开发过程: 客户的交流,获得问题的定义 标识基本类 计划与风险分析 类的复用或重新开发 构造系统 用户评估采用了先进的面向对象技术。 基于构件库的开发,这是软件复用的基础,开发速度快。 融合了螺旋模型特征 支持软件开发的迭代方法,是一种演化型的开发技术。 null13 软件工程过程软件工程过程的概念ISO9000过程:软件工程的三要素之一 从开发到维护软件相关产品所采取一系列管理活动。主要包括项目管理、配置管理、质量管理、文档管理等。 IS09001:设计、开发、生产、安装和服务的质量保证模式 IS09002:生产、安装和服务的质量保证模式 IS09003 :最终检验和试验的质量保证模式。 null13 软件工程过程CMM软件能力成熟度模型 CMM (Capability Maturity Model) CMM的级别null开发工具的作用与功能14 软件开发工具简介—CASE工具计算机辅助软件工程 CASE作用认识与描述系统需求 保存与管理开发过程中的信息 代码的生成 文档的编制与生成 软件项目的管理 null开发工具的分类14 软件开发工具简介—CASE工具分类 方法按应用阶段划分 按功能划分设计工具分析工具项目管理软件配置质量保证分析设计计划工具界面开发客户服务器Web开发nullIBM Rational工具14 软件开发工具简介—常用CASE工具 Rational公司是专门从事CASE工具研制与开发的软件公司,2003年被IBM公司收购。该公司所研发的Rational系列软件是完整的CASE集成工具,贯穿从需求分析到软件维护的整个软件生存周期。 需求分析与设计工具产品主要构成测试工具软件配置管理工具Rose PurifyPlus Robot ClearCase null北大青鸟工具14 软件开发工具简介—常用CASE工具 北大青鸟系列CASE工具北京北大青鸟软件有限公司开发研制的,在国内有较高的知名度,北京大学软件工程国家工程研究中心就设在该公司。 产品主要构成null微软版本管理器—VSS14 软件开发工具简介—常用CASE工具版本管理是软件配置管理中的核心工作,由Microsoft公司开发的Visual SourceSafe 6.0使用非常广泛而且很容易获得。文件检入与检出 产品主要功能版本控制 文件的拆分与共享 权限管理 null本书案例介绍—教师教学网络测评系统 15 学习指南—学习案例 为实现教学质量的量化考核,借此评价教师的教学水平并有针对性的提高教学质量,某高校开发了基于校园网的教学质量网上测评系统 四大功能模块 数据采集模块,学生对一个学期中所学课程的各任课教师的教学水平及师德两个方面给予的百分制评价分值 数据统计模块,根据教务处规定的统计方法统计出每位任课教师在一个学期中的教学水平及师德的最终测评得分。 数据查询模块,查询全校任课教师的最终得分及名次,还能够查询各个班级的学生对任课教师的教学水平及师德的评分情况。 辅助功能模块,包括基础数据的管理、测评类型的管理等。 null本书案例介绍—教师教学网络测评系统 15 学习指南—学习案例系统运行界面—浏览器端:null本书案例介绍—教师教学网络测评系统 15 学习指南—学习案例系统运行界面—服务器端:null第二章 系 统 策 划null这个项目是做还是不做呢?还是先去做一下市场调研或与客户谈谈签约的事吧!null2.1可行性研究2.2 软件项目计划本章主 要内容null21可行性研究----问题的定义 问题定义 确定软件开发项目必须完成的目标 。其关键问题是:“要解决什么问题?” 含义主要 内容问题的背景、总体要求与目标、类型范围、功能规模、实现目标的方案、开发的条件、环境要求等问题定义报告 应包括内容 项目名称 使用方 对问题的概括定义 项目的目标 项目的规模 null21可行性研究----问题的定义 案例 分析 某校在校生近5000人,每学期在期中都要进行一次对教师的教学质量测评,要求所有学生都要参加。以前测评的方式都是手工操作,由教务处发出书面问卷调查表,每个同学填写完成后交回到教务处。然后教务处再使用手工的方法对问卷进行统计汇总,最后得出学生对每一位教师的总体评价。这种方法一方面浪费了大量的财力、人力,另一方面统计繁琐且容易出错。考虑到现在学校校园网已经建成,为节省开支,提高效率,学校决定委托计算机系开发一套基于校园网的《教师教学网络测评系统》 1、问题的提出null21可行性研究----问题的定义 案例 分析2、问题分析 系统分析人员经过与学校教务部门及各相关单位进行充分的调查后,了解了该项目的一些背景资料与基本要求。教师测评分两大部分,一是师德测评;二是教学质量测评。师德测评有4项指标,教学质量测评有14项指标。系统要实现的目标是: • 所有学生在指定时间内在指定机房的计算机上完成对任课教师的测评打分,测评过程全部采用选择的方法,不需要输入任何信息 • 所有的测评数据保存在学校中心服务器上,有较为严格的安全措施 • 系统能对所有的数据进行统计汇总,得出每一位教师的测评结果,并能进行排序、输出。 …… 系统开发的大体费用在1.2万元左右,开发周期大约6个人月。 null21可行性研究----问题的定义 案例 分析3、系统定义报告 根据以上分析,形成如下的系统定义报告。 案例文档之一——系统定义报告 用户单位:XX学校教务处 负责人:XXX 开发单位:XX学校计算机系 分析员:XXX 项目名称:基于校园网的教学质量测评系统 问题概述:教师教学质量测评每学期必须进行一次,原有的手工方法存在资源浪费、效率极低、结果不准确等问题。……(其它的相关说明) 项目目标:开发一个效率高且相对通用的教师教学网络测评系统。 项目规模:开发成本大约1.2万元,开发周期约6个人月。 可行性研究:建议进行一周,费用不超过500元。null21可行性研究----可行性研究的任务与步骤 一、可行性研究的任务 2、经济可行性 3、社会因素的考虑 分析成本——收益与短期效益——长远利益这两个方面 。要作出投资的估算和系统投入运行后可能获得的经济效益或可节约的费用估算 。分析利用现有的技术能否实现,能否解决系统中的技术难题,所开发的系统能否达到所要求的功能和性能,系统对技术人员的要求,现有的技术人员能否胜任,开发所需要的软件与硬件能否如期得到等 1、技术可行性 主要考虑的是市场、政策与法律方面的问题 null21可行性研究----可行性研究的任务与步骤 二、可行性研究的步骤1、重新检查系统定义报告中相关内容 ,明确对目标系统限制与约束。 2、研究目前正在使用的系统,找出其基本功能和所需要的基本信息,绘制系统流程图。 3、设想新系统高层逻辑模型,分析归纳现有系统,最后建造新物理系统。 4、导出各种实现方案 并对方案 进行评价 5、推 荐 可行性方案 6、编写可行性研究报告null21可行性研究----技术可行性分析 技术可行性分析 的三个方面 1、在给定的时间内能否实现系统定义中的功能 。2、软件的质量如何? 如实时性、正确性和精确性。3、软件的生产率如何? 高生产率意味着利润。做得了吗?做得好吗?做得快吗? 先分析null21可行性研究----技术可行性分析 在进行技术可行性分析时,一个重要的内容是对现有系统与拟开发的系统绘制系统流程图。系统流程图中所用的符号与程序设计语言中的程序流程图所用的符号类似。但系统流程图与程序流程图不同,系统流程图表达的是信息在系统中各个部件之间的流动情况,而程序流程图表达的是程序对信息进行加工处理的控制过程 系统流 程图null21可行性研究----技术可行性分析 系统流程图中的常用符号 null系统流程图中的常用符号 21可行性研究----技术可行性分析 null教师教学网络测评系统流程图 21可行性研究----技术可行性分析 null21可行性研究----经济可行性分析 经济 可行 性分 析 1. 成本分析 2. 收益分析 办公成本 人员成本 资源成本 其它成本 货币的时间价值 纯收入 如果从经济可行性的角度分析得出纯收入小于或等于零的结论,则这个项目是不能投资的 最难准确核算 纯收入=总收入折现-总成本折现 P=F(1+i)-n 称为折现null21可行性研究----经济可行性分析 常用成本估算策略1、在项目后期进行估算,即完全精确核算2、基于已经完成的类似项目进行估算 3、使用相对简单的分解技术以生成项目成本及工作量的估算 4、使用一个或多个经验模型进行软件成本及工作量的估算估算 不能选择 比较切实可行 两种常用策略 null21可行性研究----经济可行性分析 两种成 本估算 方法代码行法(LOC) 功能点法(FP) 每行代码的平均成本乘以程序的行数 采用软件所提供的功能来测量的 null21可行性研究----案例分析 (可行性研究)可行性研究最终生成可行性研究报告案例文档之二——可行性研究报告 1.引言 1.1编写目的 本报告分析了《教师教学网络测评系统》开发的可行性,请院领导审阅并对是否进行该系统的开发做出批示。 1.2项目背景 建议进行《教师教学网络测评系统》的开发。(背景介绍略) 我院计算机系具备进行该软件系统开发的能力并承担本软件系统的开发与维护工作。该软件系统由我院教务处使用。 ……详见教材null22软件项目计划系统定义报告 用户的需求报告 可行性研究报告 项目开发计划 及相关的一些 专题计划 如:测试计划、质量保证计划、配置管理计划、人员培训计划、系统安装计划 null22软件项目计划 ---软件项目计划的主要内容制订方法 软件 项目 计划资源计划 软件估算计划 进度安排计划 人力资源 可复用的构件 开发环境 高层管理人员 项目经理 开发人员 客户、最终用户 软件/硬件环境 采用任务分解技术对软件的规模与工作量进行估算,并将总的开发费用分配到开发的各个阶段中 软件规模工作量进度成本进度安排要确定最终的软件交付日期,并在限定的日期内安排和分配工作量;或者在合理复用各种资源分配工作量的基础上确定最终交付日期。 其它专题计划 如质量保证计划、配置管理计划、里程碑及评审计划、测试计划等 null22软件项目计划 ---案例分析(软件项目开发计划书) 案例文档之三—软件项目开发计划书 1.引言 1.1编写目的 为保证《教师教学网络测评系统》的开发成功,按期交付使用,特编写项目开发计划,请参与开发的人员遵照执行。 1.2项目背景(略) 1.3定义 《教师教学网络测评系统》以下简称《测评系统》。 。。。。。详见教材null第三章 需求分析null本章主要内容3.1 需求分析概述3.2 结构化分析3.3 面向对象分析3.4 UML概述null31 需求分析概述--需求分析的重要性 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到程的成败和软件产品的质量。重要性需求获取 困难 ,原因有三一是用户需求的动态性(不稳定性) 二是需求的模糊性(不准确性) 三是需求必须得到用户的确认,否则毫无意义 null31 需求分析概述—需求分析的任务 1、确定对系统的综合要求: 系统界面要求、系统功能要求、系统性能要求、完全性可靠性保密性要求、系统运行要求、异常处理要求、将来可能提出的要求、分析系统的数据要求。 2、分析系统的数据要求 3、异出系统的逻辑模型 4、修正项目开发划 5、开发原型系统 需求分析任务null需求工程层次分解图31 需求分析概述--需求分析的过程与方法 一、需求分析过程null需求获取用户概要 信息业务需求功能需求用户需求非功能性需求可行性报告系统定义报告分析调研座谈法 调查表法 观察法31 需求分析概述--需求分析的过程与方法 null需求分析获取数据目标逻辑模型需求获取从数据流和数据结构出发,找出系统各元素之间的联系、接口特征及设计限制、能否满足功能需求31 需求分析概述--需求分析的过程与方法 null需求规格说明书编写目标系统的基本描述 系统各项需求 系统限制及条件 系统数据定义 ……需求分析结果需求文档编写31 需求分析概述--需求分析的过程与方法 null评审、验证 的四个方面一致性完整性现实性有效性所有需求必须一致,不能前、后和相互矛盾说明书应包括用户需求的每一方面在现有基础上可实现必须证明需求有效,能解决用户提出的问题需求评审与确认31 需求分析概述--需求分析的过程与方法 null31 需求分析概述--需求分析的过程与方法 二、需求分析的方法 分析 方法结构化分析方法面向对象的分析方法 面向数据的方法,以数据流为中心 。其核心概念包括:进程、数据流、数据存储、外部实体、数据组和数据元素。有代表性的模拟工具有:数据流图、数据字典、原始进程规格说明。 面向对象分析以对象及其服务作为建模 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 ,比较自然,对象也具有相对的稳定性。主要模拟的元素有:对象、类、属性、关系、方法、消息传递、用例等。其主要原理包括分类、继承、层次、信息隐藏、汇集关系等。 null基本思想自顶向下 逐层分解结构化分析(Structured Analysis)它是一种面向数据流的需求分析方法,适用分析大型数据处理系统,是一种简单、实用的方法。32 结构化分析null问题域问题行为(功能)对应于软件子系统对应于子软件的软构件对应于软件子系统32 结构化分析自顶向下需求分析模型图S = { D1,D2,D3,… Dn } Di = { P1,P2,P3,… Pm } Pj = { F1,F2,F3,… Fk } null概念是描述数据信息的集合,是对系统中所有数据元素定义的集合。包含信息数据、控制项、数据存储或外部实体的主要名称和别名使用数据和对象的列表、使用对象的方式描述数据或控制内容的符号关于数据类型、预置值、限制等其他补充信息32 结构化分析--数据字典 一、定义null32 结构化分析--数据字典 二、数据项的定义数据字典符号null三、数据字典举例教师测评系统中,数据字内部分内容测评子项得分={测评子项编号+{子项得分}} 学生评测数据={序号+教师姓名+{所任课程}+{测评子项得分}} 以测评子项得分为单位的评测数据记录={学期+被评对象编号+测评类型编号+评测者区别编号+测评子项名称+测评子项所得分值} 以测评类型得分为单位的评测数据记录={学期+被评对象编号+测评类型编号+评测者区别编号+本测评类型所得分值} 被评对象各测评类型的得分记录={学期+被评对象编号+测评类型编号+测评类型得分+本测评类型占总分的比率} 32 结构化分析--数据字典 null定义数据流变换数据的处理数据存储数据的源/宿32 结构化分析--数据流图数据流图(DFD)是一种图形化技术,它描绘信息和数据从输入到输出的过程中所经受的变换。 符号null数据流图说明:描绘“做什么”,不考虑“怎么做”箭头:数据流图和程序图中用箭头表示的控制流有本质不同,不能混淆。在数据流图中应该描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件。 处理:处理并不一定是一个程序。一个处理框可以代表一系列程序、单个程序或者程序的一个模块,也可代表一个人工处理过程,如用户目视检查数据正确性。 数据存储:一个数据存储并不等同于一个文件,它可以表示一个文件、文件的一部分、数据库的元素或记录的一部分等;数据可以存储在磁盘、磁带、磁鼓、主存、微缩胶片、穿孔卡片及其他任何介质上(包括人脑)。 数据存储和数据流都是数据,仅仅所处的状态不同。数据存储是处于静止状态的数据,数据流是处于运动中的数据。32 结构化分析--数据流图null32 结构化分析--数据流图案例null状态转换图简称状态图,描述的是系统的状态及引系统状态转换的事件,可用来表示系统的行为。状态图指出了作为特定事件的结果将执行哪些动作(如处理数据)。所以说,状态图提供了行为建模机制。表示从一个状态到另一个状态的转换,箭头的方向表示转换的方向。表示状态。定义符号状态图示例32 结构化分析--状态转换图null软件需求规格说明阐述一个软件系统必须提供的功能和性能以及它所要考虑的限制条件,它不仅是系统测试和用户文档的基础,也是所有子系列项目规划、设计和编码的基础。它应该尽可能完整地描述系统预期的外部行为和用户可视化行为。除了设计和实现上的限制,软件需求规格说明不应该包括设计、构造、测试或工程管理的细节。 说明格式见教材32 结构化分析--需求规格说明书 null33面向对象的分析 面向对象分析方法的核心是利用面向对象的概念和方法为软件需求建造模型。它包含面向对象的图形语言机制以及用于指导需求分析的面向对象的方法学。 本节主要介绍面向对象的概念、面向对象方法及面向对象分析过程。 null33面向对象的需求分析--面向对象的概念 面向对象=对象+分类+继承+通信对象对象是现实世界中个体或事物的抽象表示,它封装了特殊的属性(数据)和行为方法。 例如,大型客机可视为对象,它具有位置、速度、颜色、容量等属性,对于该对象可施行起飞、降落、加速、维修等操作,这些操作将或多或少地改变飞机的属性值(状态)。 null类类是具有相同属性和操作的一组相似对象的抽象 例如,飞行器类是所有能够飞行的器械的抽象(如各种飞机、航天器等),它可以包含位置、速度、颜色等属性,同时也具有起飞、降落、加速等操作。显然类是一个支持继承的抽象数据类型,而对象就是类的实例。 33面向对象的需求分析--面向对象的概念 null实例是由某个特定的类所描述的一个具体的对象 例如,圆具有半径和圆心等属性,它是一个抽象类,可用circle类来定义,有许多不同半径和不同圆心的具体的圆,它们是类的一个个实例。 33面向对象的需求分析--面向对象的概念 null属性是类或对象中所定义的数据,它是描述客观世界实体静态特征的数据项。当类被实例化而形成具体的对象后,它不仅包含类所具有的一些属性,而且还有自己所特有的属性值 例如,Circle类中定义的代表圆心坐标、半径、颜色等的数据成员,就是圆类所具有的属性,当实例一个具体的圆后,其属性也必然存在,还可能增加一些特殊的属性。 33面向对象的需求分析--面向对象的概念 null方法方法是对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执行操作的算法,响应消息的方法 在C++语言中把方法称为成员 函数 excel方差函数excelsd函数已知函数     2 f x m x mx m      2 1 4 2拉格朗日函数pdf函数公式下载 。例如在圆的对象中可以定义一个方法GetColor(),用来取得圆的颜色。 33面向对象的需求分析--面向对象的概念 null消息就是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。通常,一个消息由以下三部分组成: •接收消息的对象; •消息选择符即消息名; •零个或多个变元。例如,MyCircle是一个半径4cm、圆心位于(100,200)的Circle类,也就是一个实例,当要求它以绿颜色在屏幕上显示自己时,在C++语言中应该向它发下列消息:MyCircle.Show(GREEN); 其中,MyCircle是接受消息的对象名,Show是消息选择符(即消息名),圆括号内的GREEN 是消息的变元。当Mycircle接收到这个消息后,将执行在Circle类中所定义的Show操作。 33面向对象的需求分析--面向对象的概念 null封装所谓封装就是把某个事物包起来,使外界不知道该事物的具体内容。在面向对象的程序中,把数据和实现操作的代码集中起来放在对象内部。     * 数据与方法代码的内部细节对外界隐藏,这样对其的任何改变可能引起的副作用只能作用在内部,不会传播。       * 封装是软件复用的基础。 *被封装对象间的接口大大地简化了,对象之间通过消息联系它时不再关心对象内部的数据结构,系统的耦合度降低了。 含义优点33面向对象的需求分析--面向对象的概念 null继承含义分类类之间的继承关系是现实世界中遗传关系的直接模拟,它表示类之间的内在联系以及对属性和操作的共享,即子类可沿用父类(被继承)的某些特征。当然也可以具有自己独有的属性和操作。 单重继承 多重继承 子类仅从一个父类继承属性和行为,而且子类可以覆盖父类的部分属性和方法 子类可从多个父类继承属性和方法 33面向对象的需求分析--面向对象的概念 null类继承实例汽车是抽象层次较高的概念,在汽车类的基础上可以分出轿车类与货车类等,如果再细分,还可在轿车类的基础上分出商用轿车与家用轿车等。由于商用轿车与家用轿车作为轿车在绝大多数的属性和行为上是一致的,可以把轿车类看成是家用轿车的父类,而家用轿车这个子类继承了父类所拥有的属性与行为,并在父类的基础上加入了特殊化的属性与行为而形成了新的类。 在类的层次结构中,相对上层的是超类(superclass),相对下层的是子类(subclass) 33面向对象的需求分析--面向对象的概念 null33面向对象的需求分析--面向对象方法简介 面向对象方法支持三种基本的活动 识别对象和类 描述对象和类之间的关系 通过描述每个类的功能定义对象的行为。 面向对象方法Booch方法 :提出面象对象的软件工程的概念 OMT方法 :提出面象对象的建模技术方法 OOSE方法 :用例贯穿于软件整个开发过程UML在Booch方法、OMT方法和OOSE方法的基础上推出了统一的建模语言(UML),1997年被国际对象管理组织(OMG)确定为标准的建模语言 null33面向对象的需求分析--面向对象分析过程 面向对象方法实际上是一整套的软件开发方法,它包括面向对象的分析OOA、面向对象的设计OOD、面向对象的编程OOP、面向对象的测试OOT等,可以看出面向对象方法可以贯穿软件开发的整个过程。 OOA方法的关键,是识别问题域内的对象,并分析它们相互间的关系,最终建立起问题域的简洁、精确、可理解的正确模型。这是面向对象分析的首要任务 在实际工作中,建模的步骤并不一定严格按照前面讲述的次序进行 nullOOA分析过程分析用户需求识别类与对象 确定对象的内部特征 识别对象之间的关系 定义主题词 系统分析员应该深入地理解用户需求,抽象出目标系统的本质属性,并用模型准确表示来 ;另外要向领域专家学习。确定问题域中的类和对象 确定对象的属性的操作分类关系(一般/特殊)、组成关系(整体/部分),还有反映对象属性之间联系的实例连接、反映对象行为之间依赖关系的消息等 概念上把大型的、复杂的系统包含的内容分解成若干个范畴 33面向对象的需求分析--面向对象分析过程 null34 UML概述 1997年UML1.1被对象管理组织OMG确定为标准建模语言是软件工程领域最重要的、具有划时代重大意义的事件。 UML是一种定义良好、易于表达、功能强大且普遍适用的标准的图形化建模语言,用它可以简明、准确地为目标系统建立模型 。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。null34 UML概述--UML的结构 一、UML中的基本构造块——UML建模的积木块 构成UML模型的基本构造块有三种积木元素或积木组合体,即: 反应的是类与类之间联系的方法与性质,关系有依赖、关联、继承、实现和聚合5种 图是软件系统在不同角度上的投影,它是一组元素的表示,包含了事物及其关系的组合 。UML有九种图事物是UML模型中的静态元素,UML中共有11种不同的事物 事物关系图nullUML中的“事物” 34 UML概述--UML的结构 null二、UML中的规则——UML建模的“粘合剂” UML中的规则是为了将UML中的构造块有机地组装在一起形成一个结构良好的模型而对事物进行描述的语义规则。 5种 规则 1、为事物、关系命名的命名规则 2、给一个名字以特定含义的范围规则 3、使名字可见或如何使用的可见性规则 4、描述事件正确、一致地相互联系的完整性规则 5、描述运行或模拟动态模型含义的执行规则 34 UML概述--UML的结构 null三、应用于UML的通用机制——UML模型的图纸说明 为了对UML模型进行进一步的说明,同时增强其表达能力,UML提供了4种在整个语言中可以一致应用的“通用机制”,可以认为是对UML模型的图纸说明 四种 机制规格说明 修饰 通用划分 扩展机制 UML图形每个部分后面的语法语义描述UML表示法中每个元素都有一个基本符号UML构造块有两种划分,即类与对象、接口与实现提高UML语言表达能力,它包含构造型、标记值和约束等3种类型 34 UML概述--UML的结构 null34 UML概述--UML的图 UML主要用图来表达模型的内容,而图又由代表模型元素的图形符号组成。学会使用UML的图,是学习、使用统一建模语言UML的关键。 UML的重要内容可以由下列五类图(共9种图形) UML 图用例图(Use-case diagram) 静态图 (Static diagram) 行为图(Behavior diagram) 交互图(Interactive diagram) 实现图 ( Implementation diagram ) null34 UML概述--UML的应用 UML的目标是用面向对象的图形方式来描述任何类型的系统,因此,具有很宽的应用领域。其中最常用的是建立软件系统模型,但是它同样也可以用于描述非计算机软件的其他系统,如机械系统、商业系统、企业机构或业务过程、处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。总之,UML是一个通用的标准建模语言,可以为任何具有静态结构和动态行为的系统建立模型。 nullUML适用于系统开发全过程 需求分析 分析 设计 编码 测试 捕获用户的需求、用例建模用UML的逻辑视图和动态视图来描述问题域中的基本概念(例如抽象、类和对象等)和机制 。类图描述系统的静态结构,合作图、顺序图、活动图和状态图描述系统的动态行为。 把分析阶段的结果扩展成技术解决方案,加入新的类来定义软件系统的技术方案细节。设计阶段用和分析阶段类似的方式使用UML。 这个阶段的任务是把来自设计阶段的类转换成某种面对象程序语言的代码(如VB、C++、Java等) UML模型可作为测试阶段的依据 。单元测试使用类图和类规格说明;集成测试使用构件图和合作图;系统测试使用用例图来验证系统的行为 34 UML概述--UML的应用 一、UML的应用领域 null二、UML的建模机制 UML9个模型UML9种图UML5个视图业务模型、领域模型、用例模型、分析模型、设计模型、过程模型、部署模型、实现模型、测试模型 用例视图、设计视图、进程视图、实现视图、实施视图 用例图 、静态图(包括类图、对象图和包图)、行为图(包括状态图和活动图) 、交互图 (包括顺序图和协作图 )、实现图 (构件图和配置图 )34 UML概述--UML的应用 null静态建模动态建模 反映的是目标系统的静态数据 ,用例图、类图、对象图、包、构件图、配置图等是静态建模机制,其中尤以用例图和类图最为重要。 强调的是系统的行为,动态建模所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语言UML的动态建模机制。UML 建模34 UML概述--UML的应用 null 在UML中可以通过用例图来构造目标系统的用例模型,它通过用例来捕获用户需求,通过用例建模,描述对系统感兴趣的外部角色及其对系统(用例)的功能要求。它从系统外部观察系统,而不涉及到技术上如何做这些事。 34 UML概述--UML中的需求分析(用例图的创建 )null一、用例模型(Use case model) 描述的是外部执行者(Actor)所理解的系统功能。用例模型用于需求分析阶段 。在UML中,一个用例模型由若干个用例图描述,用例图的主要元素是用例和执行者。 用例模型是开发者和用户对需求规格达成的共识用例 模型※描述了待开发系统的功能需求; ※它将系统看作黑盒,从外部执行者的角度来理解系统; ※它驱动了需求分析之后各阶段的开发工作,影响开发工作的各个阶段和 UML 的各个模型。 用例 模型 功能34 UML概述--UML中的需求分析(用例图的创建 )null二、用例(use case) 一个用例是用户与计算机之间的一次典型交互过程 。在UML中,用例表示为一个椭圆 含义   1、 用例捕获某些用户可见的需求,实现一个具体的用户目标。      2、 用例由执行者激活,并提供确切的值给执行者。 3、用例可大可小,但它必须是对一个具体的用户目标实现的完整描述。 特点34 UML概述--UML中的需求分析(用例图的创建 )null举例教师测评系统用例图 以《测评系统》为例,“一个学生测评某位老师”和“管理员进行测评数据处理”便是两个典型的用例 34 UML概述--UML中的需求分析(用例图的创建 )null三、执行者(Actor) 含义执行者是指用户在系统中所扮演的角色。其图形化的表示是一个小人。 通信联系 不带箭头的线段将执行者与用例连接到一起,表示两者之间交换信息 注意尽管执行者在用例图中是用类似人的图形来表示的,但执行者未必是人 。意义面对一个大系统,要列出用例清单常常是十分困难。这时可先列出执行者清单,再对每个执行者列出它的用例,问题就会变得容易很多 34 UML概述--UML中的需求分析(用例图的创建 )null四、使用和扩展(Use and Extend) 扩展 关系当一个用例使用另一个用例时,这两个用例之间就构成了使用关系 当一个用例与另一个用例相似,但所做的动作多一些,就可以用到扩展关系 使用 关系说明使用和扩展是两种不同形式的继承关系 34 UML概述--UML中的需求分析(用例图的创建 )null举例例中学位课程的学习包括课程设计,因此构成了使用关系;学位课程学习比专业课程学习有更多的要求,因此构成了扩展关系。 34 UML概述--UML中的需求分析(用例图的创建 )null五、用例模型的获取 步骤获取执行者 1、使用系统的主要功能(主要使用者)。 l  2、谁需要系统支持他们的日常工作。 l    3、 谁来维护、管理使系统正常工作(辅助使用者)。 4、系统需要操纵哪些硬件。  5、 系统需要与哪些其它系统交互,包含其它计算机系统和其它应用程序。 获取用例 l        执行者要求系统提供哪些功能(执行者需要做什么)? l        执行者需要读、产生、删除、修改或存储的信息有哪些类型。 l        必须提醒执行者的系统事件有哪些?或者执行者必须提醒系统的事件有哪些?怎样把这些事件表示成用例中的功能? l        为了完整地描述用例,还需要知道执行者的某些典型功能能否被系统自动实现? l        系统需要何种输入输出?输入从何处来?输出到何处? 当前运行系统(也许是一些手工操作而不是计算机系统)的主要问题? 34 UML概述--UML中的需求分析(用例图的创建 )null举例教师测评系统用例模型34 UML概述--UML中的需求分析(用例图的创建 )第四章 软件设计第四章 软件设计nullnull软件设计工作内容软件设计工作内容41软件设计基本概念将软件需求转化为软件体系结构,确定系统级接口、全局数据结构或数据库模式。 确立每个模块的实现算法、局部数据结构,用适当方法表示算法和数据结构的细节。 软件模块定义软件模块定义41软件设计基本概念 整个软件被划分成若干单独命名和可编址的部分,称之为模块。 模块的基本属性模块实现什么功能模块的内部实现逻辑该模块使用时的环境和条件模块划分的原则模块划分的原则41软件设计基本概念 划分模块的重要目标是提高模块的独立性。度量模块独立性的两个准则是模块间的内聚性和耦合性。好的软件结构应该具有高内聚、低耦合的模块化结构。 内聚性耦合性内聚性是一个模块内部各个元素彼此结合的紧密程度的度量。 耦合性是模块间互相连接的紧密程度的度量。它取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。 内聚性内聚性41软件设计基本概念模块内聚按照模块独立性由高到低的顺序叙述如下: (1)功能内聚 (2)信息内聚 (3)通信内聚 (4)过程内聚 (5)时间内聚 (6)逻辑内聚 (7)巧合内聚耦合性耦合性41软件设计基本概念(1)非直接耦合 (2)数据耦合 (3)标记耦合 (4)控制耦合 (5)外部耦合 (6)公共耦合 (7)内容耦合模块间的耦合按照模块独立性由高到低的顺序列举如下: 概要设计需要完成的工作概要设计需要完成的工作42概要设计(1)制定 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 (2)软件系统结构的总体设计 (3)处理方式设计 (4)数据结构设计 (5)可靠性设计 (6)编写概要设计阶段的文档概要设计的目标概要设计的目标42概要设计概要设计的主要目标是把需求转换为软件的体系结构。 软件的体系结构程序的模块结构程序的数据结构设计程序的模块结构设计程序的模块结构42概要设计 程序的模块结构表明了程序各个部件(模块)的组织情况,是软件的过程表示。 模块间关系的表示模块间关系的表示42概要设计 结构图反映程序中模块间的调用关系和模块间信息的传递。结构图的要素包括:(1)模块:模块用矩形框表示,并用模块的名字标记它。(2)模块的调用关系和接口:模块之间用单向箭头联结,箭头从调用模块指向被调用模块,表示调用模块调用了被调用模块。设计程序的数据结构设计程序的数据结构42概要设计(1)确定软件涉及的文件系统的结构以及数据库的模式、子模式,进行数据完整性和安全性的设计。 (2)确定输入、输出文件的详细的数据结构。 (3)结合算法设计,确定算法所必需的逻辑数据结构及其操作。 (4)确定对逻辑数据结构所必需的那些操作的程序模块(软件包)。 (5)限制和确定各个数据设计决策的影响范围。 (6)若需要与操作系统或调度程序接口所必须的控制表等数据时,确定其详细的数据结构和使用规则。 (7)数据的保护性设计 详细设计需要完成的工作详细设计需要完成的工作43详细设计 在详细设计过程中,需要完成的工作是: (1)确定软件各个组成部分内的算法以及各部分的内部数据组织。 (2)选定某种过程的表达形式来描述各种算法。可选用的过程表达形式有:流程图、盒图、PAD图等。 (3)编写详细设计说明书。 (4)制定单元测试计划。 (5)进行详细设计评审。 详细设计的表示详细设计的表示43详细设计详细设计中应采用合适的方式来描述模块内问题解决过程的细节,采用结构化的图形设计表示法是人们易于使用、易于理解的方式。 程序流程图程序流程图43详细设计标准流程图符号标准流程图符号43详细设计 我国国家标准局批准的国家标准(GB1525-89)流程图符号:标准流程图示例标准流程图示例43详细设计盒图(N-S图)盒图(N-S图)43详细设计面向数据结构的详细设计方法 Jackson方法面向数据结构的详细设计方法 Jackson方法43详细设计面向对象的分析与设计步骤面向对象的分析与设计步骤44面向对象的分析与设计 使用面向对象的设计方法,同样需要得出软件的体系结构。首先,需要将系统划分为子系统,可以使用包来描述子系统,根据子系统提供的操作定义它们的接口,然后设计子系统的概念模型。 对复杂的子系统,可以继续将其分解,得到更简单的子系统。直到得出子系统内待解决问题域中的类。确定子系统中存在的类及类之间的关系,并定义了子系统的接口及关系后,便完成了系统的静态建模工作。 接下来需要描述待解决问题域中类的动态行为,从而建立问题解决过程的系统动态模型。识别类识别类44面向对象的分析与设计 为了描述一个软件系统,识别其中的对象并将其抽象为类是极为关键的。 识别类和对象的一些好的方法: (1)通过实体-关系模型识别类和对象。 (2)基于自然语言信息识别类和对象。 (3)基于用例与序列图识别类和对象。筛选出正确的类筛选出正确的类44面向对象的分析与设计筛选时主要依据下列标准,删除不正确或不必要的类—&—对象。 ①冗余 如果两个类表达了同样的信息,则应该保留在此问题域中最富于描述的类。 ②无关 现实世界中存在许多对象,不能把它们都纳入到系统中去,仅需要把与本问题密切相关的类—&—对象放进目标系统中。有些类在其他问题中可能很重要,但与当前要解决的问题无关,同样也应该把它们删掉。筛选出正确的类(续)筛选出正确的类(续)44面向对象的分析与设计③笼统 在需求陈述中常常使用一些笼统的、泛指的名词,虽然在初步分析时把它们作为候选的类—&—对象列出来了,但是,要么系统无须记忆有关它们的信息,要么在需求陈述中有更明确更具体的名词对应它们所暗指的事务,因此,通常把这些笼统的或模糊的类去掉。 ④属性 在需求陈述中有些名词实际上描述的是其他对象的属性,应该把这些名词从候选类—&—对象中去掉。当然,如果某个性质具有很强的独立性,则应把它作为类而不是作为属性。筛选出正确的类(续)筛选出正确的类(续)44面向对象的分析与设计⑤操作 在需求陈述中有时可能使用一些既可作为名词,又可作为动词的词,应该慎重考虑它们在本问题中的含义,以便正确地决定把它们作为类还是作为类中定义的操作。 ⑥实现 在分析阶段不应该过早地考虑怎样实现目标系统。因此,应该去掉仅和实现有关的候选的类—&—对象。在设计和实现阶段,这些类—&—对象可能是重要的,但在分析阶段过早地考虑它们反而会分散我们的注意力。确定属性确定属性44面向对象的分析与设计一般来说,确定属性的过程包括分析和选择两个步骤。 ①分析 在需求陈述中用名词词组表示属性,例如,“汽车的颜色”或“光标的位置”。往往用形容词表示可枚举的具体属性,例如,“红色的”、“打开的”。 但是,不可能在需求陈述中找到所有属性,分析员还必须藉助于领域知识和常识才能分析得出需要的属性。 ②选择 认真考察经初步分析而确定下来的那些属性,从中删除不正确的或不必要的属性。 使用类图来描述类使用类图来描述类44面向对象的分析与设计 类图通常表示为长方形,长方形又分三个部分,分别用来表示类的名字、属性和操作。类图中类之间的关系及表示 普通关联类图中类之间的关系及表示 普通关联44面向对象的分析与设计类图中类之间的关系及表示 导航关联类图中类之间的关系及表示 导航关联44面向对象的分析与设计类图中类之间的关系及表示 关联中的角色类图中类之间的关系及表示 关联中的角色44面向对象的分析与设计类图中类之间的关系及表示 聚合类图中类之间的关系及表示 聚合44面向对象的分析与设计类图中类之间的关系及表示 复合聚合类图中类之间的关系及表示 复合聚合44面向对象的分析与设计类图中类之间的关系及表示 通用化(继承)类图中类之间的关系及表示 通用化(继承)44面向对象的分析与设计使用包来组织类使用包来组织类44面向对象的分析与设计 包(package)是一种组合机制,把许多类集合成一个更高层次的单位,形成一个高内聚、低耦合的类的集合。包图是一个很有用的工具,特别是对于改进系统的结构非常有帮助。 动态建模表示方法动态建模表示方法44面向对象的分析与设计顺序图状态图合作图其它状态图状态图44面向对象的分析与设计 所有对象都具有状态,状态是对象执行了一系列活动的结果。当某个事件发生后,对象的状态将发生变化。状态图中定义的状态有:初态、终态、中间状态、复合状态。其中,初态是状态图的起始点,而终态则是状态图的终点。一个状态图只能有一个初态,而终态则可以有多个。 顺序图顺序图44面向对象的分析与设计 顺序图用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。 合作图合作图44面向对象的分析与设计 合作图用于描述相互合作的对象间的交互关系和链接关系。 动态建模表示方法小结动态建模表示方法小结44面向对象的分析与设计状态图描述跨越多个用例的单个对象的行为 顺序图和合作图适合描述单个用例中几个对象的行为。 null第五章 编 码null本章主要内容5.1程序设计语言5.2 编码规范5.3 结构化程序设计5.4 面向对象的设计5.5 用户界面设计null计算机语言分类面向机器的程序设计语言面向过程的程序设计语言面向对象的程序设计语言web编程语言.net 程序设计语言51程序设计语言 ----常用程序设计语言及其特点 null51程序设计语言 ----常用程序设计语言及其特点 null51程序设计语言 ----常用程序设计语言及其特点 null51程序设计语言 ----程序设计语言的选择 选择语言的理想标准为使程序易测试和维护以减少生存周期的总成本,选用高级语言应用理想的模块化机制,以及可读性好的控制结构和数据结构 。为便于调试和提高软件可靠性,应选用编译程序能够尽可能多地发现程序中错误的语言 。为降低软件开发和维护成本,选用的语言应具有良好的独立的编译机制 。null51程序设计语言 ----程序设计语言的选择 选用语言综合考虑标准 系统用户的要求 可以使用的编译程序 可以得到的软件工具 程序员的知识 软件可移植性要求 软件应用领域 工程规模 如果所开发的系统由用户负责维护,用户通常要求用他们熟悉的语言书写程序。 运行目标系统的环境中可以提供的编译程序往往限制了可以选用的语言的范围。 如果某种语言有支持程序开发工具可以利用,则目标的实现和验证都变得比较容易。 标准化程度高、程序可移植性好是选择语言的重要标准 最好是选择程序员最熟悉的语言null52编码规范---代码文档化含义源程序的文档化包括标识符的选择与命名、注释的安排、程序代码的视觉组织等 。 程序清单的布局对于程序的可读性也有很大影响,应该利用适当的阶梯(即缩进)形式使程序的层次结构清晰明显 举例#define ONE 1 #define TEN 10 #define TWENTY 20#define INPUT_MODE 1 #define INPUT_BUF 10 #define OUTPUT_BUF 20标识符选择与命名不直观直观,明了
本文档为【软件工程课件】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_594886
暂无简介~
格式:ppt
大小:3MB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2010-05-12
浏览量:37