软件关键工程导论电子教案

上传人:卷*** 文档编号:119092467 上传时间:2022-07-13 格式:DOCX 页数:79 大小:634.88KB
收藏 版权申诉 举报 下载
软件关键工程导论电子教案_第1页
第1页 / 共79页
软件关键工程导论电子教案_第2页
第2页 / 共79页
软件关键工程导论电子教案_第3页
第3页 / 共79页
资源描述:

《软件关键工程导论电子教案》由会员分享,可在线阅读,更多相关《软件关键工程导论电子教案(79页珍藏版)》请在装配图网上搜索。

1、第一章 软件工程学概述教学目标与要求1.掌握程序软件、软件、软件危机与软件工程等基本概念内涵2.掌握软件工程的基本原理和方法3.了解生命周期方法,着重理解软件工程过程的实质4.会应用各种软件开发模型教学重点与难点重点:软件危机的相关概念、软件生命周期难点:软件生命周期、软件过程模型教学过程设计新课导入、新课教学、课堂讨论、作业讲评。教学方法以多媒体讲授为主,适当结合提问、设问、讨论等方法。1.1 软件危机一、软件危机的介绍:1、计算机系统的发展历程:四个阶段2、软件危机的含义n 软件的概念软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及其相关文档的完整集合。其中,程序是按事先设计

2、的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。n 软件的特点:7个每个特点都显示在屏幕上n 软件的分类从6个方面对软件进行分类n 软件的发展四个阶段n 软件危机的含义:软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题n 软件危机的表现:7个方面二、产生软件危机的原因与软件开发和维护有关的许多错误认识和作法的形成,可以归因于在计算机系统发展的早期阶段软件开发的个体化特点。错误的认识和作法主要表现为忽视软件需求分析的重要性,认为软件开发就是写程序并设法使之运行,轻视软件维护等。从而引出产生软件危机的6个原因

3、。6种原因省略。三、消除软件危机的途径到了20世纪60年代末期,软件危机已相当严重。这促使计算机科学家们开始探索缓解软件危机的方法。他们提出了“软件工程”的概念,即用现代工程的原理、技术和方法进行软件的开发、管理、维护和更新。于是,开创了计算机科学技术的一个新的研究领域。软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。1.2 软件工程一、软件工程的概念概括地说,软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法与维护软件,把经过时间考验而证明的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就

4、是软件工程。二、软件工程的基本原理著名的软件工程专家B. W. Boehm于1983年综合了软件工程专家学者们的意见并总结了开发软件的经验,提出了软件工程的7条基本原理。这7条原理被认为是确保软件产品质量和开发效率的原理的最小集合,又是相互独立、缺一不可、相当完备的最小集合。1用分阶段的生存周期计划严格管理2坚持进行阶段评审3实行严格的产品控制4采用现代程序设计技术5结果应能清楚地审查6开发小组的人员应少而精7承认不断改进软件工程实践的必要性三、软件工程的目标软件工程的目标是在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性

5、和可互操作性并满足用户需求的软件产品。补充:1)可修改性(modifiability),允许对软件系统进行修改而不增加其复杂性。2)有效性(efficiency),指软件系统的时间和空间效率。3)可靠性(reliability),是指在给定的时间间隔内,程序成功运行的概率。4)可理解性(understandability),指系统具有清晰的结构,能直接反映问题的需求。5)可维护性(maintainability),是指软件产品交付使用后,在实现改正潜伏的错误、改进性能等属性、适应环境变化等方面工作的难易程度。6)可重用性(reusability),是指软部件可以在多种场合使用的程度。7)可适应

6、性(adaptability),是指软件在不同的系统约束条件下,使用户需求得到满足的难易程度。8)可移植性(portability),是指软件从一个计算机系统或环境移植到另一个上去的难易程度。9)可追踪性(traceability),是指根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行逆向追踪的能力。10)可互操作性(interoperability),是指多个软件元素相互通信并协同完成任务的能力。四、软件工程的原则1抽象(abstraction),抽取各个事物中共同的最基本的特征和行为,暂时忽略它们之间的差异。2、信息隐藏(information hiding),

7、将模块内部的信息(数据和过程)封装起来。3局部化(localization),即在一个物理模块内集中逻辑上相互关联的计算资源。局部化支持信息隐藏,从而保证模块之间具有松散的耦合、模块内部有较强的内聚。4、一致性(consistency),整个软件系统(包括程序、数据和文档)的各个模块应使用一致的概念、符号和术语;程序内部接口应保持一致;软件与环境的接口应保持一致;系统规格说明应与系统行为保持一致;用于形式化规格说明的公理系统应保持一致。5完全性(completeness),软件系统不丢失任何重要成分,完全实现所需的系统功能的程度。为了保证系统的完全性,在软件的开发和维护过程中需要严格的技术评审

8、。6可验证性(verifiability),开发大型软件系统需要对系统逐层分解。系统分解应遵循易于检查、测试、评审的原则,以使系统可验证。五、软件工程方法学软件工程方法学包括三个要素,这就是方法、工具和过程。其中,方法是完成软件开发的各项任务的技术方法,回答“如何做”的问题;工具是为方法的运用提供自动的或半自动的软件支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。1、 传统方法学传统方法学也称为生命周期方法学或结构化范型。2、面向对象方法学概括地说,面向对象方法具有下述四个要点

