版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程案例教程内容摘要 本书为配合国家技能型紧缺人才培养培训工程并根据计算机应用和软件专业领域技能型紧缺人才培养培训指导方案的要求而编写。 本书针对职业院校学生的特点,充分体现指导方案中素质为基础、能力为本位、需求为依据、就业为导向的基本原则,教学内容注重选择当前软件工程中的一些新理论、新方法与新技术,通过一个小型软件项目为案例贯穿全书,使学生在学完后能基本掌握软件工程的基本理论与方法在软件项目开发中的实际应用。其主要内容涉及软件工程中的可行性分析、软件开发模型,需求分析,结构化的分析和设计,面向对象的分析和设计,软件编码及实现,软件界面设计,软件测试等方面的内容。考虑职业院校学生的就业定位
2、,重点侧重于详细设计、软件编码、软件测试、软件维护这几个方面的基本知识与技能。为保持教学内容的先进性同时便于对教学进行科学灵活的组织,对诸如UML方法、面向对象的分析、设计与编程、面向对象软件测试、CMM等也作了介绍。 本书可以作为职业院校计算机类专业的软件工程课程的教材或教学参考书,也可作为IT行业程序员、测试员、维护员等的培训教材或参考书。主要内容第1章 软件工程概述第2章 可行性分析第3章 需求分析第4章 结构化分析方法 第5章 结构化的设计方法 第6章 面向对象的分析与设计 第7章 软件编码与实现 第8章 用户界面设计 第9章 软件测试 第1章 软件工程概述本章主要内容1.1 软件与软
3、件工程1.2 软件工程基本原理1.3 软件生命周期1.4 软件体系结构1.5 软件开发模型11 软件及软件工程软件软件的定义在运行中能提供所希望的功能与性能的程序 使程序能够正确运行的数据及其结构描述软件研制过程和方法所用的文档 软件的特点软件角色的双重性 软件不是传统意义上的被制造 软件不会“磨损”,但会退化 软件都是手工定制的 开发过程的复杂与费用的昂贵 11 软件及软件工程软件软件的分类分类方法软件类型按功能(1)系统软件(2)支撑软件(3)应用软件按版权(1)商业软件(2)共享软件(3)自由(免费)软件(4)公有领域软件按工作方式(1)实时软件(2)分时软件(3)交互式软件(4)批处理
4、软件按销售方式(1)订制软件(2)产品软件11 软件及软件工程软件工程软件危机软件开发的生产率远远不能满足客观需要 开发的软件产品往往不能满足用户的实际需要 软件产品的质量低下且可维护性差 很难估计软件开发的进度计划与成本 软件神话有了软件开发书籍,就可以解决软件开发中的一切问题进度滞后了?好,增加程序员只要程序正确,项目就成功,文档可有可无软件质量只能在正式投入运行后才知道11 软件及软件工程软件工程软件工程的定义IEEE定义:软件工程是将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件。通俗地说,软件工程是指导软件开发和维护的一门工程学科。它采用工程的概
5、念、原理、技术和方法,把经过时间检验而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,用于开发和维护软件。 质量焦点11 软件及软件工程软件工程软件工程层次化技术过程方法软件工程三个要素:方法、工具、过程工具11 软件及软件工程软件工程软件工程的作用【成功案例】美国联邦速递公司(FedEX)的管理信息系统 【失败案例】英国伦敦的急救服务管理信息系统 1.2 软件工程的基本原理1.软件工程的定义Fritz Bauer曾经为软件工程下了定义:“软件工程是为了经济地获得能够在实际机器上有效运行的可靠软件而建立和使用的一系列完善的工程化原则。”1983年IEEE给出的定义为:“软件工程是开
6、发、运行、维护和修复软件的系统方法”,其中,“软件”的定义为:计算机程序、方法、规则、相关的文档资料以及在计算机上运行时所必需的数据。 2.软件工程的目标和原则 付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发工作,及时交付使用。软件工程目标之间的关系 3.软件工程的基本原理用分阶段的生存周期计划严格管理 坚持进行阶段评审 实行严格的产品控制 采用现代程序设计技术 结果应能清楚地审查 开发小组的人员应该少而精 承认不断改进软件工程实践的必要性13 软件生存周期与开发模型生存周期1.3 软件生存周期人的生存周期婴儿幼儿儿童少年青年
7、中年老年死亡 软件的生存周期软件定义软件开发软件支持问题定义可行性分析需求分析概要设计详细设计编 码测 试软件发布软件运行维护或退役12 软件生存周期与开发模型生存周期软件定义阶段问题定义可行性分析立项或签订合同软件开发阶段需求分析软件设计编码与测试 发布或安装验收软件开发阶段软件的使用、运行软件维护12 软件生存周期与开发模型开发模型问题的提出软件工程需要解决什么问题?软件开发模型做什么软件?怎么做软件?软件如何适应变化?软件开发过程概括,是软件工程思想的具体化它是跨越整个软件生存周期的各个阶段所需要的全部工作与任务的结构框架 14 软件体系结构软件体系结构是一个系统的高层结构共性的抽象,是
8、建立系统时的构造模型、构造风格、构造模式。目前,在商业软件开发中常用的软件体系结构有:层次结构、C/S结构和B/S结构。 1. 层次结构所谓层次结构,就是将软件的实现分成多个层次,低层的模块实现相对单纯的功能,多个低层模块组合成一个较高的模块,实现相对多的功能,最后所有的模块组合起来完成整个的软件的功能。 C/S结构客户-服务器结构简称C/S结构或两层体系结构,由服务器提供应用(数据)服务,多台客户机进行连接。 B/S结构浏览器服务器结构简称B/S结构,如下图所示。在这种结构下,主要事务逻辑在服务器端(Server)实现,极少部分事务逻辑在前端浏览器(Browser)实现。客户机统一采用浏览器
9、,用户工作界面是通过WWW浏览器来实现的。 12 软件生存周期与开发模型开发模型15 软件开发模型 可行性分析需求分析设 计编 码测 试支 持定义阶段开发阶段支持阶段瀑布模型线性顺序模型2 .原型模型 3 螺旋模型 12 软件生存周期与开发模型开发模型瀑布模型的特点:瀑布模型的应用范围阶段间具有顺序性和依赖性每个阶段必须完成规定的文档;每个阶段结束前完成文档审查,及早改正错误,但:开发过程一般不能逆转,否则代价太大。实际的项目开发很难严格按该模型进行。客户往往很难清楚地给出所有的需求,而该模型却要求如此。软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。 用户的需求非常清
10、楚全面,且在开发过程中没有或很少变化 开发人员对软件的应用领域很熟悉。用户的使用环境非常稳定。开发工作对用户参与的要求很低 12 软件生存周期与开发模型开发模型原型模型用户测试运行原型建造/修改 原型 听取用 户意见12 软件生存周期与开发模型开发模型原型模型的特点:原型模型的应用范围可以得到比较良好的需求定义,容易适应需求的变化。有利于开发与培训的同步。开发费用低、开发周期短、维护容易且对用户更友好。 客户与开发者对原型理解不同准确的原型设计比较困难不利于开发人员的创新对所开发的领域比较熟悉而且有快速的原型开发工具项目招投标时,可以以原型模型作为软件的开发模型进行产品移植或升级时,或对已有产
11、品原型进行客户化工作时,原型模型是非常适合的。 12 软件生存周期与开发模型开发模型基于构件的开发模型特点:属于演化式开发或迭代式开发,其开发过程:客户的交流,获得问题的定义标识基本类计划与风险分析类的复用或重新开发构造系统用户评估采用了先进的面向对象技术。 基于构件库的开发,这是软件复用的基础,开发速度快。 融合了螺旋模型特征支持软件开发的迭代方法,是一种演化型的开发技术。 软件工程标准软件工程标准ISO9000IS09001:设计、开发、生产、安装和服务的质量保证模式 IS09002:生产、安装和服务的质量保证模式 IS09003 :最终检验和试验的质量保证模式。 软件工程标准CMM软件能
12、力成熟度模型 CMM (Capability Maturity Model) CMM的级别初始级Initial可重复级Repeatable已定义级Defined已管理级Managed优化级Optimizing开发工具的作用与功能软件开发工具简介CASE工具计算机辅助软件工程 CASE作用认识与描述系统需求 保存与管理开发过程中的信息 代码的生成 文档的编制与生成 软件项目的管理 开发工具的分类14 软件开发工具简介CASE工具分类方法按应用阶段划分 按功能划分设计工具分析工具项目管理软件配置质量保证分析设计计划工具界面开发客户服务器Web开发IBM Rational工具14 软件开发工具简介常
13、用CASE工具 Rational公司是专门从事CASE工具研制与开发的软件公司,2003年被IBM公司收购。该公司所研发的Rational系列软件是完整的CASE集成工具,贯穿从需求分析到软件维护的整个软件生存周期。 需求分析与设计工具产品主要构成测试工具软件配置管理工具Rose PurifyPlus Robot ClearCase 北大青鸟工具14 软件开发工具简介常用CASE工具 北大青鸟系列CASE工具北京北大青鸟软件有限公司开发研制的,在国内有较高的知名度,北京大学软件工程国家工程研究中心就设在该公司。 产品主要构成面向对象软件开发工具集 JBOO 构件库管理系统 JBCLMS 项目管
14、理与质量保证 JBCM JBPM JBCCM 软件测试系统 Safepro 微软版本管理器VSS14 软件开发工具简介常用CASE工具版本管理是软件配置管理中的核心工作,由Microsoft公司开发的Visual SourceSafe 6.0使用非常广泛而且很容易获得。文件检入与检出 产品主要功能版本控制 文件的拆分与共享 权限管理 第2章可行性分析 这个项目是做还是不做呢?还是先去做可行性分析吧!2.1问题定义 2.2 可行性研究本章主 要内容21可行性研究问题的定义 问题定义 确定软件开发项目必须完成的目标 。其关键问题是:“要解决什么问题?” 含义主要内容问题的背景、总体要求与目标、类型
15、范围、功能规模、实现目标的方案、开发的条件、环境要求等问题定义报告应包括内容 项目名称 使用方 对问题的概括定义 项目的目标 项目的规模 21可行性研究问题的定义 案例分析 某校在校生近5000人,每学期在期中都要进行一次对教师的教学质量测评,要求所有学生都要参加。以前测评的方式都是手工操作,由教务处发出书面问卷调查表,每个同学填写完成后交回到教务处。然后教务处再使用手工的方法对问卷进行统计汇总,最后得出学生对每一位教师的总体评价。这种方法一方面浪费了大量的财力、人力,另一方面统计繁琐且容易出错。考虑到现在学校校园网已经建成,为节省开支,提高效率,学校决定委托计算机系开发一套基于校园网的教师教
16、学网络测评系统 1、问题的提出21可行性研究问题的定义 案例分析2、问题分析 系统分析人员经过与学校教务部门及各相关单位进行充分的调查后,了解了该项目的一些背景资料与基本要求。教师测评分两大部分,一是师德测评;二是教学质量测评。师德测评有4项指标,教学质量测评有14项指标。系统要实现的目标是: 所有学生在指定时间内在指定机房的计算机上完成对任课教师的测评打分,测评过程全部采用选择的方法,不需要输入任何信息 所有的测评数据保存在学校中心服务器上,有较为严格的安全措施 系统能对所有的数据进行统计汇总,得出每一位教师的测评结果,并能进行排序、输出。 系统开发的大体费用在1.2万元左右,开发周期大约6
17、个人月。 21可行性研究问题的定义 案例分析3、系统定义报告 根据以上分析,形成如下的系统定义报告。 案例文档之一系统定义报告用户单位:XX学校教务处 负责人:XXX开发单位:XX学校计算机系 分析员:XXX项目名称:基于校园网的教学质量测评系统问题概述:教师教学质量测评每学期必须进行一次,原有的手工方法存在资源浪费、效率极低、结果不准确等问题。(其它的相关说明)项目目标:开发一个效率高且相对通用的教师教学网络测评系统。项目规模:开发成本大约1.2万元,开发周期约6个人月。可行性研究:建议进行一周,费用不超过500元。21可行性研究可行性研究的任务与步骤 一、可行性研究的任务 2、经济可行性
18、3、社会因素的考虑 分析成本收益与短期效益长远利益这两个方面 。要作出投资的估算和系统投入运行后可能获得的经济效益或可节约的费用估算 。分析利用现有的技术能否实现,能否解决系统中的技术难题,所开发的系统能否达到所要求的功能和性能,系统对技术人员的要求,现有的技术人员能否胜任,开发所需要的软件与硬件能否如期得到等 1、技术可行性 主要考虑的是市场、政策与法律方面的问题 21可行性研究可行性研究的任务与步骤 二、可行性研究的步骤1、重新检查系统定义报告中相关内容 ,明确对目标系统限制与约束。 2、研究目前正在使用的系统,找出其基本功能和所需要的基本信息,绘制系统流程图。 3、设想新系统高层逻辑模型
19、,分析归纳现有系统,最后建造新物理系统。 4、导出各种实现方案并对方案进行评价 5、推荐可行性方案 6、编写可行性研究报告21可行性研究技术可行性分析 技术可行性分析 的三个方面 1、在给定的时间内能否实现系统定义中的功能 。2、软件的质量如何? 如实时性、正确性和精确性。3、软件的生产率如何? 高生产率意味着利润。做得了吗?做得好吗?做得快吗? 先分析21可行性研究技术可行性分析 在进行技术可行性分析时,一个重要的内容是对现有系统与拟开发的系统绘制系统流程图。系统流程图中所用的符号与程序设计语言中的程序流程图所用的符号类似。但系统流程图与程序流程图不同,系统流程图表达的是信息在系统中各个部件
20、之间的流动情况,而程序流程图表达的是程序对信息进行加工处理的控制过程 系统流程图21可行性研究技术可行性分析 符 号名称含 义处理能改变数据或数据位置的加工或部件输入/输出广义的不指明具体设备的输入与输出连接在同一页上指明转到图的另一部分或从图的另一部分转来换页连接指转到另一页或从另一页转来数据流连接其他符号,指明数据的流动方向文档通常表示打印输出系统流程图中的常用符号 系统流程图中的常用符号 21可行性研究技术可行性分析 联机存储任何种类的联机存储磁盘磁盘的输入/输出,也表示存储在磁盘上的数据库或文件人工输入在脱机情况下人工输入数据,如填写表格人工操作人工完成的操作,如在表格上的签名通信链路
21、通过通信链路传送数据测评数据库测评设置测评人员管理人员数据处理数据提交验证验证测评测评结果教师教学网络测评系统流程图 21可行性研究技术可行性分析 21可行性研究经济可行性分析 经济可行性分析 1. 成本分析 2. 收益分析 办公成本 人员成本 资源成本 其它成本 货币的时间价值 纯收入 如果从经济可行性的角度分析得出纯收入小于或等于零的结论,则这个项目是不能投资的 最难准确核算 纯收入=总收入折现-总成本折现 P=F(1+i)-n 称为折现21可行性研究经济可行性分析 常用成本估算策略1、在项目后期进行估算,即完全精确核算2、基于已经完成的类似项目进行估算 3、使用相对简单的分解技术以生成项
22、目成本及工作量的估算 4、使用一个或多个经验模型进行软件成本及工作量的估算估算 不能选择 比较切实可行 两种常用策略 21可行性研究经济可行性分析 两种成本估算方法代码行法(LOC) 功能点法(FP) 每行代码的平均成本乘以程序的行数 采用软件所提供的功能来测量的 21可行性研究案例分析 (可行性研究)可行性研究最终生成可行性研究报告案例文档之二可行性研究报告1引言1.1编写目的本报告分析了教师教学网络测评系统开发的可行性,请院领导审阅并对是否进行该系统的开发做出批示。1.2项目背景建议进行教师教学网络测评系统的开发。(背景介绍略)我院计算机系具备进行该软件系统开发的能力并承担本软件系统的开发
23、与维护工作。该软件系统由我院教务处使用。详见教材22软件项目计划系统定义报告 用户的需求报告 可行性研究报告 项目开发计划及相关的一些专题计划 如:测试计划、质量保证计划、配置管理计划、人员培训计划、系统安装计划 22软件项目计划 软件项目计划的主要内容制订方法 软件项目计划资源计划 软件估算计划 进度安排计划 人力资源 可复用的构件 开发环境 高层管理人员 项目经理 开发人员 客户、最终用户 软件/硬件环境 采用任务分解技术对软件的规模与工作量进行估算,并将总的开发费用分配到开发的各个阶段中 软件规模工作量进度成本进度安排要确定最终的软件交付日期,并在限定的日期内安排和分配工作量;或者在合理
24、复用各种资源分配工作量的基础上确定最终交付日期。 其它专题计划 如质量保证计划、配置管理计划、里程碑及评审计划、测试计划等 22软件项目计划 案例分析(软件项目开发计划书) 案例文档之三软件项目开发计划书1引言1.1编写目的为保证教师教学网络测评系统的开发成功,按期交付使用,特编写项目开发计划,请参与开发的人员遵照执行。1.2项目背景(略)1.3定义教师教学网络测评系统以下简称测评系统。 。第3章 需求分析基础本章主要内容3.1 需求分析的概念3.2 需求工程3.3 需求分析的方法3.4 需求规格说明3.5 原型化方法31 需求分析概述-需求分析的重要性 需求分析是发现、求精、建模、规格说明和
25、复审的过程;需求分析是系统设计的基础,关系到程的成败和软件产品的质量。重要性需求获取困难,原因有三一是用户需求的动态性(不稳定性) 二是需求的模糊性(不准确性) 三是需求必须得到用户的确认,否则毫无意义 31 需求分析概述需求分析的任务 1、确定对系统的综合要求: 系统界面要求、系统功能要求、系统性能要求、完全性可靠性保密性要求、系统运行要求、异常处理要求、将来可能提出的要求、分析系统的数据要求。 2、分析系统的数据要求 3、异出系统的逻辑模型 4、修正项目开发计划 5、开发原型系统 需求分析任务需求工程需求开发需求管理需求获取需求分析编写需求文档需求确认需求工程层次分解图31 需求分析概述-
26、需求分析的过程与方法 需求工程需求获取用户概要信息业务需求功能需求用户需求非功能性需求可行性报告系统定义报告系统分析员程序员分析调研座谈法调查表法观察法31 需求分析概述-需求分析的过程与方法 需求分析获取数据分析、处理目标逻辑模型需求获取系统分析员从数据流和数据结构出发,找出系统各元素之间的联系、接口特征及设计限制、能否满足功能需求31 需求分析概述-需求分析的过程与方法 系统分析员需求规格说明书编写目标系统的基本描述系统各项需求系统限制及条件系统数据定义 需求分析结果需求文档编写31 需求分析概述-需求分析的过程与方法 评审、验证的四个方面一致性完整性现实性有效性所有需求必须一致,不能前、
27、后和相互矛盾说明书应包括用户需求的每一方面在现有基础上可实现必须证明需求有效,能解决用户提出的问题需求评审与确认31 需求分析概述-需求分析的过程与方法 31 需求分析概述-需求分析的过程与方法 二、需求分析的方法 分析方法支持数据域分析的机制2.功能表示的方法3.接口的定义4.问题分解的机制以及对抽象的支持5.逻辑视图和物理视图6.系统抽象模型34 需求规格说明与评审 1.需求规格说明书的内容2 .需求评审 3.需求变更管理 35 原型化方法1.软件原型化方法 通常,原型是指模拟某种产品的原始模型。在软件开发过程中,原型是软件的一个早期可运行的版本,它反映最终系统的部分重要特性。如果在获得一
28、组基本需求说明后,通过快速分析构造出一个小型的软件系统,满足用户的基本要求。使得用户可在试用原型系统的过程中得到亲身感受和受到启发,做出反应和评价。然后开发者根据用户的意见对原型加以改进。随着不断试验、纠错、使用、评价和修改,获得新的原型版本,如此周而复始,逐步减少分析和通信中的误解,弥补不足之处,进一步确定各种需求细节,适应需求的变更 .原型主要有三种不同的作用类型: 探索型 实验型 进化型 2 快速原型开发模型 案例分析-尚品购书网站系统需求分析与需求规格说明 1.“尚品购书网站“系统需求分析 .“尚品购书网站”项目开发背景 “尚品购书网站”系统业务需求 .“尚品购书网站”系统环境需求 .
29、“尚品购书网站”系统维护需求 .“尚品购书网站”系统安全性需求 .“尚品购书网站”系统性能需求 .“尚品购书网站”系统接口需求 2.“尚品购书网站”系统软件需求规格说明 第4章 结构化分析方法 41 结构化分析方法概述结构化方法的基本思想可以概括为:自顶向下、逐步求精;采用模块化技术、分而治之的方法,将待开发的系统按功能分解成若干模块;模块内部由顺序、分支、循环等基本控制结构组成;应用子程序实现模块化 .基本思想自顶向下逐层分解结构化分析(Structured Analysis)它是一种面向数据流的需求分析方法,适用分析大型数据处理系统,是一种简单、实用的方法。结构化分析软件系统(S)D1D2
30、D3Dn问题域DiP1P2P3Pn问题PjF1F2F3Fn问题域问题行为(功能)对应于软件子系统对应于子软件的软构件对应于软件子系统32 结构化分析自顶向下需求分析模型图S = D1,D2,D3, Dn Di = P1,P2,P3, Pm Pj = F1,F2,F3, Fk 定义数据流变换数据的处理数据存储数据的源/宿32 结构化分析-数据流图数据流图(DFD)是一种图形化技术,它描绘信息和数据从输入到输出的过程中所经受的变换。 符号银行取款流程图数据流图说明:描绘“做什么”,不考虑“怎么做”箭头:数据流图和程序图中用箭头表示的控制流有本质不同,不能混淆。在数据流图中应该描绘所有可能的数据流向
31、,而不应该描绘出现某个数据流的条件。处理:处理并不一定是一个程序。一个处理框可以代表一系列程序、单个程序或者程序的一个模块,也可代表一个人工处理过程,如用户目视检查数据正确性。 数据存储:一个数据存储并不等同于一个文件,它可以表示一个文件、文件的一部分、数据库的元素或记录的一部分等;数据可以存储在磁盘、磁带、磁鼓、主存、微缩胶片、穿孔卡片及其他任何介质上(包括人脑)。 数据存储和数据流都是数据,仅仅所处的状态不同。数据存储是处于静止状态的数据,数据流是处于运动中的数据。32 结构化分析-数据流图数据流图的分层 为了表达数据处理过程的加工情况,用一个数据流图是不够的。为表达稍为复杂的实际问题,需
32、要按照问题的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系。32 结构化分析-数据流图数据流图(案例)1“尚品购书网站”系统数据流程图(第一层) 概念是描述数据信息的集合,是对系统中所有数据元素定义的集合。包含信息数据、控制项、数据存储或外部实体的主要名称和别名使用数据和对象的列表、使用对象的方式描述数据或控制内容的符号关于数据类型、预置值、限制等其他补充信息32 结构化分析-数据字典 一、定义32 结构化分析-数据字典 二、数据项的定义数据三种基本类型顺序选择循环即以确定次序连接两个或多个分量从两个或多个可能的元素选取一个即把指定的分量重复零次或多次算符意义=等价于或定义为+连接两
33、个分量 或(从方括号内列出的若干个分量中选择一个),用“|”号分开供选择分量 重复(重复花括号内的分量)( )可选(圆括号内的分量可有可无)数据字典符号三、数据字典举例尚品购书网站系统中,顶层数据数据流图中,共有10个不同的数据流。32 结构化分析-数据字典 加工的描述 目前用于写加工逻辑说明的工具有结构化英语(PDL)、判定表和判定树 等。1、结构化英语(PDLProcedure Design Language)结构化英语也称为PDL,是一种介于自然语言和形式化语言之间的半形式化语言。它是在自然语言的基础上加了一些限制而得到的语言,是使用有限的词汇和有限的语句来描述加工逻辑。结构化英语的词汇
34、表由英语命令动词、数据词典中定义的名字、有限的自定义词和控制结构关键词IF_THEN_ELSE、WHILE_DO、REPEAT_UNTIL、CASE_0F等组成。 2.判定表(Decision Table)在某些数据处理问题中,某数据流图的加工需要依赖于多个逻辑条件的取值,就是说完成这一加工的一组动作是由于某一组条件取值的组合而引发的。这时使用判定表来描述比较合适。下面以“检查发货单”为例,说明判定表的构成。 3.判定树(Decision Tree)判定树也是用来表达加工逻辑的一种工具。有时侯它比判定表更直观。用它来描述加工,很容易为用户接受。下面把前面的“检查发货单”的例子用判定树表示。 4
35、.实体-关系图 在数据密集型应用问题中,对复杂数据及数据之间复杂关系的分析和建模将成为需求分析的重要任务。显然,这项任务是简单的数据字典机制无法胜任的。所以,有必要在数据流分析方法中引进适合于复杂数据建模的实体关系图。 实体关系图是表示数据对象及其关系的图形语言机制。数据对象用长方形、关系用菱形表示。数据对象之间数量上的对应关系的表示见下图: 案例“尚品购书网站”系统结构化分析 一层图:二层图:系统E-R图:第5章 结构化的设计方法51 结构化设计的基本概念 511模块化设计 实现模块化设计的重要指导思想是分解、信息隐藏和模块独立性。 1分解 分解是人们处理复杂问题时常用的方法。有一种说法,模
36、块化是为了使一个复杂的大型程序能够被人的智力所管理,是软件所应该具备的惟一属性。 软件模块定义 整个软件被划分成若干单独命名和可编址的部分,称之为模块。 模块的基本属性模块实现什么功能模块的内部实现逻辑该模块使用时的环境和条件2信息隐蔽 1972年,D.L.Parnas提出了把系统分解为模块时应该遵守的指导思想,称为信息隐蔽(information hiding)。他认为,模块内部的数据与过程,应该对不需要了解这些数据与过程的模块隐蔽起来。只有那些为了完成软件的总体功能而必须在模块间交换的信息,才允许在模块间进行传递。 3模块独立性 模块独立性(module independence)概括了把
37、软件划分为模块时要遵守的准则,也是判断模块构造是否合理的标准。一般地,坚持模块的独立性是获得良好设计的关键。 模块的独立性可以由两个定性标准度量,这两个标准分别称为内聚和耦合。 模块划分的原则 划分模块的重要目标是提高模块的独立性。度量模块独立性的两个准则是模块间的内聚性和耦合性。好的软件结构应该具有高内聚、低耦合的模块化结构。 内聚性耦合性内聚性是一个模块内部各个元素彼此结合的紧密程度的度量。 耦合性是模块间互相连接的紧密程度的度量。它取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。 (1)耦合 耦合是对一个软件结构内不同模块之间互联程度的度量。耦合强弱取决于模块间接口的复杂程
38、度、进入或访问一个模块的点以及通过接口的数据。 在软件设计中应该追求模块间尽可能松散耦合的系统。在这样的系统中可以测试或维护任何一个模块,而不需要对系统中的其他模块有很多的了解。此外,由于模块间联系简单,发生在一处的错误传播到整个系统的可能性就很小。因此,模块间的耦合程度对系统的可理解性、可测试性、可靠性和可维护性有非常大的影响。 耦合性(1)非直接耦合(2)数据耦合(3)标记耦合(4)控制耦合(5)外部耦合(6)公共耦合(7)内容耦合模块间的耦合按照模块独立性由高到低的顺序列举如下: (2)内聚 内聚标志着一个模块内部各个元素间彼此结合的紧密程度。 简单地说,理想内聚的模块只做一件事情。设计
39、时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多。但是,坚决不要使用低内聚。内聚性模块内聚按照模块独立性由高到低的顺序叙述如下: (1)功能内聚(2)信息内聚(3)通信内聚(4)过程内聚(5)时间内聚(6)逻辑内聚(7)巧合内聚软件设计工作内容概要设计详细设计 将软件需求转化为软件体系结构,确定系统级接口、全局数据结构或数据库模式。 确立每个模块的实现算法、局部数据结构,用适当方法表示算法和数据结构的细节。 概要设计需要完成的工作(1)制定规范(2)软件系统结构的总体设计(3)处理方式设计(4)数据结构设计(5)可靠性设计(6)编写概要设计阶段的文档概要设计的目
40、标概要设计的主要目标是把需求转换为软件的体系结构。 软件的体系结构程序的模块结构程序的数据结构 52 过程设计技术和工具 521 结构化程序设计 Bohm和Jacopini提出仅用“顺序”、“分支”和“循环”三种基本的控制构件即能构造任何单入口单出口程序,这个结论奠定了结构程序设计的理论基础结构程序设计是程序设计技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制构件。 522图形表示法流程图、结构图是描述过程细节的出色工具。 523 判定表当模块中包含复杂的条件组合,并要根据这些条件选择动作时,流程图、N-S结构图及下节将介绍的过程设计语言(PDL)都有一定的缺陷,只有判定表能清晰地表
41、示出复杂的条件组合与各种动作之间的对应关系。 53结构化设计方法 结构化设计是一种面向数据流的设计(Data Flow-Oriented Design,DFOD),是与数据流分析对应的软件设计技术。数据流分析得到的是用数据流图和数据字典描述的需求规格说明书,面向数据流的设计得到的则是以数据流图为基础导出的软件模块结构图。 面向数据流的设计(SD)方法能方便地将数据流图转换为软件结构,其过程分为五步:(1)确定信息流的类型;(2)划定流界;(3)将数据流图映射为程序结构;(4)提取层次控制结构;(5)通过设计复审和使用启发式策略进一步精化所得到的结构。信息流分为变换流和事务流两种类型 。变换流。
42、具有较明确的输入、变换(或称主加工)和输出界面的数据流图称为变换型数据流图。事务流。事务型数据流图中存在某个加工,它将其输入分离成若干发散的数据流,形成许多活动路径,并根据输入的值选择其中之一条路径。 案例“尚品购书网站”系统结构化设计 软件总体结构设计:用系统结构图描述 设计程序的模块结构 程序的模块结构表明了程序各个部件(模块)的组织情况,是软件的过程表示。 模块间关系的表示 结构图反映程序中模块间的调用关系和模块间信息的传递。结构图的要素包括:(1)模块:模块用矩形框表示,并用模块的名字标记它。(2)模块的调用关系和接口:模块之间用单向箭头联结,箭头从调用模块指向被调用模块,表示调用模块
43、调用了被调用模块。设计程序的数据结构(1)确定软件涉及的文件系统的结构以及数据库的模式、子模式,进行数据完整性和安全性的设计。(2)确定输入、输出文件的详细的数据结构。(3)结合算法设计,确定算法所必需的逻辑数据结构及其操作。(4)确定对逻辑数据结构所必需的那些操作的程序模块(软件包)。(5)限制和确定各个数据设计决策的影响范围。(6)若需要与操作系统或调度程序接口所必须的控制表等数据时,确定其详细的数据结构和使用规则。(7)数据的保护性设计 详细设计需要完成的工作 在详细设计过程中,需要完成的工作是: (1)确定软件各个组成部分内的算法以及各部分的内部数据组织。 (2)选定某种过程的表达形式
44、来描述各种算法。可选用的过程表达形式有:流程图、盒图、PAD图等。 (3)编写详细设计说明书。 (4)制定单元测试计划。 (5)进行详细设计评审。详细设计的表示详细设计中应采用合适的方式来描述模块内问题解决过程的细节,采用结构化的图形设计表示法是人们易于使用、易于理解的方式。 图形设计表示法流程图盒图PAD图程序流程图结构化程序基本结构顺序结构选择结构循环结构标准流程图符号 我国国家标准局批准的国家标准(GB1525-89)流程图符号:盒图(N-S图)第6章 面向对象的分析和设计面向对象的分析 面向对象分析方法的核心是利用面向对象的概念和方法为软件需求建造模型。它包含面向对象的图形语言机制以及
45、用于指导需求分析的面向对象的方法学。 本节主要介绍面向对象的概念、面向对象方法及面向对象分析过程。面向对象的需求分析-面向对象的概念 面向对象对象分类继承通信对象对象是现实世界中个体或事物的抽象表示,它封装了特殊的属性(数据)和行为方法。 例如,大型客机可视为对象,它具有位置、速度、颜色、容量等属性,对于该对象可施行起飞、降落、加速、维修等操作,这些操作将或多或少地改变飞机的属性值(状态)。 类类是具有相同属性和操作的一组相似对象的抽象 例如,飞行器类是所有能够飞行的器械的抽象(如各种飞机、航天器等),它可以包含位置、速度、颜色等属性,同时也具有起飞、降落、加速等操作。显然类是一个支持继承的抽
46、象数据类型,而对象就是类的实例。 面向对象的需求分析-面向对象的概念 实例是由某个特定的类所描述的一个具体的对象 例如,圆具有半径和圆心等属性,它是一个抽象类,可用circle类来定义,有许多不同半径和不同圆心的具体的圆,它们是类的一个个实例。 面向对象的需求分析-面向对象的概念 属性是类或对象中所定义的数据,它是描述客观世界实体静态特征的数据项。当类被实例化而形成具体的对象后,它不仅包含类所具有的一些属性,而且还有自己所特有的属性值 例如,Circle类中定义的代表圆心坐标、半径、颜色等的数据成员,就是圆类所具有的属性,当实例一个具体的圆后,其属性也必然存在,还可能增加一些特殊的属性。 面向
47、对象的需求分析-面向对象的概念 方法方法是对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执行操作的算法,响应消息的方法 在C+语言中把方法称为成员函数。例如在圆的对象中可以定义一个方法GetColor(),用来取得圆的颜色。 面向对象的需求分析-面向对象的概念 消息就是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。通常,一个消息由以下三部分组成:接收消息的对象;消息选择符即消息名;零个或多个变元。例如,MyCircle是一个半径4cm、圆心位于(100,200)的Circle类,也就是一个实例,当要求它以绿颜色在屏幕上显示自己时,在C+语言中应该向它发下列消息:My
48、Circle.Show(GREEN);其中,MyCircle是接受消息的对象名,Show是消息选择符(即消息名),圆括号内的GREEN 是消息的变元。当Mycircle接收到这个消息后,将执行在Circle类中所定义的Show操作。 面向对象的需求分析-面向对象的概念 封装所谓封装就是把某个事物包起来,使外界不知道该事物的具体内容。在面向对象的程序中,把数据和实现操作的代码集中起来放在对象内部。 * 数据与方法代码的内部细节对外界隐藏,这样对其的任何改变可能引起的副作用只能作用在内部,不会传播。 * 封装是软件复用的基础。 *被封装对象间的接口大大地简化了,对象之间通过消息联系它时不再关心对象
49、内部的数据结构,系统的耦合度降低了。 含义优点面向对象的需求分析-面向对象的概念 继承含义分类类之间的继承关系是现实世界中遗传关系的直接模拟,它表示类之间的内在联系以及对属性和操作的共享,即子类可沿用父类(被继承)的某些特征。当然也可以具有自己独有的属性和操作。 单重继承 多重继承 子类仅从一个父类继承属性和行为,而且子类可以覆盖父类的部分属性和方法 子类可从多个父类继承属性和方法 面向对象的需求分析-面向对象的概念 类继承实例汽车类轿车类货车类商用轿车家用轿车汽车是抽象层次较高的概念,在汽车类的基础上可以分出轿车类与货车类等,如果再细分,还可在轿车类的基础上分出商用轿车与家用轿车等。由于商用
50、轿车与家用轿车作为轿车在绝大多数的属性和行为上是一致的,可以把轿车类看成是家用轿车的父类,而家用轿车这个子类继承了父类所拥有的属性与行为,并在父类的基础上加入了特殊化的属性与行为而形成了新的类。 在类的层次结构中,相对上层的是超类(superclass),相对下层的是子类(subclass) 面向对象的需求分析-面向对象的概念 面向对象的需求分析-面向对象方法简介 面向对象方法支持三种基本的活动 识别对象和类描述对象和类之间的关系通过描述每个类的功能定义对象的行为。 面向对象方法Booch方法 :提出面象对象的软件工程的概念OMT方法 :提出面象对象的建模技术方法OOSE方法 :用例贯穿于软件
51、整个开发过程UML在Booch方法、OMT方法和OOSE方法的基础上推出了统一的建模语言(UML),1997年被国际对象管理组织(OMG)确定为标准的建模语言 面向对象的需求分析-面向对象分析过程 面向对象方法实际上是一整套的软件开发方法,它包括面向对象的分析OOA、面向对象的设计OOD、面向对象的编程OOP、面向对象的测试OOT等,可以看出面向对象方法可以贯穿软件开发的整个过程。 OOA方法的关键,是识别问题域内的对象,并分析它们相互间的关系,最终建立起问题域的简洁、精确、可理解的正确模型。这是面向对象分析的首要任务 在实际工作中,建模的步骤并不一定严格按照前面讲述的次序进行 OOA分析过程
52、分析用户需求识别类与对象 确定对象的内部特征 识别对象之间的关系 定义主题词 系统分析员应该深入地理解用户需求,抽象出目标系统的本质属性,并用模型准确表示来 ;另外要向领域专家学习。确定问题域中的类和对象 确定对象的属性的操作分类关系(一般/特殊)、组成关系(整体/部分),还有反映对象属性之间联系的实例连接、反映对象行为之间依赖关系的消息等 概念上把大型的、复杂的系统包含的内容分解成若干个范畴 33面向对象的需求分析-面向对象分析过程 34 UML概述 1997年UML1.1被对象管理组织OMG确定为标准建模语言是软件工程领域最重要的、具有划时代重大意义的事件。 UML是一种定义良好、易于表达
53、、功能强大且普遍适用的标准的图形化建模语言,用它可以简明、准确地为目标系统建立模型 。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。34 UML概述-UML的结构 一、UML中的基本构造块UML建模的积木块 构成UML模型的基本构造块有三种积木元素或积木组合体,即: 反应的是类与类之间联系的方法与性质,关系有依赖、关联、继承、实现和聚合5种 图是软件系统在不同角度上的投影,它是一组元素的表示,包含了事物及其关系的组合 。UML有九种图事物是UML模型中的静态元素,UML中共有11种不同的事物 事物关系图序号事物名
54、称语义及表示1类就是面向对象方法中的类,用具有上、中、下三部分的矩形表示。2接口一个类或一个构件的服务的操作集,用一个带有名称的圆表示。3协作表示多个元素的交互,用一个仅包含名称的虚线椭圆表示。4用例涉及系统的参与者的一组动作序列(可以是人、设备或其他系统),用仅包含名称的实线椭圆表示。5主动类拥有进程或线程的类,用外框线加粗的类表示。6构件物理上可替代的软部件,用带有小方框包含名称的矩形表示7节点一般是网络中的服务器,用包含名称的立方体表示。8交互一组对象间的交换消息,用包含操作名的有向线段表示。9状态机对象或交互在其生存周期内呼应其事件而经历的状态序列,用包含名称的圆角矩形表示。10包UM
55、L模型的组织元素,用包含名称的左上角带有一个小矩形的大矩形表示。11注释对UML模型的解释,用包含注解内容的右上角为折角的矩形表示UML中的“事物” 34 UML概述-UML的结构 二、UML中的规则UML建模的“粘合剂” UML中的规则是为了将UML中的构造块有机地组装在一起形成一个结构良好的模型而对事物进行描述的语义规则。 5种规则 1、为事物、关系命名的命名规则2、给一个名字以特定含义的范围规则3、使名字可见或如何使用的可见性规则4、描述事件正确、一致地相互联系的完整性规则5、描述运行或模拟动态模型含义的执行规则 34 UML概述-UML的结构 三、应用于UML的通用机制UML模型的图纸
56、说明 为了对UML模型进行进一步的说明,同时增强其表达能力,UML提供了4种在整个语言中可以一致应用的“通用机制”,可以认为是对UML模型的图纸说明 四种机制规格说明 修饰 通用划分 扩展机制 UML图形每个部分后面的语法语义描述UML表示法中每个元素都有一个基本符号UML构造块有两种划分,即类与对象、接口与实现提高UML语言表达能力,它包含构造型、标记值和约束等3种类型 UML概述-UML的结构 UML概述-UML的图 UML主要用图来表达模型的内容,而图又由代表模型元素的图形符号组成。学会使用UML的图,是学习、使用统一建模语言UML的关键。 UML的重要内容可以由下列五类图(共9种图形)
57、 UML图用例图(Use-case diagram) 静态图 (Static diagram) 行为图(Behavior diagram) 交互图(Interactive diagram) 实现图 ( Implementation diagram ) UML概述-UML的应用 UML的目标是用面向对象的图形方式来描述任何类型的系统,因此,具有很宽的应用领域。其中最常用的是建立软件系统模型,但是它同样也可以用于描述非计算机软件的其他系统,如机械系统、商业系统、企业机构或业务过程、处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。总之,UML是一个通用的标准建模语言,可以为任何具有静态结
58、构和动态行为的系统建立模型。 UML适用于系统开发全过程 需求分析 分析 设计 编码 测试 捕获用户的需求、用例建模用UML的逻辑视图和动态视图来描述问题域中的基本概念(例如抽象、类和对象等)和机制 。类图描述系统的静态结构,合作图、顺序图、活动图和状态图描述系统的动态行为。 把分析阶段的结果扩展成技术解决方案,加入新的类来定义软件系统的技术方案细节。设计阶段用和分析阶段类似的方式使用UML。 这个阶段的任务是把来自设计阶段的类转换成某种面对象程序语言的代码(如VB、C+、Java等) UML模型可作为测试阶段的依据 。单元测试使用类图和类规格说明;集成测试使用构件图和合作图;系统测试使用用例
59、图来验证系统的行为 UML概述-UML的应用 一、UML的应用领域 二、UML的建模机制 UML9个模型UML9种图UML5个视图业务模型、领域模型、用例模型、分析模型、设计模型、过程模型、部署模型、实现模型、测试模型 用例视图、设计视图、进程视图、实现视图、实施视图 用例图 、静态图(包括类图、对象图和包图)、行为图(包括状态图和活动图) 、交互图 (包括顺序图和协作图 )、实现图 (构件图和配置图 ) UML概述-UML的应用 静态建模动态建模 反映的是目标系统的静态数据 ,用例图、类图、对象图、包、构件图、配置图等是静态建模机制,其中尤以用例图和类图最为重要。 强调的是系统的行为,动态建
60、模所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语言UML的动态建模机制。UML建模 UML概述-UML的应用 在UML中可以通过用例图来构造目标系统的用例模型,它通过用例来捕获用户需求,通过用例建模,描述对系统感兴趣的外部角色及其对系统(用例)的功能要求。它从系统外部观察系统,而不涉及到技术上如何做这些事。 UML概述-UML中的需求分析(用例图的创建 )一、用例模型(Use case model) 描述的是外部执行者(Actor)所理解的系统功能。用例模型用于需求分析阶段 。在UML中,一个用例模型由若干个用例图描述
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋买卖合同终止的法律依据
- 工程泥水劳务分包协议
- 粽子购销合同样本
- 办公家具特定供应商合同
- 招标文件补充与更正通知
- 氢氟酸购销合同
- 解除贷款协议格式
- 第三方担保合同协议的签订要点
- 输电线路招标须知
- 后勤服务承包合同的续签流程及条件
- 国际航班保障流程
- 英文版肺功能检查课件(PPT 50页)
- 《有机合成》说播课课件(全国高中化学优质课大赛获奖案例)
- 高中地理经纬网PPT通用课件
- 城市景观生态
- 五年级英语上册第六单元(新版pep)完美版(课堂PPT)
- 2022年修理厂改革实施方案范文
- 败血症PPT优质课件
- 铁路建设项目工程质量管理办法
- 架空输电线路检修规范
- 【课件】第六单元第十二节外国影视音乐课件-2021-2022学年高中音乐人音版(2019)必修音乐鉴赏
评论
0/150
提交评论