Atitit 软件工程概览attilax总结
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:1466519819@qq.com
转载请注明来源: 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
Atitit 软件工程概览attilax总结的更多相关文章
- Atitit 乌合之众读后感attilax总结 与读后感结构规范总结
Atitit 乌合之众读后感attilax总结 与读后感结构规范总结 1. 背景概览与鸟瞰overview 1 1.1. 社会背景 与 历史事件背景 与历史时间背景 1 1.2. 书籍简绍 2 1. ...
- Atitit 2016年attilax事业成就表
Atitit 2016年attilax事业成就表 1.1. 项目管理模型---Rem模型2 1.2. 项目管理模型---vsi模型val specs implt3 1.3. 研发体系完善(gui与游戏 ...
- Atitit MATLAB 图像处理attilax总结
Atitit MATLAB 图像处理attilax总结 1.1. 下载 Matlab7.0官方下载_Matlab2012 v7.0 官方简体中文版-办公软件-系统大全.html1 1.2. Matla ...
- Atitit 边缘检测原理attilax总结
Atitit 边缘检测原理attilax总结 1. 边缘检测的概念1 1.1. 边缘检测的用途1 2. 边缘检测方法分类1 3. 边缘检测的基本方法2 3.1. Roberts边缘检测算子2 3.2. ...
- Atitit 理解Monad attilax总结
Atitit 理解Monad attilax总结 但函数式编程最大的一个问题是,函数是一个数学抽象,在现实世界中不存在,1 那既然这样就够用了,还要 Monad 干嘛?Monad 的作用在这里就体现出 ...
- Atitit 华为基本法 attilax读后感
Atitit 华为基本法 attilax读后感 “精神对物质的比重是三比一” 认可拿破仑的这句格言 在20多年中国商业和企业史上,一个最基本.也是最大的现象就是,为什么"中国制造" ...
- Atitit phpstorm配置attilax总结
Atitit phpstorm配置attilax总结 1. 前期准备 1 1.1. 配置interpreter 1 1.2. debug需要xdebug的支持,不管是script模式还是web模式 3 ...
- Atitit 转移特效attilax总结
Atitit 转移特效attilax总结 总结一般从按钮,转移到大点的方框上回比较好看点.. <!--jq ui--> <style type="text/css" ...
- Atitit 路径规划法attilax总结 扫描线路法
Atitit 路径规划法attilax总结 扫描线路法 2017/2/8 20:43:37[吐槽]深圳-小 2017/2/8 20:43:37 群主做什么的2017/2/10 10:03:15系统消 ...
随机推荐
- SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)
SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...
- Mediaplayer error (-19,0)
Android MediaPlayer 发生 error (-19,0) 错误解决方法. 引起原因:由于多次实例化MediaPlayer.start() 进行播放操作引起的.由于没有及时释放内存资源导 ...
- jQuery动画-圣诞节礼物
▓▓▓▓▓▓ 大致介绍 下午看到了一个送圣诞礼物的小动画,正好要快到圣诞节了,就动手模仿并改进了一些小问题 原地址:花式轮播----圣诞礼物传送 思路:动画中一共有五个礼物,他们平均分布在屏幕中,设置 ...
- JavaScript动画-碰撞检测
▓▓▓▓▓▓ 大致介绍 碰撞检测是指在页面中有多个元素时,拖拽一个元素会出现碰撞问题,碰撞检测是以模拟拖拽和磁性吸附中的范围限定为基础的 效果:碰撞检测 ▓▓▓▓▓▓ 碰撞检测 先来看看碰撞检测的原理 ...
- DOM、BOM 操作超级集合
本章内容: 定义 节点类型 节点关系 选择器 样式操作方法style 表格操作方法 表单操作方法 元素节点ELEMENT 属性节点attributes 文本节点TEXT 文档节点 Document 位 ...
- 消息队列性能对比——ActiveMQ、RabbitMQ与ZeroMQ(译文)
Dissecting Message Queues 概述: 我花了一些时间解剖各种库执行分布式消息.在这个分析中,我看了几个不同的方面,包括API特性,易于部署和维护,以及性能质量..消息队列已经被分 ...
- Spring resource bundle多语言,单引号format异常
Spring resource bundle多语言,单引号format异常 前言 十一假期被通知出现大bug,然后发现是多语言翻译问题.法语中有很多单引号,单引号在format的时候出现无法匹配问题. ...
- BlockingCollection使用
BlockingCollection是一个线程安全的生产者-消费者集合. 代码 public class BlockingTest { BlockingCollection<int> bc ...
- arcgis api for js入门开发系列六地图分屏对比(含源代码)
上一篇实现了demo的地图标绘模块,本篇新增地图地图分屏对比模块,截图如下(源代码见文章底部): 对效果图的简单介绍一下,在demo只采用了两分屏对比,感兴趣的话,可以在两分屏的基础上拓展,修改css ...
- iOS 小知识点(持续更新)
1.如何通过代码设置Button title的字体大小 设置Button.titleLabel.font = [UIFont systemFontOfSize:<#(CGFloat)#> ...