系统分析与设计和软件工程关系的感想

    在接触系统分析与设计这门课之前,我很少考虑过软件开发过程中可能会遇到的技术以外的问题。在上了系统设计与分析这门课之后才知道在软件开发的过程中技术的问题并不是最重要的。为了不让自己忘掉这门课的知识,做一下总结并写下一点体会。

    首先,是软件工程的定义。这在大一时候的软件工程导论已经接触过了,但在此后的各种专业课程中鲜有再提这个定义。按照wiki上提到的,软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度,实现满足用户要求的软件产品的定义、开发、和维护的工程或进行研究的学科。从这里可以看出来,软件工程跟科研大不相同,必须考虑诸如需求、成本、稳定性等的问题。由此衍生出了软件危机的概念。是指在软件开发及维护的过程中所遇到的一系列严重问题,这些问题皆可能导致软件产品的寿命缩短、甚至夭折,表现在以下方面:项目运行超出预算;项目运行超过时间;软件质量低落;软件通常不匹配需求;项目无法管理,且代码难以维护。

    为了规避、解决软件开发中可能遇到的各种问题,COCOMO就是其中一种方法。COCOMO使用基本的回归分析公式以及从项目历史和现状中的某些特征作为参数来对软件成本进行计算。构造性成本模型由三个不断深入和详细的层次组成。第一层,“基本COCOMO”,适用对软件开发进行快速、早期地对重要的方面进行粗略的成本估计,但因其缺少不同的项目属性(“成本驱动者”)的因素,所以准确性有一定的局限性。“中级COCOMO”中考虑进了这些成本驱动者。“详细COCOMO”加入了对不同软件开发阶段影响的考量。

    除此以外,软件工程还有开发标准。CMMI模型就是其中一种。CMMI全称是Capability Maturity Model Integration,即能力成熟度模型集成,其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。其所依据的想法是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件开发中的困难。CMMI为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,建立了一个自动的、可扩展的框架。因而能够从总体上改进组织的质量和效率。CMMI主要关注点就是成本效益、明确重点、过程集中和灵活性四个方面。CMMI有五个等级,从低到高分别是初始级、可管理级、已定义级、量化管理级、优化管理级。

    时间关系暂时先写到这里,下次有空时再做进一步补充。





你可能感兴趣的:(系统分析与设计和软件工程关系的感想)