使用UML编写Java应用程序

2023-11-17

引言
  统一建模语言(Unified Modeling Language,简写为UML)是一种通用的模拟语言,它可以用于确定、展示和记录软件系统的设计过程。统一建模语言中的图形标记,尤其是用于面向对象的软件设计。它有两大优点:
  (1)UML是国际软件工业界广泛认可的标准,它统一了对象模拟的标记和含义,使软件设计工具能发挥更大的功用,同时,现有的对象设计也能更容易地被重新使用。
  (2)UML博采众长,设当地平衡了简洁性和具体化两个总之,UML已经成为一种单独的系统来演化,不像以前的多种标准的体系引起的问题。
  所以,作为软件开发者,完全有必要学习、了解UML。本文就提供了一个案例研究,我只是想利用这个案例研究给大家一个对UML的感性认识,了解在现实世界中如何使用UML来编写应用程序。所以我想找了一个相对比较复杂的案例,找来找去,发现图书馆中处理借出以及预借书籍和杂志的应用程序是相当大的例子,足以说明UML如何在现实世界中使用。
  我只是利用使用案例(use case)和讨论域分析来分析描述一个分析模型中的应用,我把它扩展成一个设计模型,用来描述技术解决方案的一个代表部分,最后,我们再用Java语言进行编码。但请记住,我给出的只是一种可能的解决方案,还有许多其他的解决方案需要您用聪明的头脑去发掘,而且这世界上也没有适合所有的情况的解决方案。当然,某些解决方案会比其他的要好,但那只有有了足够的经验和遇到的许多困难的事并解决之后才会积累下来知识。好,下面我们进入案例研究。

  要求
  一般情况下,是使用系统的最终用户的代表人来书写要求规范,对于图书馆应用程序,要求规范应该如下:
  1、图书馆应用程序应当是图书馆的支持系统。
  2、图书馆把书籍和杂志借给借书者(读者)的条件当然是读者应当在该系统中注册过,同样书籍和杂志也应当在系统中注册过。
  3、图书馆处理购买新书或杂志的操作,畅销书或杂志应当多购几本,旧的书籍和杂志当它们过时或残破时就应适当把它们从书架上请下来。
  4、图书管理员是图书馆中的职员,他的职责就是与顾客(借书者)打交道并通过该系统完成工作。
  5、借书者可以预借一本当前不在图书馆中的书籍或杂志,当这本书被归还或被购入图书馆的时候,他就会接到通知;当借书者借到这本书或杂志的时候,预定就会被取消;也可以使用显示程序取消预借。
  6、图书馆可以很容易地创建,更新和删除系统中的书名,借书者,借阅情况以及预借情况等信息
  7、该系统可以运行于所有流行的操作系统,包括UNIX,Windows以及OS/2,它还应当有先进的友好的图形用户界面( GUI )。
  8、该系统应当很容易使用新的功能扩展。
  在本案例分析中,该系统的第一个版本不需要处理某个读者预借的书籍成为可借书籍时发送消息给读者的操作,也不需要检查某本书籍是否已经超时了。

  分析
  分析的目的是为了获得和描述系统中所有的要求,以及生成一个在该系统中定义关键域类的模型。其目标是在开发者与制定要求的人之间建立相互理解和沟通,因此分析是一种典型的与用户或客户合作的行为。在这个阶段开发者不应该考虑具体的代码或程序细节;这只是真正地理解要求和正在设计的系统的实际情况的第一步。

  第一节分析要求
  分析的第一步应当是判断该系统将被用于做什么以及谁将使用它。这分别是所谓的使用案例(use case)和行动者(actor)。使用案例描述了图书馆系统具体应当提供哪些功能,即系统的功能要求。一个使用案例分析过程包括阅读和分析规范,并且讨论该系统的潜在的用户(客户)。图

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用UML编写Java应用程序 的相关文章

