第四章 软件设计及应用

合集下载

软件设计概要讲义PPT(83张)

软件设计概要讲义PPT(83张)
自顶向下,逐步细化 软件结构(搭出一个大框架) 程序结构 结构图 模块化(模块化思想,把软件分成多个模块) 抽象(通过抽象完成模块之间对外的一个黑盒装置) 信息屏蔽和局部化 模块独立
三、软件设计的概念和原理
自顶向下,逐步细化将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个的体系结构。 软件结构 ①软件结构包括两部分。程序的模块结构和数据的结构。 ②软件的体系结构通过一个划分过程来完成。该划分过程从需求分析确立的目标系统的模型出发,对整个问题进行分割,使其每个部分用一个或几个软件成份加以解决,整个问题就解决了。
项目经理
负责分配设计任务,追踪设计阶段进度,在项目组内协调设计过程中所需资源,参与设计文档的同行评审
系统分析员
完成相关的设计任务,编写设计文档,修改设计评审中发现的问题
项目组开发人员代表
参与设计文档的同行评审
其他项目经理
参与设计文档的同行评审
其他项目系统分析员
参与设计文档的同行评审
质量保证员
检查设计过程及设计阶段产生的文档,跟踪发现的问题的解决情况
一、软件设计的目标和任务
1、目标 系统结构设计定义软件系统各主要成份之间的关系。 过程设计。把结构成份转换成软件的过程性描述。
开发阶段的信息流
把需求翻译成文档
2、软件设计的任务 概要设计(系统设计),将软件需求转化为数据结构和软件的系统结构。概要设计由技术总监,部门经理和项目经理来做的,有可能会加一两个核心程序员。
二维画图又分为以下CASE,案例,任务的集合
(2)数据抽象 在不同层次上描述数据对象的细节,定义与该数据对象相关的操作。 例如,在CAD软件中,定义一个叫做drawing绘图的数据对象。可将drawing规定为一个抽象数据类型,定义它的内部细节为:

软件工程综合复习题连答案

软件工程综合复习题连答案

《软件工程》综合复习资料第一章软件工程概述一、选择题1、瀑布模型本质上是一种()。

A、线性迭代模型B、顺序迭代模型C、线性顺序模型D、及早见产品模型2、计算机辅助软件工程,简称()。

A、SAB、SDC、SCD、CASE3、以下判断正确的是()。

A、所谓软件开发就是编写程序。

B、利用软件工程的思想,已成功的解决了软件危机。

C、完成软件测试工作以后,为了缩短程序的长度应删除程序中的注释。

D、一般来说,程序中存在错误的概率与在该段程序中已发现的错误数成正比。

4、_____是以提高软件质量为目的的技术活动。

A.技术创新B.测试C.技术创造D.技术评审5、瀑布模型的存在问题是()。

A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求6、软件生命周期中所花费用最多的阶段是()。

A.详细设计B.软件编码C.软件测试D.软件维护7、计算机系统就是()A.主机,显示器,硬盘,软驱,打印机等。

B.CPU,存储器,控制器,I/O接口及设备。

C.计算机硬件系统和软件系统。

D.计算机及其应用系统。

8、产生软件危机的原因主要与两个方面的问题有关:A.软件在计算机中很难识别,存在磁盘中也看不到。

B.软件设计对人的智商要求很高,也要求很高的资金投入。

C.软件产品本身的特点与其它工业产品不一样,而且在软件的开发和维护过程中用的方法不正确。

D.软件很难理解,硬件也很复杂。

9、软件开发瀑布模型中的软件定义时期各个阶段依次是()A.可行性研究,问题定义,需求分析。

B.问题定义,可行性研究,需求分析。

C.可行性研究,需求分析,问题定义。

D.以上顺序都不对。

10、下列选项中()是软件开发中存在不正确的观念、方法。

A.重编程、轻需求B.重开发,轻维护C.重技术,轻管理D.以上三条都是二、填空题1、软件工程的三个基本要素包括()、()和()。