9、:对象: 把对象(Object)作为融合了数据及在数据上的操作行为的统一的软件构件。面向对象程序是由对象组成的,程序中任何元素都是对象,复杂对象由比较简单的对象组合而成。类:把所有对象都划分成类(Class)。每个类都定义了一组数据和一组操作,类是对具有相同数据和相同操作的一组相似对象的定义。数据用于表示对象的静态属性,是对象的状态信息,而施加于数据之上的操作用于实现对象的动态行为。 继承按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。 联系 对象彼此之间仅能通过发送消息互相联系。对象的所有私有信息都被封装在该对象内,不能从外界直接访问

10、,这就是通常所说的封装性。面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,从而使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。在此详细介绍软件的概念、特点及分类对每个特点进行详细阐述由上面计算机发展的四个阶段引出软件发展的四个阶段对每个方面进行阐述对6个原因进行阐述由现实中出现问题就要想法找到这个问题的解决办法,引入消除软件危机的途径软件工程为了使学生对软件工程有一个更好的理解,引入软件工程的三种不同概念对每条原理给出详细阐述由前面的知识,让同学们自己总结出软件工程的目

11、标适应本课程英语序列化的要求,对软件工程的目标进行解释,并给出一些英语词汇对每个原则进行阐述,为第5章的学习打下基础当软件规模较大,或者对软件的需求是模糊的或随时间变化的时候,使用结构化范型开发软件往往不成功;此外,使用传统方法学开发出的软件,维护起来通常都很困难。由此引出面向对象方法。小结:本章对计算机软件工程学作了一个简短的概述。首先通过回顾计算机系统发展简史,说明开发软件的一些错误方法和观念是怎样形成的。然后列举了这些错误方法带来的严重弊病(软件危机),澄清了一些糊涂观念。为了计算机系统的进一步发展,需要认真研究开发和维护软件的科学技术。应总结计算机软件的历史经验教训,借鉴其他工程领域的

12、管理技术,逐步使软件工程这门新学科发展和完善起来。作业:P32习题11、3、41.3 软件生命周期软件生命周期由软件定义、软件开发和软件维护三个时期组成,每个时期又进一步划分成三个阶段:软件定义、开发时期、维护时期。软件定义时期通常划分成三个阶段,即问题定义、可行性研究和需求分析。开发时期具体设计和实现在前一个时期定义的软件,它通常由下述四个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。维护时期的主要任务是使软件持久地满足用户的需要。 下面简单介绍软件生命周期每个阶段的基本任务。1 问题定义问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”2 可行性研究对于上一个阶段所确定的

13、问题有行得通的解决办法吗?3 需求分析这个阶段的任务仍然不是具体地解决问题,而是准确地确定“为了解决这个问题目标系统必须做什么”,主要是确定目标系统必须具备哪些功能。这个阶段的一项重要任务是用正式文档准确地记录对目标系统的需求,产生规格说明书。4 总体设计这个阶段必须回答的关键问题是:“概括地说,应该怎样实现目标系统”。应设计出低成本、中等成本、高成本3种方案,推荐最佳方案。5 详细设计这个阶段的关键问题是“应该怎样具体实现这个目标系统。”设计每个模块,确定实现模块功能所需要的算法和数据结构。6 编码和单元测试这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块7 综合测试这个阶段的关键

14、任务是通过各种类型的测试使软件达到预定的要求。集成测试:根据设计的软件结构,把经过单元检验的模块按某中选定的策略结合起来,在装配过程中对程序进行必要的测试。验收测试:按照规格说明书的规定,由用户对目标系统进行验收。8 软件维护,通常有四类维护活动:改正性维护:诊断和改正在使用过程中发现的软件错误适应性维护:修改软件以适应环境的变化完善性维护:根据用户的要求改进或扩充软件使它更完善预防性维护:修改软件为将来的维护活动预先做准备1.4 软件过程)一、瀑布模型1 特点(1)阶段间具有顺序性和依赖性这个特点有两重含义;第一,必须等前阶段的工作完成之后,才能开始后一阶段的工作;第二,前一阶段的输出文档就

15、是后一阶段的输入文档,因此,只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。(2)推迟实现的观点实践表明,对于规模较大的软件项目来说,往往编码开始得越早最终完成开发工作所需要的时间反而越长。瀑布模型在编码之前设置了系统分析与系统设计的各个阶段,分析与设计阶段的基本任务规定,在这两个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现。清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现,是按照瀑布模型开发软件的一条重要的指导思想。(3)质量保证的观点软件工程的基本目标是优质、高产。在瀑布模型的每个阶段都应坚持两个重要做法:第一,每个阶段都必须完成规定的文档,没有交出合格的文档就

