收藏 分销(赏)

软件工程统一课件全套教学教程整套电子教案电子讲义.ppt

上传人:天**** 文档编号:6434882 上传时间:2024-12-08 格式:PPT 页数:634 大小:11.39MB
下载 相关 举报
软件工程统一课件全套教学教程整套电子教案电子讲义.ppt_第1页
第1页 / 共634页
软件工程统一课件全套教学教程整套电子教案电子讲义.ppt_第2页
第2页 / 共634页
软件工程统一课件全套教学教程整套电子教案电子讲义.ppt_第3页
第3页 / 共634页
软件工程统一课件全套教学教程整套电子教案电子讲义.ppt_第4页
第4页 / 共634页
软件工程统一课件全套教学教程整套电子教案电子讲义.ppt_第5页
第5页 / 共634页
点击查看更多>>
资源描述

1、,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第一篇 软件工程学概述,第1章,概述,本章的主要目标是介绍软件工程这门,学科,读完你将了解以下基本内容:,软件工程的相关基本概念:软件、软件危机、软件工程、软件生命周期、软件过程等,具体见下述部分介绍。,1,2,软件从业人员的道德和职业问,题对软件工程产业的影响。,1,软件工程的相关基本概念:软件、软件危机、软件工程、软件生命周期、软件过程等,具体见下述部分介绍。,1,软件工程的相关基本概念:软件、软件危机、软件工程、软件生命周期、软件过程等,具体见下述部分介绍。,1,2,2,2,软件工程的相关基本概

2、念:软件、软件危机、软件工程、软件生命周期、软件过程等,具体见下述部分介绍。,1,2,软件从业人员的道德和职业问题对软件工程产业的影响。,软件工程的相关基本概念:软件、软件危机、软件工程、软件生命周期、软件过程等,具体见下述部分介绍。,1,本章的主要目标是介绍软件工程这门,学科,读完你将了解以下基本内容:,当今世界的信息化进程,愈来愈趋向复杂化、人性化和扁平化。,软件工程作为一门工程学科,它的主要目标就是驱使软件系统向高性价比发展。具有实时动态性,抽象、不可触摸,它的面向对象目标不受物理因素限制。,软件工程同时又是一门比较年轻的学科。,“,软件工程,”,这一概念是在,1968年NATO,会议上

3、针对,“,软件危机,”,的议题提出。,1.1 基本概念,构建这些软件系统的早期经验是:个人英雄主义、作坊式非正规的软件开发并不奏效。,投资很大,做得很差。,制作既满足用户要求、又能按期完成并且不超出项目预算的复杂软件仍然存在很多困难。,软件工程自1968年以来已得到了长足的发展。,面向对象、构件、WEB服务及云计算等的扩充和提高已成为现实。,1.1.1 软件,1.1.1.1 软件及组成,计算机软件是与计算机系统操作有关的,程序(Program)、规程、规则,及任何与之有关的,文档和数据,。,1.程序,程序是用程序设计语言描述的、适合于计算机处理的语句序列,软件开发人员根据需求开发出来满足用户。

4、,目前的程序设计语言有三种类型:,机器语言和汇编语言、独立于机器的面向过程的语言以及独立于机器的面向问题的语言,,后两种类型为高级语言。,用于科学计算的FORTRAN,用于事务处理的COBOL,支持结构化程序设计的PASCAL,支持现代软件开发的C、ADA,支持面向对象设计方法的C+、JAVA等。,面向问题的语言是第四代语言(4GL),也称,为非过程式语言。,数据库查询语言(Structure Query Language,,SQL),、,报表语言,、,机床控制专用语言,和,电路设计,专用语言,等都是面向问题的语言。,2.文档,文档(Document)是一种数据媒体和其上所记录的数据。,最新的

5、计算机软件文档编制规范是,GB/T 8567-2006,。,1.系统软件,1.1.1.3 软件的分类,1.系统软件,监控、分析和控制现实世界发生的事件,以足够快的速度对输入信息并在规定的时间内做出反应,这类软件称为实时软件。,2.实时软件,计算机系统软件是计算机管理自身资源(如CPU、内存、外存等)、提高计算机的使用效率并为计算机用户提供各种服务的基础软件。,1.系统软件,此类软件以数值算法为基础,对数值量进行处理和计算。,4.,科学与工程,计算软件,用于处理事务信息,特别是商务信息的计算机软件。,5.事务处理软件,嵌入式计算机系统将计算机嵌入在某一系统中,使之成为该系统的重要组成部分,控制该

