首页 > 编程知识 正文

软件危机与软件工程,软件危机与软件体系结构

时间:2023-05-05 18:34:36 阅读:200253 作者:4097

前言

在1960年之前我们认为,软件技术无所不能,可是到了1960年软件行业爆发了软件危机。美国国家总审计局,在1983年对所有交付政府的软件项目进行了研究。发现只有3%的项目可以按时交付,且质量过关,49%的项目不可用,48%的项目在交付后必须经过重新修改才能使用。
在大公司中,IT项目平均成本超支1.78倍,进度超支2.3倍。项目交付后只有42%的原始需求能在最终版本的产品中实现。
因此软件工程应运而生,本次我将总结软件工程中,面向对象的建模语言UML,并展示它是如何解决软件危机的问题的。

软件危机特征

1.软件开发周期严重超过规定日期
2.软件开发成本严重超标
3.软件质量难以保证

软件危机产生的原因

1.所制作的软件规模逐渐增大,结构越来越复杂
2.软件开发成本严重超标
3.软件质量,难以保证

如果说软件工程的文档,成功的解决了各个受众群体之间的沟通问题,并且通过文档确立了相关的开发计划及运行维护方案,解决了软件开发周期严重超时,运行维护成本超支的问题。那么UML建模语言就是帮助各个受众群体,能够从不同的角度直观的理解软件系统,从而解决结构规模问题的神兵利器。

UML建模语言

1.UML是一种可视化的面向对象建模语言
2.UML描述了系统的动态行为和静态行为,用图形的方式表现了面向对象系统的整个结构
3.UML从不同的角度为系统建模,并形成不同的系统视图。

结构事物

类是对一组具有相同属性,方法,关系和语义的对象的描述

接口

接口描述了一个类或构件的一个服务的操作集。接口仅仅是定义了一组操作的规范,它并没有给出这组操作的具体实现方法。

协作

协作定义了一个交互,它是由一组共同工作以提供某协作的角色和其他元素构成的群体,这些协作行为大于所有元素的各自行为的总和。因此,协作有结构,行为,和纬度。一个给定的类可以参加多个协作。

用例

用例是对一组动作序列的描述,系统执行这些动作将产生一个对特定的参与者有价值且可观察的结果。

主动类

主动类,类的一种,其对象至少拥有一个进程或线程,因此他能启动控制活动。

构件

构件是系统中物理的、可替代的部件,他遵循且提供一组接口的实现。

节点

节点是在运行时存在的物理元素,他表示了一种可计算的资源,他通常至少有一些记忆能力处理能力,一个构件集可以驻留在一个节点内,也可以从一个节点迁移到另一个节点。

行为事物

交互

交互这样一种行为,他由在特定语境中共同完成一定特定任务的一组对象之间交换的消息组成。一个对象群体的行为或单个操作的行为可用一个交互来描述。此外交互还涉及一些其他元素,包括消息,动作序列(由个消息所引起的一系列行为),链接(对象之间的links)

状态机

状态机是这样一种行为,描述了一个对象或一个交互在生命期内响应事件所经历的状态序列。单个类或一组类之间协作的行为可以用状态机来描述。一个状态机涉及到一些其他元素,包括状态转换(从一个状态到另一个状态的流)事件(自发转换的事物)和活动(对一个转换的响应)

分组事物

分组事物是UML模型的组织部分,最主要的分组事物是包

包是 UML中唯一的组织机制,负责将元素组织成组的机制

UML中的关系

关联(Association)

描述了两个或多个类之间的结构性关系

依赖(Dependency)

表示两个事物之间彼此的使用关系

泛化(Generalization)

泛化实际上是一种更具体和普通的关系,具体元素(子元素)的对象可以替代普通元素(父元素)的对象。用这种方法,子元素共享了父元素的结构和行为。因此泛化是对面向对象技术中继承进行建模的UML元素。

实现(Realization)

由一个类元描述了另一个类元保证实现的契约。

UML中的图

用例图

用来描述用户的需求,从用户的角度描述系统的功能,并指出各功能的执行者,强调谁在使用系统,系统为执行者完成哪些功能。

类图

用于定义系统中的类,包括描述类的内部结构和类之间的关系。类图主要用于描述系统的静态结构。

对象图

对象图是类图的一个实例,描述了系统在具体时间点上所包含的对象以及各个对象之间的关系

状态图

用来描述类的对象所有可能的状态以及时间发生时状态的转移条件

活动图

用来描述满足用例要求所要进行的活动以及活动间的约束关系,使用活动图有利于识别系统的并行活动

序列图

描述对象之间的交互顺序,着重体现对象之间消息的发送顺序,同时也显示对象之间的交互过程

协作图

描述对象之间的合作关系,更侧重于说明哪些对象之间有消息的传递

序列图和协作图可以相互转化。

构件图

构件图用来描述代码构件的物理结构以及各构件之间的依赖关系。一个构件可以使一个资源文件,一个二进制文件或者一个可执行文件。

实施图

部署图定义了系统中硬件的物理体系结构,用来描述实际的物理设备以及他们之间的连接关系。

总结

学习完UML视频的前几集,了解了UML的基本组成模块,同时知道了其在软件工程中起到的作用。接下来需要了解rational rose 工具 及各种图的实际使用。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。