ICT 0417:学习笔记 – 系统生命周期:设计(第 7.2 节)
欢迎来到系统生命周期的“设计”阶段!如果说分析阶段是为了找出当前的问题以及用户的需求,那么设计阶段就是为新系统绘制详细蓝图的过程。你可以把自己想象成正在为新房绘制蓝图的建筑师——在动工之前,你必须确定每一面墙、每一扇门和每一个插座的位置。
这一章节至关重要,因为无论后期编程写得多好,糟糕的设计都会导致系统无法使用。让我们确保你所做的设计既稳健又高效!
1. 设计数据结构(文件/数据结构)
设计任何 ICT 系统(尤其是数据库或电子表格)的第一步,就是明确数据将如何存储。这被称为设计文件/数据结构。
数据结构设计的关键要素
对于你计划存储的每一条信息(字段),你必须明确以下内容:
- 字段名称 (Field Name):
给数据设定的标签。
*示例:* 姓氏 (Surname)、出生日期 (Date_of_Birth)、产品价格 (Product_Price)。 - 数据类型 (Data Type):
这定义了可以输入到该字段中的数据种类。
- 文本 (Text/String):用于字母、符号或不需要进行计算的数字(如电话号码、邮政编码或姓名)。
- 数字 (Numeric/Number):用于需要进行计算的数值(如分数、数量)。
- 子类型包括:整数 (Integer)、小数 (Decimal)、货币 (Currency)。
- 日期/时间 (Date/Time):专门用于日期或时间格式的数据。
- 布尔/逻辑 (Boolean/Logical):仅接受两个值(真/假、是/否、1/0、复选框)。用于简单的选择。
- 字段长度 (Field Length):
字段中允许的最大字符数。
*示例:* 如果身份证号码固定为 12 位,你就将长度设置为 12。这不仅节省存储空间,还有助于防止输入错误。 - 数据编码 (Coding of Data):
使用简短的预定义代码来代表较长的信息。
*示例:* 不存储“男性”或“女性”,可以编码为 M 代表男性,F 代表女性。这节省了存储空间并确保了统一性(每个人使用的拼写都一致)。
2. 设计输入格式
用户将如何向新系统输入数据?设计方案必须包含输入格式,通常使用数据采集表 (Data Capture Forms)。
目标是使数据输入对操作者来说既快速、准确又简单。
数据采集表的设计要求
- 布局清晰:将相关字段归类在一起(例如,将所有地址细节放在一起)。
- 适当的间距:预留足够的空间,使用户输入时不会感到混乱。
- 清晰的说明:明确告诉用户输入什么(例如,“请以 DD/MM/YYYY 格式输入日期”)。
- 功能性组件:使用复选框(用于布尔数据)、单选按钮(用于多选一)或下拉菜单,以减少打字量并提高准确性。
- 验证注释:如果输入必须遵循特定规则(如最大长度),这些应在表单设计中注明。
试想一下,如果让你填写一张没有标签、格子又极小的税表,一定会非常抓狂!良好的输入格式可以有效避免这些错误。
3. 设计输出格式
当系统处理完数据后,必须以有效的方式呈现结果。你需要设计两种主要的输出格式:
A. 屏幕布局(软拷贝输出)
这是用户在显示器或移动设备上看到的内容。优秀的屏幕设计应侧重于易用性(用户界面)。
- 清晰度:使用清晰的字体和色彩,让眼睛感到舒适。
- 一致性:按钮和导航栏应在每个页面保持位置统一。
- 导航:使用合理的超链接和菜单,让用户能在系统的不同部分之间轻松切换。
- 相关性:仅显示用户在特定任务中需要的信息。
B. 报表布局(硬拷贝输出)
这指打印输出的信息(如发票、月度汇总或统计报告)。
- 专业外观:包含公司 logo、清晰的标题和统一的页边距。
- 分页:确保页码、日期和时间包含在内,通常在页眉或页脚中。
- 对齐:数字数据应右对齐,货币符号或百分比格式应正确。
- 可读性:使用分栏和摘要,使打印出来的数据易于阅读和分析。
4. 设计验证程序
验证 (Validation) 是计算机在输入数据时执行的自动检查,以确保数据是合理 (reasonable) 和合乎逻辑 (sensible) 的。这是设计过程中减少数据输入错误的关键步骤。
验证并不检查数据是否 100% 正确(那是核查 Verification 的工作),而是检查数据是否落在预期的参数范围内。
打个比方:验证就像检查你交上来的学校作业是否在 5 到 10 页之间(合理性检查);而核查则是检查作业内容是否完全正确(准确性检查)。
你必须在系统中设计适当的验证程序。以下是你需要掌握的类型:
七种验证检查
记忆技巧:使用短语:Really Curious Learners Try Finding Perfect Codes (RCLTFPC)——即:真正的好奇学习者试着寻找完美代码。
- 范围检查 (Range Check)
检查数据是否落在指定的最小值和最大值之间。
*示例:* 如果分数必须在 0 到 100 之间,输入 105 或 -5 将无法通过检查。 - 字符检查 (Character Check)
检查输入的数据是否仅包含预期的字符(例如:只允许字母,或只允许数字)。
*示例:* 要求输入年龄(数字)的字段,如果输入单词“twenty”,则会报错。 - 长度检查 (Length Check)
检查输入的数据字符数是否正确。
*示例:* 密码必须至少 8 个字符长(最小值检查),或者电话号码必须正好是 10 位数(精确长度检查)。 - 类型检查 (Type Check)
确保输入的数据属于结构定义中的正确数据类型。
*示例:* 如果字段被定义为日期/时间类型,输入“昨天”这样的单词将会失败。 - 格式检查 (Format Check)
检查数据是否遵循特定的模式或结构。
*示例:* 身份证号码可能被定义为两个字母后跟六位数字(LL######)。电子邮件地址必须包含 '@' 符号和一个 '.'(点)。 - 存在检查 (Presence Check)
确保字段没有被留空。如果数据是强制性的,系统必须检查该项是否已填写。
*示例:* 如果没有提供送货地址,则无法提交在线订单。 - 校验位 (Check Digit)
主要用于标识码(如条形码、ISBN 或银行账号)。代码的最后一位是根据其他所有数字通过算法计算出来的。输入代码时,系统会再次执行该计算。如果计算出的校验位与输入的最后一位不匹配,则代码无效。
*用途:* 它可以捕捉数据输入过程中常见的错误,如数字的转置 (transposing)(交换位置)。
学生经常混淆字符检查和类型检查。虽然它们很相似,但字符检查通常侧重于排除不想要的符号(如禁止在姓名栏输入数字),而类型检查则严格强制执行定义的数据类型(文本、数字、日期、布尔)。
设计阶段的关键总结
设计阶段将分析阶段识别出的抽象需求转化为具体、详细的方案。这些方案——涵盖数据结构、输入、输出和验证——是开发人员构建系统时所遵循的指令。一个设计良好的系统不仅高效,而且能最大限度地减少错误,并对用户友好。