软件工程讲义_第1页
软件工程讲义_第2页
软件工程讲义_第3页
软件工程讲义_第4页
软件工程讲义_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程讲义第一章:软件工程概念软件的概念和特点:概念:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列,数据是使程序能正常操纵信息的数据结构。特点:(1) 软件具有抽象性。(2) 软件没有明显的制造过程。(3) 软件没有老化问题。(4) 软件对计算机系统有依赖性。(5) 软件的开发至今手工。(6) 软件本身是复杂的。(7) 软件成本相当昂贵。(8) 相当多的软件工作涉及到社会因素。软件的分类:1. 按功能划分:系统软件、支撑软件、应用软件2. 按规模划分:微型、小型、中型、大型、甚大型、极大型3. 按工

2、作方式划分:实时处理软件、分时软件、交互式软件、批处理软件4. 按服务对象的范围划分:项目软件、产品软件软件的发展和软件危机:计算机软件经历了三个发展阶段: 程序设计阶段,约为50至60年代 程序系统阶段,约为60至70年代 软件工程阶段,约为70年代以后几十年来最根本的变化体现在: 人们改变了对软件的看法。 软件的需求是软件发展的动力。 软件工作的范围从只考虑程序的编写扩展到涉及整个软件生存周期。软件危机归结起来有: 缺乏软件开发的经验和有关软件开发数据的积累,使开发工作的计划很难制定。 软件需求在开发的初期阶段提得不够明确,或是未能得到确切的表达。 开发过程没有统一的、公认的方法论和规范指

3、导,参加的人员各行其事。 未能在测试阶段充分做好检测工作,提交用户的软件质量差,在运行中暴露出大量的问题。软件开发中的方法:对于开发中小型系统的人员来说,理解优秀方法学的基础是非常必要的。1. 方法学有助于对编码设置规则2. 即使是了解方法学的基本步骤,也能增进对问题的理解,提高解决方案的质量。3. 在每个阶段,方法学指定了下一步的工作,我们不会为下一步要干什么而烦恼4. 方法学有助于编写出扩展性更高、可靠性更高、更容易调试的代码。软件开发中的几个阶段(生命周期):计算机软件的生命周期分为六个步骤:1. 制定计划。2. 需求分析。3. 软件设计。4. 程序编写。5. 软件测试。6. 运行维护。

4、软件生命周期的模式:瀑布模型:优势:有指定的起点和终点,过程最终可以被用户和开发者识别。缺点:不切合实际螺旋模型:喷泉模型:软件工程的目标:软件工程的三要素:方法、工具、过程软件工程的目标:1. 付出较低的开发成本;2. 达到要求的软件功能;3. 取得较好的软件性能;4. 开发的软件易于移植;5. 需要较低的维护费用;6. 能按时完成开发工作,及时交付使用。软件工程的原则: 抽象。 信息隐蔽。 模块化。 局部化。 确定性。 一致性。 完备性。 可验证性。可视化建模语言:UML 定义:UML 是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示。特点:1. 不是一种可视化的程序设计语

5、言,而是一种可视化的建模语言。2. 不是工具或知识库的规格说明,而是一种建模语言规格说明是一种表示的标准。3. 不是过程也不是方法,但允许任何一种过程和方法使用它。 UML的作用: 易于使用,表达能力强。 与具体的实现无关。 与具体的过程无关。 简单并且可扩展。 为OOA/D中涌现出的高级概念提供支持。 与最好的软件工程实践经验集成。 可升级具有广阔的适用性和可用性。 有利于面对对象工具的市场成长。UML的发展:1. 探索阶段:Booch、Rumbaugh和Jacobson联合行动。2. UML的标准化:对象管理小组(OMG)在1997年1月提交UML 1.0版的文档及其他资料。3. 工业化:

6、继续促进统一建模语言的推广。 UML的组成:UML在软件开发过程中的应用:1、 需求分析:UML的用例视图可以表示客户的需求。2、 分析:分析阶段主要考虑所要解决的问题,可用UML 的逻辑视图和动态视图描述。3、 构造:在构造或程序设计阶段,把设计阶段的类转换成某种面向对象语言的代码。4、 测试:对系统的测试通常分为单元测试、集成测试、系统测试和接受测试几个不同级别第二章:静态视图.静态视图是UML的基础,模型中静态视图的元素是应用中有意义的概念。静态视图中的关键元素是类元及他们之间的关系,类元是描述事物的建模元素。类元包括类、接口和数据类型等。静态视图包括类图、对象图和包图。类:类元是用来描

