瀑布模型 软件 过程
1 引言软件生命周期是软件由产生直到报废的生命周期,周期内可有可行性分析、需求分析、概要设计、详细设计、编码、测试和维护等阶段。
软件生命周期解释如何演绎软件过程的思想,是软件生命周期模型化技术的基础,也是建立软件开发环境的核心。
生命周期模型会为软件开发提供支持,为软件开发过程中所有活动提供政策保证,为参与软件开发的所有成员提供帮助和指导。
软件生命周期模型的适用与否,对于软件开发的成功、用户的满意影响巨大。
瀑布模型是软件工程中应用的非常广泛的一种软件生命周期模型,传统的软件工程方法学的软件过程基本上都可以用该模型进行描述。
2 瀑布模型瀑布模型是W.Royce 于1970 年首先提出的,由可行性研究、需求分析、系统设计、编码、测试、运行和维护各阶段组成。
该模型把软件生命过程比喻成瀑布的流水,每个阶段看作瀑布中的一个台阶,软件生命过程在台阶上由上向下流动。
瀑布模型规定上一阶段的变换结果是下一阶段变换的输入,相邻两个阶段具有因果关系,紧密相联。
为保障软件开发的正确性,每一阶段任务完成后,都必须对它的阶段性产品进行评审,确认之后再转入下一阶段的工作。
评审过程发现错误和疏漏后,应该反馈到前面的有关阶段修正错误、弥补疏漏,然后再重复前面的工作,直至某一阶段通过评审后再进入下一阶段。
瀑布模型的特点非常鲜明。
首先,它以文档形式驱动的,为管理者进行项目开发管理提供基础,对开发过程中的活动进行约束。
其次,它是一种整体开发模型,在开发过程中,用户看不见系统是什么样,只有开发完成向用户提交整个系统时,用户才能看到一个完整的系统。
最后,该模型过程逆转性很差或者说不可逆转,因为根据前面阶段的错误会在后面的阶段进行发散性传播的原理,所以逆转将会延误工期,增加成本,造成重大损失。
瀑布模型的优点如下:通过设置里程碑,能够明确每阶段的任务与目标;可为每阶段制定开发计划,进行成本预算,组织开发力量;通过阶段评审,将开发过程纳入正确轨道;严格的计划性保证软件产品的按时交付。
任何事物都不是完美的,瀑布模型也一样,该模型的缺点包括:缺乏灵活性,不能适应用户需求的改变;开始阶段的小错误被逐级放大,可能导致软件产品报废;返回上一级的开发需要十分高昂的代价;随着软件规模和复杂性的增加,软件产品成功的机率大幅下降。
3 V模型V模型是瀑布模型的变形,着重于测试活动如何与分析和设计相联系。
V 模型认为:单元测试和集成测试用于验证程序设计,即在单元测试和集成测中,编码人员和测试人员应确保程序设计的所有方面都已经在代码中正确实现;系统测试应验证系统设计,保证系统设计的所有方面都已正确实现;验收测试由用户来进行,把测试步骤与需求规格说明中的每一个要素联系起来对需求进行确认。
该模型中V 形左右两边连线说明各阶段的对应关系。
如果在验证和确认期间发现问题,应重新执行左边的步骤进行修正和改进相应的需求、设计和编码,然后去再次执行右边的测试,这样做使得迭代和重做的过程由隐藏变明确。
与瀑布模型关注对象是文档和制品相比,V 模型更加关注活动和正确性。
4 结束语不是任何软件都可采用瀑布模型的,瀑布模型适合于结构化方法,也就是面向过程的软件开发方法。
软件项目或产品选择瀑布模型必须满足下列条件:在开发时间内需求没有或很少变化;分析设计人员对应用领域很熟悉;低风险项目(对目标、环境很熟悉);用户使用环境很稳定;用户除提出需求以外,很少参与开发工作。
尽管上述条件比较苛刻,但是软件企业在开发新产品或新项目时往往还是采用瀑布模型,系统软件和工具软件也常常采用瀑布模型。
软件质量保证的未来
从某种程度上说,独立的QA审查机制是瀑布模型的产物。
随着现代软件开发技术的演变,螺旋模型和迭代模型的兴起,QA机制正在悄然发生变化。
这种变化就是从独立专职的QA向贯穿过程的兼职QA演变。
在CMMI模型中,这种兼职的QA也是被允许的。
为什么会发生这种改变呢?无论是XP、RUP还是其它先进的方法论,都是先产生架构,然后再增量开发,直到完成。
这种模式中,需求和设计缺陷在各个迭代周期被所尽早发现和修复,质量也内建于架构和过程中,项目的成本和进度也得到保障。
到那时,是不是独立的QA就不复存在了呢?有些成熟度较低的企业还是需要的,主要是保证过程执行的有效性和评价的客观性。
软件质量评估的软件质量的有关概念
软件质量定义为:与软件产品满足需求所规定的和隐含的能力有关的特征或特性的全体。
具体包括:(1) 软件产品中所能满足用户给定需求的全部特性的集合;(2) 软件具有所有的各种属性组合的程度;(3) 用户主观得出的软件是否满足其综合期望的程度;(4) 决定所用软件在使用中将满足其综合期望程度的合成特性。
如图1所示,软件质量框架是一个“质量特征—质量子特征—度量因子”的三层结构模型。
在这个框架模型中,上层是面向管理的质量特征,每一个质量特征是用以描述和评价软件质量的一组属性,代表软件质量的一个方面。
软件质量不仅从该软件外部表现出来的特征来确定,而且必须从其内部所具有的特征来确定。
第二层的质量子特征是上层质量特征的细化,一个特定的子特征可以对应若干个质量特征。
软件质量子特征是管理人员和技术人员关于软件质量问题的通讯渠道。
最下面一层是软件质量度量因子(包括各种参数),用来度量质量特征。
定量化的度量因子可以直接测量或统计得到,为最终得到软件质量子特征值和特征值提供依据。
按照软件质量国家标准GB-T8566--2001G,软件质量可以用下列特征来评价:a.功能特征:与一组功能及其指定性质有关的一组属性,这里的功能是满足明确或隐含的需求的那些功能。
b.可靠特征:在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性。
c.易用特征:由一组规定或潜在的用户为使用软件所需作的努力和所作的评价有关的一组属性。
d.效率特征:与在规定条件下软件的性能水平与所使用资源量之间关系有关的一组属性。
e.可维护特征:与进行指定的修改所需的努力有关的一组属性。
f.可移植特征:与软件从一个环境转移到另一个环境的能力有关的一组属性。
其中每一个质量特征都分别与若干子特征相对应。
产品设计师,要会哪些软件啊?
这个感觉和产品经理貌似好点相似吧。
工作内容:产品规划和设计,挖掘内容价值、提升用户留存;2、通过市场调研、数据分析、竞品分析等,深入了市场发展趋势,发掘用户诉求;3、依据需求策划,设计产品原型,撰写需求文档;4、对产品数据进行跟踪与研究,分析运营效果,并优化产品策略。
时间管理类我第一想到的是时间管理类的工作,这是我所认为了产品经理的第一类强效工具,如果运用的好,可以极大的条理化大大小小的事务。
1.TaskUnifier+Toodledo+PocketInformant(iphone)——多平台组合选择这个的原因关键在于PC桌面、网站、手机屏保、手机软件四向同步,这是我选择这个组合的首要因素,基本上围绕着GTD的核心时间管理理念运作。
TaskUnifier是开源工具,当前版本是2.1.1Toodledo是在线网站,支持开放的API接入,免费版不支持subtask(子任务)PocketInformant(iphone)端有两个,一个是软件一个是屏保插件(插件要结合Lockinfo使用)2.ToDoList个人事务管理的灵活工具,如果不考虑多平台的同步管理,单从PC端来说,是个相当不错的管理工具。
TodoList是开源免费工具,当前版本是6.**信息收集类1.Mybase虽然目前有很多云存储的工具,不过从整体的信息组织及操作上来说,我个人还是最喜欢Mybase,Microsoft的OneNote因为庞大和不易备份而弃用了。
myBase.Desktop.6.0.4.多国语言绿色注册版2.Evernoteevernote是我的备用,主要是不喜欢其没有树级节点的管理方式,一般会用于临时的信息存储以及与手机等移动终端的同步。
文本编辑类1.EmEditor(多标签的文本编辑器)EmEditor的多标签、打开速度、代码高亮及缩减等等是我选择它的主要原因。
(这个太常见了,建议大家百度一下)2.Notepad2(比记事本更快速而且相对丰富的编辑器)曾经找了很多能替代windows记事本的文本编辑器,其它软件不是速度不行,就是功能、界面不行,最后选中了Notepad2,唯一看中了它的”快”!(下载地址建议大家百度一下)邮件处理客户端类1.DreamMail(适用于邮件处理量达日均50封以上)DreamMail我从2005年就开始在用,相较于Foxmail或Outlook来说,DM最大的优点还是在大量邮件的处理上,而且还便于备份,可以当绿色软件使用,到目前为止,我的邮件备份量就达10G了。
对我来说,在邮件客户端上它就是首选,没有之一。
电子文档制作及阅读类1.office2010(word、Excel、PowerPoint)从立项报告或商业计划等文档撰写方面,Office2010要优于wps、openoffice等,而且从公司内的传阅上来说,这也是最便捷的工具。
从版本上,我强烈推荐2010!2.Acrobat X Pro在PC上阅读电子文档,最直观的方式就是PDF格式,所以Acrobat是必装的工具,不过我推荐的不是reader哦,而是X Pro,为什么呢?嘿,就是因为能够通过X Pro制作PDF、合并PDF等等。
3.PDF Unlocker (PDF解密工具)PDF Unlocker 是一款界面友好,移除 PDF 文件限制的软件。
它可以解除已加密 PDF 文件的编辑、复制、打印及提取内容等限制。
思维导图类1.XMindXMIND 是一款非常实用的商业思维导图(Mindmap)软件,它的功能跟MindManager不相上下,不过日常我用它用的比较多的原因是在于它能快速变更导图的类型,而且软件的运行过程要比MM便捷,而且还由免费版本。
2.Mindjet MindManagerMM的优势在于其模板很丰富,可以设计出非常华丽的思维图,我一般是在正式报告时才会考虑用它。
3.PersonalBrain(类社交化的思维脑图工具)PersonalBrain与我们常见的思维导图的差异就在于,它的节点不再只是树级结构展开,而是类似于SNS的多维方式关联展现,很适合于做关系性的思维设计。
有中文版,crack版。
流程图类1.Microsoft Visio这个就不用我介绍了吧?我给大家提供一个Visio的模板包:下载地址;2.EDraw Max(亿图图示专家)大多数的流程设计,Visio已经能够胜任了,不过除了Visio,还是有备选的工具,这里推荐大家EDraw Max,最新版本是6.1。
主要特点:美观、小巧、功能完备。
有中文版,crack版。
UML建模类其实Visio也可以画一些常规的UML,算是入门型的建模工具。
下面推荐一款专业比较强的建模工具:1.Enterprise Architect(优秀的UML建模工具)Enterprise Architect对于产品经理来说,最适合用于UML建模,尤其是高端的系统架构设计方面,在这方面,它比Visio要更强大,网络上有汉化版。
原型设计类1.Balsamiq Mockups(适用于快速草图原型设计)Balsamiq Mockups是一种软件工程中快速原型的建立软件,可以做为与用户交互的一个界面草图,它的优势就在于”草图”原型,这是除了纸笔之外最方便的工具了。
2.AxureRP(适用于复杂交互的原型设计)如果是轻量级的设计,Mockups就够了。
但如果要做一个产品高保真的交互原型,AxureRP应该是产品经理或交互设计师的首选。
网络上有汉化,有Crack。
3.UIDesigner(腾讯推出的原型设计工具)目前的版本还在不断的更新完善中,可以做为尝新的人来使用,相信后续功能会越来越完善,毕竟这是国人推出的产品,相信会更适合于国内的互联网工作状况。
浏览器插件类...
对SQA软件质量保证人员的职责与素质要求有哪些?
1、熟练掌握软件工程理论和软件开发流程的基本知识,在需求管理,code review、单元测试、系统测试等有丰富的时间经验2、了解ISO9000、TL9000体系,熟练掌握一些当下流行的软件模型,如CMMI,敏捷,迭代开发等。
3、善于思考,主动学习,思维敏捷,良好的沟通与表达能力,行动干练。
4、具备过程改进思想,能及时发现问题并善于提升。
软件体系结构设计的目录
第一篇基础篇:软件体系结构的理论 第1章绪论1.1软件体系结构的概念演化1.1.1软件体系结构的定义1.1.2软件体系结构的理论基础1.2软件体系结构形式化方法概述1.2.1基于CHAM的体系结构形式规约1.2.2基于Z语言的体系结构形式规约1.2.3基于一阶逻辑的体系结构形式规约1.2.4基于图论的体系结构形式规约1.2.5目前形式化方法存在的问题1.3软件体系结构描述语言概述1.4软件质量与质量模型 思考题 第2章软件建模的基础2.1一个简单例子2.2面向对象特性2.2.1封装性2.2.2继承性2.2.3多态性2.3接口2.4设计原则2.4.1SRP单一职责原则2.4.2OCP开闭原则2.4.3LSP里氏替换原则2.4.4ISP接口分离原则2.4.5DIP依赖倒置原则2.5UML2的各种图2.6需求建模:用例2.6.1一个用例图例子2.6.2用例与参与者2.6.3用例图2.6.4用例间关系2.6.5用例对需求建模2.7基本结构建模2.7.1一个类图例子2.7.2性质2.7.3对象图2.7.4操作2.7.5接口2.7.6关系2.7.7关系建模2.7.8类图2.8高级结构建模2.8.1公共扩展机制2.8.2包和包图2.8.3复合结构2.8.4模板2.9Kruchten4+1模型描述软件体系结构2.9.1逻辑视图:面向对象的分解2.9.2过程视图:过程分解2.9.3开发视图:子系统分解2.9.4物理视图:从软件到硬件的映射2.9.5场景视图:汇总2.9.6视图间的交流2.9.7模型的迭代过程和软件文档 思考题 第3章软件体系结构的形式化3.1软件的生命周期3.2基于抽象代数的形式化方法3.2.1构件3.2.2连接件3.2.3软件体系结构3.2.4软件体系结构关系3.2.5软件体系结构范式3.3基于粒度计算的形式化方法3.3.1软件体系结构演化3.3.2属性合成和跟踪3.3.3软件体系结构多视图表达及集成3.3.4软件体系结构风格和软件体系结构风格发现3.4*基于π演算的形式化方法3.4.1π演算基本语法3.4.2π演算约简关系3.4.3π演算迁移关系3.5*动态软件体系结构的形式化描述:化学抽象机3.5.1化学抽象机模型3.5.2软件体系结构描述 思考题 第4章软件体系结构的风格4.1管道和过滤器风格4.2仓库风格和黑板风格4.3事件驱动风格4.4客户机?分配器?服务器风格4.5分层系统风格4.6解释器4.7面向服务的体系结构4.7.1面向服务体系结构中的组成元素4.7.2面向服务体系结构的设计原则4.8过程控制环路模式 思考题 第5章体系结构描述语言5.1典型ADL5.1.1C2概述5.1.2Darwin与Wright概述5.1.3ACME概述5.1.4UniCon概述5.1.5Aesop概述5.1.6Rapide概述5.1.7MetaH5.1.8SADL概述5.2πADL的概述5.2.1πADL体系结构描述框架5.2.2πADL体系结构风格描述方法5.3πADL体系结构行为规约 思考题 第6章软件质量建模方法6.1软件质量建模与分析6.1.1风险分析的基本概念6.1.2风险分析的基本方法6.1.3图形化建模语言6.2实证分析:软件体系结构的质量6.2.1地面智能机器人的软件系统6.2.2解决方案1:过程控制环路模式6.2.3解决方案2:分层架构模式6.2.4解决方案3:基于事件驱动的隐式调用模式6.2.5解决方案4:黑板体系模式6.2.6解决方案比较 思考题 第7章设计模式7.1设计模式概述7.2设计模式的分类7.3创建型的设计模式7.3.1Factory7.3.2Prototype7.3.3Builder7.3.4Singleton7.3.5Adapter 思考题 第8章战场环境中自适应服务的软件组合框架8.1服务的描述与特征8.1.1服务模型8.1.2服务事务处理8.2TSCF服务组合框架8.2.1TSCF框架8.2.2服务代理设计8.2.3服务组合协调8.3服务调度流程控制的应用实现8.4小结 思考题 第二篇软件复用与构件库的设计 第9章构件库研究现状 第10章软件复用概述 第11章构件技术 第12章Web构件库实现 第三篇软件规模的度量 第13章软件规模度量研究现状 第14章FPA方法 第15章FPA方法的实际应用及其不足 第16章FPA方法的改进 第17章改进后FPA方法的应用及实例试验 第四篇软件的性能抗衰 第18章软件的性能问题与抗衰技术18.1软件性能衰退 第19章新型软件抗衰策略 第20章细粒度软件抗衰策略研究 第21章细粒度重启技术研究 第22章细粒度软件抗衰策略模型研究 附录A缩略词及中英文词汇对照附录B软件体系结构支持工具参考文献 ……
角落loser