软件工程(2)

本文详细介绍了面向对象的基本概念,包括对象、类、实例、消息、方法和属性、继承、多态和重载,并对比了面向对象方法学与传统方法学的优缺点。接着,深入探讨了UML建模语言,包括用例图、类图、对象图、包、消息、顺序图、协作图、活动图等,并讲解了UML物理框架机制和扩展机制。最后,阐述了面向对象分析过程、设计准则和动态模型建立,强调了在设计过程中如何进行系统分解、任务管理和数据管理子系统的设计。
摘要由CSDN通过智能技术生成

目录

【考核内容】

【考核要求】

一、面向对象的基本概念

1. 面对对象方法学概念

1.1 对象

1.2 类

​ 1.3 实例

1.4 消息

1.5 方法和属性

1.6 继承

1.7 多态

1.8 重载

2. 与传统方法学比较

3. 面向对象方法学优点

二、面向对象的模型

1. UML简介

1.1 建模必要性

1.2 UML发展

1.3 UML视图

2. 用例图

建立用例模型

2.4 用例间关联

3. 类图

3.3 类的版型

 3.4 类之间关系

4. 对象图

5. 包

6. 消息

7. 顺序图

 8. 协作图

 9. 活动图

三、UML物理框架机制

1. 构件图

2. 配置图

 四、UML扩展机制

1. 标签值

2. 约束

3. 版类

五、面向对象分析

1. 面向对象分析过程

2. 建立功能模型

3. 建立对象模型

3.1 确定分析类

3.2 确定关联

3.3 划分主题

3.4 确定属性

3.5 识别继承

3.6 反复修改


【考核内容】

面向对象的基本概念,面向对象的模型(用例图、类图、状态图、顺序图或事件跟踪图)的符号及其作用;面向对象设计框架;软件重用的概念与重用级别;面向对象编程、面向对象测试。

【考核要求】

(1)掌握面向对象的基本概念;

(2)掌握面向对象的软件工程方法;

(3)掌握对象模型的结构、对象模型的建立、动态模型的建立、功能模型的建立;

(4)掌握面向对象设计系统的基本框架;

(5)理解软件重用的概念与软件重用的内容;

(6)了解面向对象程序设计语言的特点。

一、面向对象的基本概念

传统软件工程方法学适用于中小型软件产品开发;

面向对象软件工程方法学适用于大型软件产品开发。

1. 面对对象方法学概念

1.1 对象

定义:具有相同状态的一组操作的集合,对状态和操作的封装。

 

1.2 类

 对具有相同状态和相同操作的一组相似对象的定义。  类是一个抽象数据类型。

 

1.3 实例

实例是由某个特定类所描述的一个具体对象。   

1.4 消息

要求某对象执行某个操作的规格说明。

 三部分:

  1. 接收消息的对象
  2. 消息名
  3. 0或多个变元

   quadrilateral1.move(1,3)

1.5 方法和属性

  • 方法
    对象执行的操作,即类中定义的服务。
    如:draw(),要给出实现代码。
  • 属性
    类中所定义数据,对客观世界实体具体性质的抽象。
    如:Quadrilateral类中的point1、point2、point3point4。

1.6 继承

子类自动共享基类中定义的属性和方法的机制。

1.7 多态

在类等级不同层次可共享一个方法名,不同层次每个类按各自需要实现这个方法。

优点:

  • 提高程序可复用性(接口设计的复用,不是代码实现复用)
  • 派生类的功能可被基类指针引用,提高程序可扩充性和可维护性。

1.8 重载

  1. 函数重载
    在同一作用域内,参数特征不同的函数可使用相同的名字优点
    1. 程序易于阅读和理解。
    2. 调用者不需记住功能雷同函数名,方便用户;
  2. 运算符重载
    同一运算符可施加于不同类型操作数上面。
    例:23+24        23.0+24.0

2. 与传统方法学比较

3. 面向对象方法学优点

  1. 与人类习惯思维方法一致
    对象是对现实世界正确抽象,问题空间和解空间结构一致。
  2. 稳定性好
    软件系统结构根据问题领域模型建立,功能需求变化不会引起软件结构整体变化,作局部性修改。如从已有类派生新子类实现功能扩充或修改
  3. 可重用性好
    传统软件重用技术:标准函数库。
    面向对象重用技术:类,派生类和创建类的实例
  4. 易开发大型软件产品
    封装性好,易于分解,易于合作开发。
  5. 可维护性好
    稳定性好、容易修改、容易理解、易于测试和调试。