2、一般软件应该有三部分组成:()、()和()。

3、按软件的功能可将软件分成()、()和()等三类。

软件工程导论第六版课后习题答案完整版

软件工程导论第六版课后习题答案完整版

软件工程导论第六版课后习题答案完整版首先,感谢您对软件工程导论课后习题答案的需求。

以下是软件工程导论第六版课后习题的完整答案。

第一章:软件工程概述1.1 问题1. 什么是软件工程?答:软件工程是一种应用工程原理、方法和工具来开发和维护高质量软件的学科。

1.2 问题1. 什么是软件?答:软件是一系列按照特定顺序组织的计算机数据和指令。

第二章:软件过程模型2.1 问题1. 软件过程模型有哪些类型?答:常见的软件过程模型包括瀑布模型、迭代模型、螺旋模型和敏捷开发模型等。

2.2 问题1. 瀑布模型的特点是什么?答:瀑布模型是一种线性顺序模型,以阶段划分为基础,每个阶段的任务在进入下一个阶段前必须完成。

第三章:需求分析与规格说明3.1 问题1. 软件需求描述包括哪些方面的内容?答:软件需求描述需要包括功能性需求、非功能性需求、用户需求和系统需求等。

3.2 问题1. 什么是需求跟踪?答:需求跟踪是指在软件开发过程中,通过建立需求和软件项目中其他相关工件之间的关联,确保需求的准确实现和变更的有效管理。

第四章:软件设计4.1 问题1. 软件设计的目标是什么?答:软件设计的目标是通过确定软件的整体结构和组成部分,确保软件满足需求并具有良好的可维护性和可重用性。

第五章:软件测试与维护5.1 问题1. 什么是软件测试?答:软件测试是一种评估和改进软件质量的过程,目的是发现错误并提高软件的可靠性和可用性。

5.2 问题1. 什么是软件维护?答:软件维护是指在软件交付后的整个生命周期中对软件进行修改和改进,以满足用户需求和修复错误。

第六章:软件配置管理6.1 问题1. 软件配置管理的目标是什么?答:软件配置管理的目标是确保软件在开发和维护过程中的可控性和可追踪性,以及保持软件配置的稳定性和一致性。

6.2 问题1. 软件版本控制是什么?答:软件版本控制是指对软件的不同版本进行管理,包括版本的创建、检出、合并和更新等操作。

至此,我们完成了软件工程导论第六版课后习题的完整答案。

软件工程-总体设计

软件工程-总体设计

设 构约束。

(2)子模式设计
子模式是用户使用的数据视图。
过 (3)完整性(Integrality)和安全性(Security)设计
程 (4)优化(Optimize)
主要目的是改进模式和子模式以优化数据的存取。
前一页


制定测试计划

在软件开发的早期阶段考虑测试
设 计
(Testing)问题,能促使软件设计人员 在设计时注意提高软件的可测试性 。
程 设计过程的下一个重要阶段——结构设计。
前一页
功能分解

体 为了最终实现目标系统,必须设计出组成 这个系统的所有程序和文件(或数据库)。对
的 程序(特别是复杂的大型程序)的设计,通常
设 分为两个阶段完成:

结构设计(Structure Design) :是总体设
计阶段的任务,确定程序由那些模块组
模块彼此间互相依赖(连接)的紧密程度。
前一页
耦合度
耦合度可以分为七级:
软件设计时应尽量使用数据 藕合,减少控制藕合,限制 外部环境藕合和公共数据藕 合,杜绝内容藕合。
非直接藕合 低
数据藕合
控制藕合

特征藕合
合 度
外部藕合
公共藕合 内容藕合 高
数据耦合 (Data Coupling):如果两
个模块彼此间通过参数交换信息, 而且交换的信息仅仅是数据,那么 这种耦合称为数据耦合。
设 计
设函数C(x)定义问题x的复杂程度, 函数E(x)确定解决问题x需要的工作量

(时间),对于两个问题p1和p2,如果
概 念
C(p1)> C(p2)