6、系统的运行,进而实现一个特定的物理过程。,3.嵌入式软件,此类软件以数值算法为基础,对数值量进行处理和计算。,4.,科学与工程,计算软件,嵌入式计算机系统将计算机嵌入在某一系统中,使之成为该系统的重要组成部分,控制该系统的运行,进而实现一个特定的物理过程。,3.嵌入式软件,嵌入式计算机系统将计算机嵌入在某一系统中,使之成为该系统的重要组成部分,控制该系统的运行,进而实现一个特定的物理过程。,3.嵌入式软件,嵌入式计算机系统将计算机嵌入在某一系统中,使之成为该系统的重要组成部分,控制该系统的运行,进而实现一个特定的物理过程。,3.嵌入式软件,4.,科学与工程,计算软件,此类软件以数值算法为基础,

7、对数值量进行处理和计算。,4.,科学与工程,计算软件,个人计算机上使用的软件包括系统软件和应用软件两类。,7.个人计算机,软件,计算机辅助软件工程(Computer-Aided Software Engineering,CASE)是指软件开发和管理人员在软件工具的帮助下进行软件产品的开发、维护以及开发过程的管理。,8.CASE工具,软件,支持计算机系统产生人类某些智能的软件。人工智能软件常用的计算机语言有LISP和PROLOG等。,6.人工智能软件,个人计算机上使用的软件包括系统软件和应用软件两类。,7.个人计算机,软件,个人计算机上使用的软件包括系统软件和应用软件两类。,7.个人计算机,软件

8、,1.1.1.4 软件的发展阶段,第一阶段,(20世纪50年代初至20世纪60年代初)是计算机系统开发的初期阶段。这时的通用计算机由于价格昂贵、体积大、功耗高、机器不稳定和需要专人维护等原因,只能放在公共的实验室内供大家使用。,第二阶段,(20世纪60年代中期至20世纪70年代末)引进了多用户、多道程序和人机交互等新概念。实时系统可以从多路信号源上采集、处理、分析和转换数据,在相当短的时间输出计算结果。,第三阶段,(20世纪70年代中期至20世纪80年代末)分布式系统、计算机网络、嵌入式计算机系统有了很大发展。微处理器、个人计算机、高性能的桌面工作站具有相当高的性价比,广泛走进了人们工作、生活

9、的各个方面。,第四阶段,(自20世纪80年代末期开始至现在)在很多应用领域,人们开始采用面向对象的技术,专家系统、人工智能软件、构件开发、服务化软件、云计算等开始走向实际应用。,20世纪90年代末,Internet技术。,21世纪,电子商务、电子政务,服务化软件、云计算新型软件模式的出现。,1.1.2 软件危机,1.1.2.1 软件危机的表现,20世纪60年代末至20世纪70年代初,,“,软件危机,”,直到1968年在原西德加米施(Garmish)召开的国际软件工程会议上才被世人所注目。,计算机生物圈的计算机硬件,却有一个可怕的摩尔定律。,人月神话(The Mythical Man-Month

10、)。,没有银弹(No Silver Bullet)。,软件危机概括地包含下述,两方面的问题,:如何开发软件、如何维护数量不断膨胀的已有软件。,软件危机主要有以下一些,典型表现,:,对软件开发成本和进度的估计常常很不准确。,用户对“已完成”的系统不满意很普遍。,软件产品的质量往往靠不住。,软件常常不可维护。,缺失适当的文档资料。,软件成本在计算机系统总成本中的比例逐年上升。,软件开发生产率的速度,远远跟不上计算机的普及 和深入趋势。,1.1.2.2 软件危机的表现,用户对软件需求的描述不精确,存在遗留、二义性、错误的情况经常发生。,软件开发人员对用户需求的理解与用户的本来愿望有差异。,大型软件项

11、目需要组织一定的人力共同参与完成。,软件项目开发人员不能有效、独立自主地处理大型软件的全部关系和各个分支。,缺乏有力的方法学和工具的支持。,软件产品的特殊性和人类智力的局限性导致人们无力处理很多复杂问题。,1.1.2.3 软件危机的克服途径,用现代工程的概念、原理、技术和方法进行软件的开发、管理、维护和更新。计算机科学技术诞生了一个新的研究领域,软件工程,1.1.3 软件工程,1968年,北大西洋公约组织(NATO)召开计算机科学会议,弗里兹.鲍尔(Fritz Bauer)首次提出了,“,软件工程,”,的概念。,1.1.3.1 软件工程的定义,1993年,IEEE对软件工程的定义为:,“,将系

12、统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及有关上述方法的研究,”,。软件工程包括三个基本要素:,方法,、,工具,和,过程,。,1.1.3.2 软件工程的基本原理,著名的软件工程专家B.W.Boehm综合这些学者们的意见并总结了TRW公司多年开发软件的经验,1983年在一篇论文中提出了软件工程的,7条基本原理,。,1.用分阶段的生命周期计划严格管理,2.阶段评审,3.严格的产品控制,尽可能重用。,限定每一层的副作用,减少耦合度。,尽可能重用。,4.现代的程序设计技术,7.软件工程实践需不断改进,6.开发人员应少而精,5.结果应能清楚地审查,1.1.3.3 软件工程的目标

