热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

【自考】软件件开发工具宏观

最近越来越喜欢画导图了,就连说梦话都说:“你得先把握宏观,再看别的。”临近自考,将软件开发工具这本书的知识点再次串一遍。整个宏观是从软件

    最近越来越喜欢画导图了,就连说梦话都说:“你得先把握宏观,再看别的。”临近自考,将软件开发工具这本书的知识点再次串一遍。




    整个宏观是从软件开发工具的概念出发的。

    软件开发工具是在高级语言的基础上,为了帮助人们进行软件开发工作,适用于整个软件开发过程的一款软件

一、它的基础是:第三代语言——高级语言

    基础是高级语言,那什么是高级语言呢?这就涉及到语言的发展。

    1、最初是没有语言的,然们通过控制台上的扳键将纸带上的由0和1组成的字符串传输到机器。就是我们常说的裸机,这个时候人们的关注点还在于制造出用于运算的运算器,控制器等。

    2、紧接着,人们想着如何将这些字符串转换成机器指令,让机器能够直接识别,于是 机器语言 产生了。

    3、机器指令全部是有0,1组成,二进制指令晦涩难懂,于是人们开始尝试将一些字符串组合成单词来帮助理解,例如Add,Mov,这就是我们的助记符,从而出现了汇编语言。在这个时候,出现了改进计算机的一个方向:建立“专门”的工具。仅仅是方向而已。

    4、虽然说已经有了助记符,只是减轻了编程的困难,没有从根本上解决机器语言的问题:用机器指令来完成动作。于是在20世纪60年代初期,出现了 高级语言 。由高级语言转为机器指令,有专门的编译系统来完成。

  在此阶段,工具这个概念产生,有了软件开发工具这一说。

    5、软件开发工具的发展史:

   (1)在20世纪70年代末,80年代初,人们想要用软件来帮助开发。此阶段用的是通用软件。
    通用软件的三个弱点:
    通用而非专用,所以,不能完成所要求的所有工作,有限制。
    形似而非神似,不能反映出真实的意义;
    一致性难以统一;

   (2)20世纪80年代,专用软件阶段,例如专门用于代码的生成工具,文档编写工具。虽然解决了通用语言的前两个弱点,但未解决一致性的问题。

   (3)集成化工具发展阶段:为了解决一致性的问题,人们开发了统一的支撑环境,例如,1989年IBM开发的AD/Cycle理论开发框架。

   (4)21世纪,互联网的出现以及兴起,促使软件工具走向网络化以及开源化。

   (5)在高级语言中,人们要完成什么工作,就要编写出有顺序的程序来告诉机器如何执行。如果这件事的顺序变了,那就又得重新写一个程序了。为了摆脱这种困难,高级语言逐渐发展出了非过程化语言。在非过程化语言中,人们无需将过程告诉给机器,只需要告诉机器我要干什么就可以了。机器可以自己去安排顺序执行。

二、它的目的是:帮助人们开发软件

   软件开发工作又经历了哪几个阶段呢?

   1、机器语言开发:直接编写机器指令。

   2、汇编语言开发:由汇编指令转换成机器指令。

   3、高级语言开发:高级语言由编译系统转换为机器指令。

   4、20世纪90年代,大量只用软件开发工具的阶段,出现了软件开发人员,有了需求,设计,等阶段。

   5、21世纪,出现了软件架构师。由架构师设计系统的架构,程序员进行算法设计以及代码编写。

三、它的应用范围是:整个软件开发过程——生命周期
    
    计划,分析,设计,实施,测试

    软件工具的功能也是和生命周期有关的。

    1、4个功能要求:

    (1)需求管理:能对客观系统进行描述。

    (2)信息管理:文档的编写生成以及信息的存储。

    (4)项目管理:整个生命周期的管理,例如,版本控制,进度管理,质量管理等。

    (3)代码管理:代码的编写生成。

    2、4个性能要求:

   (1)对于系统:能否准确描述客观系统,是否保持信息的一致性。

   (2)对于软硬件:能否满足软硬件的环境要求

   (3)对于人:是否能够熟练使用,软件的方便程度,软件是否可靠。

