软件工程-第3章 软件过程结构
- 格式:pptx
- 大小:1.04 MB
- 文档页数:30


第三章 软件工程基础
经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是软件生命周期、软件设计的基本原理,软件测试的目的、软件调试的基本概念,读者应对此部分进行重点学习。
详细重点学习知识点:
1.软件的概念、软件生命周期的概念及各阶段所包含的活动
2.概要设计与详细设计的概念、模块独立性及其度量的标准、详细设计常用的工具
3.软件测试的目的、软件测试的4个步骤、
4.软件调试的任务
3.1软件工程基本概念
考点1 软件定义与软件特点
考试链接:
考点1在笔试考试中,是一个经常考查的内容,考核的几率为70%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件的定义,特点及其分类。
软件指的是计算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合。程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令序列。数据是使程序能正常操纵信息的数据结构。文档是与程序的开发、维护和使用有关的图文资料。可见,软件由两部分组成:
(1)机器可执行的程序和数据;
(2)机器不可执行的,与软件开发、运行、维护、使用等有关的文档。
软件的特点:
(1)软件是逻辑实体,而不是物理实体,具有抽象性;
(2)没有明显的制作过程,可进行大量的复制;
(3)使用期间不存在磨损、老化问题;
(4)软件的开发、运行对计算机系统具有依赖性;
(5)软件复杂性高,成本昂贵;
(6)软件开发涉及诸多社会因素。
根据应用目标的不同,软件可分应用软件、系统软件和支撑软件(或工具软件)。
小提示:应用软件是为解决特定领域的应用而开发的软件;系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件;支撑软件是介于两者之间,协助用户开发软件的工具性软件。
考点2 软件工程过程与软件生命周期
考试链接:
考点2在笔试考试中,在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件生命周期 的定义,主要活动阶段及其任务。
第3章单片机软件工程基础
对于初学者来说,在掌握了单片机内部资源的使用方法之后,接下来的问题是:如何将
众多的功能集成在一起构成一个完整的系统?如何让多个功能〔任务)同时执行?如何让外
部的事件都能立即得到处理?如何与最终用户进行友好的人机交互?如何保持程序具有扩
展性,能够很容易地增加新功能?
本章从软件结构,工程方法的角度出发,对上述问题进行探讨。并为读者详解两种常用
的程序架构,以及在相应架构下的编程方法。还介绍“状态机建模”这一强大的并行多任务
建模手段,以及“状态机建模”在程序设计中的应用。
实际上,各类单片机系统的软件在硬件隔离层之上并无本质区别,各种功能都可以通过
软件工程手段实现,各种程序结构框架也是通用的。所以,掌握本章的内容,对于各种嵌入
式系统开发与设计都会有帮助。
3.1前后台程序结构
前后台程序结构是最常用的程序结构之一,简单地说,前后台程序由主循环加中断构成,
主循环程序称为“后台程序”或“背景程序”,各个中断程序称为“前合程序”,依靠中断内
的前台程序来实现事件响应与信息收集。后台程序中多个处理任务顺序依次执行,从宏观上
看,这些任务将是同时执行的。
3.1.1任务
首先明确“任务”的概念。任务(Task)是指完成某一单一功能的程序。例如温度报警装
置,根据功能划分为:获取温度、显示温度、门限比较并驱动报警装置、用户设置报警值、
数据通信5个任务。
从宏观上看这5个任务必须是同时进行的,任何时候一旦超温必须报警;任何时候按设
置按钮都能进入菜单设置温度上下限;任何时候串口如果收到数据请求帧,都必须立即回复
温度数据等。这种多个任务同时执行,且各种事件对响应时间要求严格的软件系统被称为“实
时多任务系统”。大多数单片机系统都属于实时多任务系统。而CPU本身是一个串行执行部
件,它只能依次执行代码,不能同时执行多段代码,需要借助一定的软件手段来实现多任务
的同时执行。
目前,有许多成熟的软件结构与方法能够实现实时多任务系统,如小巧灵活的前后台程
3.1 软件工程基本概念
1. 软件定义与软件特点
软件指的是计算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合。
程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令序列。
数据是使程序能正常操纵信息的数据结构。文档是与程序的开发、维护和使用有关的图文资料。
可见,软件由两部分组成:
机器可执行的程序和数据;机器不可执行的,与软件开发、运行、维护、使用等有关的文档。
根据应用目标的不同,软件可分应用软件、系统软件和支撑软件(或工具软件),见表3-1。表3-1 软件的分类名称描述应用软件为解决特定领域的应用而开发的软件。系统软件为解决管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。支撑软件支撑软件是介于两者之间,协助用户开发软件的一工具性软件。
2.软件工程为了摆脱软件危机,提出了软件工程的概念。软件工程学是研究软件开发和维护的普遍原理与技术的一门工程学科。所谓软件工程是指采用工程的概念、原理、技术和方法指导软件的开发与维护。软件工程学的主要研究对象包括软件开发与维护的技术、方法、工具和管理等方面。软件工程包括3个要素:方法、工具和过程,见表3-2。表3-2 软件工程三要素名称描述方法方法是完成软件工程项目的技术手段。工具支撑软件的开发、管理、文档生成。过程过程支持软件开发的各个环节的控制、管理。
3.2 软件生命周期软件生命周期概念软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。软件生命周期分为3个时期共8个阶段,软件定义期:包括问题定义、可行性研究和需求分析3个阶段;
软件开发期:包括概要设计、详细设计、实现和测试4个阶段;
运行维护期:即运行维护阶段。
软件生命周期各个阶段的活动可以有重复,执行时也可以有迭代,如图3-1所示。
图3-1 软件生命周期
第3章《结构化分析》习题解答
习题1
银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率、密码(可选)等信息,并印出存款单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。
请用数据流图描绘本系统的功能,并用实体-关系图描绘系统中的数据对象。
解答:
(1)数据流图:
基本模型:
第一级模型:
第二级模型(最终结果——完整的DFD图):
储蓄
系统 存款单
取款单 清单 储户 储户
储蓄
系统 1 打印 清单 系统 2 D1 储户信息库
存款单
取款单 储户 清单 清单 储户
密码 信息
接收
事务 1.1
打印
清单
系统 2
存款
业务 1.2
取款
业务 1.3
核对
系统 1.3.1 存款 清单
取款 清单 存款 信息
D1 储户信息库 存款单
取款单
储户 清单
取款 信息 储户
姓名 帐号
取款单 核对 1 金额
取款清单 1
存款单 存款 存款清单 1 1 姓名 住址
身份证号 存款类型 存款日期
金额 到期日期 电话
利率 储户 取款单 姓名 住址
电话 身份证号 存款单 填写 1
n n
填写 1
储户 姓名 住址
电话 身份证号 填写 1
n n
填写 1
存款
存款清单 1 1 姓名 住址
身份证号 存款类型 存款日期
金额 到期日期 电话
利率 存款单
姓名 帐号 取款单
核对 1
金额 取款清单 1 (2)实体关系图ER:
E-R图1:
E-R图2:
E-R图3:
总E-R图:
旅客 订票 旅行社 n m 姓名 性别 身份证号
目的地 工作单位
旅行时间
服务 合约 航空公司 n n
1 1 习题2
为方便旅客,某航空公司拟开发一个机票预定系统。旅行社把预定机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统校对无误即印出机票给旅客。