16、是没有完成该阶段的任务。完整、准确的合格文档不仅是软件开发时期各类人员之间相互通信的媒介,也是运行时期对软件进行维护的重要依据。第二,每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。事实上,越是早期阶段犯下的错误,暴露出来的时间就越晚,排除故障改正错误所需付出的代价也越高。因此,及时审查,是保证软件质量,降低软件成本的重要措施。瀑布模型的成功在很大程度上是由于它基本上是一种文档驱动的模型。二、快速原型模型1 快速建立起来的可以在计算机上运行的程序,能完成的功能往往是最终产品的一个子集。2 快速原型模型的特点是不带反馈环,基本上按线性顺序开发。原型系统已经通过与用户交互而得

17、到验证,据此产生的规格说明文档正确地描述了用户需求,不会因为规格说明文档的错误而进行较大的返工。开发人员通过建立原型系统已经学到了许多东西,在设计编码阶段发生错误的可能性比较小,自然减少了反馈。三、增量模型又称渐增模型。使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码和测试。每个构件由多个相互作用的模块构成,能完成特定的功能。第一个增量构件往往实现软件的基本需求,提供最核心的功能。分解时唯一必须准守的约束条件是,当把新构件集成到现有软件中去时,所形成的产品必须是可测试的。优点:1 能在较短的时间内向用户提交可完成部分功能的产品2 逐步增加产品功能可以使用户有较充裕的时间学习和

18、适应新产品,减少一个全新的软件可能给客户带来的冲击困难:1 在把每个新的增量构件集成到现有的软件体系结构中时,必须不破坏原来已经开发的产品2 软件体系结构必须是开放的3 本身具有矛盾性,一方面要求开发人员把软件看作一个整体,另一方面要求开发人员把软件看作构件序列,且构件间彼此独立四、螺旋模型螺旋模型的基本思想是:使用原型及其他方法来尽量降低风险。1 确定阶段目标,为完成阶段目标选择方案,设定这些方案的约束条件2 用建造原型的方法来排除上述方案中潜在的风险3 用瀑布模型开发4 评价该阶段工作,计划下阶段工作优点1 软件重用2 测试量减少3 维护是模型的另一个周期4 螺旋模型主要是用于内部开发的大

19、规模软件项目,它是风险驱动的。五、喷泉模型迭代是软件开发过程中普遍存在的一种内在属性。使用面向对象方法学开发软件时,工作重点应该放在生命周期中的分析阶段。喷泉模型是典型的面向对象的软件过程模型之一。六、Rational统一过程Rational(Rational Unified Process,RUP)统一过程是由Rational软件公司推出的一种完整且完美的软件过程。1、 最佳实践(1) 迭代式开发(2) 管理需求(3) 使用基于构件的体系结构(4) 可视化建模(5) 验证软件质量(6) 控制软件变更2、 RUP软件开发生命周期(1) 核心工作流RUP有9个核心工作流,前6个为核心过程工作流,

20、后3个为核心支持工作流。(2) 工作阶段RUP把软件生命周期划分为4个连续的阶段:初始阶段、精化阶段、构建阶段、移交阶段。(3)RUP迭代式开发七、敏捷过程与极限编程1、敏捷过程(1)个体和交互胜过过程和工具(2)可以工作的软件胜过面面俱到的文档(3)客户合作胜过合作谈判(4)响应变化胜过遵循计划2、极限编程(1)极限编程的有效实践n 客户作为开发团队的成员n 使用用户素材n 短交付周期n 验收测试n 结对编程n 测试驱动开发n 集体所有n 持续集成n 可持续的开发速度n 开放的工作空间n 及时调整计划n 简单的设计n 重构n 使用隐喻(2)极限编程的整体开发过程(3)极限编程的迭代过程八、微

21、软过程1、微软过程准则微软过程遵循下面的基本准则:u 项目计划应该兼顾未来的不确定因素u 用有效的风险管理来减少不确定因素u 经常生成并快速地测试软件的过渡版本,从而提高产品的稳定性和预测性。u 采用快速循环、递进的开发过程u 用创造性的工作来平衡产品特性和权威性u 使用小型项目组并发地完成开发工作u 在项目早期把软件配置项基线化,项目后期则冻结产品u 使用原型验证概念,对项目进行早期验证u 把零缺陷作为追求的目标。u 里程碑评审会的目的是改进工作,切相互指责。2、微软软件生命周期微软过程把软件生命周期划分成5个阶段。(1) 规划阶段n 确定产品目标n 获取竞争对手的信息n 完成对客户和市场的

22、调研分析n 确定新版本产品应该具备的主要特性n 确定新版本应该解决的问题和需要增加的功能(2) 设计阶段n 根据产品编写系统的特性规格说明书n 从系统高层出发,完成下述工作:简明扼要地描述整个系统的设计方案,绘制系统结构图、确定系统中存在的风险因素,分析系统的可重用性。n 划分出系统中的子系统,给出各子系统和各个构件的规格说明n 根据产品特性说明书制订产品开发计划(3) 开发阶段完成产品中所有构件的开发工作(4) 稳定阶段对产品进行测试和调试。(5) 发布阶段项目组发布产品或解决方案。3、微软过程模型图形略开发前两个阶段又称为系统设计,后两个阶段又称为系统实现。结合实例对每一个阶段进行阐述课件

