Atitit 软件工程概览attilax总结

1.1. .2 软件工程的发展

进一步地,结合人类发展史和计算机世界演化史来考察软件工程的发展史。

表2 软件工程过程模型

表2将软件工程的主要过程模型做了一个简要的汇总,并将所有的软件工程模型划分为三大领域和五个阶段,三大领域分别为:

1) 惯例模型:瀑布模型,增量模型,演化过程模型和统一过程模型是其中的代表;

2) 敏捷过程模型:极限编程(XP)是其中的代表;

3) 新过程模型和研究领域:模型驱动开发和云计算是其中的代表;

而在五个关键性阶段中,链式原则贯穿始终。

1) 第一阶段:瀑布模型。软件的工业化和类生命性最终导致了瀑布模型的出现,瀑布模型构建了软件世界中一个最基本的生命周期理念。同时有趣的是,瀑布模型和大规模集成电路、结构化程序设计语言以及面向对象语言一起出现在1970年前后,耐人寻味;

2) 第二阶段:演化过程模型。如同生物的演化并非一蹴而就,成熟的软件也应是通过多个细小的生命循环周期迭代而成,演化过程模型的出现再次验证了软件所特有的类生命特征;

3) 第三阶段:统一过程阶段。 统一过程模型和CMM/CMMI的提出,反映了人类的一个基本需求,即在高速变化的环境中试图追求内部的相对稳定,这同时也标志着软件工程进入到相对成熟和稳定的阶段;

4) 第四阶段:惯例模型和敏捷过程模型并存阶段。敏捷过程反映了人类的另一个基本需求—随变顺变应变。当软件工程演化到这一阶段时,如同生物界和计算机世界演化一样,实际上已经开始显现种群化的特征;

5) 第五阶段:模型驱动和云计算阶段。模型驱动是为了满足软件工业自动化的需求,云计算则基于Internet,强调面向服务与计算资源整合。这两个概念提出已久,而真正启动才刚刚开始,距离成熟有待时日。但也进一步证明了软件工程开始进入种群化阶段。

需要指出的一点是,由于软件工程的发展遵循链式原则,软件工程的发展也总是滞后于软件的发展,通常是在软件的某项语言、技术或工具进入稳定期后,软件工程才会有相应新的思想出现。

例如,软件的高级语言在1954年已出现,而软件工程在1968年才刚刚提出;当软件进入结构化程序阶段时,瀑布模型刚刚显现;当软件面向对象技术逐渐成熟时,演化过程模型开始出现;当面向对象技术开始和网络紧密结合时,统一和敏捷过程才开始出现。

可以预见的是,未来软件发展和软件工程发展之间的间隔会逐步缩短,5-10年的滞后期有可缩短到2-3年。

1.1.1.  .2 从无性繁殖到有性繁殖

在2.1中可以看到,类似于生物界的演化,计算机世界在进入到种群化阶段后,下一个需要实现的重大突破是从无性繁殖到有性繁殖。

众所周知,在生命世界中,除病毒外,绝大部分都是由细胞组成的。而此类生物在进化过程中,存在两种截然不同的繁殖方式,无性繁殖和有性繁殖。

无性繁殖在进化的低级阶段产生,采用简单的分裂方式进行繁殖,产生的生命体相对稳定,进化以变异为基础进行,繁殖速度惊人。但对环境变化的适应能力较差。

有性繁殖在进化的高级阶段产生,有性繁殖使后代在性状上产生分离,实现后代性状的多样性变异,同时继承父母双发优良基因的后代获得更大的生存几率,对环境变化的适应性要远远优于无性繁殖。

再次透析软件与软件工程的发展,当软件进入到面向对象的阶段时,人类就已经利用“类”这个概念创造为软件创造出了一个最原始的细胞,软件大师们曾本能地尝试用单类继承和多类继承两种来构造软件的核心,不行的是,多类继承在稳定性上存在诸多无法解决的问题,最终单类继承加接口的方式占据了主流。

