导图社区 软件技术基础第四章
详细齐全的软件技术基础课程的笔记,欢迎大家交流
本思维导图是根据南京理工大学自动化学院教授课程 机器人控制技术 的相关笔记。其中机器人的执行部分和机器人的规划尚不完善,请多多指正。
这是有关《自主移动机器人导论》的课程思维导图,是自动化专业的必修课程之一,其中执行机构的部分尚不完善,还请多多指正。
高等数学第七章向量代数与空间解析几何笔记,主要包含向量代数和空间平面与空间直线方程两部分内容。
社区模板帮助中心,点此进入>>
软件技术基础第三章
自动化专业
机器人控制技术
高等数学第二章导数与微分
中国近代史
软件工程介绍
软件危机
原因
项目未被很好的理解,计划不周,最终导致进度拖延
没有充分的文档资料
软件可靠性缺少度量标准
软件难以维护
6.1
软件工程
以系统的,规范的,定量的方法用于软件的开发,运营和维护,以及这些方法的研究
软件生命周期
根据某一软件从被提出并着手开始实现,直到软件完成其使命为止划分为的一些阶段的全过程
三个阶段
软件定义期
问题定义
确定问题的性质,工程目标以及规模
力求软件开发人员,用户以及使用部门负责人对问题的性质,工程目标与规模取得完全一致的看法
可行性研究
目的是进一步研究问题定义阶段所定义的问题是否可解
通过复查系统的目标和规模,并研究现在正在使用的系统,从而导出试探性的解
从各方面分析物理系统的可行性,推荐一个可行方案,供有关部门审批
需求分析
确定对系统的综合要求:功能要求,性能要求,运行要求
对系统的数据要求进行分析:数据元素的分类与规范化,描绘实体之间的关系图
推导出系统的详细模型系统
修正开发计划,并建立模型系统
软件开发期
系统设计
任务是划分出构成系统的各物理元素,以及设计出软件的结构
详细设计
任务是对系统做出精确的描述
目标是要保证程序易读,易理解,易测试,易修改和易维护
结果是提供详细的编码规格说明
编码
将前两项的结果翻译成程序设计语言书写的程序
选择恰当的程序设计语言
使程序内部有良好的文档资料,规范的数据格式说明,简单清晰的语句结构和合理的输入输出格式
充分利用已有的软件工具来帮助编码,以提高编码的效率和减少程序中的错误
测试
保证软件可靠性
尽量发现程序中的错误
软件维护期
运行维护
改正性维护
适应性维护
完善性维护
预防性维护
6.2结构化分析与设计方法
将一个复杂问题的求解分阶段进行
体系结构
结构化分析SA
建立在自顶而下,逐步求精的基础上
要点
分解和抽象
文档规范化
面向用户,尽量让用户参与各个阶段
逻辑设计和物理设计分开进行
结构化设计SD
将SA逻辑模型转换为物理方案,将大型系统分解成若干个相对独立,功能单一的模块
结构化程序设计SP
模块独立性评价
标准
模块之间的耦合
反映模块的独立性
影响因素
模块间的连接形式
模块接口的复杂性
从弱到强划分为
数据耦合
同构耦合
控制耦合
公用耦合
内容耦合
模块内部的关系是否紧密(内聚)
从高到低分为
功能内聚
序列内聚
通信内聚
过程内聚
时间内聚
逻辑内聚
偶然内聚
6.3软件测试概述
目的:发现各种差错
测试用例
测试用的数据就是测试用例
基本原则
执行程序前应该对期望的结果有明确的描述,测试后应对输出进行仔细的检查
不仅要选择合理的输入数据作为测试用例,还应选用不合理的输入数据作为测试用例
除了检查程序是否做了应做的工作之外,还应检查程序是否做了不应做的事
应该长期保留所有的测试用例,直到该系统被废弃不用为止
测试方法
白箱法(按程序的内部逻辑结构进行测试)
语句覆盖
每个语句至少执行一次
分支覆盖
对判别语句的每个分支至少经过一次
条件覆盖
使判别中每个条件可能的值至少出现一次,及条件表达式中各个条件取两个不同的值
组合条件覆盖
使每个判定中的条件的各种组合都出现一次
黑箱法(不考虑程序内部特征和结构根据程序功能导出测试用例)
等价分类法
把可能的输入数据分成若干等价类,实际测试时从每个等价类中只取一组数据作为测试用例
边值分析法
在边界处,程序最容易出问题
因果图法
错误推导法
调试技术
输出存储器内容
加打印语句
用调试工具
6.4软件开发新技术
原型法
确定用户的基本要求
开发初始原型
实现并运行原型
修改并完善原型
瀑布模型
面向对象技术
可重用性
可维护性
表示方法的一致性