23、上给出传统的瀑布模型课件上给出快速原型模型课件上给出增量模型,然后对其进行阐述课件上给出螺旋模型,然后对其进行阐述然后引导同学们给出完整的螺旋模型给出喷泉模型对其进行阐述对每个实践展开讲解,讲解过程中充分调动同学们的积极性对每个工作流和阶段进行阐述给出每个价值观,让同学们举例说明让学生试着对每个阶段进行阐述,然后点评对隐喻进行阐述把软件的基本准则和实际生活结合起来进行阐述由微软的操作系统升级来阐述微软过程模型小结:本章对计算机软件工程学作了一个简短的概述。首先通过计算机系统发展简史,说明开发软件的一些错误方法和观念是怎样形成的。然后列举了这些错误方法带来的软件危机,澄清了一些糊涂观念。为了计算

24、机系统的进一步发展,需要认真研究开发和维护软件的科学技术。就总结计算机软件的历史经验教训,借鉴其他工程领域的管理技术,逐步使软件工程这门新兴学科发展和完善起来。作业: P32习题17、10、11、12第二章 可行性研究教学目标与要求1、着重理解可行性研究的必要性,以及它的基本任务和基本步骤,在此基础上进一步学习具体的方法和工具,包括各种流图的制定2理解成本/效益分析是可行性研究的一项重要内容教学重点与难点重点:1、可行性研究的任务、基本步骤、经济可行性等几个方面2、关注可行性报告的编写难点:数据流图、成本/效益分析。教学过程设计新课导入、新课教学、课堂讨论、作业讲评。教学方法以多媒体讲授为主,

25、适当结合提问、设问、讨论等方法。2.1 可行性研究的任务一、 可行性研究的目的:用最小的代价,在尽可能短的时间内确定问题是否能够解决。二、可行性研究的实质进行一次压缩,简化了的系统分析和设计的过程。三、可行性研究的的路线n 分析和澄清问题n 导出系统逻辑模型n 探索若干种可供选择的主要解法(系统实现方案)n 对每种解法进行可行性研究n 为每种可行的解法制定一个粗略的实现进度可行性研究四、可行性研究应着重考虑如下三个方面n 技术可行性:使用现有的技术能实现这个系统。n 经济可行性:这个系统的经济效益能否超过开发成本。n 操作可行性:系统的操作方式在这个用户组织内是否行得通。必要时还应该从法律和社

26、会效益等方面研究每种解法的可行性。可行性研究需要的时间长短取决于系统的规模,可行性研究的成本只是预期工程总成本的5-10%。补充:n 法律可行性研究:研究新系统的开发和使用是否会侵犯他人的权益,是否触犯了国家的法律法规。n 开发方案的选择:可行性研究的最主要任务是对以后的行动提出建议。如果问题没有可行的解,分析人员应建议停止该项目,以避免造成进一步的浪费;如果问题值得解决,则提出并评价实现系统的各种可行的开发方案,从中选择一种最佳方案,并为系统制定一个初步的开发计划。2.2可行性研究过程一、复查系统规模和目标二、研究目前正在使用的系统三、导出新系统的高层逻辑模型四、进一步定义问题五、导出和评价

27、供选择的解法六、推荐行动方针七、草拟开发计划八、书写文档提交审查 2.3系统流程图一、概念描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件。包括程序、文档、数据库和人工过程等。它表达了数据在系统各部件之间的流动情况。 二、符号1、基本符号2、系统符号三、例子某装配厂有一座零件仓库,仓库中现有各种零件的数量以及每种零件的库存量临界值等数据记录在库存清单主文件中。如果哪种零件的库存量少于它的临界值时,则应报告给采购部门以便定货。规定每天向采购部门送一次定货报告。装配厂使用一台小型计算机处理更新库存清单主文件和产生定货报告的任务。仓库中的每一项业务都通过CRT终端输

28、入到计算机中;系统中的库存清单程序负责对事务进行处理,更新存储在磁盘上的库存清单主文件; 必要的定货信息写在磁带上;每天由报告生成程序读一次磁带,生成并打印出定货报告;库存清单程序;报告生成程序; 注意:系统流程图的习惯画法是使信息在图中从顶向下或从左向可流动。引出问题:复杂系统用上面的方法可行否?如果不可行怎么画?对于复杂系统,可分层描述n 首先用一张高层次的系统流程图描绘系统总体概貌,表明系统的关键功能。n 然后把每个关键功能扩展到适当的详细程序。2.4数据流图一、概念数据流图简称DFD(Data Flow Diagram)图,它是描绘信息和数据从输入移动到输出的过程中所经受的变换。反映了

29、数据在软件中流动和被处理的逻辑过程。数据流图是系统逻辑功能的图形表示,是一种极好的通信工具。 数据流图用简单的图形记号分别表示数据流、转换、数据源以及外部实体,如下图所示。二、符号n 数据流图有四种基本符号:v 数据的源点/终点v 变换数据的处理:一个程序,一系列程序,单个程序或者程序的一个模块,也可以代表用穿孔机穿孔或目视检查数据正确性等人工处理过程。v 数据存储它可以表示一个文件,文件的一部分,数据库的元素或记录的一部分。存储: 把一个数据存入数据存储; 用一个数据去修改数据存储中的数据; 从数据存储中读出一个数据; 从数据存储中检索出一批数据。v 数据流表示数据在系统中的流动方向,一般分