13、,可修改性(Modifiability),有效性(Efficiency),可靠性(Reliability),可理解性(Understandability),可维护性(Maintainability),可重用性(Reusability),可适应性(Adaptability),可移植性(Portability),可追踪性(Traceability),可互操作性(Interoperability),1.1.3.4 软件工程的原则,抽象(Abstraction),信息隐藏(Information Hiding),模块化(Modularity),局部化(Localization),一致性(Consist

14、ency),完整性(Completeness),可验证性(Verifiability),1.1.4 软件生命周期,软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程称为软件生存周期(Software Life Cycle)。,软件,生命周期,由,软件定义、软件开发和软件使用维护退役,3个时期。,1.问题定义,要解决的问题是什么?,2.可行性研究,问题定义所确定的问题有行得通的解决,方法吗?此问 题值不值得去解决?,4.总体设计,概括地说,应该怎样实现目标系统?,3.需求分析,为了解决这个问题,目标系统必须要做什么?,5.详细设计,以比较抽象的方式提出解决问题的方法。,6.编码和

15、单元测试,写出容易理解和容易维护的正确程序模块。,7.,综合测试,通过各种类型的测试使软件达到预定的要求。,9.软件的维护,维护是对软件产品进行修改或对需求变化做出响应的过程。,8.软件的使用,软件的使用是软件发挥社会和经济效益的重要 实施阶段。,10.软件的退役,终止对软件产品的支持,软件停止使用。,1.1.5.1 瀑布模型,瀑布模型(Waterfall Model)也称之为软件生存周期模型,由W.Royce于1970年提出。,此模型根据软件生存周期各个阶段的任务,逐步进行阶段性变换,直至得到用户确认的产品为止。,以充分有效的软件需求有效为前提,具有顺序性、依赖性、推迟时间以及质量保证的特点

16、。它也不是,“,万能药,”,,主要体现在:,在软件开发初始阶段指明软件系统的全部需求是不太可,能的,有时甚至是不现实的。,需求确定后,用户和软件项目负责人要等相当长的时间,(经过设计、实现、测试、运行)才能得到一份软件的,最初版本。,“,瀑布模型是借助文档驱动的,”,是它的另一个主要缺点,。,快速开发原型的本质是,“,快速,”,,实现的途径有三种,:,利用个人计算机模拟软件系统的人机界面和人机交互方式。,开发一个工作原型,实现软件系统的部分功能,而这部分,功能是重要的,也可能是容易产生误解的。,找来一个或几个正在运行的类似软件,利用这些软件向客,户展示软件需求中的部分或全部功能。,1.1.5.

17、2 原型模型,建造原型的过程如图1.5所示,。,原型不能称之为软件,,UNIX Shell和超文本都是广泛的快速原型语言,近年来,广泛地使用第四代语言(4GL)构建快速原型。,1.1.5.3 增量模型,增量模型(Incremental Model)也称为,渐进,模型,它把软件产品作为一系列的增量构件来设计、编码、集成和测试。,增量模型的优点,体现在:,增量模型分批逐步地向用户提交产品,整个软件产品被分解成许多增量构件,开发人员一个构件接一个构件地向用户提交产品。,增量模型逐步增加产品功能,可以使用户有较充裕的时间学习和适应新产品功能性能,从而减少一个全新的软件可能给客户带来的不适应。,增量模型

18、的实施也存在一些,难度,:,在把每个新的增量构件集成到现有软件体系结构时,必须不破坏原来已开发出的产品。,在设计软件体系结构时,必须使之利于扩充,向现有产品中加入新构件的过程也要简单、方便,即体系结构必须是开放的。,图1.6描绘了一种高风险的增量模型。,1.1.5.4 螺旋模型,螺旋模型(Spiral Model)是TRW(汤普森-拉美-伍尔德里奇公司,简称为TRW)的B.Boehm于1988年提出的。它基于软件生存周期模型与原型模型的结合。,螺旋模型主要由,四部分组成,:需求定义、风险分析、工程实现和评审。,螺旋模型在支持大型软件开发方面具有广泛的应用前景,适用于面向规格说明、面向过程和面向