随机推荐

  • 外包干了2个月,技术退步明显...

    先说一下自己的情况 大专生 18年通过校招进入湖南某软件公司 干了接近4年的功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了2年的女朋友
  • 调用halcon函数时的错误处理

    注 以下材料来自halcon帮助文档 因水平有限 难免有误 欢迎指正 0 概述 在遇到一个运行时错误时 HALCON C 会以默认的方式给出错误信息 并终止程序 然而 在某些情况下 我们并不希望按照这样的规则来处理错误 例如 当一个程序允许
  • centos7.8从卸载python2,安装python3

    因为目前所有环境都是python2 7 5 但是项目上使用的是python3 7 5 迫切需要使用python3 7 5验证 安装遇到困难 记录一下 首先卸载python2 如果不想卸载python2的可以跳过 这里卸载python2和其依
  • 信息图:iOS 7开发者需要知道的事

    如果你想为iOS 设备开发app 你需要知道如何与软件交互 如何设计 你还要知道苹果独特的开发理念和开发工具 真正的能力还需要成功地从其他行业领域借鉴核心概念 最后把所有这些东西糅合进你的信息库中 所以我们画了一张iOS 7开发者应该的知识
  • iOS开发:使用大图+脚本,生成各种size的app icon和图片素材

    美术UI在公司是宝贵的资源 集各种项目宠爱于一身 为了努力完成好老板的进度需求 不给UI添麻烦 程序员开始忙活了 在iOS里面 我们使用image assert来管理素材和app icon 为什么呢 因为方便 按照image assert要
  • 怎样在前端遍历后端服务器传递来的json字符串中的集合?

    怎样在前端遍历后端服务器传递来的json字符串中的集合 后端把一个List类型的集合先转换成json字符串然后返回给通过ajax返回给前端 如下图 后端服务器中的代码如下图 紧着着前端页面遍历 后端传递来的json字符串中的集合数据 先来看
  • 读论文(二) - BERT

    Introduction 预训练的语言模型 在改进自然语言处理任务方面非常有效 包括句子级别的任务 自然语言推理和释义 也包括分词级别的任务 NER和问答 将预训练的语言表示应用于下游任务有两种现有策略 基于特征 feature based
  • 循环神经网络(RNN)的基本原理及LSTM的基本结构

    来源于课上实验 结果清晰 遂上传于此 实验环境TensorFlow1 14 该课件仅用于教学 请勿用于其他用途 详细参考 实验笔记 实验视频 一 实验目的 学习掌握循环神经网络 RNN 的基本原理及LSTM的基本结构 掌握利用LSTM神经元
  • vulfocus靶场安装教程

    背景 漏洞把场是目前每个安全人员以及想学习信息安全的人必备的东西 但目前商业化产品居多 还有一些类似dwwa sqlilabs这类的开源项目 但是漏洞环境比较固定 使用完一次后就失去其作用 搭建的成本过高 每次启动的流程会比较繁锁 甚至很多
  • 【react】对state的理解

    state是类创建的实例对象上的一个状态属性 想要改变类的实例对象的值 就要用到构造器 但由于类组件都是继承的React内置的Component类 继承的类 要写构造器的话 就必须写super 改变state this state xxx
  • TIP Spring-boot健康检查查看详细信息

    Spring boot提供了健康检查的手段 定期检查应用各个组件的状态 并提供了一些通用组件的检查 比如MySQL Redis等 可以使用下面的命令查看应用的健康状态 curl localhost port health 如果应用有异常 会
  • GhostNetV2学习笔记

    GhostNetV2学习笔记 GhostNetV2 Enhance Cheap Operation with Long Range Attention Abstract 轻量级卷积神经网络 CNNs 是专为在移动设备上具有较快推理速度的应用
  • Deployment Controller 典型使用场景

    1 重新调度 Rescheduling 不管想运行 1 个副本还是 1000 个副本 副本控制器都能确保指定数量的副本存在于集群中 即使发生节点故障或 Pod 副本被终止运行等意外状况 2 弹性伸缩 Scaling 手动或者通过自动扩容代理
  • 【科普】CRC校验(一)什么是CRC校验?

    目录 CRC 循环冗余校验 CRC 校验码的生成 CRC 的发送方与接收方 发送方 接收方 除法异或运算示意图 CRC 循环冗余校验 CRC Cyclic Redundancy Check 循环冗余检验 是一种用于检测数字数据错误的技术 作
  • 不用JS,教你只用纯HTML做出几个实用网页效果

    转载请注明出处 葡萄城官网 葡萄城为开发者提供专业的开发工具 解决方案和服务 赋能开发者 原文出处 https blog bitsrc io pure html widgets for your web application c90155
  • Python - 遍历列表

    方法1 for循环直接遍历 lists m1 1900 m2 2000 for item in lists print item 注 同JAVA中的foreach循环一样 用for循环遍历列表 并不能改变列表中的数据项的值 lists m1
  • 校验密码复杂度(规则:长度8-30,必须包含数字、字母、特殊符号)、校验用户名(规则:长度4-19,包含数字、字母,不包含特殊字符)

    校验密码复杂度 规则 长度8 30 必须包含数字 字母 特殊符号 校验用户名 规则 长度4 19 包含数字 字母 不包含特殊字符
  • RHEL8网络管理

    RHEL8网络管理服务 NetworkManager早期的设计目的是为了统一网络配置 表示以后所有的网络相关的配置都使用NetworkManager来实现 NetworkManager服务提供了3种工具用来配置网卡参数 都不需要去手动修改网
  • 【每日多题之贪心】

    文章目录 1 分割平衡字符串 1 1 题目描述 1 2 题目分析 1 3 代码实现 2 最少操作数使数组递增 2 1 题目描述 2 2 题目分析 2 3 代码实现 3 卡车上的最大单元数 3 1 题目描述 3 2 题目分析 3 3 代码实现
  • 使用UML编写Java应用程序

    引言 统一建模语言 Unified Modeling Language 简写为UML 是一种通用的模拟语言 它可以用于确定 展示和记录软件系统的设计过程 统一建模语言中的图形标记 尤其是用于面向对象的软件设计 它有两大优点 1 UML是国际