30、单向数据流和双向数据流两种。 n 数据流图有六种附加符号:v 附加符号中的星号(*)表示数据流之间是“与”关系;v 加号(+)表示数据流之间是“或”关系;v 符号表示只能从数据流中选一个(互斥关系)。三、例子例1:银行取款系统的数据流图(活期储蓄)。 第一步u 源点和终点都是储户;u 加工(处理)是完成取款的功能;u 数据存储:帐卡、存折u 数据流是取款单、存折、现款。画出银行取款系统的基本数据流图第二步u 取款工作实际上是由储户资格审查、登录、付款三部分组成; u 数据存储部分涉及储户的帐卡和存折上数据的更新。画出取款系统的功能级数据流图补充知识:1、画数据流图的原则n 确定系统的源点和终点

31、;n 确定系统的输入和输出数据流。保持分解前后输入/输出数据流必须相同;n 用“自顶向下”的方法,逐层画出数据流图。 n 每张数据流图中加工(处理)的个数不能超过9个(7加减2原则);n 将必要的存储与加工(处理)相匹配;n 在画数据流图时应避免线条交叉,必要时可使用重复的外部项(源点或终点)或数据存储符号;n 画出出错及例外条件处理情况。2、建立数据流模型要遵循以下的原则n 每个加工至少应有一个输入数据流(反映被处理数据的来源)和一个输出数据流(反映加工的结果)。n 数据流图中各构成元素的名称必须具有明确的含义且能够代表对应元素的内容或功能。n 对某个加工进行细化生成的下层数据流图,称为其上

32、层图的子图。应保证分层数据流图中任意对应的父图和子图的输入/输出数据流保持一致。n 应按照层次给每个加工编号,用于表明该加工所处的层次及上、下层的父图与子图的关系。编号的规则为:顶层加工不用编号;第一层加工的编号为1,2,n。第二层加工的编号为11,12,21,22,n1,n2,等,以此类推。n 在父图中不要出现子图中涉及的局部数据存储文件。通常除底层数据流图中需表明所有数据存储外,为保持画面整洁,各中间层数据流图只需显示处于加工之间的接口文件即可。n 数据流图只能由四种基本符号组成,是实际业务流程的客观映象,用于说明系统应该“做什么”,而不需要指明系统“如何做”。n 数据流图的分解速度应保持

33、适中。通常一个加工每次可分解为24个子加工,最多不要超过七个,否则会增加用户的理解难度。同时要注意,逐层精化必须适可而止。n 如果为了便于数据流图在计算机上的输入和输出,应免除斜线、弧线、圆等符号。课堂练习:一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,列出所有需要再次定货的零件。对于需要订货的零件列出其零件编号、零件名称、定货数量、目前价格、主要供应者、次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存量少于临界值时就应该再次定货分析过程如下第一步v 确定系统的源点和终点 仓库管理员是数据的源点; 采购员是数据的终点。v 加工(处

34、理) 本题应该完成定货系统这样一个功能。v 数据流 事务需从仓库送到系统中,显然事务是一个数据流; 系统要把定货报表送给采购部,定货报表也是一个数据流。第二步v 将加工(处理)定货系统进行功能分解成事务处理和产生报表两部分;v 考虑有关数据存储问题,题中涉及到存储的信息有:库存清单、定货信息;第三步v 将事务处理进一步分解为接收事务,更新库存清单、处理定货三部分。v 画出定货系统功能分解后的数据流图四、数据流图中各部分的命名n 为数据流命名(1)名字应代表整个数据流(或数据存储)的内容,而不是仅仅反映它的某些成份。(2)不要使用空洞的、缺乏具体含义的名字(如“数据”、“信息”、“输入”之类)。

35、(3)如果在为某个数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的,应该试试重新分解,看是否能克服这个困难。n 为处理命名: (1)通常先为数据流命名,然后再为与之相关联的处理命名 (2)名字应该反映整个处理的功能,而不是它的一部分功能。(3)名字最好由一个具体的及物动词,加上一个具体的宾语组成。 (4)通常名字中仅包括一个动词,如果必须用两个动词才能描述整个处理的功能,则把它再分解成两个处理可能更恰当些。(5)如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解。五、数据流图的用途n 作为交流信息的工具;n 作为分析和设计的工具;n

36、数据流图可以辅助物理系统的设计(图);n 数据流图对详细设计也有帮助。 2.5数据字典数据字典:是关于数据的信息集合,也就是对数据流图中包含的所有元素定义的集合。数据流图和数据字典共同构成系统的逻辑模型。数据流图描述了系统的“分解”,它表明系统由哪些部分组成。数据字典则为数据流图中出现的每一部分都给出“严格定义”,二者的有机配合,完整地描述了系统。没有数据字典数据流图就不严密,没有数据流图数据字典也难于发挥作用。一、数据字典的组成n 数据流n 数据流分量n 数据存储n 处理二、定义数据的方法1、定义复杂事物的方法:用被定义的事物的成分的某种组合表示这个事物,这些组成成分又由更低层的成分的组合来