E(p1)> E(p2)

软件工程第4章 软件设计

软件工程第4章  软件设计

5. 设计软件结构 通常程序中的一个模块完成一个适当的子功能。应 该把模块组织成良好的层次系统,顶层模块调用它 的下层模块以实现程序的完整功能,每个下层模块 再调用更下层的模块,从而完成程序的一个子功能, 最下层的模块完成最具体的功能。
6. 设计数据库 对于需要使用数据库的那些应用系统,软件工程师 应该在需求分析阶段所确定的系统数据需求的基础 上,进一步设计数据库。
高内聚也有两类:如果一个模块内的处理元素和同 一个功能密切相关,而且这些处理必须顺序执行 (通常一个处理元素的输出数据作为下一个处理元 素的输入数据),则称为顺序内聚。根据数据流图 划分模块时,通常得到顺序内聚的模块,这种模块 彼此间的连接往往比较简单。如果模块内所有处理 元素属于一个整体,完成一个单一的功能,则称为 功能内聚。功能内聚是最高程度的内聚。
(2) 用户手册根据总体设计阶段的结果,修改更正 在需求分析阶段产生的初步的用户手册。
(3) 测试计划包括测试策略,测试方案,预期的测 试结果,测试进度计划等等。 (4) 详细的实现计划 (5) 数据库设计结果
9. 审查和复审 最后应该对总体设计的结果进行严格的技术审查, 在技术审查通过之后再由使用部门的负责人从管理 角度进行复审。
为什么模块的独立性很重要呢?主要有两条理由: 第一,有效的模块化(即具有独立的模块)的软件比 较容易开发出来。这是由于能够分割功能而且接口 可以简化,便于多人分工合作开发同一个软件。
第二,独立的模块比较容易测试和维护。这是因为 相对说来,修改设计和程序需要的工作量比较小, 错误传播范围小,需要扩充功能时能够“插入”模块。
(2)详细设计。详细设计阶段的根本目标是确定 应该怎样具体地实现所要求的系统,也就是说,经 过这个阶段的设计工作,应该得出对目标系统的精 确描述,从而在编码阶段可以把这个描述直接翻译 成用某种程序设计语言书写的程序。 详细设计阶段的任务还不是具体地编写程序,而是 要设计出程序的“蓝图”,结果基本上决定了最终 的程序代码的质量。

软件工程课程目录

软件工程课程目录

软件工程课程目录第一章:导论
1.1 软件工程概述
1.2 软件工程的定义和特点
1.3 软件工程的发展历程
第二章:软件开发过程模型
2.1 瀑布模型
2.2 增量模型
2.3 螺旋模型
2.4 敏捷开发模型
2.5 DevOps模型
第三章:需求工程
3.1 需求获取与分析
3.2 需求规格说明
3.3 需求验证与确认
3.4 变更管理
第四章:软件设计与实现
4.1 结构化设计
4.2 面向对象设计
4.3 软件架构设计
4.4 系统建模
4.5 设计原则和模式
第五章:软件测试与维护5.1 测试基础知识
5.2 测试设计技术
5.3 测试用例编写
5.4 软件维护流程及策略5.5 缺陷管理
第六章:软件项目管理6.1 项目启动与规划
6.2 项目进度管理
6.3 资源管理
6.4 风险管理
6.5 团队协作与沟通
第七章:软件质量保证和评估
7.1 质量保证概述
7.2 质量标准与度量
7.3 代码审查
7.4 归纳测试
7.5 质量评估与改进
第八章:软件工程伦理与职业道德
8.1 软件工程伦理概述
8.2 软件专业人员责任
8.3 知识产权保护
8.4 软件工程师的职业道德
结语:
软件工程课程目录涵盖了软件工程学科的基本知识和方法,帮助学生全面了解软件开发的过程和要素。

通过学习本课程,学生可以系统学习软件工程的理论和实践知识,培养良好的软件开发习惯和职业道德意识,为将来的软件开发工作奠定坚实的基础。