7、述结构和行为特性的机制,它包括类、接口、数据类型、组件、节点等等。 类是对一组具有相同属性、操作、关系和语义的对象的描述,在UML中用专门的图标表示:是分成三个分隔区的矩形,顶端存放类的名字,中间存放类的属性、属性类型和初始值,底端存放操作、操作参数和返回值类型。类名:是每个类型必须具有的用于与其他类相互区别的字符串属性:描述类代表的事物所具有的特征,基本语法为:可见性属性名:类型=初始值 属性的可见性主要包括:public、private、protected 三种,分别用+、- 、#表示。操作:对类的对象所能做的事情的抽象,基本语法为:可见性操作名(参数表):返回值类型关系:在进行系统建模时

8、,不仅要抽象出形成系统词汇的事物,还必须对这些事物间的关系进行建模。关系是事物间的联系,在类的关系中最常用的四种为:依赖、泛化、关联、实现。依赖:依赖是指在两个元素之间,对一个元素的改变会影响另一个元素。在实际的建模中类元之间的依赖关系表示为某一类元以某种方法依赖于其他类元。UML建模中常用依赖指明一个类把另一个类作为他操作特征标记中的参数,用- > 表示,箭头指向被依赖的对象。泛化:泛化是一般事物(超类或父类)和该事物的较为特殊的种类(子类)之间的关系。泛化意味着子类对象可以用在父类对象可能出现的地方,用表示,箭头从子类指向父类。泛化有两个主要用途:定义多态、描述继承关联:关联是一种结

9、构关系,它指明一个事物的对象与另一个事物的对象间的联系。关联用一条连接相同类或不同类的实现表示:在实际建模过程中,在关联实例中说明两个类间存在多少个相互连接是很重要的。 关联多重性语法如下:修饰 语意 01 0或1 1 为1 0*或0n 0或更多 1*或1n 1或更多 *或n 0或更多 在关联中存在另一个比较常用的概念:聚合 表示部分与整体关系的关联,他用端点带有空心菱形的线段表示:实现:实现是规格说明和其现实间的关系,它表示不继承结构而只继承行为。大多数情况下,实现关系用来规定接口和实现接口的类或组件之间的关系。实现关系用一个带空心三角形的箭头表示,箭头方向指向接口:- 类图的创建:1、 静

10、态视图和动态视图2、 类图和对象图3、 建立类图的步骤a、 研究分析问题领域,确定系统的需求b、 发现对象和对象类,明确类的属性和操作c、 发现类之间的静态关系,一般与特殊关系,部分和整体关系,研究类之间的继承性和多态性d、 设计类和联系e、 绘制对象类图并绘制相应得说明第三章:用例图UML中用例图用于对系统、子系统或类的行为进行可视化建模,以便使系统的用户更容易理解这些元素的途径,也便于软件开发人员最终实现这些元素。UML中的用例图描述了一组用例、参与者以及它们之间的关系,因此用例图包括以下3个方面内容:用例、参与者、用例间的关系。参与者:1. 参与者是系统外部的一个实体,它以某种方式参与了

11、用例的执行过程。2. 参与者可以是人、另一个计算机系统或一些可运行的进程。3. 参与者是一个群体概念,代表的是一类能使用某个功能的人或事, 不是指某个个体。 4. 参与者与系统进行通信的收发消息机制,与面向对象编程中的消息机制很像。5. 参与者可以分成主要参与者和次要参与者,也可以分成主动参与者和被动参与者。6. 在获取用例前要先确定系统的参与者,可以根据以下一些问题来寻找系统的参与者:Ø 与该系统交互的是什么系统Ø 谁从系统获取信息Ø 谁提供信息给系统Ø 有什么事情发生在固定的事件用例:用例是一个叙述型的文档,用来描述参与者使用系统完成某个事件使的事情

12、发生顺序。 图形上的用例用一个椭圆来表示,用例的名字可以书写在椭圆的内部或下方。识别用例:识别用例最好的办法就是从分析系统的参与者开始,考虑每个参与者是怎样使用系统。在识别用例的过程中,通过以下的几个问题可以帮助识别用例:1. 特定参与者希望系统提供什么功能;2. 系统是否存储的检索信息,如果是,这个行为由哪个参与者触发。3. 当系统改变状态时,通知参与者吗?4. 存在影响系统的外部事件吗?5. 是哪个参与者通知系统这些事件。用例间的关系:用例除了与其参与者发生关联外,还可以参与系统中的多个关系,这些关系包括:泛化关系、包含关系和扩充关系。 关系功能表示法关联参与者与其参与执行的用例之间的通信

