软件工程与实践第10章

合集下载

《软件工程》第10章 软件维护

《软件工程》第10章 软件维护

北京大学远程教育课程
Software Engineering_Chapter10-2
问题定义
计划 时期 可行性论证 及软件计划
需求分析
概要设计 开发 时期
详细设计Байду номын сангаас
编码
测试 运行时期 运行/维护
北京大学远程教育课程
Software Engineering_Chapter10-3
本章主要内容
• 10.1 软件维护的定义,目标与任务 • 10.2 软件维护的类型 • 10.3 软件的可维护性
北京大学远程教育课程
Software Engineering_Chapter10-13
10.2.1 改正性维护(续)
• 实践表明,软件测试和排错不可能完全暴露并改正一个大 型软件系统中的所有错误。 • 经过统计分析,在典型的市场销售的软件包中,还有缺陷 的代码行约占代码总行数的3%。正式投入使用的软件中 含有错误是不足为奇的,即使是已运行多年的软件。 • 改正性维护举例:
北京大学远程教育课程
Software Engineering_Chapter10-6
10.1.3 软件维护的任务
• 一个软件开发机构60%的精力用在维护现有的软件上。随 着产品的增加,这个比例还将不断提高。不仅当前的软件 版本要维护,仍在使用的旧版本和即将投入使用的新版本 也将需要维护。 • 在软件整个运行周期中,不仅要解决原有问题,还要解决 修改过程中产生的新问题。因此软件维护是一个无穷尽的 过程。
Software Engineering_Chapter10-18
10.2.4 预防性维护
• 维护人员不要单纯等待用户提出维护的请求,而应该选择 那些还能使用数年、目前虽能运行,但不久就须作重大修 改或加强的软件,进行预先的维护。预防性维护可以改善 软件的可维护性,减少今后对它们维护时所需要的工作量。

软件工程导论第10章面向对象分析

软件工程导论第10章面向对象分析

易于理解,同时减少了代码冗余和重复,提高了开发效率和代码质量。
03
提高软件的可重用性
面向对象分析鼓励使用抽象和封装技术,使得软件组件更加模块化和可
重用,减少了重复开发的工作量,提高了软件开发的效率。
02
面向对象分析的主要步骤
问题识别
总结词
明确问题的本质和范围
详细描述
在面向对象分析中,问题识别是首要步骤,它要求对问题进行深入理解和明确, 包括确定问题的范围、目标、限制条件等,以便为后续的分析和设计工作提供 清晰的方向。
面向对象分析的优势与不足
过度抽象
面向对象分析有时会过度抽象,导致 系统过于复杂,难以理解和实现。
缺乏对系统流程的关注
面向对象分析更关注静态结构,可能 忽略系统流程和动态行为。
面向对象分析与传统分析方法的结合使用
在实际软件开发中,可以结合 面向对象分析和传统分析方法, 取长补短,提高软件开发的效
率和成功率。
05
面向对象分析与传统分析方法的 比较
传统分析方法的问题与挑战
缺乏对系统整体结构的考虑
传统分析方法往往只关注单个功能或模块,忽略了系统整体的结 构和关系。
难以处理复杂系统
对于复杂系统,传统分析方法难以有效地进行抽象和建模。
难以维护和扩展
由于缺乏整体结构和面向对象的思维,传统分析方法构建的系统往 往难以维护和扩展。
对象是指系统中具有明确边界和状态 的结构,它可以包含数据和操作,并 且具有封装性、继承性和多态性等特 征。
面向对象的基本特征
封装
封装是将对象的属性和操作封装 在一起,形成一个独立的实体, 对外隐藏内部实现细节,只通过 接口与外界交互。
继承
继承是指子类可以继承父类的属 性和方法,并且可以扩展或修改 它们,从而实现代码的重用和扩 展。

[软件工程]CH10

[软件工程]CH10

