《软件工程与软件建模.ppt》由会员分享,可在线阅读,更多相关《软件工程与软件建模.ppt(28页珍藏版)》请在三一办公上搜索。
1、UML系统设计与分析主讲 王军委,理解软件工程与软件建模理解面向对象技术的相关概念掌握UML的基础知识熟练应用Rational Rose理解Rational统一过程,方法,工具,过程,教学目标,成功项目的3方面支持,如何学好这门课程?,阅读与思考。包括课本在内的大量基础知识是学好这门课程的关键。课前的预习。课前预习是掌握知识的前提,不要指望着在课堂上会讲解到所有的问题!需要自己去发现问题!课堂的听讲。课本知识内容是不完善的,课堂上的讲解会有大量内容的补充,必须记好笔记,必须认真听讲。上机的实践。所学即所用。这不是一门要求背诵概念的课程!运用所学的知识去真正做一个系统出来!遇到问题并解决问题的过
2、程就是提高自己能力的过程!英文能力。你会遇到一个全英文的开发环境(Rational Rose),这需要你在学习这门课程的同时,提高自己的英文能力。做一个角色的转换,把自己当作一名见习的软件工程师。,参考书籍,软件工程概述软件建模简介,软件工程概述,软件工程的提出软件工程的基本原理软件工程的5个阶段,软件工程概述,一、软件工程的提出,1946年,世界上第一台电子计算机在美国研制成功;,软件工程概述,一、软件工程的提出,20世纪50年代,软件诞生,随之出现软件从业人员;计算机系统发展早期(20世纪60年代中期以前)软件开发处于一种自由软件开发方式;20世纪60年代中期到70中期,软件业进入一个大发
3、展时期,但软件开发方法仍沿用早期的自由软件开发方式,导致软件危机的出现;软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。,软件工程概述,一、软件工程的提出,1968年,前北大西洋公约组织的科技委员会召集了一批一流的程序员、计算机科学家以及工业界人士在德国召开了一次以讨论和制定摆脱“软件危机”为主题的国际学术会议,会议上第一次提出了“软件工程(Software Engineering)”这一术语。软件工程是一门建立在系统化、规范化、数量化等工程原则和方法上的,关于软件开发各个阶段的定义、任务和作用的工程学科。,软件工程概述,一、软件工程的提出,软件开发方法学软件工具软件工程环境,
4、软件度量项目估算进度控制人员组织配置管理项目计划,软件开发技术,项目管理,软件工程,软件工程概述,二、软件工程的基本原理,用分阶段的生命周期计划严格管理 坚持进行阶段评审,二、软件工程的基本原理,用分阶段的生命周期计划严格管理 坚持进行阶段评审,实行严格的产品控制 采用现代程序设计技术 结果应能清楚地审查 开发小组的人员应该少而精 承认不断改进软件工程实践的必要性,软件工程概述,三、软件工程的5个阶段,软件工程概述,为了更加清晰地研究软件工程,经典的软件工程思想将软件开发分成5个阶段:需求分析(Requirements Capture)阶段 系统分析与设计(System Analysis an
5、d Design)阶段 系统实现(System Implementation)阶段 系统测试(System Testing)阶段 系统维护(System Maintenance)阶段。在如今的软件产业中,每个阶段都有专职的软件开发人员,而并非仅仅是系统实现阶段的程序员。,三、软件工程的5个阶段,软件工程概述,1、需求分析(Requirements Capture)阶段,软件需求是指用户对目标软件系统在功能、行为、性能和设计约束等方面的期望。需求分析阶段就是通常所讲的开始阶段。这一阶段的一个重要任务是与客户进行大量的沟通,彻底弄清楚客户对系统的要求以及客户的实际情况(经济因素、技术因素、管理因素
6、),并在此基础上建立系统模型,将用户的需求精确化、完全化,最终形成需求规格说明。需求分析是整个系统开发过程的基础,在软件技术的发展过程中,需求分析的工作量在不断增加,地位也在不断提高(无论是时间、人力还是资金方面)。据统计,微软公司的Windows系列操作系统在开发过程中投入高达上亿美元,营销过程中更是超过数亿美元。,三、软件工程的5个阶段,软件工程概述,1、需求分析(Requirements Capture)阶段,为什么要把需求分析放在第一阶段?,需求必须要在系统构建以前发现,如果在构建的过程中才发现客户的需求,或者更糟糕的是,在客户已经开始使用你的产品时才发现需求,那么代价将是巨大的。那不
7、仅会损害你的声誉,而且会导致你不得不付出资金和人力重新开始对系统进行修改或构建。,这个阶段,涉及到的人员会有项目经理(进行资金、人力和时间等的规划),以及与客户沟通的业务分析人员(详细记录并获得客户的需求),三、软件工程的5个阶段,软件工程概述,2、系统分析与设计(System Analysis and Design)阶段,这一阶段包括分析与设计两个阶段,完成这一阶段的是系统分析员。系统分析员所做的工作是:根据客户的需求,分析如何使用软件系统进行实现,并最终设计出整个软件系统,交付程序员进行编码(系统实现)。系统分析是站在软件系统的角度来分析问题的,而需求分析仅仅考虑客户的业务需要,因此系统分
8、析往往和需求分析进行相结合,对系统分析员的要求也较高:他不仅要对计算机的专业知识有深刻的理解,还要对相关业务有一定的了解。,三、软件工程的5个阶段,软件工程概述,3、系统实现(System Implementation)阶段,就是通常所说的编码阶段,程序员就工作在这一层。他们根据系统分析员已经设计好的系统,进行分工开发。当今的软件开发产业中,编码所占的比重正在逐渐缩小。系统分析员所承担的工作已经具体细化到了设计出软件系统的具体的类,程序员仅仅需要在设计好的程序架构中,按照要求填写进去适合的内容就可以了。因此,程序员又被称为“高级打字员”。,三、软件工程的5个阶段,软件工程概述,4、系统测试(S
9、ystem Testing)阶段,软件测试是软件工程过程的一个重要阶段,主要任务是通过各种测试思想、方法和工具,对软件需求分析、设计和编码各阶段的产品进行检测,并修正软件中出现的错误(Bug),保证软件开发产品的正确性、完全性和一致性。软件测试以检查软件产品内容和功能特性为核心,是软件质量保证的关键步骤,也是软件开发目标实现的重要保障。,三、软件工程的5个阶段,软件工程概述,5、系统维护(System Maintenance)阶段,系统维护是在软件产品交付之后进行的修改工作。软件工程思想很大程度上是为了解决软件维护的问题而提出的。,软件的可维护性软件的可复用性软件开发的自动化,软件工程的三大目
10、的,系统的维护问题一直是软件开发面临的最困难的问题。,软件工程概述,现在我们可以看到,软件开发过程中,会涉及到很多人员:项目经理、系统分析员、程序员、测试员、系统支持我们这门课主要关注在哪个方面?系统分析员,一、例子,软件建模简介,给自己的爱犬盖窝。为自己的家庭建一座房子。为自己的公司建造一幢写字楼。,二、软件的建模,软件建模简介,软件的开发就像前面例子中提到的建筑一样像盖狗窝一样的开发软件,开发不出高质量的大规模软件成功的软件开发要像盖房子或建造写字楼一样,要有规划蓝图每个失败的软件项目都有特殊的原因,但成功的软件项目在许多方面是相似的。软件组织获得成功的因素很多,但是一个基本的因素就是对建
11、模的使用,三、模型的实质和作用,软件建模简介,建模是对现实系统进行适当的过滤,用适当的表现规则描绘出简洁的模型。模型是现实系统的简化,它是抓住现实系统的重要方面(主要方面)而忽略次要方面的一种抽象。模型提供系统的蓝图,它既反映现实系统,又不等同于该现实系统。,三、模型的实质和作用,软件建模简介,作用:促进项目有关人员对系统的理解和交流 有助于挑选出代价较小的解决方案 可以缩短系统的开发周期,四、成功建模的三要素,软件建模简介,五、建模的目标和原则,软件建模简介,目标:便于开发人员展现系统;允许开发人员指定系统的结构或行为;提供指导开发人员构造系统的模板;记录开发人员的决策。,原则:认真选择模型 每个模型可以有多种表达方式 模型要能切合实际 孤立的模型是不完整的,六、通用建模语言的必要性,软件建模简介,首先,面对众多的建模语言,用户没有能力区别不同语言之间的差别,因此很难找到一种比较适合其应用特点的语言。其次,众多的语言实际上各有千秋。最后,虽然不同的建模语言大多雷同,但仍存在某些细微的差别,极大地妨碍了用户之间的交流。,下节课前的准备工作,面向对象技术简介,