13、途径>扩展在基础用例上插入基础用例不能说明的扩展部分用例泛化用例之间的一般和特殊关系,其中特殊用例继承了一般用例的特性并增加了新的特性包括在基础用例上插入附加的行为,并且具有明确的描述示例一:第四章:动态视图(时序图)在建立好静态模型的基础上,需要进一步分析和设计系统的动态结构,并建立相应的动态模型。动态模型描述了系统随时间变化的行为,这些行为是用从静态视图中抽取的瞬间值的变化来描述的。在UML中,动态模型主要是建立系统的交互图和行为图。交互图包括时序图和协作图;行为图包括状态图和活动图。时序图:交互图描述了一个交互,它由一组对象和他们之间的关系组成,并且还包括在对象间传递的消息。时序图

14、也叫做顺序图,是强调消息时间顺序的交互图,描述了系统中类和类之间的交互,它将这些交互建模成消息交换。在UML中,参与交互的各个对象在时序图的顶端水平排列,每个对象的底部绘制一条垂直虚线,当一个对象向另一个对象发送消息时,此消息开始于发送对象底部的虚线,终止于接受对象底部的虚线,这些消息用箭头表示,对象收到消息后,此对象把消息当做执行某种动作的命令:例:购票时序图在时序图中,包括以下元素:类角色、生命线、激活期、消息时序图的用途:1、 时序图强调按时间展开的消息传达,对动态行为的可视化非常有效。2、 UML交互图用于对系统的动态行为建模,交互图又分为时序图和协作图,时序图用于描述对象间交互的时间

15、顺序,协作图用于描述对象间的交互关系。3、 时序图与交互图的区别“a) 时序图有生命线b) 时序图有激活期时序图的建模技术:协作图:协作图是对一次交互中有意义的对象和对象间的链建模。对象和关系只有在交互中才有意义,类元角色描述了一个对象,关联角色描述了协作关系中的一个链。协作图用几何排列来表示交互作用中的各个角色,附在类元角色上的箭头代表消息,消息的发生顺序用箭头处的编号说明。协作图用于表示一个类操作的实现,可以说明类操作中用到的参数和局部变量以及操作中的永久链。例:订票交互协作图活动图:活动图是UML中描述系统动态行为的图之一,它用于展现参与行为的类的活动或动作活动是在状态机中一个非原子的执

16、行,由一系列的动作组成,动作由可知性的原子计算组成。状态机是展示状态与状态转换的图,通常一个状态依附于一个类,并且描述一个类的实例。状态机包含了一个类的对象在其生命周期间所有状态的顺序以及对象对接收到的事件所产生的反应。状态机有两种可视化方式:状态图、活动图。活动图用于描述一个过程或操作的工作步骤,状态图用于描述一个对象的状态以及状态的改变。例:其中:活动用圆角矩形表示,一个活动结束自动引发下一个活动,活动间用带箭头的连线连接,箭头指向下一个活动。活动图的起点用实心圆表示,终点用半实心圆表示。动作状态:1. 动作状态是以执行指定动作,并在此动作完成后通过完成变迁转向另一个障碍而设置的状态。2.

17、 这里所指出的动作有3个特点:原子性的、不可中断的、瞬时的。 3. 动作状态用带圆端的方框表示 4. 动作状态是一定具有入口动作和至少一条引出迁移的UML符号。活动状态:1、 活动状态可以被理解成一个组合,它的控制流由其他活动状态或动作组成2、 活动状态的特点是:1. 它可以被分解成其他子活动或动作状态。2. 它能够被中断,占有有限的事件。3、 活动状态内部的活动可以用另一个状态机描述,如果某活动状态是只包括一个动作的活动状态,那它就是动作状态。4、 在UML中,动作状态和活动状态的图标都是圆端的方框。只是活动状态可以有附加的部分,例如可以指定入口动作、出口动作、状态动作以及内嵌状态机。 转移