1.传统的项目管理
传统的项目管理主要是从生产大型、高费用、进度 要求严的复杂系统的需要中发展起来的。 美国在60年代只有航空、航天、国防和建筑工业才 愿意采用项目管理。 70年代项目管理在新产品开发领域中扩展到了复杂 性略低、变化迅速、环境比较稳定的中型企业中。 到70年代后期和80年代,愈来愈多的中小企业也开 始注目项目管理,将其灵活地运用于企业活动的管 理中,项目管理技术及其方法本身也在此过程中逐 步发展和完善 到80年代,项目管理已经被公认为是一种有生命力 并能实现复杂的企业目标的良好方法。

PMBOK和ISO10006

国际标准化组织还以美国项目管理学会(PMI)的项 目管理知识体系(PMBOK)指南等文件为框架,制 订了ISO10006这一关于现代项目管理的标准。
3.软件项目管理
软件项目管理是为了完成一个既定的软件
开发目标,在规定的时间内,通过特殊形 式的临时性组织运行机制,通过有效的计 划、组织、领导与控制,在明确的可利用 的资源范围内完成软件开发。 软件项目管理是一般化的现代工程项目管 理理论和方法在软件工程领域的特殊化。 软件项目管理的对象是软件项目。
软件信息域中的计数
(1) 用户输入数 (2) 用户输出数 (3) 用户查询数 (4) 文件数 (5) 外部接口数

软件复杂性估计的经验关 系式
10.2.4 面向特征点的度量
功能点度量本来是为了商用信息系统应用而设计 的。 特征点是对功能点度量的扩充,使这种度量可以 被用于系统和工程软件应用。特征点度量适合于 算法复杂性高的应用
软件工程
软件工程
软件工程
刘迎春
第10章软件项目管理
概述 10.2 软件度量 10.3 软件开发成本估算 10.4 进度安排 10.5 软件文档管理

计算机科学与技术专业课课件_软件工程SE_Chapter10

计算机科学与技术专业课课件_软件工程SE_Chapter10

拥有银行账户的储户有权申请领取现金兑换卡。使用现金兑换卡可以通过 ATM访问自己的账户。目前仅限于用现金兑换卡在ATM上提取现金(即取 款),或查询有关自己账户的信息(例如,某个指定账户上的余额)。将 来可能还要求使用ATM办理转账、存款等事务。
2013-8-31
上海大学计算机学院
7
ATM系统的需求陈述
择事务类型(取款、查询等)。当用户选择取款时,ATM请求用户输 入取款额。最后,ATM从现金出口吐出现金,并且打印出账单交给用 户。
2013-8-31
上海大学计算机学院
8
建立对象模型
◆面向对象分析首要的工作,是建立问题域的对象 模型。 ◆对象模型描述了现实世界中的“类-&-对象”以 及它们之间的关系,表示了目标系统的静态数据 结构。
上海大学计算机学院
12
候选类—&—对象
银行,自动取款机(ATM),系统,中央计算机,分行计算机, 柜员终端,网络,总行,市,街道,分行,营业厅,储蓄所, 软件,成本,柜员,储户,现金,支票, 账户, 事务,现金兑 换卡,余额,磁卡,分行代码,卡号,副本,访问,用户,信息, 密码,类型,取款额,账单。
●找出所有候选的类-&-对象; ●筛选候选的类-&-对象。
2013-8-31
上海大学计算机学院
11
找出候选的类-&-对象
◆ 非正式分析方法
● 以用自然语言书写的需求陈述为依据,把陈述中的
1) 名词作为类-&-对象的候选者, 2) 形容词作为确定属性的线索, 3) 动词作为服务(操作)的候选者。
2013-8-31
去除冗余
银行,ATM,中央计算机,分行计算机,柜员终端,网络,总行, 市,街道,分行,营业厅,储蓄所,软件,成本,柜员,储户,现 金,支票, 账户,事务,现金兑换卡,余额,分行代码,卡号, 访问,信息, 密码,类型,取款额,账单,通信链路,事务 日志。

软件工程:理论与实践(第2版)

软件工程:理论与实践(第2版)

