内容正文:
信息系统的搭建
学考要点1 网络应用软件开发
【必修2 信息系统与社会第82~89页 指导意见第39~45页】
1.网络应用软件的实现架构
(1)网络应用软件的实现架构有两种:客户端/服务器架构(C/S架构);浏览器/服务器架构(B/S架构)。
C/S架构图 B/S架构图
(2)B/S架构和C/S架构的对比:
2.编写网络应用程序
(1)编写网络应用程序首先要确定相应的Web应用框架。在Python中,常用的Web应用框架还有Flask、Django、Tornado,其中 Flask_Web框架非常精简,属于小型框架。它具有一个包含基本服务的核心,
架构类型 C/S架构 B/S架构
安装 需要安装客户端 只需要浏览器
开发维护成本 需要同时开发、维护客户端和服务器端,开发维护成本较高 只需要开发升级维护服务器端即可,客户端为通用浏览器,开发维护成本较低
本机负载和压力 客户端安装在本地,负责和用户交互,部分系统功能在客户端实现,服务器负载较小 浏览器只负责显示,数据的统计、分析等功能主要在Web服务器完成,服务器负载较大
安全性 主要运行于局域网,用户需要安装客户端,用户群体固定,安全性较高 运行于互联网,使用人数较多,安全性较低
并且是一个可扩展的框架,很多功能可以通过扩展来实现。
(2)使用Flask Web框架编写网络应用流程如图所示:
①导入框架模块。Flask Web框架应用时可以通过以下语句来导入模块:
from flask import Flask, redirect,request,render_template
其中各对象、变量及函数等的功能如下表所示:
在网络应用程序中,除了Flask框架模块外还会使用一些其他的模块,如flask_wtf、flask_bootstrap及wtforms等,其中flask_wtf用于创建Flask表单,flask_bootstrap用于应用前端网页的布局,wtforms用于创建表单字段。
②创建应用实例,其代码如下:
模块中的对象 功能
Flask 创建Flask应用实例
redirect redirect函数用于网页跳转
request 处理网页请求的对象
render_template 使用网页模板构建应用网页
app=Flask(__name__) #创建一个Flask类的对象
③编写路由和视图函数,其代码如下:
@app.route('/')
def index():
#代码略
如在该路由对应的网页使用了表单,则需要使用代码来创建一个表单对象:
myform=mForm()
即使用mForm表单类创建表单实例myform,然后变量myform作为网页模板的参数来显示表单。
④启动Web应用,其代码如下:
if __name__=='__main__':
app.run()
⑤网络应用的调试
Flask框架调试模式、日志文件调试、邮件调试
Flask Web框架调试模式开启方式:app.run(debug=True)。调试模式
应在开发测试时使用,在实际网站应用过程中开启调试模式将会是一个安全漏洞。
⑥网络应用发布
当Web应用程序通过调试并修改完善后投入实际应用,在开发环境中我们只需要通过如下命令就可以启动Web应用,以供他人访问使用。
Python 应用程序.py runserver
(3)SQLite是一个轻量级、跨平台的关系型数据库,具有独立性、零配置、开放性、占用资源少等特点。数据库文件的扩展名一般为“.db”。
学考要点2 信息系统的搭建
【必修2 信息系统与社会第132~151页 指导意见第49~54页】
1.搭建信息系统的前期准备
需求分析、可行性分析、开发模式的选择、概要设计、详细设计等。
(1)需求分析
①目标期待:搭建一个信息系统是为了解决某个问题,但用户提出的问题通常不是从技术角度来表述的,需要技术人员与用户确认。
②功能需求:功能需求根据对用户的重要程度分为核心需求、拓展
需求、创新需求。
③性能需求:信息系统的性能需求,主要包括存储容量、运行时间、传输速度和安全保密等性能指标。
④资源和环境需求:信息系统运行时需要的资源和环境要求具体体现在硬件、软件和使用方面。
⑤用户界面需求:用户界面的友好性是用户能方便、有效、愉悦地使用该系统的关键之一。
⑥可扩展性需求:系统的可扩展性具体体现在两方面:系统技术本身的可扩展性和业务应用的可扩展性。
(2)可行性分析
①技术:考查在现有技术条件下是否可能实现系统的搭建,如存储要求、速度要求、通信要求等。
②经济:对搭建信息系统所需的费用和效益进行评估,要力争费用可行、投入产出合理。
③社会意义:主要针对要在社会环境中工作的信息系统,考察各种社会因素对它们所起的制约作用。
(3)开发模式的选择
根据信息系统的具体功能和应用场景来确定开发模式,然后选择开发方法。搭建信息系统一般采用B/S模式或C/S模式。
(4)概要设计
概要设计主要包括模块结构设计、系统物理配置和数据库管理系统选择三大部分。
①模块结构设计:划分系统模块;确定模块功能;决定模块间的调用关系;制定模块间的接口,即数据传递。
②系统物理配置:硬件设备配置、应用软件的选择和通信网络的选择和设计等。
③数据库管理系统选择:主要考虑数据库的性能、数据的类型、数据库管理系统平台和安全保密性能等。
(5)详细设计
信息系统详细设计的主要任务是在系统概要设计的指导下,对系统组成部分进行详细、具体的物理设计,主要包括:输入设计、输出设计、人机界面设计、数据库设计、代码设计、安全设计等。
①输入设计:主要包括输入数据内容的确定、输入方式与设备的选择、输入数据的正确性校验等。
②输出设计:包括确定输出内容、选择输出设备和介质、确定输出格式等方面。
③人机界面设计:遵循友好、美观、简洁、统一的原则。
④数据库设计:根据数据字典和数据存储要求,确定数据库的结构。信息系统的数据流转、数据交换的格式,都需要在这个环节进行确定。数据格式的选择是否合理,将直接影响数据交换的工作效率,以及数据挖掘、分析功能的实现。
⑤代码设计:实现系统代码编写规则、编码设计和代码维护设计等。
⑥安全设计:为确保信息系统的运行安全和数据保密,提出安全设计方案。
2.搭建信息系统
信息系统的搭建主要包括硬件搭建和软件模块选择或编写两方面。
(1)硬件搭建
硬件是信息系统建立的基础。一个信息系统,其硬件组成主要包括服务器、网络设备、传感设备、智能终端等。
①服务器:为信息系统中的用户提供各种服务,如应用程序的处理、
访问数据库管理系统、打印服务等。根据系统开发模式、数据存储的需要配置服务器,比如考虑服务器的CPU、内存等参数。
②网络设备:在信息系统中,通过网络来完成数据的传递。网络设备主要包括交换机、路由器、网卡、双绞线、光缆等。
③传感设备和智能终端:传感设备是信息系统中重要的输入设备,也称传感器,主要负责检测。智能终端包括输入、处理、存储和输出四个部分,主要输出加工后的数据。
(2)软件开发
①数据管理设计
A.数据采集:数据采集是利用一种或多种装置,从系统外部采集数据并输入系统内部一个接口的过程。
B.数据传输:数据采集好后,通过传输介质传送到服务器进行加工处理和存储。常见的传输介质分为有线和无线两种。
C.数据存储:文件、数据库、云存储是数据存储的常见方式。
D.数据呈现:把分析结果用最容易理解和最美观的方式展现出来。
②程序编写
信息系统中的软件开发涉及服务器端程序和客户端程序。
3.完善信息系统
(1)信息系统测试包括软件测试、硬件测试和网络测试。
①软件测试:一般包括正确性证明、静态测试和动态测试三种方法。
②硬件测试:初验测试主要有配置检测、外观检查、硬件运行检测等。
③网络测试:如果搭建的信息系统是基于网络的,需要选购网络设备并进行初验测试。初验测试主要有配置检测、外观检查、运行测试、网络连通测试等。
(2)文档编写
①信息系统的文档,是系统建设过程的原始资料,是系统出现故障后维护人员的指南。文档不仅包括应用软件开发过程中产生的文档,还包括硬件采购和网络设计中形成的文档。
②按信息系统的阶段不同,可以分为:系统规划阶段的文档、系统分析阶段的文档、系统设计阶段的文档、系统实施阶段的文档、系统运行与维护阶段的文档。
③按文档不同的服务目的可分为三类:用户文档、开发文档与管理文档。用户文档主要是为用户服务的,开发文档主要是为开发人员服务
的,管理文档主要是为项目管理人员服务的。
④系统主要文档的内容简介
A.可行性研究报告:在可行性研究报告中要说明待开发系统在技术、经济和社会意义三个方面的可行性,评述为了达到开发目标可供选择的各种可能的实施方案。
B.系统分析说明书:系统分析说明书主要包括引言、项目概述、实施计划等部分。
C.系统设计说明书:系统设计说明书是在系统分析的基础上,进行新系统的物理设计而形成的报告。
D.程序设计报告:程序设计报告主要内容包括概述、程序结构图、程序控制图、算法、程序流程图、源代码、程序注解说明等。
E.系统测试报告:测试工作完成后,应提交测试情况说明,并对测试结果加以分析,提出测试的论证意见。测试报告主要包括概述、测试环境、测试内容、测试方案、测试结果等。
F.系统使用和维护手册:系统使用和维护手册主要是为用户准备的文档。
G.系统评价报告:系统评价报告主要是根据系统可行性研究报告、系统分析说明书和系统设计说明书所确定的系统的目标、功能、性能、
计划执行情况以及系统实现后的经济效益和社会效益等给予评价。
例1 小余搭建了一个蔬菜大棚温度监测系统,系统结构示意图如图所示。智能终端通过接口接收温度传感器采集的数据,IoT 模块(网络模块)传送温度数据到Web 服务器并保存到数据库。IoT 模块需要设置无线网络的名称SSID和共享密钥PASSWORD 连通无线网络,采用与Web 服务器相同的IP 和PORT 配置连通服务器,客户端通过浏览器访问Web 服务器。Web 服务器将处理的结果经IoT 模块传送给智能终端,由智能终端启动执行器实现对温度的控制。
根据材料,下列说法正确的是( )
A.该系统采用C/S网络架构
B.执行器由Web 服务器直接控制
C.客户端需要安装专门的客户端程序才能完成数据的访问
D.IoT模块需要设置无线网络的名称SSID和共享密钥PASSWORD连通无线网络
D
【解析】 选项A,材料中明确提到客户端通过浏览器访问Web服务器,此为B/S架构的工作方式,选项错误;选项B,由图可知,执行器由智能终端直接控制,选项错误;选项C,该系统采用B/S网络架构,客户端无须安装专门的客户端程序,选项错误。
变式1 校园门禁系统是对校园出入口通道进行安全管制的系统,其硬件及网络构成示意图如下。下列关于校园门禁系统相关技术的说法不正确的是( )
A.运用RFID 技术可以实现使用
门禁卡进行非接触刷卡
B.校园门禁系统的计算机网络类型一般属于局域网(LAN)
C.各门禁控制器和交换机之间进行信息传送时遵循TCP/IP 协议
D.校园门禁系统通过浏览器实现后台管理,说明该系统属于C/S 架构
D
【解析】 校园门禁系统通过浏览器实现后台管理,说明该系统属于B/S架构。B/S架构为浏览器/服务器架构,选项D错误。
变式2 (2024·遂昌中学学考模拟)某智能车载系统可以通过传感器(如雷达、摄像头等)获取车辆四周相关数据,系统使用人工智能算法处理这些数据,自动分析车辆行驶状态实现自动驾驶。车载系统通过网络连接系统服务器,用户可以通过指纹认证、手机NFC等方式开启车门,还可以通过专用客户端APP查看实时车况数据、实现部分功能的控制。下列关于该智能车载系统的说法正确的是( )
A.用户可以使用手机NFC功能远程开启车门
B.该智能车载系统采用B/S架构
C.该智能车载系统可能存在软件故障和个人信息泄露等安全隐患
D.随着智能系统的升级与完善,可以完全消除系统对外部环境的依赖
C
【解析】 选项A,NFC技术是一种短距高频的无线电技术,不支持远程开启车门,选项错误;选项B,该智能车载系统的用户可以通过专用客户端APP使用相关功能,说明该智能车载系统采用的是C/S架构,选项错误; 选项D,智能系统再升级完善也无法完全消除系统对外部环境的依赖,选项错误。
例2 搭建“校园自动红外测温系统”的前期准备工作有以下5个主要环节: ①开发模式的选择;②概要设计;③需求分析;④详细设计;⑤可行性分析。在实施时正确的步骤是( )
A.③①④②⑤
B.③⑤①②④
C.③⑤①④②
D.⑤③①④②
B
【解析】 搭建信息系统时,先要进行需求分析,分析系统的功能、性能等需求,然后进行可行性分析和开发模式的选择,接下来进行概要设计,重点考虑系统如何开发,对系统进行模块划分、确定各模块的功能等,最后进行详细设计,主要设计系统的界面和代码等。选项B正确。
变式1 初步完成信息系统的搭建后,还需要根据用户需求对系统进行测试,对系统加以修正, 并在此基础上修改各种文档,进一步完善信息系统。下列说法正确的是( )
A.系统测试包括硬件测试、软件测试、网络测试和文档编写
B.正确性证明、静态测试与动态测试是软件测试的三种方法
C.信息系统的文档只包括用户文档和管理文档
D.使用Flask Web框架搭建的服务端程序,打开调试功能可以提高系统的安全性
B
【解析】 选项A,系统测试主要包括软件测试、硬件测试和网络测试,选项错误;选项C,文档不仅包括应用软件开发过程中产生的文档,还包括硬件采购和网络设计中形成的文档,选项错误;选项D,打开调试功能会降低系统的安全性,选项错误。
变式2 下列关于信息系统的搭建的说法正确的是( )
A.收到用户的开发要求后,即可进行软件的编写等详细设计
B.目前信息系统的开发模式一般选用B/S架构,因为这种模式对服务器的要求较低
C.信息系统搭建后需要进行系统测试,其中软件测试包括正确性证明、静态测试和动态测试
D.Python中开发Web应用程序可以使用Flask Web框架,它是功能齐全的一种大型框架
C
【解析】 选项A,收到用户的开发要求后,应先进行需求分析,选项错误;选项B,B/S架构对服务器的要求较高,选项错误;选项D,Flask Web框架是功能齐全的一种小型框架,选项错误。
例3 某环境监测系统通过传感器获取信息,数据通过智能终端的无线模块汇总到数据库服务器,客户端通过浏览器访问服务器,获取各种数据信息。该系统的Web 服务器运行拓扑图及网站框架如图所示。
服务器端程序基于Python 的Flask Web 框架编写,使用SQLite3 数据库。请回答下列问题。
(1)系统采集数据存储在Web 服务器的数据库中,数据库文件名的格式可能是_____(单选,填字母:A.test.db; B.test.py; C.test.bmp)。
(2)以下代码实现了温度采集以及数据传输的功能。传感器接在pin0,蜂鸣器接在pin8。请在横线处填入合适的代码。
from microbit import * #导入micro:bit 包
import Obloq #导入IoT(物联网)模块的OBLOQ 包
IP=”①________________”
A
192.168.1.101
PORT=”8088”
SSID=”jf”
PASSWORD=”pkq88888”
uart.init(baudrate=9600,bits=8,parity=None,stop=1,tx=pin2,rx=pin1)
while Obloq.connectWifi(SSID,PASSWORD,10000)!=True:
display.show(”W”)
display.scroll(Obloq.ifconfig())
Obloq.httpSet(IP,PORT)
while True:
temp=②________.read_analog() #温度的采集
temp=temp*3.3/10.24
display.scroll(str(temp))
errno,resp=Obloq.get(”③________?id=1&val=”+str(temp),10000)
if errno==200:
display.scroll(resp)
else:
pin0
input
display.scroll(str(errno))
sleep(60000)
【解析】 (1)本题采用的是SQLite3 数据库,数据库文件的后缀名为.db,选项A正确。
(2)①由网站框架示意图的网址可知,IP 为192.168.1.101。
②由注释“温度的采集”,以及“temp=__.read_analog()”中的“read”可知,②处横线填的是传感器的接口,由题目可知传感器接口是pin0。
③由网站框架示意图中的“/input?id=1&val=25.5提交存储页面”和“_?”id=1&val=”+str(temp)”可知该题答案为input。
变式 (2024·丽水中学学考模拟)小峰做了一个“搭建学生寝室管理系统”的试验。该系统可通过人脸识别、指纹识别、校园卡等方式模拟进出寝室管理,并将进出数据发送给服务器。通过浏览器可以查看学生在寝、离寝情况。小峰选择的硬件有:智能终端、IoT模块、摄像头、指纹采集仪、射频识别设备、进出口闸机、服务器等。该系统结构示意图如图所示,其中Web服务器端程序采用Flask Web框架开发。
请回答下列问题。
(1)下列硬件设备中,属于执行器的有_____(单选,填字母:A.摄像头; B.指纹采集仪; C.射频识别设备; D.进出口闸机)。
(2)下列关于该系统应用软件的网络架构,说法正确的是_____(单选,填字母:A.客户端无须安装专用软件,升级维护方便; B.对服务器要求较低; C.能够降低系统通信开销)。
(3)下列功能需要在服务器端程序中实现的是______(多选,填字母:A.原始指纹数据的采集; B.在数据库中查找指纹特征数据; C.闸机的开关; D.根据浏览器的请求返回数据)。
D
A
BD
(4)小峰基于Flask Web框架编写服务器端程序,部分代码如下。编写完后,若要通过浏览器获取视图函数entry()返回的页面,则访问的URL是http://_______________________。
#导入Flask框架模块及其他相关模块,代码略
app=Flask(__name__)
@app.route('/')
def index():
#在模板文件上显示从数据库读取的入寝、离寝学生数据,代码略
10.16.1.18:8080/dorm
@app.route('/dorm', methods=['GET', 'POST')
def entry():
#从数据库读取对应班级学生的在寝、离寝数据,并返回页面,代码略
#服务器其他功能,代码略
if __name__=='__main__'
app.run(host='10.16.1.18',port=8080)
(5)小峰对系统进行动态测试,使用校园卡刷卡,闸机能正常打开,在浏览器中查看系统首页,页面中标题、表格等内容能正常显示,但却未显示刷卡数据,刷新后仍不变(Web服务器数据库的数据读写功能正常)。从服务器端的程序角度说明造成上述问题的原因有_____________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
_________。
①index模块
(主页路由对应的模块)中从数据库中读取数据代码有误、②index模块
(主页路由对应的模块)中将参数传递给模板文件的代码有误、③主页模
板文件中,显示服务器传递的数据代码有误、④其他模块中,将在寝、
离寝数据写入数据库代码有误(需要指出具体哪个位置及哪个内容的代
码有误)
【解析】 (1)执行器是负责输出的硬件设备,选项A、B、C均属于输入设备,只有进出口闸机属于输出设备。
(2)根据题干“通过浏览器可以查看学生在寝、离寝情况”可知该系统采用B/S开发模式,因此不需要安装客户端程序。而选项B、C是C/S开发模式的特点,选项A正确。
(3)指纹数据的采集和闸机的开关只需要通过智能终端的程序控制即可实现。在数据库中查找指纹特征数据、根据浏览器的请求返回数据,这两个功能都需要在Web服务器的配合下使用。
(4)由于路由和视图函数是配合使用的,根据代码可知,视图函数entry()的前面就是其路由的子页面“/dorm”,然后根据IP地址(host)和port端口号,可以确定答案。
(5)只要理由合理均可,但须指出具体原因。
$$