请教软工里的需求分析方法
各位,我是一名老师,本学期负责教授《软工》这门课程。首次教授这门课程,感觉难度很大大,这门课程无论是从学生的学的角度,还是从老师教的角度来讲,难度都是很大的。这门课程作为计算机专业的一门专业性极强的课程,从教材上的内容来看,是偏向于理论的,从这门课程的应用角度来看,其实践性又非常要强。无论如何,在给学生教授这门课的时候,不好用例子来讲述。
现在我想请教一个问题,那就是在软件工程的需求分析阶段,所采用的软件需求分析方法,共有哪几种?我所知道的,一个是以“面向数据流”的软件需求分析方法,一个是“面向数据结构”的jackson方法,还有一个warnier方法,还有一个是“面向对象”的需求分析方法。
但我能清楚的是~:“面向数据流”与“面向对象”在软件开发过程中都提供有分析和设计的方法。
而另外两个jackson和warnier只是一个设计阶段中采用的方法,不知道我这个认识对不对,请高手指教。
另外,我跟我的学生说,虽然软件工程要求,在开发软件时,要严格按照软件工程里所讲的软件开发方法来进行软件的开发,但是在外面一般小的软件公司(或者说国内绝大多数软件公司)其实并没有严格按照软件工程的方法来开发软件。至少没有严格按阶段来进行,或者没有在每一个阶段中产生规定的文档。不知道我这个说法对不对?请指教。
软件工程没什么理论性,纯粹是实践性的东西。
如果教师没有丰富的项目经验,是不可能较好这门课的。同样,如果学生们没做过项目,特别是一个失败了的项目,也不可能深入理解他的重要性,不可能学好。
软件工程不是按照书上写的严格按照流程,分阶段开发,每个阶段使用什么什么方法就行的。
而且软件工程到现在为止都不是一个成熟的理论,每年他的内容也都在改变。比如近几年的敏捷思想,可以说已经颠覆了传统的软件工程理论和思想。
我做学生的时候,也学过软件工程,学完了一头雾水,只知道需求分析很重要,知道流程很重要,可是实际做项目还是会犯这样的错误,只有真正体会了失败,才能理解软件工程的含义。
软件工程在学校里学的只是个概念
因为不要说学生了,有些老师也是没有实践经验的
这门课难的就在这里,如果有了实践或结合实践,理解起来是相当容易的
很多软件公司缺少文档,也谈不上依软件工程
实际中商业项目时间都是很紧的,要想按理论步骤来做,首先领导关就过不去
但不少公司已有意识到文档与开发思想的重要性了,一般指的大一点的公司或外企
建议看看系统科学和系统工程方面的书。
对用户需求来说,处于对系统宏观方面的分析。就是分析系统的功能,性态等。分析主要的是系统整体与环境的联系和信息的交互,具体联系。体现环境对系统的要求。
在信息系统而言,体现的就是各种目标体系和约束,包括定义功能,性能,可靠性,稳定性,易用性等等。越复杂的系统,如果对系统各方面的约束分析得越科学,完整,仔细,那么对系统外在的把握就越全面。
当然中间有很多细节要考虑,并且这些约束之间又是有着复杂联系的。
有需要进一本沟通的,再说。