首页计算机计算机软件面向对象软件工程 01 第一讲 软件工程概论.pptx

01 第一讲 软件工程概论.pptx

页数:23页文件大小:233.2 KB来源: 面向对象软件工程ppt课件

本课件先以自动柜员机系统为例概览面向对象的开发过程,比较面向对象方法与结构化方法的差异,随后进入软件工程概论,依次讲解软件工程的目标与原则、软件质量要素与质量控制方法,以及程序设计规则和软件开发规则。

面向对象软件工程课程封面,标示课程名称与所讲授的面向对象方法学整体框架
面向对象软件开发方法学内容结构图,列出OO思想体系与OOA、OOD、OOT三类方法
课程内容体系图示,展示OO思想体系到OOA、OOD、OOT及开发过程与工具环境的递进关系
查看本课件的文字版(共 23 页,供检索与复制)

第1页:面向对象软件工程封面

本课程系统讲授面向对象的软件开发方法学,内容包括 OO 的思想体系、OOA/OOD/OOT 方法、基于 OO 的软件开发过程以及支持工具与环境。

第2页:面向对象的软件开发方法学

面向对象的软件开发方法学主要内容:

  • OO 的思想体系
  • OO 的方法:OOA(面向对象的需求分析方法)、OOD(面向对象的软件设计方法)、OOT(面向对象的软件测试方法)
  • OO 的开发过程
  • OO 的开发工具

第3页:主要内容体系

课程主要内容按下列线索展开:

  • OO 的思想体系
  • OOA
  • OOD
  • OOT
  • 基于 OO 的软件开发过程
  • OO 支持工具/环境

第4页:课程目标

课程目标:

  • 掌握面向对象的软件开发方法学:面向对象的思想体系,面向对象的需求分析、软件设计的技术和方法,面向对象的软件开发工具
  • 能够熟练利用面向对象的方法、技术和工具,进行大、中型软件项目的需求分析、软件设计和软件测试
  • 为未来从事软件方法学的进一步研究奠定软件工程方面的基础

第5页:学习方法与要求

学习方法与要求:

  • 在实践中体会面向对象的软件开发方法学的思想、方法和技术,在实践中提高学习方法
  • 课外实践与课堂教学同步展开
  • 培养自顶向下的抽象思维能力
  • 培养独立解决问题的能力和合作精神

第6页:参考书目

参考书目:

  • 《软件工程》,齐治昌、谭庆平、宁洪,高等教育出版社,2004
  • 《UML 精粹》,Martin Fowler,中译本,2002
  • 《UML 应用建模实践过程》,尤克滨,机械工业出版社,2003
  • 《Mastering UML with Rational Rose》,电子工业出版社,2000
  • 《统一软件开发过程》,Ivar Jacobson 等,机械工业出版社,2002

第7页:ATM系统问题描述

问题描述:建立自动柜员机(ATM)系统软件。

  • 整个 ATM 系统包括 ATM、中央服务器、ATM 系统软件及界面软件
  • ATM 系统软件的任务是处理 ATM 与银行电脑之间的交易:查账、存款、取款
  • 使用本系统的银行有多家,每家银行都有各自的电脑系统,处理其客户的帐号和交易
  • 所有 ATM 均通过一台中央服务器与每家银行的电脑系统通信
  • 对所有从 ATM 上发生的交易,必须记录详细的日志信息
  • 必须考虑系统未来的扩展,如增加 Web 客户端

第8页:OOA建立问题的OOA模型

面向对象的开发过程第 2 步:OOA,建立问题的 OOA 模型。

本页以图示方式给出 ATM 问题域中识别出的对象及其相互关系。

第9页:OOD描述对象如何协作

面向对象的开发过程第 3 步:OOD,描述 OOA 模型中的对象如何协作完成任务。

第10页:OOD描述对象协作(续)

面向对象的开发过程第 3 步:OOD(续),进一步描述 OOA 模型中的对象协作关系与消息传递过程。

第11页:OOP实现CATM类

