管理信息系统L4_第1页
管理信息系统L4_第2页
管理信息系统L4_第3页
管理信息系统L4_第4页
管理信息系统L4_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

管理信息系统L4规划、分析与设计部分教学基本要求掌握常用的软件需求分析的方法掌握常用的软件设计的方法掌握软件测试的基本方法了解软件过程与管理的方法及文档(分析、设计)结合前台开发工具课程完成一个IS的全部环节参考教材教材

《软件工程》

清华大学出版社卢潇2005年1月参考书

《实用软件工程》第二版

清华大学出版社郑人杰1997年4月参考书《软件工程实用实践教程》

清华大学出版社吴洁明等2003年8月参考书《系统分析师教程》第一版

全国计算机技术与软件专业技术资格(水平)考试办公室组编清华大学出版社罗晓沛等2003年6月UML文档1 软件工程概述1.1软件的概念、特点和分类

一、软件技术的发展历程

第一代(1946-1956年):程序设计阶段。

采用“个体生产方式”

“Software”=“Placeasequenceofinstructionstogethertogetthecomputertodosomethinguseful”.User

Computer第二代(1956-1968年):程序系统阶段——“软件工程”学科诞生。

采用“生产作坊方式”

§1.1软件的概念和分类ProgrammerUser

Computer

ComputerbecamecheaperandmorecommonHighlevellanguageswereinvented第三代(1968年至今):软件工程阶段

Middletolate1960s:Trulylargesoftwaresystemswereattempted.

作坊式的开发方法不能胜任目前:软件产业在世界经济中已经占有举足轻重地位§1.1软件的概念和分类计算机软件发展的三个阶段及其特点

早期

第二阶段第三阶段第四阶段

面向批处理

多用户

分布式系统

强大的桌面系统

有限的分布

实时

嵌入“智能”

面向对象技术

自定义软件

数据库

低成本硬件

专家系统

软件产品

消费者的影响

人工神经网络

并行计算

网络计算机19501960197019801990至今Evolutionofsoftware

软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。软件=程序+数据+文档

程序是按事先设计的功能和性能要求编写的指令序列;

数据是使程序能正常操纵信息的数据结构;

文档是与程序开发、维护和使用有关的图文材料。 注:程序并不是软件,程序只是软件的组成部分。§1.1软件的概念和分类二、软件的概念三、软件的分类1、按软件的功能进行划分:系统软件:如OS、DBMS、设备驱动程序、通信处理程序等支撑软件:如文本编辑软件、文件格式化程序、磁盘向磁带向数据传输的程序、程序库系统以及支持需求分析、设计、实现、测试和支持管理的软件等应用软件:如各种MIS软件、工程与科学计算软件、系统仿真软件、计算机辅助教学软件等§1.1软件的概念和分类2、按软件规模分类类别参加人员数研制期限源程序行数

微型

1 1~4周0.5k小型1 1~6月1k~2k

数值计算或数据处理,通常没有与其它程序的接口。需要按一定的标准化技术、正规的资料书写以及定期的系统审查。只是没有大题目那样严格。中型2~5 1~2年5k~50k

软件人员之间、与用户之间的联系、协调的配合关系。因而计划、资料书写以及技术审查需要比较严格地进行。应用程序和系统程序。系统的软件工程方法是完全必要的。§1.1软件的概念和分类大型5~20 2~3年50k~100k

编译程序、小型分时系统、实时控制系统等。二级管理,若干小组,每组5人以下。人员调整往往不可避免,新手的培训。采用统一的标准,实行严格的审查是绝对必要的。甚大型100~10004~5年1M(=1000k)

若干个子项目,每一个子项目都是一个大型软件。子项目之间具有复杂的接口。如远程通信系统、多任务系统、大型操作系统、大型数据库管理系统、军事指挥系统通常具有这样的规模。很显然,这类问题没有软件工程方法的支持,它的开发工作是不可想象的。极大型2000~50005~10年1M~10M

军事指挥、弹道导弹防御系统等。3、按软件工作方式划分:

实时处理软件分时软件交互式软件批处理软件4、按软件服务对象的范围划分:

项目软件产品软件§1.1软件的概念和分类5、按使用的频度进行划分:低频度使用频繁使用6、按软件失效的影响进行划分:高可靠性软件一般可靠性软件§1.1软件的概念和分类第1章 软件工程概述1.2软件危机(SoftwareCrisis)一、软件危机Early1960s:Veryfewlargesoftwareprojectsweredonebysomeexperts.§1.2软件危机Middletolate1960s:Trulylargesoftwaresystemswereattempted.例:

