一、软件工程的三个阶段
(一)定义阶段
定义阶段主要进行可行性分析和需求分析。
- 可行性分析
(1) 技术可行性
(2)成本可行性
① 开发评估成本
②收益评估成本 - 需求分析(以人脸识别的课堂签到管理系统为例)
(1)摄像头进行人脸检测
(2)人脸比对判断
(3)人脸库创建
(4)人脸库的增加数据,删除数据
(5)数据库数据的保存
(6)导出签到的相关数据
(二)开发阶段
开发阶段主要是进行概要设计,详细设计,实现,测试。
- 概要设计
主要是对整个系统需要划分的模块进行设计,其中包括每个模块之间关系,模块联系的接口,模块功能的组成等。 - 详细设计
主要是模块中功能的实现的流程进行设计。 - 实现
主要是对详细设计中的功能的流程编写成代码,实现各个功能。 - 测试
主要是对每个功能进行测试,看功能的正确性与稳定性。
(三)运行维护阶段
运行维护阶段主要是将软件工程交付给客户或上线运营,以及维护软件工程的正常工作状态和版本更新。
二、系统开发的准备
(一)选取开发语言
主流的开发语言有很多,比如C/C++,Java,Python。
本系统采用:Python
(二)开发工具
常用的Python开发工具为Python3.8,Pycharm,Anaconda。
本系统采用:Pycharm
(三)Pycharm的下载及安装相应的工具
- 下载
下载网址:https://www.jetbrains.com/pycharm/download/#section=windows - 创建虚拟环境和下载第三方库的方法
①打开Pycharm,点击Configure会出现很多选项,选择Setting
②接下来点击设置的标志,会出现两个选项,选择Add选项
③选择建立新的虚拟环境的位置,也可以不重新选择,然后再路径后面输入一个新的文件的名称
④接下来打开刚建立的虚拟环境,打开的最开始只有pip和setuptool两个第三方库
⑤打开添加第三方库的界面,点击+标志进入
⑥首先输入需要添加的第三方库的名称,搜索完成后,点击Install Package,安装过程时间可能会比较长
注:安装可能不成功,不成功的原因大多数是由于网络的问题。遇到这种情况的时候,多进行几次安装,如果还是安装不成功,可以修改安装源。若还是安装不成功,可以重新安装Pycharm进行解决。(笔者我多次安装不成功,修改安装源仍旧安装不成功,我重新安装Pycharm,就可以安装成功了。我不确定这个是否能够解决你的问题,但我只是分享自己的一些经历) - 需要的第三方库
①opencv-python
opencv是一个基于BSD许可发行的跨平台计算机视觉库。
②pysqlite3
pysqlite3是python自带的数据库。
③pyqt5
pyqt5是一套绑定Qt5的应用程序框架。
三、系统开发
分析:
该系统是一个带界面的应用程序,进行人脸签到并能够记录签到的信息。要有界面就需要工具进行界面开发,选择采用pyqt5designer进行界面设计。
(一)签到界面的设计
1.pyqt5designer的使用方法
①在Pycharm建立好的项目工程中,点击界面下面的terminal,在输入命令的界面中,输入pyqt5designer.exe,然后回车,就会出现qtdesigner的界面
②还可以在该项目的解释器的目录中找到script,打开该目录后,找到pyqt5designer.exe,点击运行它也可以打开。
2. 界面的设计
①创建一个窗体
窗体的类型有很多中类型,这里我们选择MainWindow类型
②窗口设计
菜单栏的设计
主体设计
③运行窗口
由于pycharm无法直接运行ui文件,需要进行文件的转换
ui转换为py文件:pyuic5 ui文件 -o py文件
例:pyuic5 MainWindow1.ui -o MainWindow1.py
通过生成的py文件,发现生成的窗口类并没有继承基础窗口类,缺少基础部件
解决方法:建立一个新的窗口类,让其成为一个完整的窗口类
新建立窗口类代码:
from MainWindow1 import Ui_MainWindow
#导入窗口的基础类
from PyQt5.QtWidgets import QMainWindow,QApplication
import sys
'''
子类,继承Ui_MainWindow与QMainWindow
Ui_MainWindow:
包含是界面的设计,窗口中的窗口部件
QMainWindow:
包含是整个界面窗口,窗口的操作
mywindow:
完整的窗口类
'''
class mywindow(Ui_MainWindow,QMainWindow):
#初始化函数
def __init__(self,parent=None):
super(mywindow,self).__init__()
self.setupUi(self)#创建界面内容
#创建应用程序对象
app=QApplication(sys.argv)
#创建窗口
ui=mywindow()
#显示窗口
ui.show()
#应用执行
app.exec_()
#退出
sys.exit(0)
效果显示:
四、小结
通过第一天的学习,了解到一个软件工程需要经历三个阶段。掌握到该如何新建一个虚拟环境,如何利用qtdesigner进行简单的界面设计,如何将ui文件转换成py文件等。总的来说,收获满满。