37、定义。即自顶向下的分解。数据字典的定义就是对数据自顶向下的分解。2、数据元素组成数据的方式:u 顺序:确定次序连接两个或多个分量u 选择:从两个或多个可能的元素中选取一个u 重复:把指定的分解量分解零次或多次 5115u 可选:一个分量可有可无的(等价)(和) (或) (重复) ( )(可选)练习:试定义C语言中的标识符?3、实例(1)数据流条目一个完整的数据流条目应该包括以下内容:名称描述频率和数据量数据结构例如,“图书管理系统”中的“入库单”是一个数据流,对它的说明如下:入库单=分类目录号+数量+书名+作者+内容摘要+价格+购书日期(2)数据存储条目名称描述数据存储方式关键码频率和数据量安

38、全性要求数据结构(3)、家庭保安系统中的“电话号码”数据条目可以定义如下:v 电话号码分机号|外线号码v 分机号1816 | 1817 | | 1858v 外线号码9 +(市话号码|长话号码)v 长话号码0 +(区号+市话号码)v 区号* 任何长度为3的数字串*v 市话号码局号+分局号v 局号395 | 396 | 397 | 303 | 304 | 305v 分局号* 任何长度为4的数字串*三、数据字典的用途n 作为分析阶段的工具n 用于开发小组之间的通信n 可控制程序和模块的改变n 是开发数据库的基础 四、数据字典的实现 n 开发小系统时可建立卡片n 为每个要定义的名字准备一张卡片;n 在

39、卡片上注明名字、别名、描述、定义、位置、控制信息、使用特点;n 写名子的定义;n 将所有卡片按一定方式排序,如英文字母顺序或汉字笔画多少等。2.6成本/效益分析 一、成本估算1 代码行技术2任务分解技术3自动估计成本技术二、成本/效益分析 的方法n 货币的时间价值n 投资回收期n 纯收入n 投资回收率一般设生命周期为5年例如: 已知一个基于计算机的系统的软件升级的开发成本估算值为5000元,预计新系统投入运行后每年可以带来2500元的收入,假定新软件的生存周期(不包括开发时间)为5年,当年的年利率为12%,试对该系统的开发进行成本-效益分析。1、货币的时间价值指同样数量的货币随时间的不同具有不

40、同的价值。 一般货币在不同时间的价值可用年利率来折算。设:i 表示年利率,现在存入P元,n年后的价值为F元,则有: F=P(1 + i )n2、投资回收期是使累计的经济效益等于最初投资所需要的时间。显然投资回收期越短,就能越快地获得利润,因此这项工程也就越值得投资。3、纯收入 是指在整个生存周期系统的累计收入的折现值PT 与总成本折现值ST 之差,以T表示,则有: T= PT ST 4、投资回收率 类似于把资金存入银行或贷给其他企业能够获得利息,通常用年利率衡量利息多少,这就叫投资回收率。如果投资回收率等于银行的年利率,则此系统没有必要开发,因为它不能增加收入。所以只有投资回收率大于年利率时,

41、才考虑开发问题。 P=F1/(1+j)+F2/(1+j)2+Fn/(1+j)n P:现在的投资额,Fi:第i年的效益n:系统的使用寿命,j:投资回收率从现实中一个工程的上马需要可行性分析引出本章内容一般考虑前三个方面,有时也考虑5个方面对每个过程进行详细阐述本章重点对5个基本符号和常用的系统符号进行介绍根据前面讲解的知识,给学生3分钟时间,让画,然后再讲解本章重点,先补充“面向数据流的分析方法”,然后引出数据流图过度:用来刻画数据流和转换的信息系统建模技术。那么它如何表示系统呢?结合一个具体实例讲解数据图中的每一种成份的抽取实践练习启发学生从系统中抽离出每一部分启发学生对第一级数据流图进行功能

42、分解数据流图贯穿整书,在此补充画数据流图的原则对每一项进行详细阐述对每一项进行解释根据上面的补充程序让学生结合本题练习数据流图的画法,在学生练习的同时,给予适当的提示。根据第一步画出顶级图(略)根据第二步画出功能级数据流图(略)根据第三步,将数据流图细化由学生画数据流图时对功能的命名五花八门,引出数据流图中各部分的命名对每一部分进行解释每一种成份的组成进行详细解释练习的目的练习元素的定义根据上面讲授的知识,以家庭保安系统中的“电话号码”为例进行数据字典的定义对每一种技术进行详解本节重点,结合一个实例重点讲解这四个概念小结:本章着重理解可行性研究的必要性,以及它的基本任务和基本步骤,在此基础上再

43、进一步学习具体方法和工具。作业:P5354习题21、2、4、5第三章 需求分析教学目标与要求1、理解需求分析是软件生命周期的一个重要阶段,它的根本是确定为了满足用户的需要,系统必须做什么2.要求掌握系统分析的过程,通过分析能够用数据流图、E-R图、数据字典和简洁的算法描述所定义系统的逻辑模型,会应用结构化分析方法教学重点与难点重点:1、需求分析的过程,能够用数据流图、E-R图、数据字典和简洁的算法描述所定义系统的逻辑模型2、会应用结构化分析方法,3、关注需求规格说明书的编写难点:数据流图、E-R图、数据字典的应用教学过程设计新课导入、案例教学、课堂讨论、作业讲评。教学方法以多媒体讲授为主,适当