软件设计与体系结构 第四章 面向对象的软件设计方法

软件设计与体系结构 第四章 面向对象的软件设计方法

用户界面设计
用户界面是对于用户的直接表现,直接影响到用
户对软件易用性、友好性的感觉。用户界面包含 两方面内容:
首先要完整地包括用户在使用软件过程中所需的各种 元素,例如窗口、菜单、按钮、输入文本框、选择列 表、提示信息等,缺乏这些元素中的某些将会导致软 件功能无法被用户正常完成; 其次要求具有良好的外观和布局,例如背景颜色、按 钮等元素的位置、选择列表中条目的顺序等,这些因 素的不足可能不会影响软件功能的正确使用,但会给 用户带来不便、迷惑甚至反感。
ATM系统在提供以上服务的过程中,必须满足以下要求 一个顾客可以在最终确认前放弃一项交易 ATM在执行交易过程中将与银行系统进行通信,对是否 允许交易进行验证 ATM为每次成功的交易提供一个打印回执
ATM需要维护一个内部日志,对每次交易进行记录
用例的分析与设计
确定用例—确定场景
从业务需求出发获取参与者(Actor)和场景,对场景进行汇总、分 类、抽象,形成用例 场景是用户与系统之间进行交互的一组具体的动作 获取场景 目标软件有哪些参与者
用例的分析与设计
Startup用例的顺序图描述
用例的分析与设计
Session用例的顺序图描述
用例的分析与设计
Transaction用例的顺序图描述
用例的分析与设计
Withdrawal用例的顺序图描述
概念模型和顶层架构设计
概念模型的设计 标识领域概念模型 分析类:直接服务于用户功能性需求的概念层面的类, 与具体技术没有关系 顶层架构的设计
件进行交互的功能与特性进行封装,使目标软件系统的其余部分
尽右能独立于环境软件。
概念模型和顶层架构设计
ATM系统的概念模型——分析模型图

软件工程 第四章 概要设计

软件工程 第四章 概要设计
4.控制耦合 模块之间传递的不是数据信息,而是控制信息如标志、开关量,一个模块控制了另一模块 的功能。
第4章
4.4 模块的独立性
15
4.4.1 耦合性(Coupling)
5.外部耦合 一组模块都访问同一全局简单变量,而且不通过参数表传递该全局变量的信息,则称之为 外部耦合。 6.公共耦合
若一组模块都访问同一全局数据结构,则称之为公共耦合。公共数据环境可以是全局数据
4
4.2.1 概要设计的任务
概要设计的基本任务是: (1)设计软件系统结构; (2)数据结构及数据库设计; (3)编写概要设计文档;
(4)评审概要设计文档。
第4章
4.2 概要设计的任务与步骤
5
4.2.2 概要设计的步骤
概要设计的一般步骤如下: 1.选定体系结构 2.确定设计方案 3.设计软件结构
4.数据结构及数据库设计
(2)一个模块不通过正常入口而直接转入到另一个模块的内部;
(3)两个模块有一部分代码重叠(该部分代码具有一定的独立功能); (4)一个模块有多个入口。
第4章
4.4 模块的独立性
17
4.4.2 内聚性(Cohesion)
一个模块内各个元素彼此结合的紧密程度用内聚(或称聚合)来度量。一个理想的模块只
完成一个功能,模块设计的目标之一是尽可能高内聚。
第4章
4.4 模块的独立性
21
4.4.2 内聚性(Cohesion)
5.通信内聚
指模块内所有处理功能都通过公用数据而发生关系。即模块内各个组成部分都使用相同的 输入数据或产生相同的输出结果。
第4章
4.4 模块的独立性
22
4.4.2 内聚性(Cohesion)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

x(n-3)
a1 a0
x(n-4)
线性缓冲区实现FIR: 存储器
AR1
h[N-1]
y(n)
x COEF
h[N-1] a5
x(n) x(n-1)
h[1] x(n-2)
a4
a3
a2 h[1]
x(n-3)
a1 a0
x(n-4)
线性缓冲区实现FIR: 存储器
h[N-1]
y(n)
x COEF
h[N-1] a5
#size,BK # -1,AR0