19、对象的软件开发模型。,1.1.5.5 喷泉模型,喷泉模型(Fountain Model)是一种典型的,面向对象,软件开发模型,迭代是它的主旨思想。,“,喷泉,”,这个词体现了面向对象软件开发过程迭代和无缝的特性,如图1.8。,1.1.5.6 基于四代技术的模型,第四代语言(4GL)是R.Ross于1981年提出,采用四代技术开发软件的模型,如图1.9,1.1.5.7 变换模型,变换模型(Transformational Model)是基于形式化规格说明语言及程序变换的软件开发模型。,软件需求分析确定后,用某种形式化的需求规格说明语言(如VDM的META-IV、CSP和Z)描述,生成形式化的规格

20、说明。,形式化规格说明语言及其变换描述的研究方兴未艾,人们采用的,技术手段,主要有:,基于模型的规格说明及其变换技术;,基于代数结构的规格说明及其变换技术;,基于时序逻辑的规格说明及验证技术;,基于可视形式化技术的规格说明等等。,1.1.5.8 组合模型,组合的方式,有两种:,第一种方式是以一种模型为主,嵌入另外一种或几种模型。,第二种方式是建立软件开发的组合模型。,1269111314的路径规划软件开发,就是生存周期模型,带有原型的生存周期模型,开发路径为13269111314,1327111314是原型模型,1581291314是螺旋模型,14111314是基于四代技术的模型,1.1.6

21、软件工程面临的挑战,软件工程在21世纪面临以下,三大挑战,:,遗留系统的挑战,多样性的挑战,交付上的挑战,1.2 软件工程从业人员的职业和道德素养,软件工程人员必须坚持诚实正直的行为准则包括:,机密;,工作能力;,知识产权;,计算机滥用;,在这一方面,职业协会和机构肩负重任。ACM(美国计算机协会)、IEEE(电气和电子工程师协会)和英国计算机协会等组织颁布了职业行为准则或职业道德准则,凡是加入这些组织的成员必须严格遵守。,软件工程人应当遵守以下,八条原则,:,公众感;,客户和雇主;,产品;,判断力;,管理;,职业感;,同事;,自己 ;,在我们的职业生涯中,每个人都会面临这些困惑,幸运的是,在

22、多数情况下,这些困惑要么不严重,要么不难解决。,当雇主的行为不合乎道德时,职业工程人员的处境尤为艰难。安全不是绝对的。,另一个道德问题是军事项目和核项目的参与。雇主和所有雇员事先相互沟通各自的观点非常重要。,软件工程从业人员的道德问题研究最好要联系软件工程的实际,而不是将其作为一个孤立的问题来研究,且不能仅仅归为一个单纯的哲学问题来看待。,习题1,假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师观看,告诉他们及早发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清除它们是不现实的,并向你举例:如果一个故障是编码错误造成的,那么一个人怎么能在设计阶段清除它

23、呢?应该怎么驳斥他?,职业工程人员是否应该像医生或律师一样要颁发资格证书?分组讨论一下。,THANKS,第1篇 软件工程学概述,第2章,计算机系统工程,基于计算机系统工程的各类相关因素。,1,系统模型与建模、系统规格说明及评审。,2,本章的主要目标是介绍计算机系统工程的概念、,解释系统工程的因素特征与软件工程及软件工程,师的关系。读完本章,你将了解以下基本内容:,大多数软件项目都是为了满足某种需求的软件产品而建立起的一个系统化工程过程,这些软件必须在计算机系统的支持下才能工作。,计算机系统工程是指构造基于计算机系统有关的过程、,方法和技术,这是一种问题求解的活动序列。,大多数软件项目都是为了满

24、足某种需求的软件产品而建立起的一个系统化工程过程,这些软件必须在计算机系统的支持下才能工作。,2.1 系统与系统工程,1.功能特性,2.非功能特性,系统的复杂性很大程度体现在可靠性上,,系统总体的,可靠性,涉及到三方面:,硬件可靠性;,软件可靠性;,系统操作员可靠性。,2.1.1 系统总体特性,2.1.1 系统总体特性,系统工程师根据系统需求为硬件系统指派任务,产生硬件需求。硬件工程式分为3个阶段,:,第一阶段:,制定开发计划,经评审确定项目成本预算和工程进度;,展开详细需求分析,经评审确定硬件规格说明。,第二阶段:,设计分析,以图的形式展现设计结果;,必要时建造原型,并不断完善测试原型;,制

25、造分析,画出硬件生产图。,第三阶段:,按照质量保证计划和要求生产硬件产品。,2.1.3 软件和软件工程,软件与硬件、软件工程与硬件工程分别是基于计算机系统和基于计算机的系统工程的重要组成部分。,目前,大多数基于计算机系统的软部件,都是软件工程师自行开发的。软部件由源程序、数据和文档三部分组成。,系统软件和应用软件的接口由系统软件决定。无论基于计算机的系统功能和性能如何,它们的结构都可以用IPO(Input Process Output)模型表示。,借助软件工程的过程、方法和工具,软件工程师开发基于计算机的系统。无论是哪种软件工程过程模型,它们都是涵盖软件项目的定义、开发、验证、提交和维护阶段。