44、结合提问、设问、讨论等方法。3.1 需求分析的任务一、问题分析 在这一过程中,需要用某种方法为原始问题及其软件解建立模型,以便精确地记录用户从各个视点、在不同抽象级别上对原始问题的描述,并包含了问题及其环境所涉及的信息流、处理功能、用户界面、行为及设计约束等各方面内容。 于是可通过对模型的精确化来达到需求分析的目标。比如,可以采用面向数据流的分析方法,利用数据流图和数据字典等工具来建立模型。 该模型是形成需求规格说明、进行软件设计的基础。二、需求描述主要任务是以需求模型为基础,生成需求规格说明和初步的用户手册,并制定软件产品验收测试计划。三、需求评审需求评审的主要任务是分析人员在用户(客户)和

45、软件设计人员的配合下对需求规格说明和初步用户手册进行审核,检验软件需求的精确性、完全性和一致性,并使用户(客户)和软件设计人员对规格说明和用户手册达成一致的理解。3.2 需求分析的一般性技术 基本的需求分析技术,主要包括: 初步需求获取技术; 需求建模技术; 快速原型技术; 问题的分解与抽象; 多视点分析技术等。一、初步需求获取技术1、访谈与会议 分析人员采用个别访谈或小组会议的形式与用户进行初步交流。在访谈和会议之前,分析人员根据对问题的初步描述精心准备一系列问题,通过用户对问题的回答或互相商讨来逐步理解用户的需求。 准备问题的原则有:首先应搞清一般性、整体性问题,然后再涉及细节问题。在组织

46、问题时要尽量做到客观、公证,不应限制用户的自由发挥。所提问题汇总后应能反映应用问题及其子问题的全貌、并且不要过分详细。2、观察用户工作流程 如果可能,可通过实际观察用户的手工操作过程来提取新系统的初步用户需求。 观察手工操作过程不是为了模拟手工操作过程,而是为了获取第一手资料,并从中提取出有价值的需求。分析人员有了第一手资料,再结合自己的软件开发和应用的经验,就能够发现不合理的用户需求、提出用户还没有意识到的潜在的但却很有价值的用户需求,并能够从软件的角度改进操作流程和操作规范,从而可获得用户满意的分析结果。3、分析人员和用户组成联合小组 为加强信息沟通、减少误解和避免产生遗漏、充分调动用户的

47、积极性,在可能的条件下,可以建立由开发方和用户方共同组成的联合小组。 联合小组除了双方的分析人员外,应设专门的记录员、负责会议议程的人员和资料员等,并制定小组的规章制度和计划,选定一种易于理解、简洁、精确的表示机制作为双方的共同语言,比如采用带文字说明的流程图等。实例:家庭保安系统(具体步骤省略)二、需求建模技术 需求分析过程应建立3种模型,数据模型、功能模型、行为模型需求建模的步骤 在分析的初期,分析人员通过访谈、会议、实际观察、分析现有系统等方法获取初步的用户需求。 分析人员根据选定的一种分析方法,在初步用户需求的基础上构筑初步的模型作为开发方和用户相互沟通的表示机制。 分析人员在用户的密

48、切配合下,利用选定的分析方法不断地对模型进行精化、一致化、完全化,直至获得满意的用户需求为止。三、快速原型技术1、快速原型技术的基本思想在软件开发的早期,快速开发一个目标软件系统的原型,让用户对其进行评价并提出修改意见,然后开发人员根据用户的意见对原型进行改进。当原型几经改进最终确认后,它将直接进化成软件产品,或者由软件设计、编码人员按照模型所确立的外部特征去实现软件产品。2、采用快速原型技术的具体步骤n 采用一种分析方法生成一个软件系统或其中所关心部分的简化需求规格说明。n 对该规格说明进行评审通过后,立即生成设计规格说明。为了快速生成原型,这种设计仅注重所关心的问题,如软件的总体结构、用户

49、界面和数据设计、或者某个复杂的算法等等,不注重过程内部的控制流设计。n 使用可重用软部件、用户界面自动生成器等工具快速生成可运行的软件原型并通过测试。n 将原型提交给用户进行评价,以便征求改进意见。n 上述过程反复迭代,直至用户完全满意。3、快速原型技术的适用场合 该技术特别适合于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些复杂的算法等场合,目前的绝大多数软件都适合于快速原型技术。 除非由于问题相当复杂,致使开发快速原型可以获得的支持太少、所冒的风险太大时,就不易采用。但对于其中的某些子问题,尤其是用户界面,还可采用快速原型技术进行部分分析。四、问题分解与抽象、多视点分析技术

50、问题分解技术 分析人员常常采用一种问题分解的技术。即将一个大型复杂的问题分解为若干个子问题,然后对每一个子问题逐个进行分析,再自底向上综合成整个问题的分析结果。这种分解可以逐级进行,直至子问题的规模降到合适的程度。 问题抽象技术 分析人员在分析过程中要善于从诸多的特殊问题中抽象出一般的问题,首先关注一般问题的解决途径,再用其指导特殊问题的求解。在抽象的过程中,还要注意用户的描述所处的抽象级别的不同,以便建立清晰的思路。 多视点分析技术: 为了获得全面的需求分析结果,防止遗漏,有必要从各个视点分别对问题进行理解与分析,然后综合成全面的理解。分析人员可以就系统视点与用户视点、信息视点、功能视点与行