二、面向对象的模型

UML 全称为 Unified Modeling Language目前最流行的面向对象建模语言

1. UML简介

1.1 建模必要性

建模是捕获系统本质的过程.

建模必须使用,标准图形记法 --UML

  • 捕获商业流程
  • 促进沟通
  • 管理复杂性
    将模型划分成不同的视图(结构、行为等);
    用包(
    Package)将视图组织成一棵抽象层次渐深的树形结构.
  • 定义软件构架
  • 促进软件复用

1.2 UML发展

 

 

1.3 UML视图

 

1.用例视图

   定义了系统的外部行为,是最终用户、分析人员和测试人员所关心。该视图定义了系统的需求,因此约束了描述系统设计和构造的某些方面的所有其他视图。

2.设计视图

   描述的是支持用例视图中规定的功能需求的逻辑结构。它由程序组件的定义,主要是类、类所包含的数据、类的行为以及类之间交互的说明组成。

3.实现视图

   描述构造系统的物理组件,这些组件包括如可执行文件、代码库和数据库等内容。这个视图中包含的信息与配置管理和系统集成这类活动有关。

4.进程视图

  进程视图包括形成并发和同步机制的进程和线程。

5.部署视图

  部署视图描述物理组件如何在系统运行的实际环境(如计算机网路)分布

2. 用例图

用例图描述外部执行者actor)与系统的交互,表达系统功能,即系统提供服务。

主要元素:用例执行者。   

用例:执行者与计算机一次典型交互,代表系统某一完整功能。

执行者:描述与系统交互的人或物代表外部实体(如用户、硬件设备或其它软件系统)。

 

建立用例模型

2.1 发现执行者

  • 谁使用该系统;
  • 谁改变系统的数据
  • 谁从系统获取信息
  • 谁需要系统的支持以完成日常工作任务
  • 谁负责维护、管理并保持系统正常运行
  • 系统需要应付那些硬件设备
  • 系统需要和那些外部系统交互
  • 谁对系统运行产生的结果感兴趣

2.2 获取用例

向执行者提出问题获取用例:  

  • 执行者需获取何种功能,需要作什么;
  • 执行者需读取、产生、删除、修改或存储
  • 系统中某种信息;系统发生事件和执行者间是否需要通信。

2.3执行者间关联

泛化关系

2.4 用例间关联

泛化关系

一般与特殊关系

有父用例的行为,可出现在父用例出现的任何地方。添加自己行为(前者检查文本密码,后者检查用户视网膜)。

扩展关系

允许一个用例扩展另一用例提供的功能,与泛化关联类似,有更多规则限制:

基本UseCase必须声明若干扩展点,扩展UseCase只能在扩展点上增加新行为。

扩展用例 指向 基本用例

包含关系

一个基本UseCase行为包含另一个UseCase行为。

Check Credit检查输入的信用卡号是否有效,有足够资金。处理Purchase Ticket用例,总运行Check Credit用例

基本用例 指向 包含用例

3. 类图

类图是面向对象建模最常用的图,描述类与类间的静态关系。

3.1 类属性的语法

[可见性] 属性名[:类型][=初值]

可见性:公有(+)、私有(-)、保护(#)

  • 公有:可被外部对象访问
  • 私有:不可为外部对象访问,只能为本类对象使用
  • 保护:可为本类对象和子类对象访问。

3.2 类操作的语法

[可见性]操作名[(参数列表)] [:返回类型]

3.3 类的版型

(1)边界类

        位于系统与外界的交界处

  1. User interface boundary class
    窗体(form)、对话框(dialog box)、报表(report
  2. External system boundary class
    1. 表示通讯协议(如TCP/IP)的类
    2. 直接与外部设备交互的类
    3. 直接与外部系统交互的类

(2)控制类

每个用例通常有一个控制类,控制用例中的事件顺序,控制类也可以在多个用例间共用。

 (3)实体类

用于对必须存储的信息和相关行为建模的类。

 (4)接口类

   描述一个类或构件服务的操作集,不含属性,只包含方法的声明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值