系统架构设计师教程-学习-记录(29)系统开发基础知识-软件开发方法(5)软件系统工具

    • 软件系统工具
      • 软件开发工具
      • 需求分析工具
        • 数据流程图(WORD、PPT、亿图):
        • 数据字典(数据库管理工具):
        • 判定表(EXCEL)
        • 判定树
        • UML
      • 设计工具
        • UML工具
        • 原型设计:Axure
        • PPT、思维导图
      • 编码与排错工具
        • 编码工具(应该具备的程序功能):
        • 排错工具(应该具备的程序功能):
      • 软件维护工具
        • 版本控制工具
        • 文档分析工具
        • 开发信息库工具
        • 逆向工程工具
        • 再工程工具等
      • 软件管理和软件支持工具

  • 学习《系统架构设计师教程》,初心是为了学习更多知识,在计算机技术方面得到更大的提升。
  • 希望自己记录学习的时候也能总结一些知识分享出来。也可能错误很多,希各个大佬多多包涵并指点一二,在此感谢。

软件系统工具

按软件过程活动划分:

  1. 软件开发工具
  2. 软件维护工具
  3. 软件管理
  4. 软件支持工具

软件开发工具

一般是指一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的特殊软件

需求分析工具

需求分析工具用以辅助软件需求分析活动,辅助系统分析员从需求定义出发,生成完整的、清晰的、一致的功能规范

这类辅助的工具一般有两种:

  1. 基于自然语言或图形描述的工具
  2. 基于形式化需求定义语言的工具

第一种(基于自然语言或图形描述的工具)这种工具,我们可以参考“数据库系统需求分析的工具”常用的工具有数据流程图、数据字典、判定表、判定树、统一建模语言(Unified Modeling Language,UML)

数据流程图(WORD、PPT、亿图):

数据流程图是一种描述系统数据流程的主要工具,它用一组符号来描述整个系统中信息的全貌,综合地反映出信息在系统中的流动、处理和存储情况。数据流程图有两个特征: 抽象性和概括性。抽象性指的是数据流程图把具体的组织机构、工作场所、物质流都去掉,只剩下信息和数据存储、流动、使用以及加工情况。概括性则是指数据流程图把系统对各种业务的处理过程联系起来考虑,形成一个总体。

数据字典(数据库管理工具):

数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目。简而言之,数据字典是描述数据的信息集合,是对系统中使用的所有数据元素的定义的集合。

数据字典是数据库的重要组成部分。我们可以使用数据库管理工具来做数据字典,建立实体-联系图(E-R图)来描述显示世界的模型概念,这个也是辅助需求分析的一种。

判定表(EXCEL)

判定表通常有以下四个部分组成:

  1. 条件桩
  2. 动作桩
  3. 条件项
  4. 动作项

判定表也是辅助我们做需求分析的一种工具,可以手工画判定表,也可以通过 EXCEL 来制作一个判定表,通过这个对需求进行一些整理。

判定树

判定树是在已知各种情况发生概率的基础上,通过构成判定树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性,有利于对需求的一些判断做一些分析,也是分析需求常用的工具之一。

UML

统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言

UML主要有以下作用:

  1. 为软件系统建立可视化模型
  2. 为软件系统建立构件
  3. 为软件系统建立文档

这些都可作用与辅助需求分析

—华丽分割线—

第二种:基于形式化需求定义语言的工具(没研究过,下面引用的是原文,大概是说,一种通过不断交互来判断的)

基于形式化需求定义语言的工具大多以基于知识的需求智能助手的形式出现,并把人工智能技术运用于软件工程。这类工具通常具有一个知识库和一个推理机制。知识库中存放需求分析所需的公共知识,以及特定的应用领域知识。这些知识能用来理解需求定义中的省略写法,能部分消除不完整性和歧义性。推理机制能容忍需求定义的无序性,部分解决描述中的不一致性。这类工具接受用形式化语言书写的功能描述,运用知识库中的知识,通过推理,发现需求定义中的矛盾和不足,经补充、更新知识库中的知识和规则,以及与系统分析员的不断交互,得到完整的功能规范。

设计工具

常用的有:UML工具、原型设计:Axure、汇报呈现类的 PPT、思维导图,这些设计工具都是辅助我们确定结构的设计工具。

UML工具

统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言

UML主要有以下作用:

  1. 为软件系统建立可视化模型
  2. 为软件系统建立构件
  3. 为软件系统建立文档

那么常见的开源 UML 工具: Netbeans UML Plugin、Acceleo 、 Papyrus UML 、 UMLet

