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

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

     

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

     

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

     

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

     

    快速软件开发(rapid software development)和敏捷方法(agile method)还有极限编程(extreme programming)是什么关系?是不是敏捷方法是快速软件开发的一种方法?极限编程是敏捷方法的一种编程?还有哪些敏捷方法?
  • 相关阅读:
    微信小程序wx.uploadFile 上传文件 的两个坑
    小程序 滚动wx.pageScrollTo
    scss定义全局变量引入sass-resources-loader报错
    mac 创建多个全局Path
    《node.js开发指南》partial is not defined的解决方案
    jq 将translate的旋转角度转为数值
    js浮点金额计算精度
    移动端页面弹窗滚动,页面也随之滚动解决方案
    js 禁止右击保存图片,禁止拖拽图片
    小程序md5加密
  • 原文地址:https://www.cnblogs.com/Alisa-mh/p/4771864.html
Copyright © 2011-2022 走看看