zoukankan      html  css  js  c++  java
  • 对软件的理解

    有一种说法,硬件与软件是相辅相成的关系。每当硬件有了质的发展时,软件性能就会有一个大的飞跃,而软件发展超前时,又会对硬件提出更高的要求,促使硬件的发展。

     

    同样的,在软件领域,技术与软件开发也是这样的关系。当技术还没有发展到一定程度时,软件的开发就完全是个人英雄主义的或是手工作坊式的开发。一个好的编程人员,可以独立制作出软件。但技术的日益完善,所处理的问题日益复杂对软件的开发提出了更高的要求,单一的作战方式不能满足软件开发的复杂度。这也就是60年代的软件危机。必须改变手工作坊式的开发方法,采取工程化的开发方法和工业化的生产技术。这是软件工程应运而生。同时,软件工程的诞生,又对技术的进步起到了推进作用,许多新的管理概念,技术构建的想法,在这个新的领域蓬勃发展。

     

    从简单的逻辑上讲,软件工程就是将现实世界中复杂无序的高层问题,通过人的作用,转化为计算机(机器)可以解决的简单有序的底层问题。

     

    由于有了“现实复杂”到“机器简单”的过程,软件工程就不仅仅是单一的编程过程了。它包括系统分析->建模->概要设计->详细设计->编码->测试->维护。编码可以理解为编程,这个只占总时间的20%。编程只是一小部分。如果说把软件工程比作建筑业的话,是讲的是怎么进行有效组织顺利完成目标,那么编程只是工程设计到的一项技能,如同建筑中砌砖,讲究如何把砖砌的好

     

    快速软件开发(rapid software development)和敏捷方法(agile method)还有极限编程(extreme programming)是什么关系?是不是敏捷方法是快速软件开发的一种方法?极限编程是敏捷方法的一种编程?还有哪些敏捷方法?
  • 相关阅读:
    索引唯一性扫描(INDEX UNIQUE SCAN)
    索引范围扫描(INDEX RANGE SCAN)
    算法设计与分析——回溯法算法模板
    操作系统考试复习大纲
    windows cmd 生成文件目录树
    Java 匿名类和lambda表达式
    下载Abook 高等教育出版社网站资料
    操作系统——银行家算法(Banker's Algorithm)
    算法设计与分析——最大团问题(回溯法)
    JVM内存区域
  • 原文地址:https://www.cnblogs.com/Alisa-mh/p/4771864.html
Copyright © 2011-2022 走看看