A-level 计算机 2009/AQA/计算机实践项目/分析
在你开始制作你的项目之前,你需要知道你要做什么。这就是你的分析发挥作用的地方,它也值得 12 分,占整个项目总分的 16%!我们最好开始吧。
希望到目前为止你已经对你的用户以及他们希望你做什么有所了解,我们需要将所有内容编纂起来(写下来),这样我们就可以开始获得一些分数。考试委员会非常友好,如果你查看评分标准,他们甚至提供了一个你需要在分析中包含的项目的列表。我们将利用这些项目作为我们的标题。
这应该是第一步。你已经对需要介绍的部分有了一些想法,所以你应该为你的主要用户提出一些问题,以获得你需要开始组建这些部分的答案。从你的研究中,你需要知道以下内容
- 当前系统及其运行方式
- 当前系统的问题
- 用户
- 使用该系统的人员的技能水平
- 他们希望新系统做什么
- 在基于网络、基于手机、基于应用程序方面的任何偏好。你正在为哪个平台开发
结构化访谈可能会有用,你需要记下对每个问题的答案。你应该尝试了解当前情况和问题,建议你执行并证明至少两种以下方法,并解释你使用每种方法的原因
- 访谈
- 调查问卷(针对多个用户)
- 观察当前系统
完成研究的介绍后,你需要总结研究结果并解释你使用每种研究方法的原因。
不要忘记
|
你需要介绍你的问题,简短的两段文字说明问题是什么以及计算机如何解决它。例如,提到当前系统是基于纸张的、缓慢的,人们总是丢失东西,计算机化系统会更快、更安全,并允许他们运行报告和计算事物。但此时不要提及任何语言或数据库,我们将在分析结束时决定。
描述当前系统,它做什么以及它如何存储数据。描述当前系统的缺陷,它是否缓慢、安全、易于查询、易于使用,是否允许多人同时使用,是否易于访问?使用尽可能多的资源来支持你的描述,包括访谈、观察和图片。这将向评分者证明你的项目有一个真实的客户。
在某些情况下,你的系统只涉及一个用户,即你为其编写系统的人。在大多数情况下,它将涉及不止一个人。你需要识别所有用户,无论大小,他们都会使用你的系统。
例如,如果你正在制作一个数学复习网站,你的主要用户是数学老师,但还有谁会使用该系统?当然是学生!然后你需要写下这些用户群将如何使用该系统以及一些用户将比其他用户拥有更多访问权限。老师应该能够更改测试并查看所有学生的成绩,他们应该能够添加和删除学生用户。学生应该能够参加测试并仅查看自己的成绩。
例如,如果你正在制作一个库存控制系统,那么系统管理员应该能够添加/删除/更新和重新订购库存商品、运行报告以及添加/删除/更新用户和供应商。一般商店员工应该只能销售商品并打印收据。顾客不会直接使用该系统。
你还应该为每个用户提及他们所拥有的技能。例如,如果他们一直使用 Mac,那么与 OS X 界面类似的界面将很有用。如果他们使用 Microsoft Office 2010,那么与该软件套件类似的界面将适合。
总结你的研究结果,你的每个用户都希望你做什么?例如
老师需要我创建一个系统,该系统
- 存储学生的最高分
- 显示学生进度
- 允许他们添加、编辑和删除问题
学生需要我创建一个系统,该系统
- 允许他们登录
- 允许他们回答考试风格的问题
限制有点难列出。你需要写下你的系统将不会做什么,原因是时间、复杂性或用户偏好。这些可能包括系统不存储用户登录详细信息,因为这些信息将由 LDAP 管理,或者系统不强制在台球上旋转,因为该特定功能不是老师需要的,开发人员也没有足够的时间来实现它。
在大多数情况下,你将使用数据库,但你也可以使用基于文件的系统或 xml。现在你应该已经提到了一些你的项目需要存储和处理的内容(这应该来自你的访谈)。你将从哪里获取这些数据?
- 它是什么 -> 它来自哪里 -> 它将去哪里
例如,当前系统可能说
它是什么 | 来源 | 目的地 |
---|---|---|
客户详细信息 | 新客户填写表格 | 客户纸质记录 |
考试试题 | 往届试卷和老师 | 学生的复印件 |
新的系统看起来像这样(注意可能还有一些其他的属性)
它是什么 | 来源 | 目的地 |
---|---|---|
客户详细信息 | 新客户填写在线表格 | 客户数据库表 |
考试试题 | 往届试卷和老师 | 问题 XML 文件 |
管理员详细信息 | 经理 | 用户数据库表 |
构建任何系统时,要考虑的一个重要因素是您需要存储多少数据以及需要多少处理能力。这应该直接来自您的研究,并将影响您如何完成项目以及您需要使用哪种硬件。例如,如果您一次只有一人参加在线考试,那么您只需要一台简单的电脑。如果您希望数百人同时使用您的系统,那么您将需要一台非常快的电脑,并且可能还需要一个基于 Web 的解决方案。
例如
- 我将存储数百名客户,并且...
- 复习系统将存储多达 100 个不同的问题和 300 个学生详细信息
- 每个学生都会记录他们对每个问题的尝试次数,这可能导致 300*100 = 30000 个问题答案结果
- 系统只需要一次处理一次销售,因为...
就像字典描述句子中可以使用的所有词语一样,这将记录您想要在系统中存储和处理的所有数据片段。对于您将存储数据的任何内容,您都需要提供以下信息
字段名称 | 字段目的 | 字段类型 | 字段大小 | 示例数据 | 验证 |
---|---|---|---|---|---|
姓氏 | 存储玩家的姓名 | 字符串 | 30 | 彼得 | 不能为空 |
出生日期 | 存储玩家的出生日期 | 日期/时间 | DD/MM/YY(6 位数字) | 19/08/76 | 日期/时间格式 |
分数 | 存储玩家的最高分 | 整数 | 4 | 7643 | 大于 0,小于 10000 |
如果您要存储数据库,请确保您已存储所有数据库中将包含的字段的数据,例如,上面的数据存储了学校中学生的相关数据。您的系统需要存储哪些数据才能正常运作?
如果您要制作一个程序,您将希望列出程序运行时将存储的所有变量。例如,如果您要创建一个程序来统计某人在测验中取得的分数,您应该列出将存储该分数的变量。
字段名称 | 字段类型 | 起始值 | 描述 |
---|---|---|---|
分数 | 整数 | 0 | 这将跟踪玩家的分数 |
姓氏 | 字符串 | 空 | 这将跟踪玩家的姓氏 |
出生日期 | 日期 | 01/01/1990 | 这将跟踪玩家的出生日期 |
警告:一个非常常见的错误是错误地调整字段的大小。例如,您正在制作一个成绩簿系统,您将在其中存储学生的年龄。年龄在 11 到 16 之间,那么为什么不将年龄设置为 16 位?答案是因为长度 16 允许您存储年龄“9999999999999999 年”,而这不可能有一个这么大的学生(更不用说一个人了)。长度应该更合理地设置为3。虽然预期数字只有两位数,但可以想象该软件将来可能会扩展为用于年龄更大的学生,因此长度应设置为涵盖这种可能性。不要重复“2000 年问题”,其中开发人员将年份存储为仅两位数字,当年份“翻转”为零时,导致数百万英镑用于修复问题。
您可以绘制数据流图的方式有很多,所以如果您的老师告诉您一种方式,而您在这里读到的方式完全不同,请不要担心。重要的是您要展示数据如何在当前系统中移动,数据存储在哪里,数据将在哪里处理以及您计划如何在新的系统中移动数据。毕竟它被称为数据流图!对于这些示例,我们使用Gane Sarson 方法。
您需要注意四个主要组件
名称 | 描述 | 符号 |
---|---|---|
实体 | 这通常显示系统中涉及的所有人员。它还可以指示您正在与之交互的其他外部系统 | 圆圈 |
过程 | 这描述了数据从一个位置移动到另一个位置时对数据进行的处理,它接受数据输入,并输出到数据存储、另一个过程或实体 | 正方形 |
存储 | 通常,这表示用于保存您的数据的不同计算存储,例如硬盘文件、数据库、CD ROM 等。 | 矩形 |
传输 | 这显示了数据如何在系统的各个部分之间移动。您需要标记箭头以解释究竟是什么东西在移动。 | 箭头 |
使用这些描述,我们可以看到上面的图表示以下含义
- 客户可以咨询商店商品,系统处理咨询并从商品数据存储中获取数据,将结果发送给客户
- 客户可以订购商品,系统会检查客户是否真实,检查商品是否有货,发送订单,最后将商品和发票发送给客户。
您需要制作四个数据流图,两个显示当前情况,两个显示建议的系统。对于每个图,您必须显示以下图
- 级别 0
- 级别 1
您可以使用文字处理器制作它们,但使用专门的软件更容易。您可以尝试使用 dia 或 Open ModelSphere,它们都是免费的。或者,您可以使用 Microsoft Visio。
扩展:用例
|
在考虑如何将数据保存到您的系统时,您可能会决定使用数据库,如果是这样,您必须包含一个 E-R 图。如果您没有使用数据库,请说明不需要完成此部分。您需要识别您的主表。应该至少有 3 个表以及它们之间的关系。这些表在此时不必被规范化,但关系应该被详细描述。
- 请参阅有关 数据库 的章节
对于您使用的每个类,请描述
- 它执行的操作概述
- 继承
- 重写
- 公有和私有变量
- 公有和私有方法
例如,怪物类的属性可能包含
访问类型 | 字段名称 | 字段类型 | 初始值 | 描述 |
---|---|---|---|---|
私有 | 健康 | 整数 | 100 | 这将存储怪物的健康值,当健康值降至 0 时,怪物应该死亡 |
私有 | x | 整数 | 0 | 这将跟踪怪物的 x 位置 |
您还需要注意怪物类将使用的方法
访问类型 | 方法名称 | 参数 | 返回值 | 描述 |
---|---|---|---|---|
公共 | 向左移动 | 无 | 无 | 这将使怪物向左移动 3 个点 |
公共 | 受伤 | 伤害 | 怪物的当前健康值 | 这允许您伤害怪物 |
- 请参阅有关 面向对象 的章节
这是你分析中最重要的一部分,因为这是你用来检查你的最终系统是否满足所有用户需求的方法。你需要概述三组SMART的且编号的目标
- 系统目标
- 处理目标
- 用户目标
尽可能地,你的所有目标都应该是SMART的。但SMART是什么意思呢?
字母 | 主要术语 | 描述 | 例子 | 不可接受! |
---|---|---|---|---|
S | 具体 | 确保它没有歧义,并且与你系统的一部分有关 | 系统应该能够以降序显示 5 个最高得分 | 我的系统应该很棒 |
M | 可衡量 | 有没有什么方法可以让你轻松证明你已经达到了这个目标。 | 每个页面应该在 5 秒内加载完成 | 我的页面将非常漂亮 |
A | 可实现 | 确保在可用的时间和资源范围内,你能够完成这个目标 | 我的系统将允许保存用户偏好 | 将会有一个面部识别系统,允许用户登录系统 |
R | 相关 | 这个目标将帮助你满足你的用户需求吗? | 将打印并通过电子邮件发送收据给客户 | 我的收银系统将在后台播放 MP3 |
T | 有时限 | 你完成这个项目的时间是有限的。你必须在你的分析中列出截止日期,你能否及时完成每个目标? | 我将使用 2D 矢量图形在图上显示玩家的位置 | 游戏将拥有与英雄联盟一样好的 3D 图形 |
正如你可能已经认识到的,上面几个不正确的目标没有满足多个SMART标准。测试一下自己,哪些目标足够SMART,可以让你开始一个好的项目
系统将允许员工更新库存和添加新的库存项目。<click> | ||
|
体育俱乐部系统将在每个页面上显示当前时间的时钟 <click> | ||
|
系统将使用自定义代码来解释和显示 SVG 游戏图形 <click> | ||
|
系统将计算并显示每个客户的总销售额 <click> | ||
|
系统将每秒处理 5,000,000 笔交易 <click> | ||
|
不要忘记
|
有几种方法可以解决你手头的这个问题,你需要列出至少 3 种不同的选项。对于每种选项,你需要提到它的优点和缺点,然后论证你选择的解决方案。
例如,如果我被要求制作一个库存控制系统,我可以使用以下内容(更详细地!)
建议解决方案 | 优点 | 缺点 |
---|---|---|
Excel 和 VBA 桌面应用程序 | 我知道如何使用 Excel 用户也有使用 Excel 的经验 Excel 和 VBA 允许我执行计算并显示结果 |
Excel 是一个平面文件数据库,不能让我处理数据之间的链接。 该解决方案只能离线使用 |
Visual Basic.NET 应用程序和 Access 数据库后端 | 我从第一年开始就有一些 Visual Basic 的经验 VB.NET 让我可以轻松构建一个解决方案,该解决方案将拥有与 MS Office 程序类似的界面 他们已经拥有 Access 并使用 Windows |
我需要学习更多 VB.NET 来完成这个项目 这个解决方案只能离线使用 |
ASP.NET 和 MSSQL 数据库基于网站的解决方案 | 这个解决方案将允许用户在线登录。 关系将是可强制执行的 我将能够使用 SQL 执行搜索 |
我有很多 ASP.NET 要学习 用户不需要从多台计算机访问它 它需要服务器和网络知识 |
从你提出的选择中,选择最佳方案并解释原因。这将是你解决这个问题的方法!
在本节中,你需要证明你用来编写分析的技术是正确的,并确保你成功地获得了新系统的所有目标。回到问卷、访谈和观察。将它们包含在这里,并解释它们如何确保你能够生成全面的分析。
现在你已经完成了你的分析,你需要开始制作你的项目。你应该对如何制作系统有一些想法,现在你需要开始学习完成这个项目所需的所有技能。找一本关于你选择的编程语言的教科书,并确保你能够用它执行一些简单的任务。此时,最好列出一个你需要学习的技能清单。
在你掌握这些技能的同时,请访问 设计