26、,软件,定义,阶段的任务:,制定项目规划;,需求分析与定义;,确定软件性能和资源约束;,定义软件要素验收标准;,软件开发阶段的任务是完成软件总体结构及,数据设计、过程设计和编码三部分;,软件工程过程的最后阶段是软件验证、提交和维护。,验证,的任务,:,制定软件测试计划和过程,产生测试文档和,测试题目;,对软件的每个模块进行单元测试、验证模块,的功能是否符合设计要求;,对整个软件进行综合测试;,组织专家和用户对测试结果进行评审;,总体结构设计和数据设计,的任务,:,设计模块结构;,定义界面并建立数据结构;,软件,过程设计,的任务,:,详细描述软件规格说明中的每一个模块;,对模块进行评审。通过评审

27、模块的详细描述将构,成详细设计规格说明;,软件,编码,的任务:,用恰当的编程语言对详细描述模块进行编码,生 成 程序;,评审通过后,进行,软件提交,,主要任务包括:,对已生成的记录和内部文档进行整理、分类和存档;,开发用户手册、建立适当的配置控制机制;,将软件提交给用户,必要时还应负责把软件安装到,用户环境中;,2.1.4 人机交互工程,现在,,“,友好的人机交互,”,已成为计算机系统的一项重要技术衡量指标,人机工程也已成为基于计算机系统开发的一项重要内容。,人机工程,一般包括以下几个步骤:,活动分析;,动作定义与设计;,人机交互的对话设计;,用户环境设计;,设计原型;,2.1.5 数据库工程

28、,一个基于计算机的系统工程,至少包括三个部分:硬件工程、软件工程和人机交互过程。,开发一个数据库系统是一项复杂而庞大的软件工程项目,一般情况下称之为,数据库工程,,它主要完成以下任务:,调查用户的信息需求和对信息处理的要求;进行可行性论证;提出成本预算和工作计划等;,论证、选择和购置支持数据库系统的硬件和软件;,设计与实现;,数据库中的数据是按照系统确定的范围和用户的需求收集、整理、储存;,数据库管理人员(比如DBA)是数据库工程的重要组成部分;,2.2 系统模型与建模活动,输入-处理-输出(IPO)结构是系统建模的基础,,它将基于计算机的系统换算成一个信息变换模型。,同时,Hatley和Pi

29、rbhai补充了用户界面、维护及自,测试方面的处理内容。,2.2.1 系统模型,1.结构图,系统工程师用结构模板开发系统模型。,图2.5是某某传送线在线货物分类系统的总体关系图。,系统工程师借助ACD可以定义各子系统的结构,流图(AFD)。,2.系统结构规格说明,结构图规格说明(ADS)描述了子系统信息以及子系统之间的控制流和信息流。每个子系统的结构图规格说明都应包括系统模板说明书、系统结构数据字典和系统结构互连图。,2.2.2 系统建模及模拟,为了减少在真实环境中试验的风险和代价,在系统分析和设计阶段普遍采用系统建模和模拟技术。,从时间维角度,可以把系统模型定位为静态模型和动态模型,静态模型

30、不关乎时间参数,动态模型则不同。从计算机系统参数的随机性来看,模型有确定和随机之分。,系统模拟是用一个系统表示某个实际系统或抽象系统中选定行为的特征。,主要步骤,是:,分析问题、确定模拟的目标,;,建立模型,;,运行模型并分析模拟结果,;,若需要,修改模型,;,撰写模拟文档,;,2.3 系统规格与评审说明,表2.1,系统规格说明目录,2.3.1 系统规格,I.引言,A.文档的范围和目的,B.概述,1.目标,2.约束,II.功能和数据描述,A.系统结构,1.结构关系图,2.结构关系图描述,III.子系统描述,A.子系统N的结构图规格说明,1.结构流图,2.系统模型说明,3.性能问题,4.设计约束

31、条件,5.分配系统部件,B.结构字典,C.结构连结图和说明,IV.系统建模和模拟结果,A.用于模拟的系统模型,B.模拟结果,C.特殊性能,V.项目问题,A.开发成本,B.进度,VI.附录,2.3.2 评审说明,系统规格说明评审过程分,管理评审,和,技术评审,两个阶段。,管理评审,需回答:,系统是否有一个稳定的商业需求,系统开发是否有意义?,系统开发是否有市场价值或社会效益?,系统开发是否还有其他选择方案?,系统各个部分的开发风险怎样?,系统开发所需资源是否已具备?,成本和进度计划是否恰当?等等。,技术评审,需回答:,系统功能复杂性是否与开发风险、成本和进度评估保持一致?,系统采用的术语、系统与