1963年,美国飞往火星的火箭因为一个软件错误而爆炸1967年8月23日,原苏联”结盟一号”载人宇宙飞船,也由于忽略了一个小数点,在进入大气层时因打不开降落伞而烧毁。美国IBM公司在1963年至1966年开发的IBM360机的操作系统。这一项目花了5000人一年的工作量,最多时有1000人投入开发工作,写出了近100万行源程序。......据统计,这个操作系统每次发行的新版本都是从前一版本中找出1000个程序错误而修正的结果。......这个项目的负责人F.D.Brooks事后总结了他在组织开发过程中的沉痛教训时说:“......正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。......程序设计工作正像这样一个泥潭,......一批批程序员被迫在泥潭中拼命挣扎,......谁也没有料到问题竟会陷入这样的困境......”。IBM360操作系统的历史教训成为软件开发项目的典型事例为人们所记取。SoftwareCrisis!§1.2软件危机

Windows95有1000万行代码

Windows2000有5000万行代码例:Exchange2000和Windows2000开发人员结构Exchange2000Windows2000项目经理25人约250人开发人员140人约1700人测试人员350人约3200人§1.2软件危机 因此,SoftwareCrisis实际上是20世纪60年代末70年代初,西方工业发达国家经历的一场“软件危机”。这场软件危机表现在:一方面软件十分复杂,价格昂贵,供需差日益增大另一方面软件开发时又常常受挫,质量差,指定的进度表和完成日期很少能按时实现,研制过程很难管理,即软件的研制往往失去控制。我们称软件开发和维护过程中所中遇到的这一系列严重问题为软件危机。 §1.2软件危机

是软件的特点及开发方法决定的软件是一种逻辑实体,而不是具体的物理实体。因而它具有抽象性软件的生产与硬件不同,在它的开发过程中没有明显的制造过程在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题二、产生软件危机的原因§1.2软件危机软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性软件的开发至今尚未完全摆脱手工艺的开发方式软件本身是复杂的实际问题的复杂性程序逻辑结构的复杂性软件成本相当昂贵相当多的软件工作涉及到社会因素§1.2软件危机§1.2软件危机简单讲:软件技术面临的问题

规模复杂性问题生产率

如何解决??──软件工程从管理和技术两方面研究如何更好地开发和维护计算机软件

§1.2软件危机1软件工程概述1.3软件工程一、软件工程的定义

定义一:1968年由NATO(北大西洋公约组织)在德国Garmish召开的学术会议上,FeitzBauer首先提出了“软件工程”概念。

“软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软件而确立和使用的健全的工程原理(方法)。”定义二:IEEE【IEE83】给出的软件工程定义:

“软件工程是开发、运行、维护和修复软件的系统方法。”定义三:IEEE【IEE93】给出了一个更加综合的定义:

“将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中的方法的研究。”

主要思想是强调在软件开发过程中需要应用工程化原则的重要性§1.3软件工程质量保证层过程层方法层二、软件工程的主要研究内容:

Softwareengineeringlayers工具层§1.3软件工程为软件工程方法提供了自动或半自动的软件支撑环境,使用工具可以有效地改善过程,提高开发的效率,降低成本软件工程—一种层次化技术提供了软件开发的各种方法,包括如何进行软件需求分析和设计、实现设计、测试和维护等过程层将方法和工具结合在一起,它定义了过程框架,目的是保证软件能够被及时地,高质量和合理地开发出来全面的质量管理和需求推动软件过程不断改进,从而导致了更加成熟的软件工程方法的不断涌现软件工程是一门交叉学科软件开发技术:软件开发方法学软件开发过程软件工具和软件工程环境软件工程管理:软件管理学软件工程经济学软件心理学

§1.3软件工程

软件工程所包含的内容不是一成不变的,随着人们对软件系统的研制开发和生产的理解,应用发展的眼光看待它。1983年,著名软件工程专家B.W.Boehm提出软件工程的7条基本原理严格按照软件生命周期各阶段的计划进行管理坚持进行阶段评审实施严格的产品控制:基准配置管理采用先进的程序设计技术结果应能清楚地审查开发小组的人员应该少而精承认不断改进软件工程实践的必要性§1.3软件工程三、软件工程基本原理软件工程技术的两个特点