四、它的本质是:软件

   软件工作的重要性?

   1、对于计算机来说:硬件是躯体,软件是灵活,软件是在硬件的发展之下产生的。

   2、对于人来说:人类知识与经验的结晶,人类文明的延续,知识载体的变化,提高知识的保存能力。

   3、对于人和计算机来说:软件是人和计算机之间的桥梁。

五、开发工具的分类

   正如大家看到的,在导图中标记了3个数字,这就代表了软件开发工具的三种分类方式。

    1、按照集成程度来分

    2、按照工作阶段来分:计划,分析,设计

    3、按照软硬件关系来分


总结:

    用了半个小时的时间,回忆了一下第一章讲的内容,其实这张导图完全涵盖了书中所涉及到的知识点,这次是只看着导图写的博客,有些地方还是要看书回顾的,这说明有些地方的联系还是比较弱的,这个图还是要改进的。

    貌似做了数据结构的导图以后,再分析其他科目的时候喜欢从概念下手,从现实世界的问题下手,这也相当于是做导图的模板思路吧,但是这样又有点局限,在一些地方不适合难免会牵强,应该多整几个模板来做导图。


推荐阅读
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • CMake跨平台开发实践
    本文介绍如何使用CMake支持不同平台的代码编译。通过一个简单的示例,我们将展示如何编写CMakeLists.txt以适应Linux和Windows平台,并实现跨平台的函数调用。 ... [详细]
  • 解读MySQL查询执行计划的详细指南
    本文旨在帮助开发者和数据库管理员深入了解如何解读MySQL查询执行计划。通过详细的解析,您将掌握优化查询性能的关键技巧,了解各种访问类型和额外信息的含义。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • Google最新推出的嵌入AI技术的便携式相机Clips现已上架,旨在通过人工智能技术自动捕捉用户生活中值得纪念的时刻,帮助人们减少照片数量过多的问题。 ... [详细]
  • 本文探讨了 C++ 中普通数组和标准库类型 vector 的初始化方法。普通数组具有固定长度,而 vector 是一种可扩展的容器,允许动态调整大小。文章详细介绍了不同初始化方式及其应用场景,并提供了代码示例以加深理解。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • 本文深入探讨了 Java 编程语言的基础,特别是其跨平台特性和 JVM 的工作原理。通过介绍 Java 的发展历史和生态系统,帮助初学者理解如何编写并运行第一个 Java 程序。 ... [详细]
  • C++构造函数与初始化列表详解
    本文深入探讨了C++中构造函数的初始化列表,包括赋值与初始化的区别、初始化列表的使用规则、静态成员初始化等内容。通过实例和调试证明,详细解释了初始化列表在对象创建时的重要性。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 深入理解Java泛型:JDK 5的新特性
    本文详细介绍了Java泛型的概念及其在JDK 5中的应用,通过具体代码示例解释了泛型的引入、作用和优势。同时,探讨了泛型类、泛型方法和泛型接口的实现,并深入讲解了通配符的使用。 ... [详细]
  • libsodium 1.0.15 发布:引入重大不兼容更新
    最新发布的 libsodium 1.0.15 版本带来了若干不兼容的变更,其中包括默认密码散列算法的更改和其他重要调整。 ... [详细]
  • 本文介绍如何在Java项目中使用Log4j库进行日志记录。我们将详细说明Log4j库的引入、配置及简单应用,帮助开发者快速上手。 ... [详细]
  • 本文详细记录了在银河麒麟操作系统和龙芯架构上使用 Qt 5.15.2 进行项目打包时遇到的问题及解决方案,特别关注于 linuxdeployqt 工具的应用。 ... [详细]
author-avatar
莫怀嘉805
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有