LD
#xnew,DP
PORTR PA1,@xnew FIR

ADD RPTZ FIRS
*AR2+0%,*AR3+0%,A ;AH=x(n)+x(n-7),AR2-->x(n-1),AR3-->x(n-6) B,#(size-1) *AR2+0%,*AR3+0%,COEF
STM STM STM STM LD PORTR FIR: STH PORTW PORTR RPTZ #xn+6,AR1 #b0+6,AR3 #7,BK #-1,AR0 #xn,DP PA1 @xn A,#6 A,@y;保存y(n) @y,PA0;输出 PA1 *AR1+0;读入
PA0
PA1 table
x(n-1) x(n-2)
AR1
a4
a3
a2 h[1] a1
x(n-3)
x(n-4)
h[1]
a0
线性缓冲区实现FIR: 存储器
h[N-1]
x
y(n) COEF
h[N-1] a5
x(n) AR1
x(n-1) x(n-2)
h[1]
a4
a3 a2
h[1] a1 a0
x(n-3)
x(n-4)
线性缓冲区实现FIR: 存储器
AR1
x(n) x(n-1)
h[1] x(n-2)
a4
a3
a2 h[1]
x(n-3)
a1 a0
x(n-4)
线性缓冲区实现FIR: 存储器
h[N-1]
y(n)
x COEF
h[N-1] a5
AR1
x(n+1) x(n) x(n-1)
h[1] x(n-2)
a4
a3
a2 h[1]
x(n-3)
a1 a0
x(n-4)
1.FIR滤波器设计

2. 循环缓冲区法FIR:存储器
y xn
h[N-1]
y(n)
data
h[N-1] b0
x(n)
x(n-1) x(n-2) x(n-3) x(n-4) x(n-5) AR2 x(n-6) AR3
h[1]
b1
b2 b3 h[1] b4 b5
b6
3. FIR代码
.bss y,1 xn b0 .usect “.xn”,7 .usect “.b0”,7
h[N-1]
x AR1
y(n) COEF
h[N-1] a5
x(n)
x(n-1)
h[1] x(n-2)
a4
a3
a2 h[1]
x(n-3)
a1
a0
x(n-4)
线性缓冲区实现FIR: 存储器
h[N-1]
x AR1
y(n) COEF
h[N-1] a5
x(n)
x(n-1)
h[1] x(n-2)
a4
a3
a2 h[1]
4.1.1 线性缓冲区法

线性缓冲区法又称延迟线法:
(1)对于n=N的FIR滤波器,在数据存储器中开辟一个N单 元的缓冲区,存放最新的N个样本; (2)滤波时从最老的样本开始,每读一个样本后,将此样 本向下移位; (3)读完最后一个样本后,输入最新样本至缓冲区的顶部。

以上过程,可以用N=6的线性缓冲区示意图来说明,如图 4-1所示:
图4-7 滤波器输出 信号频谱图
返回本节
4.1.3 系数对称FIR滤波器的DSP实现
y(n) ai x(n i) a 0 x(n) a 1 x(n 1) aN 1x[n ( N 1)]
i 0 N 1
系数偶对称,即 i aN i,且N为偶数 a
y ( n)

2. 在程序存储器中设置系数表。
3.使用 FIRS指令
FIRS Xmem,Ymem,pmad;
(AH)×系数ai+(B)→B,
(Xmem+Ymem)<<16 →A,即(Xmem+Ymem)在AH中。 PAR+1 →PAR 实现:

(AR2)+(AR3)→AH(累加器A的高位)


