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系统消 ...
随机推荐
- less学习
// 1.变量:颜色可做+- // from @nice-blue: #5B83AD; @light-blue: @nice-blue + #111; #header { color: @light- ...
- SignalR系列续集[系列8:SignalR的性能监测与服务器的负载测试]
目录 SignalR系列目录 前言 也是好久没写博客了,近期确实很忙,嗯..几个项目..头要炸..今天忙里偷闲.继续我们的小系列.. 先谢谢大家的支持.. 我们来聊聊SignalR的性能监测与服务器的 ...
- CMS模板应用调研问卷
截止目前,已经有数十家网站与我们合作,进行了MIP化改造,在搜索结果页也能看到"闪电标"的出现.除了改造方面的问题,MIP项目组被问到最多的就是:我用了wordpress,我用了织 ...
- JavaScript function函数种类
本篇主要介绍普通函数.匿名函数.闭包函数 目录 1. 普通函数:介绍普通函数的特性:同名覆盖.arguments对象.默认返回值等. 2. 匿名函数:介绍匿名函数的特性:变量匿名函数.无名称匿名函数. ...
- 前端学HTTP之报文首部
前面的话 首部和方法配合工作,共同决定了客户端和服务器能做什么事情.在请求和响应报文中都可以用首部来提供信息,有些首部是某种报文专用的,有些首部则更通用一些.本文将详细介绍HTTP报文中的首部 结构 ...
- so 问题来了,你现在值多少钱?
年底了一大帮人都写着年底总结,总结一年做过的事.错过的事和做错的事.增长了多少本事,找没找到女朋友……来年做好升职加薪,要么做跳槽的准备,程序猿又开始浮躁了……. so 问题来了,你现在值多少钱? 这 ...
- StatePattern(状态模式)
/** * 状态模式 * @author TMAC-J * 状态模式和策略模式很像,其实仔细研究发现完全不一样 * 策略模式各策略之间没有任何关系,独立的 * 状态模式各状态之间接口方法都是一样的 * ...
- mysql 写入优化
1 主从分离 从表读取,主表可以去掉索引 2 先写入到文件或redis,定时刷新到库 3 用nginx 4 分库 分表 每个库表的数据总量少了 插入会快一点 5 最大限度减少查库的次数 6 一条sql ...
- 机器指令翻译成 JavaScript —— No.5 指令变化
上一篇,我们通过内置解释器的方案,解决任意跳转的问题.同时,也提到另一个问题:如果指令发生变化,又该如何应对. 指令自改 如果指令加载到 RAM 中,那就和普通数据一样,也是可以随意修改的.然而,对应 ...
- mono for android 获取手机照片或拍照并裁剪保存
axml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android ...