读书笔记
如果是初学者,不建议阅读此书,干巴巴得容易让人丧失兴趣,建议阅读《构建之法》。
目录分析
第1章软件与软 件工程
第2章软件过程
1.1软件 1.2软件危机 1.3软件工程 1.4软件开发方法 1.5软件工程工具 1.6 “小型网上书店系统”案例介绍 习题
2.1软件过程概述 2.2软件生命周期 2.3软件开发模型 2.4软件开发模型实例 习题
软件工程:理论与实践(第2 版)
读书笔记模板
01 思维导图
03 读书笔记 05 作者介绍
目录
02 内容摘要 04 目录分析 06 精彩摘录
思维导图
本书关键字分析思维导图
第版
内容
第章
面向对象
过程
实例
面向对象
软件
软件
工程 软件
案例
理论
习题
过程
系统
实验
ห้องสมุดไป่ตู้
书店
工程
内容摘要
本书按照典型的软件开发过程来组织内容,旨在培养读者具备软件工程思想及实际软件开发的能力。本书共 分为12章,内容涉及软件与软件工程、软件过程、可行性研究与项目开发计划、结构化分析、结构化设计、面向 对象方法与UML、面向对象分析、软件体系结构与设计模式、面向对象设计、软件实现、软件测试、软件维护与 软件工程管理。本书理论与实践相结合,内容翔实,可操作性强。本书是高等院校计算机科学、软件工程及相关 专业“软件工程”课程的理想教材。
第6部分软件维护与软件工程管 理
12.1软件维护 12.2软件估算 12.3软件开发进度计划 12.4软件开发人员组织 12.5软件开发风险管理 12.6软件质量保证 12.7软件配置管理概述 12.8软件工程标准与软件文档 12.9软件过程能力成熟度模型

第1-10章课件-软件工程与实践(第3版)-贾铁军-清华大学出版社

第1-10章课件-软件工程与实践(第3版)-贾铁军-清华大学出版社

第1章二维码内容[第1页]教学课件第1章课件资源(出版社指定的网址)知识拓展:软件危机的产生20 世纪60年代以前,计算机投入实际使用初期,软件设计只是为了某个特定的应用而在指定的计算机上设计和编制,采用密切依赖于计算机的机器代码或汇编语言,软件的规模较小,文档资料通常也不存在,很少使用系统化的开发方法,设计软件常等同于编制程序,基本上是单人设计、使用、操作、私人化的软件生产方式。

60年代中期,大容量、高速度计算机的出现,使计算机的应用范围迅速扩大,软件开发急剧增长。

高级语言开始出现,操作系统的发展引起了计算机应用方式的变化,大量数据处理导致第一代数据库管理系统的诞生。

软件系统的规模越来越大,复杂程度越来越高,软件可靠性问题也越来越突出。

原来的个人设计及使用的方式不再能满足要求,迫切需要改变软件规范的研发生产方式,提高软件生产率,软件危机开始爆发。

[第2页]知识拓展:软件危机产生的过程20世纪60年代出现的软件危机直接导致软件工程的产生。

当时出现的软件危机致使所研发软件的功能、性能和可靠性等细节难以保障、研发进度无法把握、成本增长难以控制、研发人员不断增加、软件运行维护和管理方面的工作量不断增大等问题。

软件开发过程涉及多个方面,是一项高度集成的脑力劳动。

软件开发初期的“生产作坊式”模式和技术已根本无法适应软件快速发展的实际需要,致使大量质量低劣的软件产品投入运行且管理维护不当故障频发,一些开发过程中的大型软件系统遇到了许多不标准规范等问题,有些软件研发比原计划推迟了多年,或费用大大超出预算,有的系统不能符合用户预期,有的无法进行修改更新和维护,有些研发甚至半途而废无法继续。

[第2页]知识拓展:软件工程术语的由来1968年北大西洋公约组织(NATO)在联邦德国召开的一次会议上首次提出的“软件工程”术语,并专门讨论了软件危机问题。

从此将软件开发纳入了工程化的轨道,基本形成了软件工程的概念、框架、技术和方法。

软件工程 第10章 软件开发环境

软件工程  第10章  软件开发环境

软件工程第10章软件开发环境在软件工程的领域中,软件开发环境是一个至关重要的概念。

