软件工程的由来:
早期软件主要指程序,当时的软件通常缺少与程序有关的文档,软件开发实际成本和进度往往与预计的相差甚远,软件质量得不到保证,开发出来的软件常不能使用户满意。醉着计算机应用需求的不断增长,软件的额规模也越来越大,然而软件开发的生产率远远跟不上计算机应用的迅速增长。此外,由于软件开发时缺少好的方法和工具,又缺少相关文档,使得大量的已有的软件难以维护,这些问题严重阻碍了软件的发展,人们把这种问题称为“软件危机”。后来人们提出了软件工程,接着开展了软件开发模型、开发方法、工具与环境的研究,提出了瀑布模型等开发模型,出现了面向数据流、面向数据结构、面向对象方法等开发方法。
软件工程概述:
应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程,目的是提高软件生产率、软件质量、降低软件成本。软件工程的三要素:方法、工具和过程。一个工程做的时候都有一套方法,在具体实施的过程中需要用到工具,这就是软件工程。
一、UP
软件过程有三个模型,CMM(能力成熟度模型)、CMMI(能力成数据模型1)、UP(统一过程)。在这里说一下统一过程。
统一过程是一种用例和风险驱动,以架构为中心,迭代并且增量的开发过程,由UML方法和工具支持。有四个技术阶段:
起始阶段:构想出文档,初始用例模型,初始风险评估,项目计划、业务模型。
精化阶段:需求分析和架构演进,补充需求,初步设计模型,修订风险列表,初始用户手册等
构建阶段:系统构建,产生设计模型,软件构件,测试计划,文档等
移交阶段:关注软件提交方面,产生软件增量。,产生测试报告,用户反馈。
二、项目管理:
软件项目成功率低原因可能是项目管理能力太弱,由于软件本身的特殊性及复杂性,将项目管理思想引入软件工程领域,形成了软件项目管理。项目管理就是对软件生存周期中软件管理者所进行的管理,目的是在一定的时间和预设范围内有效地利用人力、资源、技术和工具,使软件系统或产品按原定计划和质量如期完成。
项目开发过程中需要对人力、物力、财力合理分配,考虑做完一个项目大概需要用多少人,用什么设备,需要多少钱,还要把控整个项目的进度。人力这方面需要有组织的分配,项目经理控制好进度,设计出的产品应该进行质量保证,评审,检查软件的容错能力,因为要使用该产品,所以还会涉及到配置问题,主要解决变更问题,比如版本等等。
这样就完成项目管理,提升工作效率,软件质量。
三、风险管理
软件风险包含两个特性:不确定性和损失。风险威胁到项目计划,软件的质量及交付时间,软件的生存能力,如果风险发生,就会产生恶性后果,所以必须考虑不同类型的风险,为识别风险,可以建立风险条目检查表,还要预测风险,建立风险表,评估风险的产生概率,最后对风险进行控制,这里有几种控制方式:避免,监控,RMMM计划
四、软件度量
McCabe度量法:
它是一种基于程序控制流的复杂性度量方法,又称环路度量。以图论为工具,先画出程序图,然后用该图的环路数作为程序复杂性的度量值。在一个强连通图的有向图G中,环的个数V(G)=m-n+2p,V(G)为有向图G的环路数,m是G中弧数,n是G中的结点数。强连通图是从图的入口点到出口点加一条虚线表示有向边。
五、总结:
思维导图多画几次,有很多联系可以找到,以课本为主,掌握每章宏观结构,视频为辅,助于了解不熟悉的知识点。学习过程中这篇博客我会不断更新,加油!