对软件的理解

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

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

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

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

快速软件开发(rapid software development)和敏捷方法(agile method)还有极限编程(extreme programming)是什么关系?是不是敏捷方法是快速软件开发的一种方法?极限编程是敏捷方法的一种编程?还有哪些敏捷方法?
时间: 2024-08-08 17:53:46

对软件的理解的相关文章

关于对测绘软件的理解

关于测绘软件,我们用过两种,其一是科傻平差软件,另一个是南方CASS7.0, 科傻平差软件是用来计算.平差.评定精度和输出成果,我们进行了平差.评定精度以及控制网平差.进行科傻之前需要先用全站仪进行测量,将所得的数据进行一些格式上的改动,将数据变为科傻能够是别的文件后在进行平差或者精度评定,科傻系统的对象为控制网,单一的观测数据是无法用科傻进行工作的,当我们将所观测的数据变为以控制网名的文件后,科傻系统会自动的进行计算.组成并解算法方程等等许许多多的概算步骤,之后并进行精度评定,成果输出并保存.

iOS软件开发框架理解

这个东西是硬伤,框架?自带的mvc? 自带的UIViewController UIView UINavigationController 这些算不算?当然算的,cocoa框架嘛,大家都知道. 其实,我想分享的是:整个软件设计的代码结构管理.在阅读了不少源码后,总结出来的好的设计代码结构分布逻辑. 一开始,我们学会了简单的使用UIButton,UIImage等这些常用的视图类的时候,我们其实已经能够写出来一般的软件了.常见的功能,这里添加一点,那里添加一点,这里一个网络请求,这里一个bool类型判

eNSP仿真模拟软件之理解Hybrid接口的应用

1. 实验原理 Hybrid接口既可以连接普通终端的接入链路又可以连接交换机间的干道链路,它允许多个VLAN的帧通过,并可以在出接口方向将某些VLAN帧的标签剥掉. Hybrid接口处理VLAN帧的过程如下: (1)收到一个二层帧,判断是否有VLAN标签.没有标签,则标记上Hybrid接口的PVID,进行下一一步处理:有标签,判断该Hybrid接口是否允许该VLAN的帧进入,允许则进行下一步处理,否则丢弃. (2)当数据帧从Hybrid接口发出时,交换机判断VLAN在本接口的属性是Untagge

服务端软件的服务品质

Web服务端软件的服务品质概要 软件品质概述 提供同样功能.产品和服务的服务者中, 竞争力来自功能的多样化和服务品质的差异化, 无论是个体.企业还是国家. 这里的服务指功能.产品的实现程度和处理能力,以及研发/客服提供的技术支持程度(7*24, 随时响应, 沟通便捷,快速解决,温馨提示,有效指南等). 从某种意义来说, 一切皆服务. 功能和产品只是形式, 服务才是本质.服务响应某种需求从而具备存在价值.个体.企业为社会提供某种类型.某种程度的服务,并获得相应回报. 程序员提供的服务是,在特定的工

对VC++6.0编译软件的评价

首先这个软件伴随着我们很长时间了,它是我们一上大学最先接触的,也是应用相当多的一个软件,其实在最初的时候,我对编译软件的理解非常有限,觉得它能实现一个代码的功能十分神奇的一件事情,虽然彼时我们写的代码都非常简单,但是敲击在键盘上之后,编译时还是出现了大量的问题. 尽管VC++6.0有很多的问题,比如说错误指示方位不对,有很多库函数都没有,界面形式非常单一,不能显示动态界面,不如我们后来接触的软件有那么多功能或者是那么智能化.简单说就是这个软件的学习跟实际工作要求是很有距离的,但它的确很经典,对于

服务端软件的服务品质保证

提供同样功能.产品和服务的服务者中, 竞争力来自功能的多样化和服务品质的差异化, 无论是个体.企业还是国家. 这里的服务指功能.产品的实现程度和处理能力,以及研发/客服提供的技术支持程度(7*24, 随时响应, 沟通便捷,快速解决,温馨提示,有效指南等). 从某种意义来说, 一切皆服务. 功能和产品只是形式, 服务才是本质.服务响应某种需求从而具备存在价值.个体.企业为社会提供某种类型.某种程度的服务,并获得相应回报. 程序员提供的服务是,在特定的工作环境和企业文化中,运用可用的资源以及自己的知

软件开发架构分析和架构模式一

架构分析: 架构分析工作主要从宏观上考虑一个软件系统应该如何组织.通常,在架构分析工作中,我们需要确定一些策略性的设计方针,原则和基本模式.在它们的指导下,我们可以高屋建瓴地分析软件系统的宏观结构,认识软件系统由哪些组件构成,了解组件之间的接口和协作关系.架构分析的结果对于后续的面向对象设计工作也是一种约束,有助于消除设计和实现过程中的随意性.因此,架构分析有时也被称为策略设计 组件指的是一组对象构成的,有固定接口的有机体,当设计者的观察视角不同,组件的规模不同或者组件内部的封装度程度不同时,这

软件设计的切入点是什么?如何从最初的需求提取出一个粗粒度的软件结构?

一切设计的切入点是什么呢?我们必须从最初的需求和约束条件的混沌中提取出一个粗粒度的软件结构,然后再把它划分为构成待开发系统的有实际意义的各个部分,这就形成了一个清晰的初期概念设计,并形成一种理性.深入.细腻及智慧的设计风格. "顶层架构设计"相关模式的思维导图如下. 分布式系统模式语言的根模式和切入点.这些模式有助于我们从最初的需求和约束条件的混沌中提取出一个粗粒度的软件结构,然后再把它划分为构成待开发系统的有实际意义的各个部分. 1)凭直觉设计容易形成大泥球 要设计出可持续软件,必须

软件开发概述--敏捷模式

软件开发生命周期 SDLC--Software Development Life Cycle. 传统的软件开发生命周期有: 瀑布模型:顺序进行,只有完成上一个阶段才能开启下一个阶段,将软件生命周期分为:制定计划.需求分析.软件设计.编写程序.软件测试及运行维护六个基本活动.优点是为项目提供了按阶段划分的检查点及关注点,必须为其提供模板来使分析.设计.编码.测试.支持有一个共同的指导.缺点是各个阶段划分固定,其间产生大量文档,极大地增加了工作量,用户只有等到整个过程的末期才能看到开发成果,增加了开