统配置,我们当然不希望用户得到的是一个与需求规格说明不相同的软件,也不可能要求
程序员完成一个不可胜任的任务。然而我们在以前的多项工作中经常发现这类情节,因为系
统分析与设计相互脱节,导致一头扎在分析中不顾设计有关的事宜。
分析与设计的脱节,还不利于设计现格说明的评估,因为分析往往会脱离现实,导致缺乏
评估的依据。
因为不可能成功地完成设计而使分析需要重来,就会造成巨大的浪费与损失。一个好的工具
可以使分析与设计更紧密地连结起来,甚至于一一对应。面向对象的分析方法使对象之间相
对而言有独立性,减少了任何影响到全局的改动,能避免因需求变化而导致全盘皆动的被
动局面。
(
4)使程序员明白我们的设计。
一个好的设计应该让程序员感到清晰明白,更少疑问。一个疑问很多的设计加上沟通不畅,
绝对会出现在应用环境下所不需要的另一个软件,所以设计规格说明书务必清楚、形象与明
确,当然,
Rational Rose 具有足够的图形与其他形式,能使程序员更加明确,甚至能细微
到每一个语句(事实上如果使用
VB,程序架构都有可能直接生成了)。
(
5)选择 UML 可能会有更多的理由。
比如用户文档的编写、数据库设计,我们都需要做到有延续性,有自动化支持和具有质量上
的保证。
所以,我们选用了以上的方法和工具。
在分析中,面对考勤班次的问题时,由于过去一直使用纸卡方式考勤,使用户对班次形成
了固定的概念,而现在的许多考勤软件也采用多次刷卡的方法来形成一天的记录。经过面向
对象的分析可以发现,事实上每天的上班记录是由多个时段所形成的,时段的多少在各个
公司,各个工种与部门都不尽相同,每个时段可能有不同的属性,时段与时段组合可形成
为班次,这更适合于现实的情况,使之能更加灵活与更有扩展性。其实,在天与天之间也都
有相互之间的关系。在这一点上,我们又发现必须在考勤与薪金工资中加入与
MRP 中相似
的期段
(
Periods)的基本概念,比如可以称之为考勤期段,允许为用户更加方便地设置考勤期段,
可能使之不一定与自然年月日相同等等。
Rational Rose 使我们更方便地把上面的想法在类上去实现,更进一步地设计好我们的高效
率的数据库。
当然,使用单一的一个工具去完成一个中大型的应用系统的需求分析,是不可能成功的。因
为社会在发展,用户的需求也在改变,如何把握住用户的需求是需要时间的,面向对象的
方法有时也会忽略外在的与表层的要求,不仅仅是要获得关键的需求,其他更多的需求往
往要等到用户在使用后才知道,然而等到用户使用是不现实的,作为原型开发模型中的原
型也是收集用户需求,描述与解释需求的一类相当有效的方法与工具。
在我们的开发过程中,为了更好地让用户了解我们的系统和我们的设计方案,让用户在见
面会上更有方向性与针对性,我们首先用
Access 开发出原型,让用户先试用。这样,我们
在真正的分析与设计时就能更加符合用户的要求。
总之,软件需求分析方法和工具的使用,对我们软件开发过程影响是很深远的,选用高效
能的正确的方法与工具,可以使我们的软件更加正确地反映现实需求,更加具有可用性、可
扩展性和可维护性;降低了软件项目的风险。
【评注】
(
1)写得有些特色,观点鲜明。
(
2)摘要写得不错,既反映了项目内容,也小结了本文的写作要点。
(
3)文中所举的例子虽然简单,但很实际。