OOAD之软件工程

来源:互联网 发布:本地域名服务器是什么 编辑:程序博客网 时间:2024/06/05 12:42
在面向对象技术中,实现封装的方式有三种:
第一种是对数据的隐藏,将数据隐藏在方法的背后。
第二种是对实现的隐藏,将实现隐藏在接口背后。
第三种是对变化的隐藏,将变化隐藏于抽象背后。

一、软件工程定义

由于软件系统的规模越来越大,功能越来越多,相应的复杂程度也是越来越高,导致软件开发者难以掌控,也就是软件危机。它的产生促使了软件工程的提出。软件工程就是,用工程学的方法来指导软件开发、产生过程和维护工作。
软件工程的基本思想,就是用工程学的方法进行软件的开发与维护,并对软件生产过程进行工程化的管理。

二、软件工程三要素

软件工程主要包含三个要素:方法、工具和过程。
软件工程方法主要研究软件开发的各项任务的技术方法,为软件开发提供“如何做”的技术,如面向对象,面向过程,面向接口。
软件工具主要研究为运用方法而提供的自动的或半自动的软件工程的支撑环境(即计算机辅助软件工程,CASE)如EA,PD,RR。
软件工程过程主要研究如何将软件工程方法与软件工具相结合,合理、及时地进行软件开发。

三、软件工程六个阶段

1可行性分析阶段

系统分析员在用户的配合下对用户的要求和现有的环境进行深入调查并写出调研报告,从经济可行性、技术可行性、操作可行性、法律可行性等方面研究并论证该项目的可行性,即该项目是否值得去做,是否存在可行的解决办法。
本阶段的主要成果:可行性分析报告。

2需求分析阶段

系统分析员和用户反复讨论和商量,充分交流信息,确定待开发的软件系统“做什么”,确定软件系统的功能需求和非功能需求,用某种方法和工具构件软件系统模型,并编写软件需求规格说明书。
本阶段的主要成果:软件需求规格说明书(Software Requirements Specification,即SRS)。

3系统设计阶段

根据需求分析阶段确定的功能需求和非功能需求,对整个系统进行总体框架设计、详细功能设计和数据库设计等。简单来说,需求分析阶段回答“做什么”的问题,而系统设计阶段要回答“怎么做”的问题。设计阶段又分为概要设计和详细设计。概要设计是以需求分析的结果为依据定义系统的主要构成成分和它们之间的关系。而详细设计是定义每个系统成分内部的构造细节。
本阶段的主要成果:概要设计说明、详细设计说明书、数据库设计说明书。

4系统实现阶段

系统实现阶段,通常也称为编码阶段。本阶段的主要任务:根据详细设计说明书,用某种选定的程序设计语言把详细设计的结果转化成机器可运行的源代码,这是一个编写和调试程序的过程。
本阶段的主要成果:通过单元测试的源代码。

5测试阶段

通过各种软件测试方法和测试工具,使软件的Bug降到最低。
本阶段的主要成果:软件测试报告。

6维护阶段

通过各种必要的维护活动使系统持久地满足用户的需要。
本阶段的主要成果:软件问题报告、软件变动记录、软件维护记录。

四、软件开发的模型及工具

1喷泉模型

喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于采用对象技术的软件开发项目。
该模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性。软件的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分。无间隙指在各项活动之间无明显边界,如分析和设计活动之间没有明显的界限,由于对象概念的引入,表达分析、设计、实现等活动只用对象类和关系,从而可以较为容易地实现活动的迭代和无间隙,使其开发自然地包括复用。
喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。

2通常使用UML统一建模语言

UML(Unified Modeling Language)是专门用来进行软件系统设计和架构建模的一门可视化建模语言,它通过各种图示展示了软件系统的方方面面。
2.1在UML类图中描述具体类
具体类在类图中用矩形框表示,矩形框分为三层:第一层是类名字。第二层是类的成员变量;第三层是类的方法。成员变量以及方法前的访问修饰符用符号来表示:“+”表示public,“-”表示private,“#”表示protected,不带符号表示default
2.2在UML类图中描述抽象类
抽象类在UML类图中同样用矩形框表示,但是抽象类的类名以及抽象方法的名字都用斜体字表示
2.3在UML类图中描述接口
接口在类图中也是用矩形框表示,但是与类的表示法不同的是,接口在类图中的第一层顶端用构造型<<interface>>表示,下面是接口的名字,第二层是方法
3类之间的关系
一个对象可以持有其它对象的数组或者集合。在UML中,通过放置多重性(multipicity)表达式在关联线的末端来表示。多重性表达式可以是一个数字、一段范围或者是它们的组合。多重性允许的表达式示例如下:
数字:精确的数量
*或者0..*:表示0到多个
0..1:表示0或者1个,在Java中经常用一个空引用来实现
1..*:表示1到多个
关联关系又分为依赖关联、聚合关联和组合关联三种类型。
2.4工具
EA
PD
RR
0 0
原创粉丝点击