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