面向对象的开发过程第 4 步:OOP,根据 OOD 模型生成 C++/Java 程序。

  • class CATM : public CAgent:以编号、名称、位置构造 ATM 对象
  • get/set 函数:getLocation() 返回 ATM 所在位置
  • 命令函数:login() 刷卡登录并返回会话号,logout() 结束会话
  • 私有属性 m_strLocation 保存 ATM 位置

第12页:OOP实现CAccount类

根据 OOD 模型生成的 CAccount 类(C++ 实现示例):

  • 以客户编号、客户姓名和初始储蓄额构造账户对象
  • get/set 函数:getCustomerID()、getCustomerName()
  • 命令函数:deposit() 按金额与存期类型存款,draw() 按金额取款
  • 私有成员 m_transactionRecord 记录交易流水

第13页:OO方法与结构化方法的区别

面向对象方法与结构化方法的区别
方法核心特点
OO 方法对现实世界中的实体或者概念对象进行建模;对象各负其责;对象通过消息进行协同,完成复杂的任务
结构化方法研究功能分解的方法;通过复杂的功能组合实现系统功能

第14页:面向对象方法的优越性

面向对象方法的优越性:

  • 直观、自然、简单
  • 支持递增式开发
  • 支持软件重用
  • 软件结构更科学,更能够适应未来变化
  • ……

第15页:第一章软件工程概论目录

第一章 软件工程概论:

  • §1.1 软件工程的目标
  • §1.2 软件工程的原则
  • §1.3 软件质量控制
  • §1.4 软件工程与软件开发实践

第16页:软件工程的目标

在给定成本、进度的前提下,开发出具有下列特性的软件产品:

  • 正确性、可靠性、有效性
  • 可理解性、可修改性、可维护性、可移植性
  • 可重用性和可追踪性

第17页:软件工程的原则

§1.2 软件工程的原则:

  • 抽象
  • 可验证性
  • 完全性
  • 一致性
  • 模块化(高内聚,低耦合)
  • 信息隐藏(局部化)

第18页:软件质量要素:运行特征

§1.3.1 软件质量要素 —— 1. 关于软件的运行特征:

正确性
软件满足规格说明及完成用户目标的程度
可靠性
在给定时间间隔内,软件成功运行的概率
有效性
软件的时空效率
完整性
控制未被授权人员访问程序和数据的程度
可用性
使用软件的难易程度

第19页:软件质量要素(续)

§1.3.1 软件质量要素(续):

可理解性
结构清晰,直接反映问题需求,易理解(关于软件承受修改的能力)
可维护性
软件交付使用后进行修改的难易程度
灵活性
改变软件的功能或行为所需的工作量
可移植性
软件从一个环境移到另一个环境的难易程度(关于软件对新环境的适应能力)
可重用性
软部件可以在多种场合应用的程度
可互操作性
多个软件交换信息并相互使用已交换信息的能力

第20页:软件质量控制方法

§1.3.2 软件质量控制方法:

  • 系统化的开发方法与工具,例如 OOA、OOD 与 OOP
  • 良好的软件结构:高内聚、低耦合,信息隐藏,局部化
  • 标准化,文档化

第21页:程序设计规则

§1.4 软件工程与软件开发实践 —— 1. 程序设计规则:

  • 统一的、有意义的变量命名与函数命名方法
  • 统一的编码风格与格式
  • 统一的、准确的、完整的程序注解
  • 变量与函数的作用域尽量小
  • 尽量采用简单的算法
  • 模块之间的接口尽量简单、自然

第22页:软件开发规则

§1.4 软件工程与软件开发实践 —— 2. 软件开发规则:

  • 开发未始,规则先行
  • 勿因小失大
  • 文档和程序同样重要
  • 软件质量是首要目标
  • 软件结构至关重要

第23页:本章小结

本章小结:

  • 软件工程的原则
  • 软件工程的目标
  • 软件质量控制方法
  • 程序设计与软件开发规则
顶部目录