软件工程小记——详细设计

本文深入探讨了软件详细设计阶段的关键任务与过程,包括数据结构、算法选择、测试用例设计及文档编写等内容。介绍了详细设计的主要工具如程序流程图、盒图、PAD图等,并讨论了人机界面设计原则及程序复杂度度量方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第五章 
详细设计:考虑系统怎样实现的问题.

1.详细设计的任务:
    详细设计的任务,是对概要设计阶段划分出的每个模块进行明确的算法描述,
    即根据概要设计提供的说明文档,确定每一个模块的数据结构和具体算法,并选用
    和合适的描述工具,将其清晰准确地表达出来.
2.详细设计的一般过程:
    a.对概要设计阶段所确定的抽象性的数据类型进行确切的定义,确定软件各个模块采用的算法
        和内部数据的组织形式,确定对系统内部和外部模块的接口细节。
    b.确定每个模块的算法那。
    c.为每个模块设计一组测试用例。
    d.编写详细设计说明书。
    
3.详细设计的内容
    a.数据结构设计;
    b.数据存储设计:
    c.模块处理过程设计:
    d.用户界面设计;
    e.其他设计;
    
4.详细设计的工具
    a.程序流程图
        程序流程图也叫程序框图;
        程序流程图包含三种基本元素:
            加工处理步骤、逻辑条件、控制流方向
    b.盒图
        N-S图称为盒图;
    c.PAD图
    d.判定表
        当需要描述的加工逻辑含有多重的嵌套组合条件时,可以用判定表来描述;
        判定表由四部分组成:条件定义、条件的值、动作定义、特定条件下相应的动作的值;
    e.判定树
    f.伪代码
        PDL,伪代码又称为过程设计语言;
    
5.人机界面设计
    人机界面设计需要考虑的问题:
        a.系统响应时间:响应时间不宜过程或过短;
        b.用户帮助设施
        c.出错信息处理
        d.命令交互
        
6.用户界面设计的基本原则
    可靠性、简单性、易学习性和易使用性、立即反馈性。
7.用户界面设计指南
    一般交互、信息显示、数据输入。
    
8.程序复杂性定量度量方法
    McCade方法:
        McCade方法:也成为程序流图。
        McCade方法是根据程序流程图的结构复杂度对软件复杂度和质量进行度量。
        McCade方法是把程序看出是有一个入口和一个出口的有向图,图中每个节点对应一个语句或一个顺序流程
        的程序代码块、弧对应于程序中的转移。
    Halstead方法:
        Halstead方法也成为文本复杂性度量,是根据程序中运算符和操作数的总数来度量程序的复杂程度。
 

接入第三方登录是让用户方便快捷地使用已有账号登录你的网站或应用程序,提高用户体验的一种方式。本文将介绍如何使用 PHP 实现微信公众号第三方登录。 1. 获取微信授权 首先,需要获取微信用户的授权。具体步骤如下: 1)引导用户打开微信授权页面: ```php $appid = 'your_appid'; $redirect_uri = urlencode('http://yourdomain.com/callback.php'); $scope = 'snsapi_userinfo'; $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=$scope&state=STATE#wechat_redirect"; header("Location: $url"); ``` 其中,`$appid` 是你的微信公众号的 AppID,`$redirect_uri` 是授权后回调的 URL,`$scope` 是授权作用域,可以是 `snsapi_base` 或 `snsapi_userinfo`,`$state` 是自定义参数,用于防止 CSRF 攻击。 2)获取授权码: 用户同意授权后,会重定向到 `$redirect_uri` 指定的 URL,带上授权码 `code` 和 `state` 参数。 ```php $code = $_GET['code']; $state = $_GET['state']; ``` 3)获取 access_token 和 openid: 使用授权码 `code` 获取 `access_token` 和 `openid`。 ```php $access_token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code"; $response = file_get_contents($access_token_url); $result = json_decode($response, true); $access_token = $result['access_token']; $openid = $result['openid']; ``` 其中,`$secret` 是你的微信公众号的 AppSecret。 2. 获取用户信息 获取到 `access_token` 和 `openid` 后,可以使用以下代码获取用户信息: ```php $userinfo_url = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN"; $response = file_get_contents($userinfo_url); $userinfo = json_decode($response, true); ``` 其中,`$userinfo` 包含用户的昵称、头像等信息。 3. 将用户信息保存到数据库 最后,将获取到的用户信息保存到数据库中,以便下次使用时快速登录。 ```php // 连接数据库 $con = mysqli_connect('localhost', 'username', 'password', 'database'); mysqli_set_charset($con, "utf8"); // 查询用户是否已存在 $sql = "SELECT * FROM users WHERE openid='$openid'"; $result = mysqli_query($con, $sql); if (mysqli_num_rows($result) == 0) { // 用户不存在,插入新用户信息 $nickname = mysqli_real_escape_string($con, $userinfo['nickname']); $headimgurl = mysqli_real_escape_string($con, $userinfo['headimgurl']); $sql = "INSERT INTO users (openid, nickname, headimgurl) VALUES ('$openid', '$nickname', '$headimgurl')"; mysqli_query($con, $sql); } // 保存用户登录状态 $_SESSION['openid'] = $openid; ``` 以上就是使用 PHP 实现微信公众号第三方登录的步骤。需要注意的是,为了确保安全性,应该对用户输入的数据进行过滤和验证,防止 SQL 注入和 XSS 攻击等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值