《软件开发工具》(第一章)

第一章:绪论

  1. 软件开发工具的范围:在高级程序设计语言的基础上,为提高软件开发的质量和效率,从规划、分析、设计、测试、文档和管理各方面,对软件开发者提供各种不同程度的帮助的一类新型的软件。
  2. 语言的发展:
    第一代语言:每一个大动作都是需要人们用二进制的字符串,即由0 和1组成的祖父串书写来。
    第二代语言:汇编语言:针对难以记忆的,无异议的二进制的字符串,人们试图用在英语中具有一定异议的单词来代替他。
    突破:用英文单词代替了1和0字符串
    不足:没有改变通过逐条命令来指挥机器的的状态。
    第三代语言:过程化语言:
    不足:需要由编写程序的人一步一步地安排好机器的执行次序,需要烤鱼解决问题的细节,加重了中用户的负担。
    优点:
    1) 突破了与机器指令一一对应的限制。
    2) 实现了对机器的独立性,即它不依赖特定的硬件系统。
    3) 抽象地逻辑地描述处理和算法,而把硬件系统之间的区别交给不同的编译系统去处理,有可移植性。
    第四代语言:非过程化语言的思想:从20世纪60年代末期开始,认识到软件工作的困难——软件危机问题。
  3. 软件开发功能巨发展阶段和特点:
    20世纪70年代末——80年代初期:
    这个阶段称为:利用通用软件作为辅助工具的阶段(没有专用软件开发工具的阶段)用通用软件来帮助软件开发人员编写文档或画图可以减少很多工作量。
    弱点:
    1) 有许多工作是通用软件所无法完成的
    2) 用通用软件完成某些工作,智能表现出其表面的形式,不能反映其逻辑内涵。
    3) 通用软件来帮助人们完成软件开发工作时,常常遇到难以保持一致性的困难
    20世纪80年代以来:进入专用软件开发工具的阶段
    特点:
    1) 软件的开发缺乏全面的,同意的支撑环境
    2) 1989年,IBM公司先不了一个AD/Cycle的巨大的理论框架
    90年代末大量软件开始使用:这可以看做进入集成的软件开发环境阶段的标志
    21世纪
    软件开发工具的发展也进入了新的阶段。
    特点:
    1) 面向网络,不仅基于网络,而且用于网络
    2) 开源软件的兴起和运用
  4. 如何认识软件和硬件
    1) 软硬件缺一不可,软件实际上是人类知识与经验的结晶。
    2) 软件是事先编号的指令,正是人们在实践中形成的工作规范与步骤
    3) 硬件才能完成任务
    4) 可以对不同的数据反复地使用
  5. 软件开发工作的发展变化
    1) 最初阶段:用机器语言开发软件
    2) 第二阶段:用汇编语言开发软件:由汇编程序完成转换
    3) 第三阶段:用高级语言开发软件:由编译程序完成转换
    4) 第四阶段:在各种软件开发工具帮助下完成:由编译程序完成转换
    5) 软件开发工作的新阶段:由软件架构师完成架构设计:由程序员用软件开发工具王城程序开发:由编译程序完成转换
  6. 软件开发工具的提出与使用,是软件技术发展的新阶段:有四个方面
    1) 自动化程度的提高
    原因是第三代语言编程中的部分工作已由工具代替执行了
    2) 这一阶段的工作明确地把,需求分析和架构设计包括在软件工作的范围之内,从而使软件开发过程进一步向用户方面延伸,顺应了大量开源软件出现的客观环境,进一步显示出软件开发的继承性和开放性,进一步证明了软件是人类知识积累和传承的心得有力手段
    3) 把软件开发工作延伸到项目以及版本管理,从而超出了一次变成的局限,而扩展到了作为一个不断发展的客体生长完善的全过程。这也是软件演示从个体的,手工作坊的方式向科学的,有组织的,有计划的方式转变的一个重要表现
    4) 在这个阶段,吸收了许多管理科学的内容和方法,把祖师、管理等项目负责人的思想与方法放到了更重要的位置。人们越来越深刻地认识到,软件生产的成败更多地依赖于合理地组织与协调,而不是领导者或程序员个人的编程能力。
  7. 软件开发工具的类别:
    按工作阶段划分:
    分三类:计划工具,分析工具,设计工具
    1) 设计工具是最具体的,它是指在实现阶段对人们提供帮助的工具。例如,各种代码生成器。一半所说的第四代语言及帮助人们进行测试的工具,包括提供此时环境或此时数据等,都是设计工具,他是最直接帮助人们编写与调试软件的工具。
    2) 分析工具主要指用于支持需求分析的工具。Dictionary/3000、帮助人们绘制数据流程图的专用工具FLOW
    3) 计划工具:从宏观的角度去看待软件开发,在实际中,设计工具 出现得醉倒,数量最多。
    有些地方还是把软件开发工具分为上游工具和下游工具。
    按集成程度划分
    按与硬件、软件的关系划分

猜你喜欢

转载自blog.csdn.net/xml1996/article/details/81092595