面向对象技术UML教程摘录——第一章:软件危机及软件工程

来源:互联网 发布:js字符串方法 编辑:程序博客网 时间:2024/05/04 02:51

<!-- /* Font Definitions */ @font-face{font-family:宋体;panose-1:2 1 6 0 3 1 1 1 1 1;mso-font-alt:SimSun;mso-font-charset:134;mso-generic-font-family:auto;mso-font-pitch:variable;mso-font-signature:3 135135232 16 0 262145 0;}@font-face{font-family:"/@宋体";panose-1:2 1 6 0 3 1 1 1 1 1;mso-font-charset:134;mso-generic-font-family:auto;mso-font-pitch:variable;mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal{mso-style-parent:"";margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;mso-pagination:none;font-size:10.5pt;mso-bidi-font-size:12.0pt;font-family:"Times New Roman";mso-fareast-font-family:宋体;mso-font-kerning:1.0pt;} /* Page Definitions */ @page{mso-page-border-surround-header:no;mso-page-border-surround-footer:no;}@page Section1{size:612.0pt 792.0pt;margin:72.0pt 90.0pt 72.0pt 90.0pt;mso-header-margin:36.0pt;mso-footer-margin:36.0pt;mso-paper-source:0;}div.Section1{page:Section1;} /* List Definitions */ @list l0{mso-list-id:1205483886;mso-list-type:hybrid;mso-list-template-ids:756721068 -260126534 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}@list l0:level1{mso-level-start-at:2;mso-level-text:(%1);mso-level-tab-stop:58.5pt;mso-level-number-position:left;margin-left:58.5pt;text-indent:-37.5pt;}@list l0:level2{mso-level-number-format:alpha-lower;mso-level-text:"%2/)";mso-level-tab-stop:63.0pt;mso-level-number-position:left;margin-left:63.0pt;text-indent:-21.0pt;}@list l0:level3{mso-level-number-format:roman-lower;mso-level-tab-stop:84.0pt;mso-level-number-position:right;margin-left:84.0pt;text-indent:-21.0pt;}@list l0:level4{mso-level-tab-stop:105.0pt;mso-level-number-position:left;margin-left:105.0pt;text-indent:-21.0pt;}ol{margin-bottom:0cm;}ul{margin-bottom:0cm;}-->

1      一个软件系统的开发可以从两个方面进行刻画:

              一方面:软件开发过程,从软件需求、总体设计、详细设计、代码实现、测试到最终产品的提交,以及后期的软件维护及再开发过程,这方面要求软件开发具有连续性,开发个阶段得到的产品要求在逻辑上相互一致;

              另一方面:软件开发过程中所设计的各种资源,它们包括参与开发的各种工作人员、硬件资源和软件资源,这些资源在使用过程中需要进行协调和管理。

              正是这两个方面之间的相互作用,形成了完整的软件开发活动。目前软件开发中存在的问题,究其原因,往往是由于在这两个方面上控制不当,或协调不一致造成的。

 

(2)       软件工程的目的:

要在规定的时间、规定的开发费用内开发出满足用户需求的高质量的软件系统。这里所说的高质量不仅是指错误率低,还包括好用、易用、可移植、易维护等要求。

 

       3抽象:

              一般说来,抽象又可以分为过程抽象和数据抽象。

              过程抽象是广泛使用的一种抽象形式。任何一个有明确功能的操作都可被使用者作为单个的实体看待,尽管这个操作实际上可能由一系列更低级的操作来完成。在实际应用中,将处理分解成子步骤是对付复杂性的一个基本方法。

              数据抽象定义了数据类型和施加于该类型上的操作,并限定了数据类型的值只能通过这些操作来修改和读取。数据抽象是一个强有力的抽象机制,是控制复杂性的一个重要方法。

 

       4)模块:

              一般地,对模块的要求是高内聚(cohesion),低耦合(coupling)。

              高内聚:是指在一个模块中应尽量多地汇集逻辑上相关的计算资源。

              低耦合:指的是模块之间的相互作用应尽量少。

      

       5)结构化方法和面向对象方法

              结构化方法和面向对象方法对现实世界采用了不同的映射方法。

              在结构化方法中,现实世界被映射为功能的集合;

              在面向对象方法中,现实世界中的实体及其相互关系被映射为对象与对象间的关系,实体之间的相互作用被映射为对象间的消息发送,以及其他类似的各种映射关系。

也就是说,面向对象的模型对现实世界的映射更直观、更有对应关系。

 

       6)类和对象

               类是静态的,类的语义和类之间的关系在程序执行前就已经定义好了。

               对象是动态的,对象是在程序执行时被创建和删除的。


       7)封装(encapsulation

               封装提供了两种保护。首先封装可以保护对象,防止用户直接存取对象的内部细节;其次,封装也保护了客户端,防止对象实现部分的变化可能产生的副作用,即实现部分的改变不会影响到相应客户端的改变。


       8)多态

                多态属于运行时的问题,而重载是编译时的问题。


       9)消息(message

                消息就是向对象发出的服务请求。它包含了提供服务的对象标识、服务标识,输入信息和回答信息等。

                面向对象方法的一个原则就是通过消息进行对象之间的通信。消息可以包括同步消息和异步消息,如果消息是异步的,则一个对象发送消息后,就继续自己的活动,不等待消息接收者返回控制,而函数调用往往是同步的,消息的发送者要等待接收者返回。

原创粉丝点击