($sid) { session_delete(array('sid' => $sid)); session_data_delete(array('sid' => $sid)); return TRUE; } function sess_gc($maxlifetime) { global $time; $expiry = $time - $maxlifetime; $arrlist = session_find(array('last_date' => array('<' => $expiry)), array(), 1, 10000, '', array('sid', 'bigdata', 'last_date')); if (!$arrlist) return TRUE; $expiry = $time - 21600; // 超6小时未提交丢弃上传图片和附件 $sidarr = array(); foreach ($arrlist as $val) { if ($val['last_date'] > $expiry && $val['bigdata']) continue; $sidarr[] = $val['sid']; } if (empty($sidarr)) return TRUE; session_delete(array('sid' => $sidarr)); session_data_delete(array('sid' => $sidarr)); return TRUE; } function sess_start() { global $conf, $sid, $g_session; ini_set('session.name', $conf['cookie_pre'] . 'sid'); ini_set('session.use_cookies', TRUE); ini_set('session.use_only_cookies', TRUE); ini_set('session.cookie_domain', $conf['cookie_domain']); // 为空则表示当前目录和子目录 ini_set('session.cookie_path', $conf['cookie_path']); // 打开后只有通过 https 才有效 ini_set('session.cookie_secure', FALSE); ini_set('session.cookie_lifetime', 8640000); // 打开后 js 获取不到 HTTP 设置的 cookie, 有效防止 XSS,对于安全很重要,除非有 BUG,否则不要关闭。 ini_set('session.cookie_httponly', TRUE); // 活动时间 ini_set('session.gc_maxlifetime', $conf['online_hold_time']); // 垃圾回收概率 = gc_probability/gc_divisor ini_set('session.gc_probability', 1); // 垃圾回收时间 5 秒,在线人数 * 10 / 每1000个请求回收一次垃圾 ini_set('session.gc_divisor', 1000); session_set_save_handler('sess_open', 'sess_close', 'sess_read', 'sess_write', 'sess_destroy', 'sess_gc'); // register_shutdown_function 会丢失当前目录,需要 chdir(APP_PATH) $conf['url_rewrite_on'] > 1 and function_exists('chdir') and chdir(APP_PATH); // 这个必须有,否则 ZEND 会提前释放 $db 资源 register_shutdown_function('session_write_close'); session_start(); $sid = session_id(); return $sid; } // 刷新页面清理附件缓存 废弃 function sess_clear_attach() { global $sid, $time; $arr = session_read($sid); if (!$arr || 0 == $arr['bigdata']) return TRUE; session_update($sid, array('bigdata' => 0, 'last_date' => $time)); session_data_delete(array('sid' => $sid)); return TRUE; } function online_count() { return session_count(); } function online_list_cache() { static $cache = array(); $key = 'online_list'; if (isset($cache[$key])) return $cache[$key]; $cache[$key] = cache_get($key); if (NULL === $cache[$key]) { $cache[$key] = session_find(array('uid' => array('>' => 0)), array('last_date' => -1), 1, 1000); foreach ($cache[$key] as &$online) { $user = user_read_cache($online['uid']); $online['username'] = $user['username']; $online['gid'] = $user['gid']; $online['ip_fmt'] = safe_long2ip($online['ip']); $online['last_date_fmt'] = date('Y-n-j H:i', $online['last_date']); } cache_set('online_list', $cache[$key], 300); } return $cache[$key]; } function online_user_list_cache() { static $cache = array(); $key = 'online_user_list'; if (isset($cache[$key])) return $cache[$key]; $cache[$key] = cache_get($key); if (NULL === $cache[$key]) { $cache[$key] = session_find(array('uid' => array('>' => 0)), array(), 1, 1000, 'uid', array('uid')); cache_set('online_user_list', $cache[$key], 300); } return $cache[$key]; } ?>软件工程所需文档|江阴雨辰互联

软件工程所需文档

软件工程所需文档


2024年4月17日发(作者:)

标准的软件开发过程

软件开发的标准过程包括六个阶段,而六个阶段需要编写的各类文件达14种之多,

在每个阶段需要编写哪些文件,以及这些文件的主要内容见下:

1.可行性与计划研究阶段

可行性研究报告:在可行性研究与计划阶段内,要确定该软件的开发目标和总的要求,

要进行可行性分析、投资一收益分析、制订开发计划,并完成应编制的文件。

项目开发计划:编制项目开发计划的目的是用文件的形式,把对于在开发过程中各项

工作的负责人员、开发进度、 所需经费预算、所需软、硬件条件等问题作出的安排记载下

来,以便根据本计划开展和检查本项目的开 发工作。

2.需求分析阶段

软件需求说明书:软件需求说明书的编制是为了使用户和软件开发者双方对该软件的

初始规定有一个共同的理解, 使之成为整个开发工作的基础。内容包括对功能的规定对性

能的规定等。

数据要求说明书:数据要求说明书的编制目的是为了向整个开发时期提供关于被处理

数据的描述和数据采集要求的技术信息。

初步的用户手册:用户手册的编制是要使用非专门术语的语言,充分地描述该软件系

统所具有的功能及基本的使用方法。使用户(或潜在用户)通过本手册能够了解该软件的

用途,并且能够确定在什么情况下,如何使用它。

3.设计阶段

概要设计说明书:概要设计说明书又可称系统设计说明书,这里所说的系统是指程序

系统。编制的目的是说明对程序 系统的设计考虑,包括程序系统的基本处理流程、程序系

统的组织结构、模块划分、功能分配、接口设计。 运行设计、数据结构设计和出错处理设

计等,为程序的详细设计提供基础。

详细设计说明书:详细设计说明书又可称程序设计说明书。编制目的是说明一个软件

系统各个层次中的每一个程序 (每个模块或子程序)的设计考虑,如果一个软件系统比较

简单,层次很少,本文件可以不单独编写,有关 内容合并入概要设计说明书。

数据库设计说明书:数据库设计说明书的编制目的是对于设计中的数据库的所有标识、

逻辑结构和物理结构作出具体的设计规定。

测试计划初稿:这里所说的测试,主要是指整个程序系统的组装测试和确认测试。本

文件的编制是为了提供一个对该软件的测试计划,包括对每项测试活动的内容、进度安排、

设计考虑、测试数据的整理方法及评价准则。

4.实现阶段

模块开发卷宗(开始编写):模块开发卷宗是在模块开发过程中逐步编写出来的,每完

成一个模块或一组密切相关的模块的复审时编写一份,应该把所有的模块开发卷宗汇集在

一起。编写的目的是记录和汇总低层次开发的进度和结果,以便于对整个模块开发工作的

管理和复审,并为将来的维护提供非常有用的技术信息。

用户手册完工

操作手册:操作手册的编制是为了向操作人员提供该软件每一个运行的具体过程和有

关知识,包括操作方法的细节。

测试计划终稿:

5.测试阶段

模块开发卷宗(此阶段内必须完成)

测试分析报告:测试分析报告的编写是为了把组装测试和确认测试的结果、发现及分

析写成文件加以记载。

项目开发总结报告:项目开发总结报告的编制是为了总结本项目开发工作的经验,说

明实际取得的开发结果以及对整个开发工作的各个方面的评价。

6.运行与维护阶段

开发进度月报的编制目的是及时向有关管理部门汇报项目开发的进展和情况,以便及

时发现和处理开发过程中出现的问题。一般地,开发进度月报是以项目组为单位每月编写

的。如果被开发的软件系统规模比较大,整个工程项目被划分给若干个分项目组承担,开

发进度月报将以分项目组为单位按月编写。

对于一项软件而言,有些文件的编写工作可能要在若干个阶段中延续进行。

鉴于软件开发是具有创造性的脑力劳动,也鉴于不同软件在规模上和复杂程度上差别

极大,本指南认为在文件编制工作中应允许一定的灵活性,并不是14种文件每种都必须

编写。

文件编制的衡量因素

◆在因素总和较低的情况下,项目开发总结报告的内容应包括:程序的主要功能、基本

流程、测试结果和使用说明。

◆测试分析报告应该写,但不必很正规。

◆数据要求说明和数据库设计说明是否需要编写应根据所开发软件的实际需要来决定。


发布者:admin,转转请注明出处:http://www.yc00.com/web/1713326460a2226774.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信