32、子系统功能定义是否足够详细?,系统与环境的接口以及各子系统间的接口定义是否详细?,系统各个部分的开发风险怎样?,系统规格说明是否指明系统性能、可靠性和可维护性方面的问题?,系统规格说明是否为后续的硬件工程、软件工程打下坚实的基础?,系统规格说明评审完成后,系统开发可以按照硬件工程、软件工程、数据库工程、人机交互等并行展开。从第三章起,主要任务介绍软件工程。,习题2,讨论并描述系统分析员应该具备的主要知识结构和基本素质。软件开发人员和用户分别担任系统分析员有哪些优势和缺陷。找出并改正程序逻辑中的错误。,THANKS,第2篇 软件定义,第3章,可行性研究,本章的主要目标是介绍软件可行性研究阶段的相

33、,关工作。读完本章,你将了解以下基本内容:,1,软件可行性论证需考虑的几个因素、任务和执行过程。,1,软件可行性论证需考虑的几个因素、任务和执行过程。,1,软件可行性论证需考虑的几个因素、任务和执行过程。,1,3,可行性研究报告中成本/效益分析、技,术分析和可行性方案的分配与权衡。,可行性研究中相关的系统流程元素及模型表达。,2,软件可行性论证需考虑的几个因素、任务和执行过程。,1,软件可行性论证需考虑的几个因素、任务和执行过程。,1,2,可行性研究中相关的系统流程元素及模型表达。,2,只要资源和时间不加以限制,所有的项目都是可行的。,软件可行性研究的目的,就是用最小的代价在尽可能短的时间内确

34、定问题是否能够解决。,可行性研究的主旨不是解决问题,而是确定问题是否值得去解,首先需要进一步分析和澄清问题定义,其次,在澄清了问题定义后,分析人员应该导出系统的逻辑模型。,3.1 可行性研究的任务,可行性,一般来讲,主要集中在以下几个方面:,技术可行性。,经济可行性。,操作可行性。,法律可行性。,抉择。,可行性研究需要的时间长短取决于工程的规模,,通常情况下,可行性研究的成本只是预期工程,总成本的5%10%。,3.2 可行性研究过程,典型的可行性研究过程需要下述一些,步骤,:,复查系统规模和目标,研究目前正在使用的系统,导出新系统的高层逻辑模型,再次定义问题,导出和评价供选择的解法,推荐行动方

35、针,草拟开发计划,书写文档并提交审查,3.3 系统流程元素及模型表达,需要在可行性研究阶段大体设计未来物理系统的概貌,这里需要系统流程图。,系统流程图是概括描绘物理系统的传统工具。基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件(程序、文档、数据库、人工过程等)。,3.3.1 元素符号,表,3.1,基本符号,符号,名 称,说 明,处理,能改变数据值或数据位置的加工或部件,例如程序、处理机、人工加工等均为处理,输入,/,输出,表示输入或输出,是一个广义的不指明具体设备的符号,连接,指出转到图的另一部分或从图的另一部分转来,通常在同一页上,换页连接,指出转到另一页图上或由另一页图转来,数据流

36、,用来连接其他符号,指明数据流动方向,表,3.2,系统符号,名 称,说 明,穿孔卡片,表示用穿孔卡片输入或输出,也可表示一个穿孔卡片文件,文档,通常表示打印输出,也可表示用打印终端输入数据,磁带,磁带输入输出,或表示一个磁带文件,联机存储,表示任何种类的联机存储,包括磁盘、磁鼓、软盘和海量存储器件等,磁盘,磁盘输入输出,也可表示存储在磁盘上的文件或数据库,磁鼓,磁鼓输入输出,也可表示存储在磁鼓上的文件或数据库,显示,CRT终端或类似的显示部件,可用于输入或输出,也可既输入又输出,人工输入,人工输入数据的脱机处理,例如,填写表格,人工操作,人工完成的处理,例如,会计在工资支票上签字,辅助操作,使

37、用设备进行的脱机操作,通信链路,通过远程通信线路或链路传送数据,3.3.2 举例,该装配厂使用一台小型计算机处理更新库存清单主文件和产生定货报告的任务。零件库存量的每一次变化称为一个事务,由放在仓库中的CRT终端输入到计算机中;系统中的库存清单程序对事务进行处理,更新存储在磁盘上的库存清单主文件,并且把必要的定货信息写在磁盘上。最后,每天由报告生成程序读一次磁盘,且打印出定货报告。,某装配厂有一存放零件的仓库,仓库中现有的各种零件的数量以及每种零件的库存量临界值等数据记录在库存清单主文件中。当仓库中零件数量有变化时,应及时修改库存清单主文件,如果哪种零件的库存量少于它的库存量临界值,则应报告给