结合3.1基本可以认定,目前的软件体系仍处于无性繁殖向有性繁殖过渡的初始阶段。软件体系的变异主要采用重构或接口或服务的方式实现。而在未来,要想实现生命世界的”适者生存”式的变异和自我进化,对于软件的最基本单元“类”,也许最佳的模式既不是单类继承,也非多类继承,而是一父一母的双类继承,同时变异时采取类似人类染色体似的变异法则,只允许同种群间的单个或极少部分染色体结合发生变异,这样既保证了一定程度的稳定性,又提供了更优良的变异,如此才能让计算机及其软件真正实现生命世界高级阶段的有性繁殖。

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )

汉字名:艾提拉(艾龙),   EMAIL:[email protected]

转载请注明来源: http://www.cnblogs.com/attilax/

软件工程

第1章 概述

第2章 软件过程

第3章 敏捷软件开发

第4章 需求工程

第5章 系统建模

第6章 体系结构设计

第7章 设计与实现

第8章 软件测试

第9章 软件进化

软件工程导论(第6版)(

第1章软件工程学概述1

习题132第2章可行性研究35

习题253第3章需求分析55

习题373第4章形式化说明技术75

习题489第5章总体设计91

习题5114第6章 详细设计117

习题6140第7章 实现145

习题7183第8章 维护189

习题8201第9章面向对象方法学引论203

习题9229第10章面向对象分析231

习题10256第11章面向对象设计259

习题11288第12章面向对象实现289

习题12304第13章软件项目管理305

 软件过程

2.1 软件过程模型

2.1.1 瀑布模型

2.1.2 增量式开发

2.1.3 面向复用的软件工程

2.2 过程活动

2.2.1 软件描述

2.2.2 软件设计和实现

2.2.3 软件有效性验证

2.2.4 软件进化

2.3 应对变更

2.3.1 原型构造

2.3.2 增量式交付

2.3.3 Boehm的螺旋模型

2.4 Rational统一过程

  需求工程

4.1 功能需求和非功能需求

4.1.1 功能需求

4.1.2 非功能需求

4.2 软件需求文档

4.3 需求描述

4.3.1 自然语言描述

4.3.2 结构化描述

4.4 需求工程过程

4.5 需求导出和分析

4.5.1 需求发现

4.5.2 采访

4.5.3 脚本

4.5.4 用例

4.5.5 深入实际

4.6 需求有效性验证

4.7 需求管理

4.7.1 需求管理规划

4.7.2 需求变更管理

1.2. 第四次工业革命 信息革命

1.3. 软件工程思想系列书籍

【20】 “人件”(Peopleware : Productive Projects and Teams, 2nd Ed.)

【21】 “人件集 —— 人性化的软件开发”( The Peopleware Papers: Notes on the Human Side of Software)

【22】 “人月神话”(The Mythical Man-Month)

【23】 “软件工程 — 实践者的研究方法(原书第5版)”(Software Engineering: A Practitioner‘s Approach, Fifth Edition)

【24】 “敏捷软件开发-原则、模式与实践”(Agile Software Development: Principles, Patterns, and Practices)

【25】 “规划极限编程”( Planning Extreme Programming)

1.4. 【27】 “统一软件开发过程”(The Unified Software Development Process)

1.5. 项目文档

类数量度量,方法数量度量

代码行数统计

类与方法命名 单词 统计 度量

Patch打包工具

Class搜索在dir中的jar文件。。

类似于Findbugs 可扩展检查工具

核心class生成检查工具(制定核心package目录)。。非核心的可以不生成,有err

扫描源码,列出需要的jar包 ,缺失的jar包

项目每日备份工具(包括代码,数据库)

开发工具启动器

Atiend attilaxend

时间: 09-27

Atitit 软件工程概览attilax总结的相关文章

atitit.薄伽梵歌overview  attilax 读后感

atitit.薄伽梵歌overview  attilax 读后感 1. 唯一一本记录神而不是神的代言人或者先知言论的经典 2 2. 篇章规模,字数3 3. 内容摘要3 4. 主要内容3 4.1.1. 第一章(在库如雪查战场上阅兵)3 4.1.2. 第二章(薄伽梵歌内容提要)3 4.1.3. 第三章(行业瑜珈)4 4.1.4. 第四章(超自然的知识)4 4.1.5. 第五章(有为瑜伽——卡摩瑜伽)4 4.1.6. 第六章(数论瑜伽)4 4.1.7. 第七章(对真理的认识)4 4.1.8. 第八章(

Atitit phpstorm配置attilax总结

1. 前期准备 1 1.1. 配置interpreter 1 1.2. debug需要xdebug的支持,不管是script模式还是web模式 3 2. 以php script运行 3 2.1.1. 以php web运行 4 3. Php web debug的配置与使用 4 3.1. 多用户远程调试 xdebug.remote_connect_back=1 4 3.2. 参考资料 5 1. 前期准备 1.1. 配置interpreter 首先,在phpstorm中是直接可以运行PHP程序而不需要

Atitit MATLAB 图像处理attilax总结

1.1. 下载 Matlab7.0官方下载_Matlab2012 v7.0 官方简体中文版-办公软件-系统大全.html1 1.2. Matlab cli接口 命令行执行m文件1 1.3. Matlab编程语言2 1.4. Matlab helo world3 1.5. matlab如何调用外部函数_百度知道.html3 1.6. matlab中如何定义函数3 1.7. 获取matlab的输出console3 2. qa4 2.1. Error: Missing variable or func

Atitit 转移特效attilax总结

总结一般从按钮,转移到大点的方框上回比较好看点.. <!--jq ui--> <style type="text/css"> .ui-effects-transfer { border: 2px dotted gray; } </style> <link rel="stylesheet" type="text/css" href="../com.atilax.frmwk/jquery-ui-1.

Atitit 理解Monad attilax总结

但函数式编程最大的一个问题是,函数是一个数学抽象,在现实世界中不存在,1 那既然这样就够用了,还要 Monad 干嘛?Monad 的作用在这里就体现出来了,它就是个加强的胶水函数1 但函数式编程最大的一个问题是,函数是一个数学抽象,在现实世界中不存在, 它必须被模拟出来.目前为止被广泛使用的计算机还是基于图灵机模型,计算机的寄存器.缓存.内存就是用来记录状态的.要真正懂得程序设计,必须知道没有状态的函数是如何在充满状态的计算机上实现的,所以还是绕不开非函数式的编程.另外绝大部分的函数式程序设计语

Atitit 华为基本法 attilax读后感

"精神对物质的比重是三比一" 认可拿破仑的这句格言 在20多年中国商业和企业史上,一个最基本.也是最大的现象就是,为什么"中国制造"越来越陷入全球产业链和价值链低端的"天问"?"后进"的中国公司或国家,为什么没有在所谓的"后发优势"中真正成功,反而走上价值链被锁定的困境和陷阱?这是笼罩在20多年中国企业命运和国家命运上的"魔咒,它的直接后果不仅是公司竞争力和国家竞争力的问题,而且已经在付出沉重的社

Atitit 边缘检测原理attilax总结

1. 边缘检测的概念1 1.1. 边缘检测的用途1 2. 边缘检测方法分类1 3. 边缘检测的基本方法2 3.1. Roberts边缘检测算子2 3.2. rewitt边缘检测算子2 3.3. sobel边缘检测算子(较为常用)2 4. Canny边缘检测(最常用)2 4.1. 参考资料4 1. 边缘检测的概念 边缘检测是图像处理与计算机视觉中极为重要的一种分析图像的方法,至少在我做图像分析与识别时,边缘是我最喜欢的图像特征.边缘检测的目的就是找到图像中亮度变化剧烈的像素点构成的集合,表现出来往

atitit.LimeSurvey 安装 attilax 总结

LimeSurvey 安装 (OSSEZ) CHS 技术参考, 2011-05-02 Author: YUCHENG HU, HA Websystems, Inc. 备忘 Copyright ? HA WEBSYSTEMS 2006–2011. 版权所有 URLs 参考: http://www.hawebs.net http://www.hawebs.org 技术支持: http://www.ossez.com 知识产权: HA WEBSYSTEMS 罕布什尔 (中国) 信息技术有限公司及作者持

Atitit.现在的常用gui技术与gui技术趋势评价总结

1. Gui俩种分类:  native 和 dsl 和 script1 2. 最好的跨平台gui技术h51 2.1. 几大技术体系(java .net php android ios)都能接受的gui技术 唯一就是h5了..2 3. 如何评价gui各个解决方案??2 4. 公司选择与个人选择的矛盾2 5. Swing,swt (java native3 6. Winform( net ms native)3 7. Wpf (ms的h5)3 8. Android  ios的native ui技术3