原型设计:Axure

在国内原型设计工具有很多,这里推荐 Axure,当然也有很多非常好的原型工具,看个人习惯选择。

PPT、思维导图

ppt、思维导图整理资料也是辅助结构的设计中非常好的工具

编码与排错工具

编码工具和排错工具用以辅助程序员进行编码活动。编码工具辅助程序员用某种程序语言编制源程序,并对源程序进行翻译,最终转换成可执行的代码,因此编码工具通常与编码所使用的程序语言密切相关。排错工具用来辅助程序员寻找源程序中错误的性质和原因,并确定其出错的位置。由于源程序一般以正文的形式出现,必须有编辑器将它输入,并进行浏览、编辑和修改。又由于源程序的编写往往不会一次成功,需要不断寻找其中的错误并加以纠正。编码工具和排错工具是编程活动的重要辅助工具,也是最早出现的软件工具。

编码工具(应该具备的程序功能):
  1. 编辑程序
  2. 汇编程序
  3. 编译程序
  4. 生成程序
排错工具(应该具备的程序功能):
  1. 源代码排错程序
  2. 排错程序生成程序

工具太多了,这里举例一些自己常用的:

  1. VSCode
  2. vim

vim插件可以集成到各个 IDE 中,非常不错。关于IDE知识可以参考这篇文章 : 什么是IDE?

软件维护工具

软件维护工具辅助软件维护过程中的活动,辅助维护人员对软件代码及其文档进行各种维护活动。软件维护工具主要有版本控制工具、文档分析工具、开发信息库工具、逆向工程工具和再工程工具等。

版本控制工具

常见的版本控制工具:

  1. git
  2. svn
文档分析工具

也可以叫做数据分析工具,将开发的需求和源码做成一个文档,对应相关的模块。这样做检查的时候,可以过滤无关代码。

  • 这种看不同的IDE有不同的插件,只要是符合上面所说的就是文档分析工具。
  • 软件:Azure DevOps Server 这个管理工具涉及很多功能,其中就有文档分析工具
开发信息库工具

开发信息库工具用来维护软件项目的开发信息,包括对象、模块等。它记录每个对象的修改信息(已确定的错误及重要改动)和其他变形(如抽象数据结构的多种实现);维护对象和与之有关信息之间的关系;包括模块的设计者、新版本中模块的改动及其与错误、测试用例、测试结果之间的联系等;其他必须记录的信息,包括用来生成此软件产品的所有工具的版本信息(如编译程序、连接程序、生成程序的版本号),所采用的命令语言程序和系统库以及测试用例版本和测试报告。

  • 软件:Azure DevOps Server 这个管理工具涉及很多功能,其中就有开发信息库工具
逆向工程工具

在软件生存周期中,将某种形式表示的软件转换成更高抽象形式表示的软件的活动称为逆向工程。例如,用反汇编工具将机器语言代码转换成汇编语言代码,用反编译工具将汇编语言代码或机器语言代码转换成某种高级程序语言源程序,之后再将源程序转换成详细设计的某种表示形式,这都属于逆向工程的范畴。逆向工程工具就是辅助软件人员进行这种逆向工程活动的软件工具。若软件缺乏必要的文档,原先的开发人员又已调离,就需使用逆向工程工具来理解原有的软件。

  • 软件:dotPeek,反编译工具
再工程工具等

再工程工具用来支持重构- -个功能和性能更为完善的软件系统。目前的再工程工具主要集中在代码重构、程序结构重构和数据结构重构等方面。

软件管理和软件支持工具

项目管理工具用来辅助软件的项目管理活动。通常项目管理活动包括项目的计划、调度、通信、成本估算、资源分配及质量控制等。一个项目管理工具通常把重点放在某一个或某几个特定的管理环节上,而不提供对管理活动包罗万象的支持

  • 软件参考: Azure DevOps Server

整理了 3 天,内容不多,大部分都了解了一点点,成长++