它就像是一个为软件开发团队提供各种工具和资源的“大工具箱”,旨在提高开发效率、保证软件质量,并促进团队之间的协作。

软件开发环境并不仅仅是指一堆硬件设备和软件工具的简单组合,它涵盖了从开发过程中所使用的编程语言、编译器、调试器,到项目管理工具、版本控制系统,以及团队协作平台等多个方面。

一个良好的软件开发环境能够为开发者提供舒适、高效的工作空间,让他们能够将更多的精力集中在解决业务问题和实现软件功能上。

首先,让我们来谈谈编程语言和编译器。

不同的编程语言适用于不同的应用场景,比如 Python 在数据科学和机器学习领域表现出色,Java 在企业级应用开发中占据重要地位,C++则常用于对性能要求较高的系统编程。

而编译器则负责将开发者编写的源代码转换为可执行的机器代码。

一个优秀的编译器能够优化代码,提高程序的运行效率,同时还能提供丰富的错误提示和警告信息,帮助开发者及时发现和纠正代码中的问题。

调试器也是软件开发环境中不可或缺的一部分。

当程序出现错误时,调试器能够帮助开发者逐行执行代码,查看变量的值,设置断点,从而快速定位并解决问题。

现代的调试器通常具有强大的功能,如条件断点、内存查看、线程调试等,大大提高了调试的效率和准确性。

除了这些基础的工具,项目管理工具在软件开发中也起着举足轻重的作用。

它们可以帮助项目经理制定项目计划、分配任务、跟踪进度、评估风险等。

常见的项目管理工具如 Jira、Trello 等,提供了直观的界面和丰富的功能,使得团队成员能够清晰地了解项目的整体情况和自己的职责,有效地提高了项目的管理水平和执行效率。

版本控制系统则是保障软件开发过程中代码一致性和可追溯性的重要手段。

通过版本控制系统,开发者可以方便地对代码进行修改、提交、回滚等操作,同时还能够与团队成员共享代码,协同开发。

Git 作为目前最流行的版本控制系统之一,具有分布式、高效、灵活等优点,已经成为了软件开发领域的标配。

软件工程 第10章 面向对象的方法

软件工程 第10章 面向对象的方法

第10章例题分析与解答作者:不详来源:2006年9月4日发表评论进入社区一、填空题1.面向对象方法认为系统是由应用域的___对象___组成。

2.对象具有状态,描述对象的状态用它的_属性值_____。

3.对象的抽象是_类_____。

4.类之间有两种结构关系,它们是分类关系和__组装____关系。

5.面向对象程序设计语言与其他程序设计语言的最主要差别是它具有_继承性_____。

6.动态模型描述了系统的__动态行为____。

二、选择题1.火车是一种陆上交通工具,火车和陆上交通工具之间的关系是( D)关系。

A.组装B.整体成员C.has aD.一般具体2.面向对象分析阶段建立的三个模型中,核心的模型是( C )模型。

A.功能B.动态C.对象D.分析3.对象模型的描述工具是( C)。

A.状态图B.数据流图C.对象图D.结构图4.在有多重继承的类层次结构中,它的类层次结构是(B )层次结构。

A.树型B.网状型C.环型D.星型5.描述类中对象的行为,反映了状态与事件关系的是( B )。

A.对象图B.状态图C.流程图D.结构图6.在确定属性时,所有( C)是候选的属性。

A.动词B.名词C.修饰性名词词组D.词组三、应用题1.建立窗口系统的对象模型。

问题陈述如下:窗口分为对话窗、图形窗、滚动窗三种;对话窗中有若干对话项,由唯一的项名字来确定,对话项分为按钮、选择项、正文项三种,选择项中有若干对话项入口;图形窗中有若干形状元素,形状元素分为一维形状和二维形状,一维形状又分为直线、圆弧、折线;二维形状分为圆、椭圆、矩形、多边形,其中多边形和折线由若干有序顶点组成,正文窗是滚动窗的一种,而图形滚动窗既是一种图形窗又是一种滚动窗。