38、采购部门以便定货,规定每天向采购部门送一次定货报告。,该装配厂使用一台小型计算机处理更新库存清单主文件和产生定货报告的任务。零件库存量的每一次变化称为一个事务,由放在仓库中的CRT终端输入到计算机中;系统中的库存清单程序对事务进行处理,更新存储在磁盘上的库存清单主文件,并且把必要的定货信息写在磁盘上。最后,每天由报告生成程序读一次磁盘,且打印出定货报告。,某装配厂有一存放零件的仓库,仓库中现有的各种零件的数量以及每种零件的库存量临界值等数据记录在库存清单主文件中。当仓库中零件数量有变化时,应及时修改库存清单主文件,如果哪种零件的库存量少于它的库存量临界值,则应报告给采购部门以便定货,规定每天向

39、采购部门送一次定货报告。,3.4 成本/效益分析,开发一个软件也是投资,期望将来获得更大的经济效益。经济效益通常表现为减少运行费用或(和)增加收入。,3.4.1 成本估计,代码行技术,任务分解技术,自动估计成本技术,表3.3 典型环境下各个开发阶段需要使用的人力的百分比,任务,人力(,%,),可行性研究,5,需求分析,10,总体设计和详细设计,25,编码和单元测试,20,综合测试,40,总计,100,3.4.2 成本/效益分析方法,成本/效益分析的第一步是估计开发成本、运行费用和新系统将带来的经济效益。,为了保险起见,以后在进行成本/效益分析时一般假设生命周期为5年。,通常用利率的形式表示货币

40、的时间价值。,通常用投资回收期衡量一项开发工程的价值。所谓投资回,收期就是使累计的经济效益等于最初投资所需要的时间。,衡量工程价值的另一项经济指标是工程的纯收入,也就是在整个生命周期之内系统的累计经济效益(折合成现在值)与投资之差。这相当于比较投资开发一个软件系统和把钱存在银行(或贷给其他企业)这两种方案的优劣。,4.投资回收率,3.纯收入,设想把数量等于投资额的资金存入银行,每年年底从银行,取回的钱等于系统每年预期可以获得的效益。,1.货币的时间价值,2.投资回收期,3.5 技术分析,用于技术分析的方法,有数学模型和优化技术、概率和统计、排队论、控制论等。,图3.2说明在模型化的,过程中信息

41、的整个流程:,BlanChard和Fabrychy为系统的技术分析定义了一套使用模型的准则。,模型应表现出待评估系统构成的动态特性,其操作应当尽量接近真实的结果;,模型应包括所有的相关元素,并且保证其可靠性;,模型应突出表现与现实问题最相关的因素,对次要的因素,要谨慎地回避它们;,模型设计应尽量简单,并应很快解决问题。,模型设计应制定要求,以便修改或者扩充,并在需要时进行评估。,3.6 方案的分配与权衡,一旦解决了与分析任务相关的问题,就应开始考虑候选的解决方案,对候选系统配置方案的整个评估过程如图3.3和图3.4所示,习题3,1.问题描述:为方便储户,某银行拟开发计算机储蓄系统。储户填写的存

42、款单或取款单由业务员输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。,对这段问题描述进行分析,画出相关的系统业务流程。,2.问题描述:为方便旅客,某航空公司拟开发一个机票预订系统。旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统校对无误即印出机票给旅客。,对这段问题描述进行分析,画出相关的系统业务流程。,3.问题描述:住院病人主要由护士护理,这样做不仅需要大量

43、护士,而且由于不能随时观察危重病人的病情变化,可能会延误救治时机。某医院打算开发一个以计算机为中心的患者监护系统,医院对患者监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。,对这段问题描述进行分析,画出相关的系统业务流程。,THANKS,第2篇 软件定义,第4章,结构化需求分析,本章的主要目标是介绍软件需求分析的相关工作。,读完本章,你将了解以下基本内容:,需求分析的基础。,1,结构化面向数据流的需求分析。

44、,2,结构化需求分析常用工具。,3,4.1 需求分析基础,软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。最终形成需求规格说明。,需求分析阶段是介于系统分析和软件设计阶段间的重要桥梁。,需求分析可分为问题分析、需求描述及需求评审3个阶段。,4.1.1 需求分析的任务与原则,在问题分析阶段,分析人员通过对问题及其环境的理解、分析和综合,清除用户需求的模糊性、歧义性和不一致性,并在用户的帮助下对相互冲突的要求进行折衷。,需求描述阶段的主要任务是以需求模型为基础,考虑到问题的软件可解性,生成需求规格说明和初步的用户手册。,在需求评审阶段,分析人员需在用户和软件设计人员的配合下

