导图的好处自然不用多说,一目了然。软工视频里的第一章,主要讲了软件的定义、特点以及分类,还有软件的发展阶段和生存周期。由于到了20世纪60年代中期产生了软件危机 ,所以根据软件的生存周期,制定了软件工程的思路。
软件的开发一共分为6个阶段分别是:计划、需求分析与定义、设计、编码、测试以及运行和维护,在每个阶段完成的时候都会生成相应的文档。
第一章里还详细介绍了软件开发的几种模型,主要有瀑布模型、快速原型模型、渐增模型、螺旋模型、喷泉模型。每个模型都各有各的特点的以及不足。
·瀑布模型:依据软件生命周期提出,每个阶段都有明确的分工和任务,并产生文档。各阶段紧密相连,后一阶段的工作依据前一阶段的工作结果,有质量的保证。
缺点:1.用户直到所有开发工作完成才能见到系统,与软件见面较晚;2.用户参与程度不够,可能导致软件与用户需求产生偏差;3.软件不容易修改。
·快速原型模型:快速建立一个实现了若干功能的可运行模型来启发、揭示和不断完善用户需求,直到满足用户的全部需求为止。弥补了瀑布模型用户参与程度不够的问题;用户的需求更加明确化,尽量减少修改;软件与用户见面快,减少开发周期,节约软件开发成本。
缺点:1.对于开发环境要求较多。
·渐增模型:从核心功能开始,对软件不断地改进和扩充,可在短时间内向用户提交可完成部分功能的产品。
缺点:1.把每个新增的构件或功能集成到现有系统中时,必须不破坏该系统;2.在设计体系结构时,要充分考虑其开放性。
·螺旋模型:将瀑布模型与快速原型模型结合到一起,加上风险分析,在每个阶段前都增加风险分析。适用于开发大规模软件项目,减少过多测试和测试不足带来的风险。
缺点:1.要求软件开发人员具有丰富的风险评估经验和专门知识。
快速原型模型与渐增模型的区别
快速原型模型主要根据用户需求较为模糊的部分优先开发原型;而渐增模型则从功能明确、设计技术上不确定因素很少的核心功能优先开发,并且分批逐步地向用户提交产品。