强调规范化

强调文档化软件工作的范围只考虑编写程序

涉及整个软件生存周期扩展到§1.4软件过程和软件生存期1.4软件开发过程模型软件开发过程模型(生命周期模型):是指反映整个软件生命周期中系统开发、运行、维护等实施活动的一种结构框架,是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。软件开发过程模型也常称为软件过程模型或软件生存周期模型或软件工程范型。

模型的选择:应基于软件的特点和应用领域。一、瀑布模型(WaterfallModel)§1.4软件开发过程模型可行性研究与计划需求分析设计编码运行维护测试定义阶段开发阶段维护阶段开发软件不仅仅是编程§1.4软件开发过程模型传统瀑布模型开发软件的特点1.阶段间具有顺序性和依赖性。2.推迟实现的观点。3.每个阶段必须完成规定的文档;每个阶段结束前完成文档审查,及早改正错误。缺点:应付需求变化的能力非常弱──对已开发出的系统进行修改,不但造成开发成本提高、交付期延期,最关键的是会大幅度地降低软件的质量§1.4软件开发过程模型二、原型模型(快速原型模型)原型模型包括:抛弃型和演化型两种用户测试运行原型建造/修改原型听取用户意见§1.4软件开发过程模型采用原型模型的软件生存周期分析定义系统需求生成原型系统设计程序设计编码测试运行和维护原型化含原型化的软件生存期三、螺旋模型是一种基于原型化开发的进化模型,适用于规模较大的复杂系统螺旋模型沿着螺线旋转,在四个象限上分别表达四个方面的活动,即:制定计划──确定软件目标,选定实施方案,弄清项目开发的限制风险分析──分析所选方案,考虑如何识别和消除风险实施工程──实施软件开发客户评估──评价开发工作,提出修正建议§1.4软件开发过程模型螺旋模型四、喷泉模型(增量模型)是一类支持OO的、自底向上的开发模型迭代重复演进无间隙各阶段间无明显界限缺点:可能因为反复的迭代导致开发过程的无序性,需要有一个线性过程保证开发过程的顺利进行§1.4软件开发过程模型喷泉模型演化维护确认实现设计分析§1.4软件开发过程模型五、构件组装模型(软件重用技术)§1.4软件开发过程模型 20世纪90年代,软件工程领域提出了软件过程的概念。不同的机构有不同的软件过程同一个机构针对不同的软件项目也可能制定特殊的软件过程

1995年8月,ISO/IEC正式发布了ISO/IEC12207第一版“信息技术软件生存周期过程”国际标准我国则根据该草案于1995年颁布GB/T8566一1995《信息技术软件生存周期过程》国家标准1.5软件过程新的国际标准定义的软件生存过程(1995ISO/IEC12207)软件生存期过程支持过程组织过程主要过程获取过程供应过程开发过程运行过程维护过程文档编制过程配置管理过程质量保证过程验证过程确认过程联合评审过程审核过程问题解决过程培训过程管理过程基础设施过程改进过程§1.5软件过程和软件生存期1.7软件工程的最新发展动向软件工程的研究热点是随着软件技术的发展而不断变化的:最初,如何提高程序员的工作效率──形形色色的软件工具(编辑、编译……)随后,把零散的工具统一起来成为在一定程序上配套的工具箱──形成所谓的CASE接下来,“模型”问题,“瀑布模型”的出现就是要把其他行业中实施工程项目的作法搬到软件行业中业,其隐含的基本假设之一是项目目标固定不变,因此强调一定要把需求彻底搞清楚──不现实,于是,又提出了原型化模型……软件形式语言的研究在当前阶段,除了程序外,大部分软件文档都是用自然语言书写的。自然语言具有模糊性,因此有一部分专家研究“形式化描述语言的应用,以及不同形式化语言之间的转换”构件技术

CORBA(CommonObjectRequestBrokerArchitecture)

COM+(ComponentObjectModel)/DCOM(Distributed……)

JavaBean或Bean质量管理近年来,国际上十分重视“软件生产过程质量管理”,即把软件开发过程中精神活动的“不可见性”变为“可见的”,以及事后可以检查的记录§1.7软件工程的最发展动向1.8软件工程相关的技术规范和标准一、CMM规范(CapabilityMaturityModel)美国CarnegieMellon大学软件工作研究所根据美国国防部的要求制定的规范,描述了不断改进软件过

温馨提示

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

评论

0/150

提交评论