51、为视点等多个视点分别进行分析,以确保需求分析的完全性。3.3 需求规格说明与评审一、需求规格说明书的作用与内容1. 需求规格说明书的作用主要有:n 它是软件设计人员进行设计和编码的出发点和基础;n 它是对目标软件产品进行验收测试的依据。这就要求需求规格说明书中的各项需求都应该是可测试的;n 它起到软件开发方和客户(或用户)方之间的一份合同的作用。2、需求规格说明书中的内容主要包括功能与行为的需求描述和非行为需求描述。n 功能与行为需求的分析与描述方法将在以后几章中根据不同的需求建模方法分别介绍。n 非行为需求是指目标软件系统在工作时应具备的属性,主要有运行效率、可靠性、安全性、可维护性、可移植

52、性等等。n 在需求规格说明书中不应包括如人员需求、成本预算、进度计划、质量保证计划等内容,以便使其简洁、目标明确。3、需求规格说明书的基本格式框架目录1 引言 1.1 本说明的编写目的 1.2 软件产品的作用范围 1.3 定义、同义词与缩写 1.4 参考文献2 概述 2.1 产品与其环境间的关系 2.2 功能概述 2.3 用户特征 2.4 约束条件 2.5 假设与前提条件功能或行为需求 3.1 功能或行为需求1:1)引言 2)输入 3)处理过程描述 4)输出 3.2 功能或行为需求2:1)引言 2)输入 3)处理过程描述 4)输出 3.n 功能或行为需求n: 1)引言 2)输入 3)处理过程描

53、述 4)输出4外部界面需求 4.1 用户界面 4.2 硬件界面 4.3 软件界面5性能需求 5.1 精度 5.2 时间特征 5.3 灵活性6设计约束 6.1 标准化约束 6.2 硬件约束 7其他需求 7.1 数据库需求 7.2 用户操作需求 7.3 工作场地需求8软件产品属性 8.1 可用性 8.2 安全性 8.3 可维护性 8.4 可移植性附录索引二、需求评审1. 评审标准(按照重要性的次序)n 正确性。n 无歧义性。n 完全性。n 可验证性。n 一致性n 可理解性。n 可修改性。n 可追踪性。2. 需求评审过程参加的人员应当有用户、系统分析员、系统设计人员等。在评审会上,分析人员应说明软件

54、产品的总体目标,也就是介绍需求规格说明书中的主要内容。之后,与会人员对说明书的核心部分需求模型进行评估。并按照上述的评审标准逐一进行审查,最后确认其是否具有良好的品质、是否构成以后开发的良好的基础。如果在评审过程中发现说明书中存在错误或遗漏,应责承分析人员返工,并再行评审。需求评审也可采用先进行技术评审,再进行管理复审的方法进行。管理复审应有开发方和客户方(或用户方)管理部门负责人参加,复审通过后,双方应签订正式的合同。3.4 实体-联系图一、 数据对象可以是外部实体、事物、行为、事件、角色、单位、地点、结构等。可由一组属性来定义的外部实体都可以被认为是数据对象。二、 属性定义了数据对象的性质

55、。三、联系1、一对一(1:1)2、一对多(1:N)3、多对多(M:N)四、实体联系图的符号 通常使用实体联系图来建立数据模型 实体:矩形框 关系:菱形框 属性:椭圆形或圆角矩形补充三个实例1、某学校课程管理系统 2、超市系统 3、汽车销售系统思路:先让学生分析系统中的实体,然后根据系统需求再找出实体的属性,最后找出实体间的联系。3.5 数据规范化通常范式来定义消除数据冗余的程度1、 第一范式:每个属性值都必须是原子值2、 第二范式:满足第一范式条件,而且每个非关键字属性都由整个关键字决定。3、 第三范式:满足第二范式条件,而且每个非关键字属性都仅由关键字决定。 3.6 状态转换图一、 状态初态

56、(一个初态)、终态、中间态(0-多个终态)二、 事件引起系统做动作或转换状态的控制信息三、 符号 初态:实心圆 终态:同心圆 中间态:圆角矩形四:例子电话系统状态图思路:让学生回忆电话的工作过程,抽离出状态,然后找出状态之间转换的事件 3.7 其它图形工具一、 层次方框图层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。二、 Warnier图也是用树形结构描绘信息,但是这种图形工具比层次方框图提供了更丰富的描绘手段。三、 IPO图输入、处理、输出图的简称3.8 验证软件需求见教材P703.9案例分析案例1:高校工资管理系统(需求分析)案例2:电子名片管理系统(需求分析)给出需求和需求分析的概念,由此引出问题分析补充知识:需求分析的基本内容和需求工程过程(孙家广的“软件工程”第四章需求工程)对初步的用户手册、软件产品验收测试计划进行阐述为了克服困难,更

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