45、对自己生成的需求规格说明和初步的用户手册进行复核,以确保软件需求的全面性、精确性和一致性,并使用户和设计人员对需求规格说明及用户手册的理解达成一致。,4.1.2 需求初步获取技术,访谈与会议,4.1.2.1,需求实例,4.1.2.4,深入用户工作环境,4.1.2.2,用户与开发人员一同参与,4.1.2.3,4.1.2.4 需求实例,问题描述:,家庭保安市场正以每年40%的速度增长。现希望建立,一种基于微处理器的家庭保安系统,它能够识别异常,事件并采取相应的防护措施。这些异常事件应包括非,法进入、火灾、水淹等等。一旦异常情形被相应的传,感器探测出来,系统应自动通过电话向监控中心报警。,此外,系统

46、还应该允许户主对其行为实施程序式控制。,针对此问题,软件研发联合小组首先制定工作制度:每,次会议开始前必须有确定的议程,参加者需要针对各项,议程进行充分的准备,这种准备不仅是思想上的,还应,成形于文字。,最后,初步分析活动应形成结论性文档,该文档将作为后续分析活动的基础。经过初步分析后,“家庭保安系统”的部分需求文档(不包括约束条件和测试标准)如下:,“家庭保安系统”的软件允许用户在安装时进行系统配置,实施对传感器的监控并通过控制面板与用户进行信息交互。,配置操作包括:,(1)指定每一传感器的种类和编号;,(2)设置开、关机密码;,(3)指定报警电话号码;,(4)指定报警延迟和电话重拨延迟时间

47、(以秒为单位)。,当软件系统接收到传感器发出的数据后,判断是否出现异常事件。若是,则在指定的延迟时间内拨报警电话,拨号操作将按照重拨延迟反复进行,直至电话接通。然后软件系统负责报告时间、地点和异常事件的性质。,开机后,软件系统负责显示当前工作状态,接收并处理用户指令。,4.1.3 需求建模,软件目标系统可通过模型刻画所涉及的信息、处理功能及实际运行时的外部行为。,建立软件模型是分析活动的焦点。,4.1.4 问题抽象、问题分解与多视点分析,抽象方法要求分析人员在分析过程中善于捕捉用户描述或问题本身所固有的一般特殊关系,首先关注一般问题的解决途径,进而指导特殊问题的求解。,问题分解也是普遍适用于分

48、析各阶段的一般性方法。,与问题分解相对应,还有一种,“,视角分解,”,方法广泛应,用于需求分析活动,这就是所谓的,“,多视点分析,”,。,4.1.5 支持需求分析的快速原型技术,一旦确定采用快速原型技术后,分析人员不妨遵循以下步骤:,利用各种分析技术和方法,生成一个简化的需求规格说明;,对前述需求规格说明进行检查、修订后,生成设计规格说明。一般情况,为了快速生成原型,软件的设计只关心软件的总体结构、用户界面和数据设计,不注重过程内部的控制流程设计。,在现有工具或环境的帮助下快速生成可运行的软件原型并进行测试、完善和改进。可用的主要工具有可重用的软部件库、用户界面 自动生成器等快速原型支持工具;

49、,将原型提交给用户评估并征询改进意见;,上述过程将反复迭代进行,直到用户完全认可为止。,4.1.6 需求规格说明与评审,它必须服务于以下目标:,便于用户、分析人员和软件设计人员进行理解和交流。,支持目标软件系统的确认。,控制系统进化过程。,需求规格说明书的主体内容包括功能与行为需求描述以及非行为需求描述两部分。,需求规格说明书基本构架和内容见计算机软件文档编制规范(GB/T8567-2006)。,4.1.6.1 需求规格说明书的目标和内容,4.1.6.2 需求评审,衡量需求规格说明书质量的标准按重要性次序排列为正确性、无歧义性、完全性、可验证性、一致性、可理解性、可修改性和可追踪性。,正确性。

50、,需求规格说明书中的功能、行为、性能描述必须与用户对目标软件产品的期望相吻合。,无歧义性。,对于用户、分析人员、设计人员和测试人员而言,需求规格说明书中的任何语法单位只能有唯一的语义解释。,完全性。,需求规格说明书不能遗漏任何用户需求。,可验证性。,对于规格说明书中的任何需求,均应该对技术和经济上的可行性手段进行验证和确认。,一致性。,需求规格说明书的各部分内容之间不能相互矛盾。,可理解性。,追求上述目标不应妨碍需求规格说明书对于用户、设计人员和测试人员的易理解性。,可修改性。,需求规格说明书的格式和组织方式应保证能够比较容易地接纳后续的增删改,并使修改后的说明书能够较好地保持其他各项属性。,

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服