一、软件工程的各个阶段
1、可行性分析
可行性分析主要包括技术可行性与经济可行性,前者是论证当前的技术能否实现这个软件的功能,后者是论证收益与成本之间的相对关系,成本不仅包括时间成本,还包括设备、场地与人力成本。可行性分析的输出是可行性分析报告,如果可行性分析报告中认为当前项目不可行,那么应当立即停止。
2、需求分析
我们作为软件的开发方要不断和客户确认需求,并保留相应的证据,避免客户想造一座长江大桥,我们造了一座独木桥。这个阶段的产物是需求分析报告。
3、需求设计
需求设计包括概要设计与详细设计。产物是设计文档。
4、编码过程
编码过程就是编写软件代码。
5、软件测试
软件测试需要交给专门的软件测试人员来进行,不能由开发人员进行。软件测试包括黑盒测试与白盒测试。产物是测试文档。有的公司的开发过程是测试驱动开发(test-driven development),也有的是敏捷开发。
6、系统交付
系统交付指的是将软件系统交付给客户
7、系统维护
二、数据字典
数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目。简而言之,数据字典是描述数据的信息集合,是对系统中使用的所有数据元素的定义的集合。一个典型的数据字典如下图所示:
此处应当有图
数据字典的设计是一个非常重要的环节,这个环节中有一张表设计有问题将导致以后的各个环节都会出现问题。为了提高容错率,可以在进行设计的时候添加3-5个备用字段。另外,删除不要使用delete操作,要使用update操作,所以可以单独设置一个字段表示数据是否被删除。
三、推荐算法
啤酒与尿布的关系是一个典型的利用关联度进行推荐的例子,我们也可以在自己的项目中加入类似的功能。可以复习数据仓库与数据挖掘。
四、用户、角色与权限之间的关系
在后台管理系统中,一位用户对应多个角色,比如一个人可以同时兼任总经理与董事长,同时一个角色也可能对应多个用户,比如普通员工这个角色就对应多个用户,所以用户与角色之间的关系是多对多的关系,在使用数据库表进行表示的时候就只能引入第三张表。角色与权限之间的关系也是这样,一个角色可能由多个权限,一个权限可能对应多个角色。
rbac:基于角色的访问控制Role-Based Access Control
五、创建用户、给用户授权、刷新权限
在连接数据库进行操作的过程中不要使用root用户进行操作,root用户是最高权限,对数据库具有完全的访问控制,使用root用户进行操作对数据库本身具有严重的安全漏洞,所以我们可以使用root用户创建一个用户,然后赋予相应的权限,最后刷新,这名用户就只能在赋予的权限内对数据库进行操作了。
create user 'nz1903'@'localhost' identified by "123456"
grant all on . to 'nz1903'@'localhost'
all指的是insert delete update select等操作,.指的是所有数据库的所有表
flush privileges
刷新权限
网友评论