(AR2)-1→AR2,(AR3)-1→AR3
.text _c_int00: SSBX STM STM LD PORTR FIR: STH PORTW PORTR B FIR RPTZ MACD FRCT #x+6,AR1 #5,AR0 #x+1,DP PA1 @x+1 A,#5 *AR1-,COEF,A A,*AR1;保存y(n) *AR1+,PA0;输出 PA1 *AR1+0;读入
;AR2-->x(n-3) ;AR3-->x(n-7)
*AR2,*AR3+0% ; AR3-->x(n-6) FIR ;读入最新数据x(n+1)
PORTR PA1,*AR2 .end New区
Old区 xnew
COEF
a0 h[1] a1 a2
AR2 x(n+1)
AR2
x(n) x(n-3) x(n-2) x(n-1)

ARx
图4-2 FIR滤波器循环缓冲区存储器图
FIR滤波器设计举例

【例1】用循环缓冲区和双操作数寻址方法编写实 现FIR滤波的程序。 设 计 一 个 FIR 低 通 滤 波 器 , 通 带 边 界 频 率 为 1500Hz,通带波纹小于1dB;阻带边界频率为 2 0 0 0 Hz, 阻 带 衰 减 大 于 4 0 dB; 采 样 频 率 为 8000Hz。FIR滤波器的设计可以用MATLAB窗函 数法进行。
.set 0
.set 1 .data .word 5*32768/10,4*32768/10 .word 3*32768/10,… .word 2*32768/10,32768/10
.text
MAC *AR2+0%, *AR3+0%,A
_c_int00:
SSBX STM FRCT #b0,AR1
B
.end
AR3
x(n-7)
xold
a3
系数对称FIR滤波器实现要点:
1.在数据存储器中开辟两个循环缓冲区:

New区:存放N/2=4个新数据(设N=8),AR2 指向New 缓冲区中最新的数据;

Old区:存放4个老数据, AR3指向Old 缓冲区中 最老的数据;
循环缓冲区的长度为N/2。 如图4-8所示。
第四章 软件设计及应用


4.1 FIR滤波器的DSP实现
4.2 IIR数字滤波器的DSP实现
4.3 FDCT运算的DSP实现
4.4 混合编程技术
4.1 FIR滤波器的DSP实现

4.1.1 线性缓冲区法 4.1.2 循环缓冲区法 4.1.3 系数对称FIR滤波器的DSP实现
返回首页
h(i)x(n i)
i 0
N 1

其对应的滤波器传递函数为: H(z)

i 0
N 1
h (i)z i
如图4-0所示为横截型(又称直接型或卷积型) FIR数字滤波器的结构图。
x(n) h(0)
Z-1 h(1)
Z-1 h(2) h(N-2)
Z-1 h(N-1) y(n)
图4-0 横截型FIR数字滤波器的结构图
.set 4
.sect ".coef"

COEF .word 1*32768/10,2 *32768/10,3 *32768/10,4 *32768/10


.text

_c_int00:



SSBX STM
STM
STM STM
FRCT #xnew,AR2
#xold+(size-1),AR3
滤波器有关概念来自数字滤波是DSP的最基本应用,利用MAC指令和 循环寻址可以方便地完成滤波运算。
FIR(有限冲激响应)滤波器

IIR(无限冲激响应)滤波器
设FIR滤波器的系数为h(0),h(1), ...,h(N-1), X(n)表示滤波器在n时刻的输入,则n时刻的输出 为:
y(n) h(0)x(n) h(1)x(n 1) h( N 1)x[n ( N 1)]
AR1
线性缓冲区实现FIR: 存储器
h[N-1]
x
y(n) COEF
h[N-1] a5
x(n)
x(n-1) x(n-2)
AR1
a4
a3 a2 h[1] a1 a0
x(n-3) x(n-4)
x(n-5)
h[1]
线性缓冲区实现FIR: 存储器
h[N-1]
x
y(n) COEF
h[N-1] a5
x(n)

6.CCS集成开发环境下上机操作过程
(1)在CCS上建立fir工程并运行fir.out程序。
(2)观察输入信号的波形及频谱(图4-3~4-5)。 (3)观察输出信号的波形及频谱(图4-6、4-7 )。
相关文档
最新文档