18、:1、当一个动作状态或活动状态结束时,该状态就会转换到下一个状态,这就是无触发转移或称为自动转移。2、无触发转移实际上是没有任何特定的事件触发的转移,即当状态结束工作时就自动的发生转移。3、活动图的初始状态用实心球表示,终止状态用半实心球表示。分支:分支用来描述软件对象在不同的判断结果下所指向不同的动作。分支用一个菱形表示,可以有一个进入转换和两个或多个输出转换,在每个输出转换上有监护条件表达式保护,只有表达式的值为true时,该输出路径才有效。分叉和汇合:建模过程中,可能会遇到对象在运行时存在两个或多个并发运行的控制流。在UML中,可以使用分叉把路径分成两个或多个并发流,然后使用结合,同步这

19、些并发流。一个分叉表示把一个控制流分解成两个或多个并发运行的控制流,每个控制流都是独立的,既可以是真正的并发,也可以是时序或交替的。汇合代表两个或多个并发流同步发生,当所有的控制流都到达汇合点后,控制才能继续。泳道:泳道将活动图的活动状态分组,每一组表示负责那些业务组织。在活动图里,泳道区分了不同的活动状态,每一个活动都只能明确属于一个泳道。在活动图里泳道区分了活动的不同职责,在泳道活动中,每一个活动都只能明确地属于一个泳道活动图的用途:1. 活动图用于对系统的动态行为建模。2. 活动图描述了从活动到活动的流。3. 活动图实际上是状态图的特殊形式。4. 在UML中,可以把活动图作为流程图来使用

20、,用于对系统的操作建模。 第五章:项目管理管理的意义1. 软件公司中核心员工需要拥有两类知识:管理知识和技术知识。2. 程序员应该既懂技术又懂一部分管理。管理的定义:1、管理可以有很多角度的定义,一般而言,我们可以把管理理解成领导、也可以理解为决策、还可以理解为协调组织。 2、管理是通过有效地计划、组织、控制和激励、领导等活动来协调人、财、物的配置以达到更好地组织目标的过程。管理的作用:管理是一门软科学,它同时具有科学和艺术两方面的特点。Ø 科学的一面表现为它真实的反映了客观规律。Ø 艺术的一面表现在背熟了管理规则不一定能够进行有效地管理。 培养一种管理理念,对于技术人员而

21、言Ø 能有效地促进技术人员理解企业制度、岗位规范;Ø 能理解专业分工协作的前提条件和重要性;Ø 能在大的项目中有序地展开工作;Ø 时刻用时间、成本、质量来衡量自己的工作,改进不足,提高团队工作效率。Ø 让软件开发在和谐的环境高效率的组织中顺利的开展。 管理的原则:1. 统一领导和指挥。2. 制度与纪律。3. 权利与责任。4. 公平原则。 一般化管理:1. 一般化管理在这里是管理中一般都要涉及的一个基本活动。2. 管理的基本流程。 3. 管理的基本流程要素分组。 项目:1. 项目的定义。2. 项目的特征:临时性、独立性 3. 项目与运作的对比。

22、4. 项目与战略的关系。 项目管理:1. 项目管理的定义。2. 项目管理的过程。 3. 项目管理三角形。项目管理过程:1. 为了更好地管理项目我们把项目过程分为若干阶段:初始化阶段,计划阶段,执行阶段、监督与控制、收尾阶段。2. 简单过程管理是:计划、执行、检查、总结。 初始阶段:初始阶段主要任务是正式的启动一个新的项目。许多工作在项目正式启动之前已经完成了。这些工作不在项目过程之内。 计划阶段:计划阶段主要任务确定项目范围,开发项目管理计划,安排项目活动。计划阶段主要任务列表:1. 开发项目计划;2. 开发范围管理计划;3. 创建WBS;4. 定义活动;5. 为活动分配资源;6. 制定成本预算方案;7. 确定质量计划;8. 创建沟通计划;9. 开发风险管理计划; 执行阶段:执行主要是完成项目计划规定的目标,这一阶段主要是为实现计划而进行的人与资源的协调。 执行阶段主要任务列表:1. 指挥和管理工程的执行;2. 实现质量保证;3. 开发团队能力;4. 及时地沟通; 监督与控制阶段:监督与控制主要是监视项目的执行及时地纠正的不合适的项目活动,需要的时候要控制项目的执行阶段。监督与控制的主要任务列表:1. 监控项目工作;2. 变更管理;3. 范围控制;4. 成本控制;5. 进度控制;6. 质量控制;7. 团队管理;8. 风险控制;9. 合同管理; 收尾阶段:收尾阶段主要是有序

温馨提示

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

评论

0/150

提交评论