免费智能真题库 > 历年试卷 > 软件设计师 > 2017年下半年 软件设计师 下午试卷 案例
  第1题      
  知识点:   数据流图   重置   APP   编码   二维码   监控   结构化方法   数据流   微信   验证码   用户登录   用户管理   指令   注册

 
【说明】
某公司拟开发一个共享单车系统,采用北斗定位系统进行单车定位,提供针对用户的APP以及微信小程序、基于Web的管理与监控系统。该共享单车系统的主要功能如下。
(1)用户注册登录。用户在APP端输入手机号并获取验证码后进行注册,将用户信息进行存储。用户登录后显示用户所在位置周围的单车。
(2)使用单车。
①扫码/手动开锁。通过扫描二维码或手动输入编码获取开锁密码,系统发送开锁指令进行开锁,系统修改单车状态,新建单车行程。
②骑行单车。单车定时上传位置,更新行程。
③锁车结账。用户停止使用或手动锁车并结束行程后,系统根据已设置好的计费规则及使用时间自动结算,更新本次骑行的费用并显示给用户,用户确认支付后,记录行程的支付状态。系统还将重置单车的开锁密码和单车状态。
(3)辅助管理。
①查询。用户可以查看行程列表和行程详细信息。
②报修。用户上报所在位置或单车位置以及单车故障信息并进行记录。
(4)管理与监控
①单车管理及计费规则设置。商家对单车基础信息、状态等进行管理,对计费规则进行设置并存储。
②单车监控。对单车、故障、行程等进行查询统计。
用户管理。管理用户信用与状态信息,对用户进行查询统计。现采用结构化方法对共享单车系统进行分析与设计,获得如图1-1所示的上下文数据流和图1-2所示的0层数据流

 
问题:1.1   (3分)
使用说明中的词语,给出图1-1中的实体E1~E3的名称。
 
问题:1.2   (5分)
使用说明中的词语,给出图1-2中的数据存储D1~D5的名称。
 
问题:1.3   (5分)
根据说明和图中术语及符号,补充图1-2中缺失的数据流及其起点和终点。
 
