中新计算机专业毕业设计指导

时间:2021-02-25 06:46:17

中新计算机专业毕业设计指导

刘培强 整理(2007.7.17第一稿)

按:以下文章由kazi讲述,刘培强整理,在整理过程作了适当处理,为防止误解,必要处附有英文原文。也有适当的扩充,不当之处,请指教。

0 前言 软件就是个焦油坑

史前史中,没有别的场景比巨兽在焦油坑中垂死挣扎的场面更令人震撼。上帝见证着恐龙、猛犸象、剑齿虎在焦油中挣扎。它们挣扎得越是猛烈,焦油纠缠得越紧,没有任何猛兽足够强壮或具有足够的技巧,能够挣脱束缚,它们最后都沉到了坑底。大型软件就是个焦油坑,我们需要有足够的智慧和足够的方法对处理它。为了处理这个大焦油坑,我们需要团队合作,我们需要有力的、规范的设计方式、方法。

1关于分组 团结就是力量

团队合作(team work)对于软件开发来讲是必要的、必要的。在毕业设计中要锻炼学生的合作精神,当然要尽力团队中个别人的懒隋的滋生,一方面要告学生的自觉,另一方面的是要有相关的制度消除懒惰存在土壤,如要求学生在文档中详细确定的指出分工情况,如在项目计划(Project schedule)和程序计划(Program schedule)中指明分工情况。如下表所示:

Project schedule

Schedule Estimate Actual Team Members
Starting date Dec 20th 2008 Dec 22nd 2008 Which one, which one…
... ... ... ..

建议每四个学生一组,每组推举组长(team leader)一名,组长负责项目(project)的组织管理(the leader guide the whole team),组中的每一个成员,都要学会团队合做(…learn to how work with the team);每个项目组指导教师(supervisor)一名。项目的来源可以是指导教师给,也可以是学生商议后自定。

2主要参资料 要善于站在巨人的肩膀上

  • CS316 Software Engineering (以下简称SE)
  • CS220 Object Oriented Design (以下简称OOD)
  • CS185 System Analysis and Design (以下简称SAD)

以上三本书是kazi再三强调的,在做毕业设计时要参考的资料。当然也可以参考相关的中文资料。

3关于调研 巧妇难做无米之炊

如果对项目所涉及的业务,如业务流程、业务数据等不熟悉,不可能做出一个好的软件来。要熟悉现实生活(real life)中要做的项目倒底是如何运转的。调研是熟悉业务的必要过程。学生对所做项目的内容可能不十分了解,因此,在做设计之前,应该做详细的调研。调研可以是直接的(direct)也可以是间接的(in direct),直接的包括与相关企业的相关工作人员的交谈(interview)或是用email与其交流,获取相关的业务流程。

4论文的结构 真把式是要会说(写)的

从整体看,新加坡要求写的论文,更象是软件的文档。

论文从整体上分三部分:

  • 基本知识。(basic knowledge)
  • 系统设计。(system guide)
  • 用户指导手册。(user guider)
4.1基本知识 水有源,树有根

讲解项目来源、项目所用到的基本知识、所选开发环境(VB、C#或Java)的原因、优点等。

4.2系统设计 不要说外行话

写论文,切记不要讲外行话。什么是内行话呀?内行话就是指术语要标准确,图表要规范,遵循相应的标准。举个例子:先前的毕业生的论文中经常见到”物件导向”这个术语,这术语的英文原词是” Object Oriented”,在大陆一般译作”面向对象”,显然用物件导向是不恰当的。

系统设计中的分析(analysing)可以用两种范式来写:DFD(Data Flow Diagram)或UML(OOD)。

DFD参见SAD chapter 2,3,4。画DFD时注意从top level(顶层)到level 1, level 2的逐层的展开及对应。要注意其中的任务分解(break down),分解要恰当。下图是一个例子。

中新计算机专业毕业设计指导

OOD:参见SAD chapter 4和OOD chapter 14。UML主要有12种图(diagram),分静态图和动态图两种。在做毕业设计时,主要用其中的四种就可以了,当然如果能用到其它的图进行描述更好了,前提是要用的恰当。四种主要的UML图:

  • 类图,class diagram
  • 序列图,Sequence diagram
  • 用例图,Use case diagram
  • 状态图,Stat diagram
4.3用户指导手册 再努力一下吧,系统毕竟是交给用户用的

用户(user)对你的系统一无所知,需要写用户指导手册帮助用户使用系统。

其中包括所需要的软硬件运和环境,如何安装、配置等

4.4其它 做软件真不是一件轻而易举的事

其它的还有

  • 软件测试,
  • 软件局限性,学生还不是一个职业(professional)软件开发人员,局限在所难免。

一个好的论文(good documentation),要图表清晰美观,格式良好。这不但可以给论文增色,关键是可以得到加分。同样的一篇论文内容如果是80分,那么图表清晰美观,格式良好的论文,可能最终分是85分。

另处,如果项目中用到了数据库,可以用简单的access或是oracle、SQL Server等大型数据库。在设计时要遵循范式要求,一般到第三范式就很好了(needed to develop)。可以用ER图表述数据库。

5项目/软件计划(schedule) 三思而后行

能不能不思而行,或是行后再思,当然可以,不果,N多前辈的实践告诉我们,不思而行的结果是:软件真得变成了焦油坑,你变了焦油坑中的恐龙、猛犸象、剑齿虎…,再回顾下前言吧。如果你要选择变成焦油坑中的恐龙、猛犸象、剑齿虎,是件比做出一个好的毕业设容易多的事。你自己选择啦。

论文中的计划有两个,一个是project schedule,一个是program schedule。

如何进行划分(divide)project schedule参见SE chapter 6、7。

如何进行划分(divide)program schedule参见SE 中对PERT Chart( Program Evaluation and Review Techniques chart)的讲解。

6最后的答辩 会做会说的才是真把式

会说不会做的是假把式,会做不会说的是哑把式,会做会说的才是真把式。在公司做事的人都真道,如何向上司report是很重要的事情。学生要学会如何表达自己的思想(how to present their topic),把自己做的东西清晰准确的表达出来。