系统架构设计师教程-学习-记录(29)系统开发基础知识-软件开发方法(5)软件系统工具相关推荐

  1. 系统架构设计师教程学习随笔 (计算机与网络基础知识--操作系统基础知识)

    一. 操作系统分类 1. 网络操作系统 网络操作系统(NOS)是网络的心脏和灵魂,是向网络计算机提供服务的特殊的操作系统.它在计算机操作系统下工作,使计算机操作系统增加了网络操作所需要的能力.例如像前 ...

  2. 系统架构设计师教程-学习-记录(1)系统架构师知识结构

    系统架构设计师教程-学习-记录(1)系统架构师知识结构 初 记 系统架构师知识结构 系统架构师具备的能力 初 欢迎进qq群交流:546496965 学习<系统架构设计师教程>,初心是为了学 ...

  3. 系统架构设计师教程学习笔记

    http://doc.mbalib.com/view/80a4cb49465991abb50ac02605b44a06.html 一.绪论   1 系统架构的概念     现代信息系统"架构 ...

  4. 《网络规划设计师考试大纲》、《网络规划设计师教程》和《系统架构设计师教程》...

    <网络规划设计师考试大纲>.<网络规划设计师教程>和<系统架构设计师教程>即将与广大考生见面 2009年下半年即将开考的系统架构设计师和网络规划设计师两个科目,是自 ...

  5. 【软考系统架构设计师】2021年下半年系统架构设计师考后心得

    [软考系统架构设计师]2021年下半年系统架构设计师考后心得 [软考系统架构设计师]2021年下半年系统架构设计师考后心得 [软考系统架构设计师]2021年下半年系统架构设计师考后心得 前言 第一部分 ...

  6. 《系统架构设计师教程》 第一章:绪论

    1. 系统架构的概念与发展历史 现代信息系统的架构三要素:构件.模式以及规划. 软件系统架构是关于软件系统的结构.行为和属性的高级抽象. 20世纪80年代,IBM首先引入"信息系统架构框架& ...

  7. 系统架构设计师(学习资料)

    系统架构设计师 系统开发基础 系统开发基础 软件设计包括:体系结构设计.接口设计.数据设计.过程设计 结构设计:说明各个组件的关系 接口设计:人与软件.软件与操作系统之间的如何通信 数据设计:将模型转 ...

  8. 《系统架构设计师教程》 第二章:计算机与网络基础知识

    目录 1. 操作系统基础知识 1.1 操作系统基础知识 1.2 进程管理 1.3 存储管理 1.4 设备管理 1.5 文件管理 1.6 作业管理 2. 数据库系统基础知识 2.1 关系数据库系统基础 ...

  9. 软件设计师教程(四)程序设计语言基础知识

    软件设计师教程 软件设计师教程(一)计算机系统知识-计算机系统基础知识 软件设计师教程(二)计算机系统知识-计算机体系结构 软件设计师教程(三)计算机系统知识-计算机体系结构 程序设计语言知识 软件设 ...

  10. Python基础教程学习笔记:第一章 基础知识

    Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入&q ...

最新文章

  1. 五步构建AI应用实战框架
  2. 插入排序 链表 java_JAVA单链表(多项式)直接插入排序,大家看看我的怎么不行呢...
  3. pmcaff2013产品经理时尚文化屌丝style--马克杯投票。
  4. 临时文件_其实邮箱可能才是最佳的临时文件分享途径
  5. 2022 年移动应用开发终极指南
  6. java程序模拟QQ空间登录 - 并模拟刷说说的赞
  7. MySQL高可用之PXC详解
  8. arcgis分析道路节点中心性degree,closeness,betweenness
  9. 手机计算机怎样调音乐,手机音乐EQ均衡器调节音效简单小技巧-均衡器设置
  10. c 语言 随机值的生成器,C 语言随机数生成器的实现分析
  11. java斗地主代码花色,集合经典案例:斗地主发牌功能实现
  12. oop部分,构造方法,this的使用。
  13. 计算机无线传输的标准,2015计算机三级网络技术考试重点:无线网络
  14. vscode中setting.json配置详解
  15. Linux学习笔记:
  16. jimu Mirror,加速你的 Android UI 开发
  17. 十万条评论告诉你《流浪地球》的1星都是谁打的?
  18. 攻防世界MISC之掀桌子
  19. [SWPUCTF 2021 新生赛]caidao
  20. JDBC的传统连接弊端

热门文章

  1. zul使用java_zk中zul页面中组件的id和java类中的变量绑定实现
  2. ZK(7.0.1)将zul页面引入作为组件标签的简单示例
  3. 学Java看什么视频好呢?视频经验大总结
  4. java全世界各国城市地址解析
  5. 菜鸟教程html码字有颜色,零基础也能看懂!写给设计师的前端小知识之网页排版(附实战)...
  6. C-Free 3.5.2 注册码
  7. 项目进度规划-甘特图
  8. BISS绝对值编码器_TI方案_线路延迟补偿
  9. 计算机组成原理课后答案蒋本,计算机组成原理习题答案(蒋本珊).doc
  10. fiddler注释_fiddler下载_fiddler中文版下载「抓包工具」-太平洋下载中心