问题:1.4   (2分)
根据说明中术语,说明"使用单车"可以分解为哪些子加工?
 
 
 

   知识点讲解    
   · 数据流图    · 重置    · APP    · 编码    · 二维码    · 监控    · 结构化方法    · 数据流    · 微信    · 验证码    · 用户登录    · 用户管理    · 指令    · 注册
 
       数据流图
        数据流图也称数据流程图(Data Flow Diagram,DFD),它是一种便于用户理解、分析系统数据流程的图形工具。它摆脱了系统的物理内容,精确地在逻辑上描述系统的功能、输入、输出和数据存储等,是系统逻辑模型的重要组成部分。
        1)数据流图的基本图形元素
        数据流图中的基本图形元素包括数据流(Data Flow)、加工(Process)、数据存储(Data Store)和外部实体(Extemal Agent)。其中,数据流、加工和数据存储用于构建软件系统内部的数据处理模型;外部实体表示存在于系统之外的对象,用来帮助用户理解系统数据的来源和去向。
        (1)数据流。
        数据流由一组固定成分的数据组成,表示数据的流向。在DFD中,数据流的流向可以有以下几种:从一个加工流向另一个加工;从加工流向数据存储(写):从数据存储流向加工(读);从外部实体流向加工(输入);从加工流向外部实体(输出)。
        DFD中的每个数据流用一个定义明确的名字表示。除了流向数据存储或从数据存储流出的数据流不必命名外,每个数据流都必须有一个合适的名字,以反映该数据流的含义。值得注意的是,DFD中描述的是数据流,而不是控制流。
        数据流或者由具体的数据属性(也称为数据结构)构成,或者由其他数据流构成。组合数据流是由其他数据流构成的数据流,它们用于在高层的数据流图中组合相似的数据流,以使数据流图更便于阅读。
        (2)加工。
        加工描述了输入数据流到输出数据流之间的变换,也就是输入数据流经过什么处理后变成了输出数据流。每个加工都有一个名字和编号。编号能反映出该加工位于分层DFD中的哪个层次和哪张图中,也能够看出它是哪个加工分解出来的子加工。
        一个加工可以有多个输入数据流和多个输出数据流,但至少有一个输入数据流和一个输出数据流。
        (3)数据存储。
        数据存储用来存储数据。通常,一个流入加工的数据流经过加工处理后就消失了,而它的某些数据(或全部数据)可能被加工成输出数据流,流向其他加工或外部实体。除此之外,在软件系统中还常常要把某些信息保存下来以供以后使用,这时可以使用数据存储。
        每个数据存储都有一个定义明确的名字标识。可以有数据流流入数据存储,表示数据的写入操作;也可以有数据流从数据向数据存储,表示对数据的修改。
        这里要说明的是,DFD中的数据存储在具体实现时可以用文件系统实现,也可以用数据库系统实现。数据存储的存储介质可以是磁盘、磁带或其他存储介质。
        (4)外部实体(外部主体)。
        外部实体是指存在于软件系统之外的人员或组织,它指出系统所需数据的发源地(源)和系统所产生的数据的归宿地(宿)。例如,对于一个考务处理系统而言,考生向系统提供报名单(输入数据流),所以考生是考务处理系统的一个源;而考务处理系统要将考试成绩的统计分析表(输出数据流)传递给考试中心,所以考试中心是该系统的一个宿。
        在许多系统中,某个源和某个宿可以是同一个人员或组织,此时,在DFD中可以用同一个符号表示。考生向系统提供报名单,而系统向考生送出准考证,所以在考务处理系统中,考生既是源又是宿。
        源和宿采用相同的图形符号表示,当数据流从该符号流出时,表示它是源;当数据流流向该符号时,表示它是宿;当两者皆有时,表示它既是源又是宿。
        2)数据流图的扩充符号
        在DFD中,一个加工可以有多个输入数据流和多个输出数据流,此时可以加上一些扩充符号来描述多个数据流之间的关系。
        (1)星号(*)。
        星号表示数据流之间存在"与"关系。如果是输入流则表示所有输入数据流全部到达后才能进行加工处理;如果是输出流则表示加工结束将同时产生所有的输出数据流。
        (2)加号(+)。
        加号表示数据流之间存在"或"关系。如果是输入流则表示其中任何一个输入数据流到达后就能进行加工处理;如果是输入流则表示加工处理的结果是至少产生其中一个输出数据流。
        (3)异或(⊕)。
        异或表示数据流之间存在"互斥"关系。如果是输入流则表示当且仅当其中一个输入流到达后才能进行加工处理;如果是输出流则表示加工处理的结果是仅产生这些输出数据流中的一个。
        3)数据流图的层次结构
        从原理上讲,只要纸足够大,一个软件系统的分析模型就可以画在一张纸上。然而,一个复杂的软件系统可能涉及上百个加工和上百个数据流,甚至更多。如果将它们画在一张图上,则会十分复杂,不易阅读,也不易理解。
        根据自顶向下逐层分解的思想,可以将数据流图按照层次结构来绘制,每张图中的加工个数可大致控制在"7加减2"的范围内,从而构成一套分层数据流图。
        (1)层次结构。
        分层数据流图的顶层只有一张图,其中只有一个加工,代表整个软件系统,该加工描述了软件系统与外界之间的数据流,称为顶层图。
        顶层图中的加工(即系统)经分解后的图称为0层图,也只有一张。处于分层数据流图最底层的图称为底层图,在底层图中,所有的加工不再进行分解。分层数据流图中的其他图称为中间层,其中至少有一个加工(也可以是所有加工)被分解成一张子图。在整套分层数据流图中,凡是不再分解成子图的加工称为基本加工。
        (2)图和加工的编号。
        首先介绍父图和子图的概念。
        如果某图(记为A)中的某一个加工分解成一张子图(记为B),则称A是B的父图,B是A的子图。若父图中有n个加工,则它可以有0一刀张子图,但每张子图只对应一张父图。
        为了方便对图进行管理和查找,可以采用下列方式对DFD中的图和加工编号。
        ①顶层图中只有一个加工(代表整个软件系统),该加工不必编号。
        ②0层图中的加工编号分别为1、2、3--。
        ③子图号就是父图中被分解的加工号。
        ④对于子图中加工的编号,若父图中的加工号为X的加工分解成某一子图,则该子图中的加工编号分别为x.1、x.2、X.3…。
        4)分层数据流图的审查
        在分层数据流图画好后,应该认真检查图中是否存在错误或不合理(不理想)的部分。
        (1)分层数据流图的一致性和完整性。
        ①分层数据流图的一致性。
        a.父图与子图的平衡。
        b.数据守恒。
        c.局部数据存储。
        d.一个加工的输出数据流不能与该加工的输入数据流同名。
        ②分层数据流图的完整性。
        a.每个加工至少有一个输入数据流和一个输出数据流。
        b.在整套分层数据流图中,每个数据存储应至少有一个加工对其进行读操作,另一个加工对其进行写操作。
        c.分层数据流图中的每个数据流和文件都必须命名(除了流入或流出数据存储的数据流),并保持与数据字典一致。
        d.分层数据流图中的每个基本加工都应有一个加工规约。
        (2)构造分层DFD时需要注意的问题。
        ①适当命名。
        a.名字应反映整个对象(如数据流、加工),而不是只反映它的某一部分。
        b.避免使用空洞的、含义不清的名字,如"数据""信息""处理""统计"等。
        c.如果发现某个数据流或加工难以命名,往往是DFD分解不当的征兆,此时应考虑重新分解。
        ②画数据流而不是控制流。
        ③避免一个加工有过多的数据流。
        a.把需要重新分解的某张图的所有子图连接成一张图。
        b.把连接后的图重新划分成几个部分,使各部分之间的联系最小。
        c.重新定义父图,即第b步中的每个部分作为父图中的一个加工。
        d.重新建立各子图,即第b步中的每个部分都是一张子图。
        e.为所有的加工重新命名并编号。
        ④分解尽可能均匀。
        ⑤先考虑确定状态,忽略琐碎的细节。
        ⑥随时准备重画。
        (3)分解的程度。
        在自顶向下画数据流图时,为了便于对分解层数进行把握,可以参照以下几条与分解有关的原则。
        ①7加减2。
        ②分解应自然,概念上应合理、清晰。
        ③只要不影响DFD的易理解性,可适当增加子加工数量,以减少层数。
        ④一般来说,上层分解得快一些(即多分解几个加工),下层分解得慢一些(即少分解几个加工)。
        ⑤分解要均匀。
 
       重置
        重置的基本思想是:通过一种动态绑定机制的支持,使得子类在继承父类界面定义的前提下,用适合于自己要求的实现去置换父类中的相应实现。
        在OOPLs中,重置机制有相应的语法供开发人员选择使用。在C++语言中,通过虚拟函数(Virtual Function)的定义来进行重置的声明,通过虚拟函数跳转表(Virtual Functions Jump Tables,VTBL)结构来实现重置方法体的动态绑定。在Java语言中,通过抽象方法(Abstract Method)来进行重置的声明,通过方法查找(Method Lookup)实现重置方法体的动态绑定。
 
       APP
        (1)APP的定义。APP就是应用程序Application的意思,APP营销是通过智能手机、社区、SNS等平台上运行的应用程序来开展的营销活动。
        (2)APP营销模式。APP营销的主要模式有广告植入、用户植入和购物网站植入。
        ①广告植入。APP营销常见的广告植入有三种:加载应用时段植入的广告、运行应用时穿插的广告及运行主界面中商家LOGO广告。
        ②用户植入。主要的应用类型是网站移植类和品牌应用类,企业把符合自己定位的应用发布到应用商店内,供智能手机用户下载,用户利用这种应用可以很直观地了解企业的信息。这种营销模式具有很强的实验价值,让用户了解产品,增强产品信心,提升品牌美誉度。
        ③购物网站植入。将购物网站移植到收集上,用户可以随时随地浏览网站获取商品信息,进行下单。这种模式相对于手机购物网站的优势是快速便捷、内容丰富,并且这种应用一般具有很多优惠措施。
 
       编码
               编码过程
               在给定了软件设计规格说明书后,下一步的工作就是编写代码。一般来说,编码工作可以分为四个步骤:
               (1)确定源程序的标准格式,制订编程规范。
               (2)准备编程环境,包括软硬件平台的选择,包括操作系统、编程语言、集成开发环境等。
               (3)编写代码。
               (4)进行代码审查,以提高编码质量。为提高审查的效率,在代码审查前需要准备一份检查清单,并设定此次审查须找到的bug数量。在审查时,要检查软件规格说明书与编码内容是否一致;代码对硬件和操作系统资源的访问是否正确;中断控制模块是否正确等。
               编码准则
               在嵌入式系统中,由于资源有限,且实时性和可靠性要求较高,因此,在开发嵌入式软件时,要注意对执行时间、存储空间和开发/维护时间这三种资源的使用进行优化。也就是说,代码的执行速度要越快越好,系统占用的存储空间要越小越好,软件开发和维护的时间要越少越好。
               具体来说,在编写代码时,需要做到以下几点:
               .保持函数短小精悍。一个函数应该只实现一个功能,如果函数的代码过于复杂,将多个功能混杂在一起,就很难具备可靠性和可维护性。另外,要限制函数的长度,一般来说,一个函数的长度最好不要超过100行。
               .封装代码。将数据以及对其进行操作的代码封装在一个实体中,其他代码不能直接访问这些数据。例如,全局变量必须在使用该变量的函数或模块内定义。对代码进行封装的结果就是消除了代码之间的依赖性,提高了对象的内聚性,使封装后的代码对其他行为的依赖性较小。
               .消除冗余代码。例如,将一个变量赋给它自己,初始化或设置一个变量后却从不使用它,等等。研究表明,即使是无害的冗余也往往和程序的缺陷高度关联。
               .减少实时代码。实时代码不但容易出错、编写成本较高,而且调试成本可能更高。如果可能,最好将对执行时间要求严格的代码转移到一个单独的任务或者程序段中。
               .编写优雅流畅的代码。
               .遵守代码编写标准并借助检查工具。用自动检验工具寻找缺陷比人工调试便宜,而且能捕捉到通过传统测试检查不到的各种问题。
               编码技术
                      编程规范
                      在嵌入式软件开发过程中,遵守编程规范,养成良好的编程习惯,这是非常重要的,将直接影响到所编写代码的质量。
                      编程规范主要涉及的三方面内容:
                      .命名规则。从编译器的角度,一个合法的变量名由字母、数字和下画线三种字符组成,且第一个字符必须为字母或下画线。但是从程序员的角度,一个好的名字不仅要合法,还要载有足够的信息,做到“见名知意”,并且在语意清晰、不含歧义的前提下,尽可能地简短。
                      .编码格式。在程序布局时,要使用缩进规则,例如变量的定义和可执行语句要缩进一级,当函数的参数过长时,也要缩进。另外,括弧的使用要整齐配对,要善于使用空格和空行来美化代码。例如,在二元运算符与其运算对象之间,要留有空格;在变量定义和代码之间要留有空行;在不同功能的代码段之间也要用空行隔开。
                      .注释的书写。注释的典型内容包括:函数的功能描述;设计过程中的决策,如数据结构和算法的选择;错误的处理方式;复杂代码的设计思想等。在书写注释时要注意,注释的内容应该与相应的代码保持一致,同时要避免不必要的注释,过犹不及。
                      性能优化
                      由于嵌入式系统对实时性的要求较高,因此一般要求对代码的性能进行优化,使代码的执行速度越快越好。以算术运算为例,在编写代码时,需要仔细地选择和使用算术运算符。一般来说,整数的算术运算最快,其次是带有硬件支持的浮点运算,而用软件来实现的浮点运算是非常慢的。因此,在编码时要遵守以下准则:
                      .尽量使用整数(char、short、int和long)的加法和减法。
                      .如果没有硬件支持,尽量避免使用乘法。
                      .尽量避免使用除法。
                      .如果没有硬件支持,尽量避免使用浮点数。
                      下图是一个例子,其中两段代码的功能完全一样,都是对一个结构体数组的各个元素进行初始化,但采用两种不同的方法来实现。下图(a)采用数组下标的方法,在定位第i个数组元素时,需要将i乘以结构体元素的大小,再加上数组的起始地址。下图(b)采用的是指针访问的方法,先把指针fp初始化为数组的起始地址,然后每访问完一个数组元素,就把fp加1,指向下一个元素。在一个奔腾4的PC上,将这两段代码分别重复10 700次,右边这段代码需要1ms,而左边这段代码需要2.13ms。
                      
                      算术运算性能优化的例子
 
       二维码
        二维码是一种使用特定几何图形按一定规律在平面(二维方向)上分布的黑白相间的图形记录数据符号信息的技术,如下图所示。在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图像输入设备或光电扫描设备自动识读以实现信息自动处理。
        
        二维码示意图
 
       监控
        主要包括故障监控和性能、流量、负载等状态监控,这些监控关系到集群的健康运行及潜在问题的及时发现与干预。
        (1)服务故障、状态监控:主要是对服务器自身、上层应用、关联服务数据交互监控;例如针对前端Web Server,就可以有很多种类型的监控,包括应用端口状态监控,便于及时发现服务器或应用本身是否崩溃、通过ICMP包探测服务器健康状态,更上层可能还包括应用各频道业务的监控,这些只是一部分,还有多种监控方式,依应用特点而定。还有一些问题需解决,如集群过大,如何高性能地进行监控也是一个现实问题。
        (2)集群状态类的监控或统计,为合理管理调优集群提供数据参考,包括服务瓶颈、性能问题、异常流量、攻击等问题。
 
       结构化方法
        结构化方法属于自顶向下的开发方法,其基本思想是“自顶向下,逐步求精”,强调开发方法的结构合理性及所开发软件的结构合理性。结构是指系统内各个组成要素之间的相互联系、相互作用的框架。结构化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。针对软件生存周期各个不同的阶段,它包括了结构化分析(Structured Analysis, SA)、结构化设计(Structured Design, SD)和结构化程序设计(Structured Programing, SP)等方法。本章后续介绍的分析、设计、测试等内容,都是以结构化方法为基础的。
               结构化方法的基本原则
               为保证系统开发的顺利进行,结构化方法强调遵循以下几个基本原则:
               (1)面向用户的观点。在开发过程中,开发人员应该始终与用户保持联系,从调查研究入手,充分理解用户的信息需求和业务活动,不断地让用户了解工作的进展情况,校准工作方向。
               (2)严格区分工作阶段,每个阶段有明确的任务和应得的成果。
               (3)按照系统的观点,自顶向下地完成系统的开发工作。
               (4)充分考虑变化的情况。在系统设计中,把系统的可变更性放在首位。
               (5)工作成果文献化、文档化。
               结构化分析
               SA方法使用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下、逐层分解,直至找到满足功能要求的所有可实现的软件为止。SA方法给出一组帮助系统分析人员产生功能规约的原理与技术。它一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表及判定树等。
               SA方法的步骤如下:
               (1)分析当前的情况,做出反映当前物理模型的数据流图(Data Flow Diagram, DFD)。
               (2)推导出等价的逻辑模型的DFD。
               (3)设计新的逻辑系统,生成数据字典和基元描述。
               (4)建立人机接口,提出可供选择的目标系统物理模型的DFD。
               (5)确定各种方案的成本和风险等级,据此对各种方案进行分析。
               (6)选择一种方案。
               (7)建立完整的需求规约。
               结构化设计
               SD方法给出一组帮助设计人员在模块层次上区分设计质量的原理与技术。它通常与SA方法衔接起来使用,以数据流图为基础得到软件的模块结构。SD方法尤其适用于变换型结构和事务型结构的目标系统。在设计过程中,它从整个程序的结构出发,利用模块结构图表述程序模块之间的关系。
               SD方法的步骤如下:
               (1)评审和细化数据流图。
               (2)确定数据流图的类型。
               (3)把数据流图映射到软件模块结构上,设计出模块结构的上层。
               (4)基于数据流图逐步分解高层模块,设计中下层模块。
               (5)对模块结构进行优化,得到更为合理的软件结构。
               (6)描述模块接口。
               SD方法的设计原则是:
               (1)使每个模块执行一个功能(坚持功能性内聚)。
               (2)每个模块使用过程语句(或函数方式等)调用其他模块。
               (3)模块间传送的参数作为数据使用。
               (4)模块间共用的信息(如参数等)尽量少。
               结构化方法的缺点
               结构化方法是目前最成熟、应用较广泛的一种工程化方法。当然,这种方法也有不足和局限性:
               (1)开发周期长。一方面使用户在较长的时间内不能得到一个可实际运行的物理系统,另一方面难以适应环境变化。
               (2)早期的结构化方法注重系统功能,兼顾数据结构的方面不多。
               (3)结构化程度较低的系统,在开发初期难于锁定功能要求。
               这些问题在应用中有的已经解决,同时也产生了其他一些方法,例如原型法、面向对象方法等。
 
       数据流
        数据流由一组固定成分的数据组成,表示数据的流向。在DFD中,数据流的流向可以有以下几种:从一个加工流向另一个加工;从加工流向数据存储(写);从数据存储流向加工(读);从外部实体流向加工(输入);从加工流向外部实体(输出)。
        DFD中的每个数据流用一个定义明确的名字表示。除了流向数据存储或从数据存储流出的数据流不必命名外,每个数据流都必须有一个合适的名字,以反映该数据流的含义。
        数据流或者由具体的数据属性(也称为数据结构)构成,或者由其他数据流构成。组合数据流是由其他数据流构成的数据流,它们用于在高层的数据流图中组合相似的数据流,以使数据流图更便于阅读。
        控制流是对数据流图的补充,采用虚线表示,是对由触发系统功能的事件进行描述。
        另外,一个加工可以有多个输入数据流和多个输出数据流,此时可以加上一些扩充字符符号或图形元素来描述多个数据流之间的关系。如:
        (1)星号(*)。星号表示数据流之间存在“与”关系。如果是输入流则表示所有输入数据流全部到达后才能进行加工处理;如果是输出流则表示加工结束将同时产生所有的输出数据流。
        (2)加号(+)。加号表示数据流之间存在“或”关系。如果是输入流则表示其中任何一个输入数据流到达后就能进行加工处理;如果是输出流则表示加工处理的结果是至少产生其中一个输出数据流。
        (3)异或(⊕)。异或表示数据流之间存在“互斥”关系。如果是输入流则表示当且仅当其中一个输入流到达后才能进行加工处理;如果是输出流则表示加工处理的结果是仅产生这些输出数据流中的一个。
 
       微信
        微信公众号是开发者或商家在微信公众平台上申请的应用账号,该账号与QQ账号互通,通过公众号,商家可在微信平台上实现和特定群体的文字、图片、语音、视频的全方位沟通、互动,形成了一种主流的线上/线下微信互动营销方式。
        正如线上/线下微信互动营销的代表微部落,率先提出标准的行业通用模板和深定制的微信平台开发理念相结合,形成了线上/线下微信互动营销的开放应用平台。
 
       验证码
        验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机和人的技术。可以防止恶意破解密码、刷票、论坛灌水等现象。在电子商务系统中,可以通过验证码控件实现验证码的功能。
        验证码控件一般属于第三方控件,将验证码控件引入到.NET系统中就可以使用了。在用户注册页面上增加一个验证码控件及输入验证码的文本框,主要代码如下:
        
        在用户注册页后台类文件中,首先在页面加载方法中生成验证码,主要程序如下:
        
        在用户提交注册信息的时候,首先要判断验证码是否正确,程序如下:
        
 
       用户登录
               PC端用户登录
                      功能描述
                      登录是用户在电子商务网站中进行各种商务活动的前提,登录模块的功能是判断用户是否合法(已注册),如果合法用户忘记了密码要能根据注册信息找回密码,如果是非法用户,登录了多次是否要进行限制,只有合法用户且密码正确才能登录成功。登录模块的基本功能如下图所示。
                      
                      登录模块基本流程图
                      界面设计
                      登录页面包括TextBox和Label控件,分别用于用户信息的输入及显示提示性文本信息,另外,验证控件对用户输入进行验证。登录页面如下图所示。
                      
                      登录界面
                      代码实现
                      当用户单击“登录”按钮时,首先验证控件会验证用户是否填写信息,如果没有填写则提示用户填写,如果已经填写了,则判断用户是否是合法用户,如果是合法用户,再判断用户密码是否正确。主要程序代码如下:
                      
               移动端用户登录
                      功能描述
                      与PC端一样,移动端登录是商务活动不可或缺的功能。用户应用社交、电商、金融等App必须进行注册登录,如微信、QQ、支付宝、淘宝、美团等。移动端用户账号登录注册主要有几种形式:第三方账号、手机号、邮箱。
                      (1)第三方账号(QQ、微信、微博等)。使用第三方账号优势是用户操作简单,方便用户快速的体验产品;其缺点是通过第三方平台获取到的用户信息太少,手机没有安装对应App时,通过网页进行登录认证需要输入账号密码,复杂度很高。移动端第三方登录模块的基本功能如下图所示。
                      
                      移动第三方登录模块基本流程图
                      (2)手机号注册登录。通过手机获取验证码(短信),验证后设置密码进行注册;登录时使用手机号和密码登录。获取验证码的优点是可以很大程度上防止恶意注册,可以导入通讯录关系而且用户不需要记忆成本;其缺点是短信验证码需要成本,用户隐私可能泄露,手机号丢失后找回复杂。移动端手机号注册登录模块的基本功能如下图所示。
                      
                      移动手机号注册登录模块基本流程图
                      (3)邮箱登录注册。邮箱登录验证成本低,对用户来说隐私性更好,但是移动端邮箱输入复杂,验证不方便,普及率不高普及率高。
                      界面设计
                      由于移动端(手机)屏幕的限制,长字符串的输入以及字母数字符号间的切换对用户来说很不方便,因此要特别注意在注册登录界面的设计环节。在输入方面增加单词的输入联想,邮箱的后缀列为选择菜单,输入手机号/卡号/验证码时自动弹出数字输入面板,减少冗余操作,默认勾选用户协议等;在显示方面,手机号、银行卡等长字符串应进行分类,如手机号显示为***_****_****,验证码短信发送时将数字显示到短信最前方,这样用户可以直接从短信摘要取得信息而不需要切换到短信应用。
                      代码实现
                      移动端界面的代码实现由于采用的编程方式各不相同,实现的过程差异很大,这里通过HTML、CSS和JSP+MySQL数据库设计一个简单的手机验证登录界面,如下图所示。当用户单击“获取验证码”按钮时,获取验证码设置点击事件,并将值发送到send()方法,然后判断是否传输成功。如果成功,为数据库中添加字段,由前端控制器方法实现添加成功后,服务器端JSON返回信息,随后前台进行登录验证。
                      
                      一个简单的手机注册登录界面
                      主要代码如下:
                      
                      
 
       用户管理
        用户(User)是网络系统的主要使用者,使用网络的单位和个人都属于用户范畴。用户的身份决定其在网络系统中的权限,不同身份的用户在网络系统中担任着不同的角色(Role)。
        在网络中必须有严格的用户管理措施,以保证网络的正常使用和运转。系统管理员是网络系统的维护人员,他的重要任务之一就是管理用户,他本人也是用户,但拥有比其他用户更高的权限。
        用户在使用网络系统之前需要注册,即将用户信息提交给网络管理员审阅,通过后即可开通服务。用户在使用网络资源的过程中必须接受管理员的管理和网络管理程序的控制,用户的行为必须遵守既定网络管理规则。
        网络用户管理包括以下内容。
        (1)局域网用户管理:局域网用户的创建、注销和访问权限管理,主域用户资料数据库的维护和管理。
        (2)电子邮件用户管理:电子邮件用户开户审核,用户创建、注销和权限管理,电子邮件用户数据库的维护。
        (3)用户入网设备IP地址管理:局域网用户的IP网络地址分配和技术支持,用户IP地址分配数据库的维护。
        (4)用户Internet访问管理:Internet访问权限管理、传输内容监控和费用分配控制管理,用户流量数据库管理和维护。
        在局域网环境中存在多种网络应用和管理系统,每个系统都含有一套独立的用户身份认证管理系统。为了有效地管理用户信息并利用这些信息提高网络管理效率,需要建立统一的身份认证系统,目前用户信息管理系统大都建立在轻量目录访问协议(Lightweight Directory Access Protocol, LDAP)的基础之上。
 
       指令
        指令是指挥计算机完成各种操作的基本命令。
        (1)指令格式。计算机的指令由操作码字段和操作数字段两部分组成。
        (2)指令长度。指令长度有固定长度的和可变长度的两种。有些RISC的指令是固定长度的,但目前多数计算机系统的指令是可变长度的。指令长度通常取8的倍数。
        (3)指令种类。指令有数据传送指令、算术运算指令、位运算指令、程序流程控制指令、串操作指令、处理器控制指令等类型。
 
       注册
        移动IP通信的第二个阶段是注册。当移动主机已经移动到外地网络并且已经发现了外地代理后,就必须注册。关于注册涉及以下3点:
        (1)移动主机必须向外地代理注册。
        (2)如果截止期到了,移动主机必须重新注册。
        (3)如果移动主机离开某个外地网络,则必须注销。
        具体步骤是:移动主机把注册请求发送给外地代理,并把归属地址和归属地代理地址发送给外地代理。外地代理收到这些信息后,把这些信息转发给移动主机的归属地代理以认证上述信息,如果认证通过,那么移动主机就在外地代理这里注册成功。同时,移动主机的归属地代理也知道了外地代理的地址(转交地址)。
   题号导航      2017年下半年 软件设计师 下午试卷 案例   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
 
第1题    在手机中做本题