2.在学校教学管理系统中,学生查询成绩就是系统中的一次交互,请用状态图来描述这种查询的交互行为。

答案:一、填空题1.对象2.属性值3.类4.组装5.继承性6.动态行为二、选择题1.D2.C3.C4.B5.B6.C三、应用题1.2.第10章自测题及参考答案作者:不详来源:2006年9月1日发表评论进入社区一、名词解释1.对象2.类3.属性4.操作5.消息6.消息传递7.方法8.关系9.关联10.一般具体关系 11.整体部分关系12.继承13.单重继承 14.多重继承15.多态性 16.角色17.受限关联 18.封装19.对象模型20.动态模型21.功能模型 22.事件23.状态24.事件追踪25.状态图26.动作27.活动28.处理29.数据流30.动作对象31.数据存储对象 32.重用性二、填空题1.对象具有封装性,实现了__数据与操作____的结合。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

可以使用两种方式建立继承(即泛化)关系: (1) 自底向上: 抽象出现有类的共同性质泛化出父 类,这个过程实质上模拟了人类归纳思维过程。 (2) 自顶向下: 把现有类细化成更具体的子类,这 模拟了人类的演绎思维过程。。 利用多重继承可以提高共享程度,但是同时也 增加了概念上以及实现时的复杂程度。使用多 重继承机制时,通常应该指定一个主要父类, 从它继承大部分属性和行为;次要父类只补充 一些属性和行为。
图10.2 ATM系统
银行柜员使用柜员终端处理储户提交的储蓄事务。 储户可以用现金或支票向自己拥有的某个账户内存 款或开新账户。储户也可以从自己的账户中取款。 通常,一个储户可能拥有多个账户。柜员负责把储 户提交的存款或取款事务输进柜员终端,接收储户 交来的现金或支票,或付给储户现金。柜员终端与 相应的分行计算机通信,分行计算机具体处理针对 某个账户的事务并且维护账户。
在概念上可以认为,面向对象分析大体上按照下列 顺序进行:寻找类与对象,识别结构,识别主题, 定义属性,建立动态模型,建立功能模型,定义服 务。大型、复杂系统的模型需要反复构造多遍才能 建成。 大多数需求陈述都缺乏必要的信息,所缺少的信息 主要从用户和领域专家那里获取,同时也需要从分 析员对问题域的背景知识中提取。
10.3.6 反复修改
仅仅经过一次建模过程很难得到完全正确的对象模 型。事实上,软件开发过程就是一个多次反复修改、 逐步完善的过程。
1. 分解“现金兑换卡”类 实际上,“现金兑换卡”有两个相对独立的功能, 它既是鉴别储户使用ATM的权限的卡,又是ATM 获得分行代码和卡号等数据的数据载体。因此,把 “现金兑换卡”类分解为“卡权限”和“现金兑换 卡”两个类,将使每个类的功能更单一。 2. “事务”由“更新”组成 通常,一个事务包含对账户的若干次更新,这里所 说的更新,指的是对账户所做的一个动作(取款、 存款或查询)。“更新”虽然代表一个动作,但是 它有自己的属性(类型、金额等),应该独立存在, 因此应该把它作为类。
有一种更简单的分析方法,即所谓的非正式分析。 这种分析方法以用自然语言书写的需求陈述为依据, 把陈述中的名词作为类与对象的候选者,用形容词 作为确定属性的线索,把动词作为服务(操作)的候 选者。通常,非正式分析是更详细、更精确的正式 的面向对象分析的一个很好的开端。
银行,自动取款机(ATM),系统,中央计算机,分 行计算机,柜员终端,网络,总行,分行,软件, 成本,市,街道,营业厅,储蓄所,柜员,储户, 现金,支票,账户,事务,现金兑换卡,余额,磁 卡,分行代码,卡号,用户,副本,信息,密码, 类型,取款额,账单,访问。 分析员应该根据领域知识或常识进一步把隐含的类 与对象提取出来。例如,在ATM系统的需求陈述 中虽然没写“通信链路”和“事务日志”,但是, 根据领域知识和常识可以知道,在ATM系统中应 该包含这两个实体。
(5) 派生关联 “分行计算机维护账户”的实际含义是“分行保管账 户”和“事务修改账户”。 3. 进一步完善 应该进一步完善经筛选后余下的关联,通常从下述 几个方面进行改进: (1) 正名 “分行提供分行计算机和柜员终端” (2) 分解 “事务” (3) 补充 “柜员输入柜员事务”、“柜员事务输进柜 员终端” (4) 标明重数
10.3.1 确定类与对象
系统分析员主要任务就是通过分析找出有用的类与 对象。首先找出所有候选的类与对象,然后从候选 的类与对象中筛选掉不正确的或不必要的。 1. 找出候选的类与对象 对象是对问题域中有意义的事物的抽象,它们既可 能是物理实体,也可能是抽象概念。 (1) 可感知的物理实体 (2) 人或组织的角色 (3) 应该记忆的事件 (4) 两个或多个对象的相互作用 (5) 需要说明的概念
图10.3 ATM系统原始的类图
10.3.3 划分主题
在开发大型、复杂系统的过程中,为了降低复杂程 度,人们习惯于把系统再进一步划分成几个不同的 主题,也就是在概念上把系统包含的内容分解成若 干个范畴。 应该按问题领域而不是用功能分解方法来确定主题。 此外,应该按照使不同主题内的对象相互间依赖和 交互最少的原则来确定主题。 以ATM系统为例,可以把它划分成总行(包含总 行和中央计算机这两个类)、分行(包含分行、分 行计算机、柜员终端、柜员事务、柜员和账户等类) 和ATM(包含ATM、远程事务、现金兑换卡和储 户等类)等3个主题。
10.3.2 确定关联
多数人习惯于在初步分析确定了问题域中的类与对 象之后,接下来就分析确定类与对象之间存在的关 联关系。 分析确定关联,能促使分析员考虑问题域的边缘情 况,有助于发现那些尚未被发现的类与对象。
1. 初步确定关联 (1) 直接提取动词短语得出的关联 总行拥有多台ATM。 分行提供分行计算机和柜员终端。 柜员终端设在分行营业厅及储蓄所内。 (2) 需求陈述中隐含的关联 总行由各个分行组成。 分行保管账户。 总行拥有中央计算机。 (3) 根据问题域知识得出的关联 现金兑换卡访问账户。 分行雇用柜员。
2. 筛选 筛选时主要根据下述标准删除候选的关联: (1) 已删去的类之间的关联 (2) 与问题无关的或应在实现阶段考虑的关联 “系统处理并发的访问” (3) 瞬时事件 “ATM读现金兑换卡” “中央计算机确定事务与分行的对应关系” (4) 三元关联 三个或三个以上对象之间的关联,大多可以分解为 二元关联或用词组描述成限定的关联。 “柜员输入针对账户的事务”
10.3.4 确定属性
属性是对象的性质,藉助于属性我们能对类与对象 和结构有更深入更具体的认识。一般说来,确定属 性的过程包括分析和选择两个步骤。
1. 分析 不可能在需求陈述中找到所有属性,分析员还必须 藉助于领域知识和常识才能分析得出需要的属性。 属性对问题域的基本结构影响很小。随着时间的推 移,问题域中的类始终保持稳定,属性却可能改变 了,相应地,类中方法的复杂程度也将改变。 应该仅考虑与具体应用直接相关的属性,不要考虑 那些超出所要解决的问题范围的属性。在分析过程 中应该首先找出最重要的属性,以后再逐渐把其余 属性增添进去。在分析阶段不要考虑那些纯粹用于 实现的属性。
第10章 面向对象分析
10.1 10.2 10.3 10.4 10.5 10.6 10.7
面向对象分析的基本过程 需求陈述 建立对象模型 建立动态模型 建立功能模型 定义服务 小结
在面向对象分析中过程得出的最重要的文档资料是 软件需求规格说明,主要由对象模型、动态模型和 功能模型组成。 需求分析过程是系统分析员与用户及领域专家反复 交流和多次修正的过程。也就是说,理解和验证的 过程通常交替进行,反复迭代,而且往往需要利用 原型系统作为辅助工具。 面向对象分析(OOA)的关键是识别出问题域内的类 与对象,并分析它们相互间的关系,最终建立起问 题域的简洁、精确、可理解的正确模型。 在用面向对象观点建立起的3种模型中,对象模型 是最基本、最重要、最核心的。
系统分析员必须与用户及领域专家密切配合协同工 作,共同提炼和整理用户需求。在这个过程中,很 可能需要快速建立起原型系统,以便与用户更有效 地交流,这个过程也是反复迭代的。 面向对象分析的目的,就是全面深入地理解问题域 和用户的真实需求,建立起问题域的精确模型。
10.2.2 例子
某银行拟开发一个自动取款机系统,它是一个由自 动取款机、中央计算机、分行计算机及柜员终端组 成的网络系统。ATM和中央计算机由总行投资购 买。总行拥有多台ATM,分别设在全市各主要街 道上。分行负责提供分行计算机和柜员终端。柜员 终端设在分行营业厅及分行下属的各个储蓄所内。 该系统的软件开发成本由各个分行分摊。
10.1 面向对象分析的基本过程
10.1.1 概述
面向对象分析,就是抽取和整理用户需求并建立问 题域精确模型的过程。 面向对象分析过程从分析陈述用户需求的文件开始。 接下来,系统分析员应该深入理解用户需求,抽象 出目标系统的本质属性,并用模型准确地表示出来。
在面向对象建模的过程中,系统分析员必须认真向 领域专家学习。 在面向对象建模的过程中,还应该仔细研究以前针 对相同的或类似的问题域进行面向对象分析所得到 的结果。
3. 把“分行”与“分行计算机”合并 区分“分行”与“分行计算机”,对于分析这个系 统来说,并没有多大意义,为简单起见,应该把它 们合并。类似地,应该合并“总行”和“中央计算 机”。
拥有银行账户的储户有权申请领取现金兑换卡。使 用现金兑换卡可以通过ATM访问自己的账户。目 前仅限于用现金兑换卡在ATM上提取现金(即取款), 或查询有关自己账户的信息(例如,某个指定账户 上的余额)。将来可能还要求使用ATM办理转账、 存款等事务。
10.3 建立对象模型
面向对象分析的首要工作是建立问题域的对象模型。 需求陈述、应用领域的专业知识以及关于客观世界 的常识,是建立对象模型时的主要信息来源。 典型的工作步骤是: 首先确定对象类和关联(因为它 们影响系统整体结构和解决问题的方法),对于大型 复杂问题还要进一步划分出若干个主题;然后给类 和关联增添属性,以进一步描述它们;接下来利用 适当的继承关系进一步合并和组织类。而对类中操 作的最后确定,则需等到建立了动态模型和功能模 型之后,因为这两个子模型更准确地描述了对类中 提供的服务的需求。
2. 选择 认真考察经初步分析而确定下来的那些属性,从中 删掉不正确的或不必要的属性。 (1) 误把对象当作属性 (2) 误把关联类的属性当作一般对象的属性 (3) 把限定误当成属性 (4) 误把内部状态当成了属性 (5) 过于细化 (6) 存在不一致的属性
10.3.5 识别继承关系
确定了类中应该定义的属性之后,就可以利用继承 机制共享公共性质,并对系统中众多的类加以组织。 通常,许多归纳关系都是根据客观世界现有的分类 模式建立起来的,只要可能,就应该使用现有的概 念。
10.2 需求陈述
10.2.1 书写要点
通常,需求陈述的内容包括:问题范围,功能需求, 性能需求,应用环境及假设条件等。 应该避免对设计策略施加过多的约束,也不要描述 系统的内部结构。 对系统性能及系统与外界环境交互协议的描述,开 发标准、可维护性的要求都是合适的需求。 书写需求陈述时,要尽力做到语法正确,描述清楚。 系统分析员必须把需求与实现策略区分开。
相关文档
最新文档