软件工程第5章程序编码

合集下载

软件工程导论 第五章总体设计

软件工程导论  第五章总体设计
低 数据 耦合
控制 耦合
耦合性
特征耦 合 公共 耦合 内容 耦合

28
注意!!
在软件设计中应该追求尽可能松散耦合的系统。
否则影响系统的可理解性、可测性、可靠性和可
维护性。
29
耦合程度强弱的区分

无耦合:如果两个模块中的每一个都能独立 地工作而不需要另一个模块的存在,那么它 们彼此完全独立,模块间无任何连接。
在可行性研究阶段,软件作为系统的一个完整 部件; 在需求分析期间,软件解法是使用在问题环境 内熟悉的方式描述的; 当由总体设计向详细设计过渡时,抽象的程度 也就随之减少; 最后,当源程序写出来以后,也就达到了抽象 的最低层。 20
5.2.3 逐步求精
定义:为了能集中精力解决主要问题而尽量推迟 对问题细节的考虑。 人类的认知过程遵守Miller法则:一个人在任何时 候都只能把注意力集中在(7±2)个知识块上。
6
3. 推荐最佳方案 • 综合分析对比各种合理方案的利弊,推荐 一个最佳的方案,并且为推荐的方案制定 详细的实现计划。 • 在使用部门的负责人也接受了分析员所推 荐的方案之后,将进入总体设计过程的下 一个重要阶段——结构设计。
7
4.功能分解 • 为确定软件结构,首先需要从实现角度把 复杂的功能进一步分解。结合算法描述仔 细分析数据流图中的每个处理,如果一个 处理的功能过分复杂,必须把它的功能适 当地分解成一系列比较简单的功能。
12
5.2 设计原理

5.2.1 模块化
模块化:把程序划分成独立命名且可独立访问的模块,每个 模块完成一个子功能,这些模块集成起来构成一个整体,可 以完成指定的功能以满足用户的需求。 模块是由边界元素限定的相邻程序元素的序列,而且有一个 总体标识符代表它。模块是构成程序的基本构件。 过程、函数、子程序和宏等,都可作为模块。 面向对象方法学中的对象是模块,对象内的方法(或称为服 务)也是模块。

软件工程导论(第5章)

软件工程导论(第5章)
10
11
5.1.2 选取若干个合理的方案
至少选取低成本、中等成本和高成本三种方案。
每种方案准备四份资料:



系统流程图; 组成系统的物理元素清单; 成本/效益分析; 实现这个系统的进度计划。
12
5.1.3 推荐最佳方案
分析员应该综合分析对比各种合理方案的利
弊,推荐一个最佳的方案,并且为推荐的方 案制定详细的实现计划。
发出较高质量的软件系统。
7
第一部分:设计过程 第二部分:设计原理 第三部分:启发原则 第四部分:软件结构图 第五部分:面向数据流的设计方法
8
5.1 设 计 过 程
总体设计过程通常由两个主要阶段组成: 系统设计:确定系统的具体实现方案。 结构设计:确定软件结构。 9个步骤: ① 设想供选择的方案 ② 选取合理的方案 ③ 推荐最佳方案 ④ 功能分解 ⑤ 设计软件结构 ⑥ 设计数据库 ⑦ 制定测试计划 ⑧ 书写文档 ⑨ 审查和复审
和理解; 可以使软件容易测试和调试,因而有助于提高软 件的可靠性; 能够提高软件的可修改性; 有助于软件开发工程的组织管理。
32
模块化五条标准
模块可分解性
把问题分解为子问题 模块可组装性 可复用 模块可理解性 无需参考其他模块,易于构造和修改 模块连续性 微小修改只导致对个别模块 模块保护性 异常影响局限在模块内部


“隐蔽”意味着模块彼此间仅仅交换那些为了完成系统功能而 必须交换的信息。 “局部化”是指把一些关系密切的软件元素物理地放得彼此靠 近。局部化有助于实现信息隐蔽。


设计和确定模块时,使得一个模块内包含的信息(过程和 数据)对于不需要这些信息的模块来说,是不能访问的。 模块内部的数据与过程,应该对不需要了解这些数据与过 程的模块隐藏起来。只有那些为了完成软件的总体功能而 必需在模块间交换的信息,才允许在模块间进行传递。

软件工程概论课后答案解析

软件工程概论课后答案解析

第1章软件与软件工程的概念1、1 举出您所知道的应用软件的例子。

办公软件、游戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。

1、2 认为“软件就就是程序,软件开发就就是编程序。

”这种观点就是否正确?为什么?认为“软件就就是程序,软件开发就就是编程序。

”这种观点就是错误的。

首先,软件就是计算机系统中与硬件相互依存的另一部分,它就是包括程序,数据及其相关文档的完整集合,程序只就是软件的组成部分之一;其次,在软件开发中,编程只就是软件开发过程的一个阶段。

1、3 如果将软件开发比作高楼大厦的建造,可以将软件的设计比作什么?可以将软件的设计比作建筑设计,软件设计的成果相当于建筑设计的设计图纸。

1、4 什么就是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机:软件危机就是指在计算机软件的开发与维护过程中所遇到的一系列严重问题。

典型表现:(1)对软件开发成本与进度的估计常常很不准确。

(2)用户对“已完成的”软件系统不满意的现象经常发生。

(3)软件产品的质量往往靠不住。

(4)软件常常就是不可维护的。

(5)软件通常没有适当的文档资料。

(6)软件成本在计算机系统总成本中所占的比例逐年上升。

(7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及深入的趋势。

产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面:(1) 缺乏软件开发的经验与有关软件开发数据的积累,使得开发工作计划很难制定。

(2) 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。

(3) 软件开发过程不规范。

如,没有真正了解用户的需求就开始编程序。

(4) 随着软件规模的增大,其复杂性往往会呈指数级升高。

需要很多人分工协作,不仅涉及技术问题,更重要的就是必须有科学严格的管理。

(5) 缺少有效的软件评测手段,提交给用户的软件的质量不能完全保证。

1、5 什么就是软件工程?软件工程就是指导计算机软件开发与维护的工程学科。

软件工程 第4版 第5章 详细设计

软件工程 第4版 第5章 详细设计

数据流程图
01
数据流程图表示 求解某一问题的 数据通路,同时 规定了处理的主 要阶段和所用的 各种数据媒体
程序流程图
02
程序流程图表示 程序中的操作顺 序
系统流程图
03
系统流程图表示 系统的操作控制 和数据流
程序网络图
04
程序网络图表示 程序激活路径和 程序与相关数据 流的相互作用
系统资源图
05
系统资源图表示 适用于一个问题 或一组问题求解 的数据单元和处 理单元的配置
5.1.3 PAD
01 PAD 的基本符号
OPTION
➢ 顺序结构 ➢ 条件结构 ➢ CASE 型多分支结构 ➢ 先检测循环条件的WHILE 型循环结构 ➢ 后检测循环条件的UNTIL 型循环结构 ➢ 语句标号 的特点
OPTION
用PAD 表示的程序从最左边的竖线的上端开始,自上而 下、自左向右执行 用PAD 设计的软件结构必然是结构化的程序结构
图1
图2
5.1.1 流程图
04 流程图的3 种基本结构
OPTION
流程图的3 种基本结构为顺序结构、条件 结构和循环结构,如图1所示,图中的C 是判 定条件。顺序结构如图(a)所示。条件结构 可分为两种,一种是IF...THEN...ELSE 型条件 结构,如图(b)所示;另一种是CASE 型多 分支结构,如图(c)所示。
应的应做的工作。
2 判定表中的符号
右上部用T 表示条件成立,用F表示条件不 成立,空白表示条件成立与否不影响。
右下部画× 表示在该列上面规定的条件下做 该行左边列出的那项工作,空白表示不做该 项工作。
5.1.5 判定树
判定树和判定表一样,也能表明复杂的条件组 合与对应处理之间的关系。判定树是一种图形表示 方式,更易被用户理解。

软件工程 第5章--RUP统一开发过程

软件工程 第5章--RUP统一开发过程
10
(3) 制品(Artifact)
制品是过程生产、修改或使用的一种信息。制 品可分为输入制品和输出制品。
在面向对象设计中,制品被当作活动的参数。 制品有多种可能的形式,如:
模型 : 如用例模型或设计模型; 模型元素 : 如类、用例或子系统; 文档 : 如一个业务用例或体系结构文档; 源代码; 可执行文件。
13
a) 核心工作流
在 RUP 中共有 9 个核心过程工作流。它们将 所有工作人员和活动进行逻辑分组。
核心过程工作流分为 6 个核心工程工作流和 3 个核心支持工作流。
核心工程工作流有:业务建模工作流、需求 工作流、分析和设计工作流、实现工作流、 测试工作流、实施工作流。
核心支持工作流有:项目管理工作流、配置 和变更管理工作流、环境工作流。
11
Iteration Plan Storyboard
Use Case Model Project Measurements User-Interface Prototype
Developer Test
Iteration Assessment
Business Goal Test Environment Configuration
场景的系统大致轮廓; 估计整个项目需要的成本和时间; 评估风险,即分析不确定性的原因;
31
制品
a) 构想文档:有关项目核心需求、关键特 性和主要限制的构想。
b) 用例模型调查:包括所有在此阶段可确 定的用例和参与者。
c) 初期的项目术语。 d) 初始的业务用例:包括业务环境、是否
成功的评价标准、经济预测。 e) 早期的风险评估。 f) 项目计划:表明阶段和迭代。
内部发布 小里程碑
第1个外部发布 (如Beta版本)

第5章 软件实现-软件工程基础(第3版)-胡思康-清华大学出版社

第5章  软件实现-软件工程基础(第3版)-胡思康-清华大学出版社
代码复用是利用已有的代码来构造或编写新的软件系统, 代码的形式主要有二进制的目标代码(库文件)和源代码。
➢代码复用 ➢库文件形式的复用 ➢面向对象机制下的复用
第5章 软件实现
第 10 页10
代码评审
代码评审,也称为代码复查,是指在软件开发 过程中,通过阅读源代码和相关设计文件,对源代码 编码风格、编码标准以及代码质量等活动进行系统性 检查的过程。
第5章 软件实现
第 6 页6
程序设计风格
2. 数据说明 为使程序中的数据说明更易于理解和维护,数据说明的次
序应当规范化: ➢ 可按说明类型(常量,简单变量类型,复杂类型 ) ➢ 一个语句说明多个变量时,按字母顺序排列。 ➢ 复杂的数据结构,要加注释。
第5章 软件实现
第 7 页7
程序设计风格
3. 语句结构的处理 语句构造,尤其是流程控制语句的构造技术,直接影响到程序的可读 性及效率。应采用直接、清晰的构造方式,而不要为了提高效率或者 显示技巧而降低程序的清晰性和可读性。
程序设计语言
程序设计语言的分类
第一代计算机语言——机器语言 第二代计算机语言——汇编语言 第三代计算机语言——高级语言 第四代计算机语言——4GL
第5章 软件实现
第 3 页3
程序设计语言
不同的程序语言机制,对设计的支持不尽相同,目前被 广泛采用的是结构化程序设计语言和面向对象语言。
结构化程序设计语言机制需考虑到: 数据结构(变量和常量)的显示表示 模块化编程 控制结构
第 5 章 软件实现 小节
➢程序设计语言 ➢程序设计风格 ➢代码复用 ➢代码评审
第5章 软件实现
第 12 页12
4. 输入输出设计准则 ⑴ 输入、输出的格式在整个系统中应该统一;

软件工程5软件编码

软件工程5软件编码
持结构化的程序设计。 (2)修补了C语言中的一些漏洞 (3)生成的目标程序质量高,程序执行效率高。 (4)提供了异常处理机制,简化了程序的出错处理。 (5)函数可以重载并可以使用缺省参数。 (6)提供了模板机制。
a
3.Java
Java的特点包括: (1)平台无关性。 (2)安全性。 (3)面向对象。 (4)分布式。 (5)健壮性。
a
开发人员在选择程序设计语言时,应考虑以下因 素:
1.应用领域 2.算法与数据结构的复杂性 3.软件执行的环境 4.软件执行的效率
a
5.2 编码规范
a
5.2.1 编排格式
a
1.采用缩进风格 2.控制代码行宽度 3.使用空格字符实现缩进 4.适当地使用空行 5.不允许把多个短语句写在一行中 6.适当使用空格
a
5.2.2 命名规则
a
(1)尽量采用有意义的名字命名。 (2)名字的长度无限制,但也不宜过长。 (3)如果名字使用缩写,那么缩写规则须保持一致。
a
5.2.3 注释
a
(1)每一个注释都应当有用,应避免无意义的注释。
(2)合理使用序言性注释和功能性注释。 以下一段代码是序言性注释的例子:
/* 名称:求平均值函数 功能:计算数组的平均值 输入:score – 数组,元素类型为float,代表分数 n – 数组中元素的个数 返回值:score数组中所有元素的平均值 使用举例:aver = average(score,n) 作者:张** 11/12/2008 版本号:1.1
a
9.ALGOL
ALGOL是结构化语言的前驱,它提供了特别丰富的 过程构造及数据类型构造,在欧洲得到了广泛应用。 但是, PASCAL语言和C语言问世以后,它的位置就逐 渐被取代了。

软件工程 第5章--UML

软件工程 第5章--UML
10
UML的定义
UML定义有两个主要组成部分:语义和表示法。 语义用自然语言描述,表示法定义了UML的可 视化标准表示符号,这决定了UML是一种可视 化的建模语言。 在语义上,模型是元模型的实例。UML定义给 出了语法结构的精确定义。 使用UML时,要从不同的角度观察系统,为此 定义了概念“视图(View)‖。视图是对系统的模 型在某方面的投影,注重于系统的某个方面。
独立于过程
系统建模语言,独立于开发过程。
9

容易掌握使用 概念明确,建模表示法简洁明了,图形结 构清晰,容易掌握使用。 着重学习三个方面的主要内容: (1) UML的基本模型元素 (2) 组织模型元素的规则 (3) UML语言的公共机制 与程序设计语言的关系 用Java,C++ 等编程语言可实现一个系统。 一些CASE工具可以根据 UML所建立的系 统模型来产生Java、C++ 等代码框架。
31
UML事物 — 注释事物
11) Note(注释)
依附于一个元素或一组元素之上,对其进
行约束或解释的简单符号。没有语义影响。
See policy8-5-96.doc for details about these algorithms.
CashAccount presentValue()
32
15
UML定义 9 种图,表达UML中的 5 种视图,各 视图在静态和动态方面表示系统模型。
结构 视图 静态 方面
动态 方面
行为 视图 同左
实现 视图 构件图
环境 视图 部署图
同左
用例 视图 用例图
同左
类图 对象图
顺序图 同左 顺序图 合作图 (注重 合作图 状态图 进程、 状态图 活动图 线程) 活动图

(完整版)软件工程 第五章 面向对象的需求分析

(完整版)软件工程 第五章 面向对象的需求分析

第五章面向对象的需求分析面向对象的需求分析方法的核心是利用面向对象的概念和方法为软件需求建造模型。

它包含面向对象风格的图形语言机制和用于指导需求分析的面向对象方法学。

面向对象的思想最初起源于 20世纪 60年代中期的仿真程序设计语言Simula67。

20世纪80年代初出现的Smalltalk 语言及其程序设计环境对面向对象技术的推广应用起到了显著的促进作用。

20世纪90年代中后期诞生并迅速成熟的UML(Unified Modeling Language,统一建模语言)是面向对象技术发展的一个重要里程碑。

UML 统一了面向对象建模的基本概念、术语和表示方法,不仅为面向对象的软件开发过程提供了丰富的表达手段,而且也为软件开发人员提供了互相交流、分享经验的共用语言。

本章首先介绍面向对象的主要概念和思想。

在概述了UML的全貌之后,以“家庭保安系统”为实例,介绍与需求分析相关的部分 UML语言机制以及基于UML的面向对象的需求分析方法和过程。

第一节面向对象的概念与思想一、面向对象的概念关于“面向对象”,有许多不同的看法。

Coad和 Yourdon给出了一个定义:“面向对象 = 对象 + 类 + 继承 + 消息通信”。

如果一个软件系统是使用这样4个概念设计和实现的,则认为这个软件系统是面向对象的。

一个面向对象的程序的每一成分应是对象,计算是通过新的对象的建立和对象之间的消息通信来执行的。

1.对象(object)一般意义来讲,对象是现实世界中存在的一个事物。

可以是物理的,如一个家具或桌子,如图 5-1-1所示,可以是概念上的,如一个开发项目。

对象是构成现实世界的一个独立的单位,具有自己的静态特征(用数据描述)和动态特征(行为或具有的功能)。

例如:人的特征:姓名、性别、年龄等,行为:衣、食、住、行等。

图 5-1-1 对象的定义(1)对象、属性、操作、消息定义对象可以定义为系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和一组对属性进行操作的服务组成。

软件工程各章名词解释

软件工程各章名词解释

名词解释一个三分 五个十五分第一章 绪论1. 软件2. 文档3. 软件工程4. 软件工程过程5. 软件生存周期6. 软件生存周期模型第二章 软件可行性研究与项目开发计划1. 投资回收2. 纯收人第三章 软件需求分析1. 需求分析2. 数据流3. 数据字典4. 加工5. 数据流图第四章 软件概要设计1. 模块2. 模块化3. 抽象4. 信息隐蔽5. 模块独立性6. 耦合性7. 无直接耦合8. 数据耦合9. 标记耦合10. 控制耦合11. 公共耦合12. 内容耦合13. 内聚性14. 偶然内聚15. 逻辑内聚16. 时间内聚17. 通信内聚18. 顺序内聚19. 功能内聚第五章 软件详细设计1. PAD2. 过程设计语言(PDL)第六章 软件编码1. 程序设计风格2. 程序可移植性第七章 软件测试1. 语句覆盖2. 判定覆盖3. 条件覆盖4. 判定/条件覆盖5. 条件组合覆盖6. 路径覆盖7. 环路复杂性8. 黑盒测试9. 白盒测试10. 驱动模块11. 桩模块12. 单元测试13. 集成测试14. 确认测试15. 调试第八章 软件维护1. 维护2. 校正性维护3. 适应性维护4. 完善性维护5. 预防性维护6. 软件可维护性第九章 软件开发的增量模型1. 原型第十章 面向对象的方法1. 对象2. 类3. 消息4. 方法5. 继承性6. 单重继承7. 多重继承8. 多态性9. 抽象10. 信息隐藏11. 链12. 关联第十一章 软件质量与质量保证1. 软件可靠性2. 效率3. 可维护性4. 可移植性5. 可互操作性6. 适应性7. 可重用性8. 软件设计质量9. 软件程序质量10. 冗余第十二章 软件工程管理1. 软件配置管理2. 软件配置项3. 基线4. 文档第十三章 软件开发环境1. 软件开发环境2. 软件工具3. CASE4. CASE生存期5. CASE工作台软件工程自考名词解释答案第一章 绪论1. 计算机程序及其说明程序的各种文档.2. 文档是有关计算机程序功能,设计,编制,使用的方案或图形资料.3. 用科学知识和技术原理来定义,开发,维护软件的一门学科.4. 软件工程过程规定了获取,供应,开发,操作和维护软件时,要实施的过程,活动和任务.5. 软件生存周期是指一个软件从得出开发要求开始直到该软件报废为止的整个时期.6. 软件生存周期模型是描述软件开发过程中各种活动如何执行的模型.第二章 软件可行性研究与项目开发计划1. 投资回收期就是使累计的经济效益等于最初的投资费用所需的时间.2. 在整个生存周期之内的累计经济效益(折合成现在值)与投资之差.第三章 软件需求分析1. 需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非不甘落后将用户非不甘落后 需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程.2. 数据流是数据在系统内传播的路径,因此由一组成分固定的数据项组成.3. 数据字典(Data Dic onary, 简称DD)就是用来定义数据流图中的各个成分的具体含义的,它以一种准确的,无二义性的说明方式为系统的分析,设计及维护提供了有关元素的一致的定义和详细的描述.4. 加工又称为数据处理,是对数据流进行某些操作或变换.5. 数据流图,简称DFD,是SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程.第四章 软件概要设计1. 模块在程序中是数据说明,可执行语句等程序对象的集合,或者是单独命名和编址的元素,在软件的体系结构中,模块是可组合,分解和更换的单元.2. 模块化是指解决一个复杂问题自顶向下逐层把软件系统划分成若干模块的过程.每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个要求的功能.3. 抽象是认识复杂现象过程中使用的思维工具,即抽出事物本质的共同的特性而暂不考虑它的细节,不考虑其他因素.4. 信息隐蔽指在设计和确定模块时,使得一个模块内包含信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的.5. 模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单.6. 耦合性也称块间联系.指软件系统结构中各模块间相互联系紧密程序的一种度量.7. 无直接耦合指两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息.8. 数据耦合指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言的值传递.9. 标记耦合指两个模块之间传递的是数据结构,如高级语言的数组名,记录名,文件名等这些名字即为标记,其实传递的是这个数据结构的地址.10. 控制耦合指一个模块调用另一个模块时,传递的是控制变量(如开关,标志等),被调模块通过该控制变量的值有选择地执行块内某一功能.11. 公共耦合指通过一个公共数据环境相互作用的那些模块间的耦合.公共数据环境可是是全程变量或数据结构,共享的通信,内存的公共覆盖区及任何存储介质上的文件,物理设备等(也有将共享外部设备分类为外部耦合).12. 当一个模块直接使用另一个模块的内部数据,或通过非正常口转入另一个模块内部,这种模块之间的耦合为内容耦合.13. 内聚块又称块内联系指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量.14. 偶然内聚指一个模块内的各处理元素之间没有任何联系.15. 逻辑内聚指模块内执行个逻辑上相似的功能,通过参数确定该模块完成哪一个功能.16. 把需要同时执行的动作组合在一起形成的模块为时间内聚模块.17. 通信内聚指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据.18. 顺序内聚指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入.19. 功能内聚指模块内所有元素共同完成一个功能,缺一不可.因此模块不能再分割.第五章 软件详细设计1. PAD图指问题分析图(Problem Analysis Diagram),是一咱算法描述工具,它是一种由左往右展开的二维树型结构.PAD图的控制流程为自上而下,从左到右地执行.2. 过程设计语言(Process Design Language,简称PDL),也称程序描述语言(Program Descrip on Language),又称为伪码.它是一种用于描述模块自法设计和处理细节的语言.第六章 软件编码1. 程序设计风格指一个人编制程序时所表现出来的特点,习惯逻辑思路等.2. 指程序从一个计算机环境移值到另一个计算机环境的容易程序.第七章 软件测试1. 语句覆盖是指设计足够的测试用例,使被测程序中每个语句至少执行一次.2. 判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次”真”和”假”值,从而使程序的每一个分支至少都通过一次.3. 条件覆盖指设计足够的测试用例,使得判定表达工中每个条件的各种可能的值出现一次.4. 判定/条件覆盖标准指设计足够的测试用例,使得判定表达式中的每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次.5. 条件组合覆盖是比较强的覆盖标准,它是指设计足够的测试用例,使得每个判定表达式中条件的各种可能的值的组合都至少出现一次.6. 路径覆盖是指设计足够的测试用例,覆盖被测程序中所有可能的路径.7. McCabe定义程序图的环路为程序图中区域的个数.区域个数为边和结点圈定的封闭区域数加上图形外的区域数1.8. 黑盒测试是功能测试又称为功能测试或数据驱动测试.9. 白盒测试是对程序中尽可能多和逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致.10. 驱动模块是用来模拟被测模块的上级调用模块的模块,功能要比真正的上级模块简单得多,它只完成接受测试数据,以上级模块调用被测模块的格式驱动被模块,接收被测模块的测试结果并输出.11. 桩模块用来代替被测试模块所调用的模块它的作用是返回被测模块所需的信息.12. 单元测试指对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误.13. 集成测试是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行测试,故也称组装测试或联合测试.14. 确认测试又称有效性测试.是为了检查软件的功能与性能是否与需求规格说明书中确定的指标相符合所进行的测试.15. 调试是为了确定错误的原因和位置,并改正错误所进行的工作,因此调试也称为纠错.第八章 软件维护1. 在软件运行/维护阶段对软件产品所进行的修改就是维护.2. 为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护.3. 随着计算机的飞速发展,计算机硬件,软件及数据环境在不断发生变化,为了使应用软件适应这种变化而修改软件的过程称为适应性维护.4. 在犯罪分子件运行时期中,用户往往会对软件提出新的功能要求与性能要求.这种增加软件功能,增强软件性能,提高软件运行效率而进行的维护活动称为完善性维护.5. 为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护.6. 软件可维护性是指软件能够被理解,校正,适应及增强功能的容易程度.第九章 软件开发的增量模型1. 软件开发中的原型是软件的一个早期可运行的版本,它反映了最终系统的重要特性.第十章 面向对象的方法1. 对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则,计划或事件.2. 具有相同或相似性质的对象的抽象就是类具有相同或相似性质的对象的抽象就是类3. 对象之间进行通信的构造叫做消息.4. 类中操作的实现过程叫做方法,一个方法有方法名,参数,方法体.5. 继承性是子类自动共享父类数据结构和方法的机制这是类之间的一种关系.6. 在类层次中,子类只继承一个父类的数据结构和方法,称为单重继承.7. 在类层次中,子类继承了多个父亲的数据结构和方法,称为多重继承.8. 多态性是指相同的操作或函数,过程可作用于多用户种类型的对象上并获得不同结果.不同的对象收到同一消息可以产生不同的结果,这种现象称为多态性.9. 抽象是指强调实体的本质,内在的属性,忽略一些无关紧要的属性.10. 信息隐蔽是指所有软件部件内部都有明确的范围以及清楚的外部边界每个软件部件都有友好的界面接口,软件部件的内部实现与外部可访问性分离.11. 链表示对象间的物理与概念联结.12. 关联表示类之间的一种关系,就是一些可能的链的集合.第十一章 软件质量与质量保证1. 软件按照设计要求,在规定时间和条件下不出故障,持续运行的程度.2. 为了完成预定功能,软件系统所需的计算机资源和程序代码数量的程度.3. 找到并改正程序中的一个错误所需代价的程度.4. 将一个软件系统从一个计算机系统或环境移植到另一个计算机系统或环境中运行时所需的工作量.5. 将一个系统耦合到另一个系统所需的工作量.6. 修改或改进一个已投入运行的软件所需工作量的程度.7. 一个软件能再次用于其他相关应用的程度.8. 设计的规格说明书要符合用户的要求.9. 程序要按照设计规格说明所规定的情况正确执行.10. 冗余是指实现系统规定功能是多余的那部分资源,包括硬件,软件,信息和时间.第十二章 软件工程管理1. 软件配置管理,简称SCM,是一组管理整个软件生存期各阶段中变更的活动是一组管理整个软件生存期各阶段中变更的活动2. 软件配置项是软件工程中产生的信息项,它是配置管理的基本单位.3. 基线是软件生存期中各开发阶段的一个特定点,它的作用是把开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果.4. 文档是指某种数据媒体和其中所记录的数据.在软件工程中,文档用来表示对需求,工程或结果进行描述,定义,规定,报告或认证的任何书面或图示的信息.它们描述和规定了软件设计和实现的细节,说明使用软件的操作命令.第十三章 软件开发环境1. 软件开发环境是相关的一组软件工具集合,它支持一定的软件开发方法或按照一定的软件开发模型组织而成.2. 软件工具是指为支持计算机软件的开发,维护,模拟,移植或管理而研制的程序系统.3. CASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发.4. 一个组织中的CASE系统从被始需求到完全废弃这一生存期.5. 一个CASE工作台是一组工具集,支持像设计,实现或测试等特定的软件开发阶段.。

软件工程中的软件通用编码标准

软件工程中的软件通用编码标准
推动软件工程发展
02
促进软件工程领域的发展和进步,推动行业朝着更高效和可持续的方向发展
03
感谢
支持
共同努力
推动发展
合作
感谢各位的聆听和支持,让我 们共同努力,推动编码标准的 落地和实践
希望大家共同努力,将编码标 准贯穿于软件工程的整个开发 过程
共同促进软件工程领域的发展 和进步,不断提升行业的水平 和质量
●06
第六章 总结与展望
编码标准的重要性总结
编码标准是软件工程中的重要一环, 能够提高代码的质量、可读性和可维 护性。它是每个开发团队必须遵守的 规范,有助于减少错误、提高开发效 率,以及促进团队协作。
未来发展趋势
持续更新和完善
随着软件开发不断 发展,编码标准需 要与时俱进,以适 应新技术和新需求
软件生命周期
需求分析
明确软件需要解决 的问题
编码
将设计转化为源代 码
设计
制定软件的整体架 构和功能
测试
验证软件功能的正 确性
软件工程的原则
用户参与
确保软件符合用户 需求
灵活性
适应需求和变化
迭代开发
循序渐进,不断完 善
重用性
利用已有组件和代 码
软件工程中的挑战
需求变化
01
采用敏捷开发,灵活应对变化
编码标准的重要性
编码标准能够提高团队合作的效率、减少代码错误、增强代码可 读性和降低维护成本。
常见的编码标准
Google编码风格指 南
提供了代码规范和 最佳实践
PEP 8 Python编码 规范
为Python语言提 供了编码指导
Airbnb JavaScript 编码规范
专注于JavaScript 编码规范

软件工程-第5章

软件工程-第5章

变更控制
变更控制(Change Control)的目的并 不是控制变更的发生,而是对变更进行管理, 确保变更有序进行。对于软件开发项目来说, 发生变更的环节比较多,因此变更控制显得 格外重要。它回答:受控产品怎样变更?谁 控制变更?何时接受,恢复,验证变更?
变更控制的流程
5.2.5正式技术复审
基线与SCI的概念
5.2.3 版本控制
版本控制(Revision Control)是全面 实行软件配置管理的基础,是对系统不同版 本进行标识和跟踪的过程,所有置于配置库 中的元素都应自动予以版本的标识,并保证 版本命名的唯一性和状态的一致性。其目的 是便于对版本加以区分、检索、跟踪或回溯, 以区别各个版本之间的关系。
软件质量模型
Boehm质量模型 (1)软件的可使用性 (2)软件的可维护性 (3)软件的可移植性
2.McCall质量模型
ISO/IEC 9126标准
软件质量保证是一种活动
SQA 活动的主要内容
1.与SQA计划直接相关的工作 2.参与项目的阶段性评审和审计 3.对项目日常活动与规程的符合性进行检查 4.对配置管理工作的检查和审计 5.跟踪问题的解决情况 6.度量和报告机制
软件配置项的组成
软件配置项标识
•唯一性:目的在于避免出现重名,造成混 乱。 •可追溯性:使命名能够反映命名对象间的 关系。每个可用一组信息来唯一地标识它。
配置项的状态
基线的理解
IEEE定义基线如下:“已经通过正 式复审和批准的某规约或产品,它因此 可以作为进一步的基础,并且只能通过 正式的变化控制过程的改变。”
IEEE Std 1028-1988定义:评审是对 软件元素或者项目状态的一种评估手段,以 确定其是否与计划的结果保持一致,并使其 得到改进。

软件工程第5章 详细设计

软件工程第5章 详细设计
17
详细设计的描述工具
(4) PDL( Program Design Language )
PDL与需求分析中采用的结构化语言统属于伪 码。伪码的结构分为内外两层,外语法应符合一般 程序设计语言常用的语法规则,而内层语法则用一 些简单的句子、短语(自然语言)。
18
详细设计的描述工具
PDL作为一种用于描述程序逻辑的语言,具有以下特点:
3
详细设计的描述方式
详细设计的描述方式分类:
1)图形描述:流程图、盒图、PAD图等 2)语言描述:PDL语言等 3)表格描述:判定表等
4
详细设计的描述工具
详细设计的描述工具:
下面介绍一些有代表性的详细设计工具: (1)程序流程图
程序流程图又称之为程序框图,它是软件开发者最熟悉的一种 算法表达工具。
ENDIF
21
详细设计的描述工具
3)多路选择结构
CASE OF <变量名>: WHEN <条件1> SELECT <语句或程序块> WHEN <条件2> SELECT <语句或程序块> …… WHEN <条件n> SELECT <语句或程序块>
DEFAULT: <语句或程序块> ENDCASE
22
A(m)>A(j)
j=j+1
T
m=j
F
A(m) ﹤-﹥A(i) i=i+1
PAD图的控制流程为自上而下、从左到右。
15
详细设计的描述工具
举例:
请使用PAD图描述下列程序的算法: 在数据A(0)~A(10)中求最大数。
16
详细设计的描述工具

《软件工程》第5章 软件构造

《软件工程》第5章 软件构造

5.5 软件代码审查
为保证代码开发的质量,在编码完成后,进行 代码审查或称Review。
审查内容: 1. 程序的版式 2. 文件结构 3. 命名规则 4. 表达式与基本语句
5.6 软件复用
软件复用就是将已有的软件成分用于构造新的 软件系统,以达到提高软件系统的开发质量与效率, 降低开发成本的目的。
在面向对象语言中,类功能支持这种层次机制。 除了根结点外,每个类都有它的基类(base class)。 除 了 叶结 点 外 , 每 个类 都 有它 的 派生 类 (derived class)。一个派生类可以从它的基类那里继承所有 的数据和操作,并扩充自己的特殊数据和操作。
3. 多态性
所谓多态,是指一个名字(或符号)具有 多种含义。即相同的操作的消息发送给不同的 对象时,每个对象将根据自己所属类中定义的 操作去执行,产生不同的结果。
5
第五章
软件构造
软件的详细设计,完成了软件的过程性的描述, 接下来进入程序编码阶段。
软件构造(Software Construction)指通过 编码、验证、单元测试、集成测试和排错的组合, 创建一个可以工作的、有意义的软件。在本章中, 我们将聚焦在该领域当中的程序设计语言、设计、 编码和复用这几个话题,其余的将在后续章节中讨 论。
类型的能力选取 。 6. 软件开发人员的知识水平以及心理因素。要特别注
意选择语言时,尽量避免受外界的影响,盲目追求 高、新的语言。
5.2 程序设计方法
5.2.1 结构化程序设计 结构程序设计的概念最早是由E.W.Dijkstra提出来的。
结构化程序设计方法 (Structured Program), 即SP法是结构化开发方法的重要组成部分。
5.3.1 源程序文件 符号的命名。尽量用与实际意义相同或接近的标识 符命名。 源程序中的注释 注释可分为序言性注释和解释性注释。错误的注释 宁可不要。 源程序的书写格式

软件工程导论课件第5章

软件工程导论课件第5章

4
主要工作
完成模块分解,确定系统的模块层次结构
文档 数据结构的描述部分
模块说明部分,包括模块结构以及每个模块的 功能说明
5
总体设计的过程
总体设计通常由系统设计和结构设计两个阶段组成。 系统设计阶段确定系统的具体实现方案,结构设计阶段确 定软件的结构。
实施总体设计的过程如下:
1.设想供选择的方案 2.选取合理的方案 3.推荐最佳方案 4.功能分解 5.设计软件结构 6.数据库设计 7.制定测试计划 8.书写文档 9.审查和复审
27
(7)功能内聚 如果一个模块中的所有处理元素都完成一个, 而且仅完成一个功能 比如:一个模块只完成矩阵加法运算或只打印 输出一种特定的表格功能
对于一个模块而言,模块自身的内聚越 强,模块间的耦合就越小,模块所具有的独 立性就越好,可以说高内聚低耦合是我们进 行软件设计的一贯原则。
28
启发规则
12
9. 审查和复审
最后应该对总体设计的结果进行严格的技术 审查,在技术审查通过之后再由使用部门的负责人 从管理角度进行复审。
13
设计原理
模块
模块是数据说明、可执行语句等程序对象的 集合,它是单独命名的,可通过名字来进行访问。 例如:汇编语言中的子程序,Pascal语言中的过程, C语言中的函数等。
32
描绘软件结构的图形工具
在总体设计阶段,我们经常使用以下几种 图形工具: 层次图 HIPO图 结构图
33
(一)层次图
层次图中的每个方框代表一个模块,方框间 的连线表示调用关系,不同于层次方框图那样表示 组成关系。 例如:正文加工系统调用编辑模块,编辑模 块依需要调用添加、删除、插入、修改、合并、列 表模块。

软件工程中的软件编码标准与规范

软件工程中的软件编码标准与规范
持续改进软件开发 流程和方法
软件编码标准的持续优化
与时俱进
不断调整和改进编码标准
定制化
结合实际项目需求和团队特点进行定制化
对软件开发者的建议
遵守编码标准和规 范
严格遵守编码标准 确保代码质量
不断学习和提升编 码能力
持续学习新知识 参与技术交流
总结与展望
软件编码标准是软件工程中非常重要的一部分,通过遵守标准 和规范可以提高团队的开发效率和代码质量。未来软件开发将 面临更多挑战和机遇,需要持续学习和适应新技术。同时,软 件编码标准需要不断优化,以适应不断变化的软件开发环境。 对软件开发者来说,遵守标准和持续学习提升编码能力是非常
代码质量与安全性
确保每行代码都符合规范 减少错误和bug产生的可 能性
促进团队合作和知识共享 提高代码质量
维护公共代码库的整洁性 减少潜在的安全漏洞
● 03
第3章 常见的软件编码标准规范
JavaScript编码规范
在软件工程中,JavaScript是一种常用的编程语言, 为了确保代码质量和规范性,通常会使用ESLint进行 代码检查。在编写JavaScript代码时,需要遵循命名 规范、统一缩进风格以及良好的注释规范,这些都是
学习他人的成功经验和失 败教训
避免重复犯错
保持对行业动态的敏感度 避免质量问题
培训团队成员遵守新 标准
制定新的规则和流程
找出问题根源并制 定改进计划
确保团队全员理解 和执行新标准
根据实际情况优化 编码标准
软件编码标准的效果评估
比较改进前后的代码质量和团队效率
检验编码标准改进效果
收集用户反馈和建议
从用户角度评估编码标准效果
不断优化和改进编码标准

《软件工程概论》郑人杰版 第5章 面向对象方法与UML

《软件工程概论》郑人杰版 第5章 面向对象方法与UML
与对象进行交互; (3) 受保护的内部实现,即软件对象功能的实现细节,实现细
节不能从类外访问。
继承
• 继承。继承是一种联结类的层次模型,为类的重用提供
了方便,它提供了明确表述不同类之间共性的方法。 • 我们将公共类称为超类(superclass)、父类(father
class)、祖先(ancestor)或基类(base class),而 从其继承的类称为子类(subclasses)、后代( deslendane)或导出类(derived class)。
对象之间的交互
行为事物
(2)状态机(state machine)── 描述了一个对 象或一个交互在生存周期内响应事件所经历的状 态序列,单个类或者一组类之间协作的行为都可 以用状态机来描述。 状态机涉及到状态、变迁和活动,其中状态用圆角 矩形来表示。
对象
(2) 角色(Roles)── 一个实体的角色也可 以抽象成一个单独的对象。角色对象的操 作是由角色提供的技能。
• 例如,一个面向对象系统中通常有“管理器”对象,它履 行协调系统资源的角色。一个窗口系统中通常有“窗口管 理器”对象,它扮演协调鼠标器按钮和其他窗口操作的角 色。特别地,一个实际的物理对象可能同时承担几个角色 。
清晰,容易掌握使用。 (6)与编程语言的关系
支持UML的一些CASE工具(如Rose)可以根据 UML所建立的系统模型自动产生Java、C++ 等代 码框架。
UML的基本模型
➢ UML符号为开发者或开发工具使用这些图形符号 和文本语法为系统建模提供了标准。 ➢ 这些图形符号和文字所表达的是应用级的模型, 在语义上它是UML元模型的实例。 ➢UML模型由事物、关系和图组成 。
第5章 面向对象方法与UML

软件工程及实践[窦万峰]第5章 软件详细设计

软件工程及实践[窦万峰]第5章 软件详细设计
第5章 软件详细设计
5 . 1 结构化详细设计 5 . 2 结构化设计工具 5 . 3 人机界面设计 5 . 4 数据库设计 5 . 5 面向对象精化设计 5.6 编 码
.
5.1 结构化详细设计
结构化程序设计的理念是在20世纪60年代由Dijkstra等人提出并加以完善的。 结构化的程序一般只需要用3种基本的逻辑结构就能实现,即顺序结构、选择结 构和循环结构,如图5-1所示。
.
5.3 人机界面设计
5.3.1 界面分析与设计 1.美学规则 在有关界面设计的著作中,Theo Mandel创造了3条黄金原则 (1)置用户于控制之下 (2)减少用户的记忆负担。 (3)保持界面一致。 2.人机界面分析 人机界面的设计工作应与软件系统的需求分析工作同步进行,主要包括如 下几个过程。 (1)通过界面和系统交互的最终用户分析。 (2)最终用户为完成工作要做的任务分析。 (3)确定界面的类型。 (4)任务处理的环境。
概要IPO图用于表达对一个系统,或对其中某一个子系统功能的概略表达, 指明在完成某一功能框规定的功能时需要哪些输入、哪些操作和哪些输出。图 5-8所示为表示销售/盘存系统第2层的对应H图中1.1.0框的概要IPO图。
.
5.2.4 HIPO图
在概要IPO图中,没有指明输入―处理―输出三者之间的关系,用它进行下 一步的设计是不可能的。所以需要使用详细IPO图用于指明上述三者之间的关系, 其图形与概要IPO图一样,但输入和输出最好用具体的介质和设备类型的图形表 示。图5-9所示为销售/盘存系统中对应H图中1.1.2框的详细IPO图。
.
5.2 结构化设计工具
5.2.1 程序流程图 程序流程图又称为“程序框图”,是Goldstine于1946年首先采用的。它是 历史最悠久,使用最广泛的描述软件设计的方法,能直观地描述过程的控制流 程,便于初学者掌握。其中较常用的一些符号如图5-2所示,方框表示一个处理 步骤,菱形代表一个逻辑条件,箭头表示控制流向。注意,程序流程图中使用 的箭头代表控制流,而不是数据流。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

源程序的质量标准
正确性 可读性 可靠性 可维护性
结构化程序设计
结构化程序设计主要包括两方面: (1) 在编写程序时,强调使用几种基
本控制结构,通过组合嵌套,形成 程序的控制结构。尽可能避免使用 GOTO语句。 (2) 在程序设计过程中,尽量采用自 顶向下和逐步细化的原则,由粗到 细,一步步展开。
100 write ( C ); goto 140;
110 write ( B ); goto 140;
120 if ( A < C ) goto 130; goto 100;
130 write ( A );
140 end 该程序出现了多条GOTO语句,程
序可读性较差。
程序2
if ( A < B ) and ( A < C ) then
不满足结构化要求!
程序2
f0 = f (a); f1 = f (b);
if ( f0 * f1 <= 0 ) { xfo0 r=(ai;=x11;= ib<;= n;i++ ) { //正常出口
xm = ( x0+x1) / 2;fm = f (xm); if (abs( fm )<eps || abs( x1-x0 )<eps)
结构化程序设计的主要原则
使用语言中的顺序、选择、重复等 有限的基本控制结构表示程序逻辑。
选用的控制结构只准许有一个入口 和一个出口。
程序语句组成容易识别的块,每块 只有一个入口和一个出口。
复杂结构应该用基本控制结构进行 组合嵌套来实现。
语言中没有的控制结构,可用一段等价 的程序段模拟,但要求该程序段在整个 系统中前后一致。
break; //非正常出口
iefls{(exf00
* =
fxmm>;0f)0
=
fm;}
x1 = xm; }
}
该程序仍然存在二个出口,不是结构化程序。
程序3
f0 = f (a);f1 = f (b); if ( f0 * f1 <= 0){
x0 = a;x1 = b;i = 1;finished = 0; while (i <= n && finished == 0) {
严格控制GOTO语句,仅在下列情形才 可使用: ① 用一个非结构化的程序设计语言去 实现一个结构化的构造。 ② 若不使用GOTO语句就会使程序功 能模糊。 ③ 在某种可以改善而不是损害程序可 读性的情况下。
例1 打印A, B, C三数中最小者的程序
程序1 if ( A < B ) goto 120; if ( B < C ) goto 110;
for ( i = 2;i <= 100;i++ ) A[i] = i;
/* 建立2到10的素数表B[ ],其中存放2到10以内的素数*/
B[1] =2;B[2] = 3;B[3] = 5;B[4] = 7;
/*若A[i]=i是B[ ]中任一数的倍数,则剔除A[i]*/
for ( j = 1;j <= 4;j++ )
检查A[ ]所有的数能否被B[j]整除,并将能被整除的数从 A[ ]中剔除---------------3.1
xifm(a=b(sx(0f+m)<x1 )e/ps2||;abfsm(=x1f-(xxm0));<eps) finished = 1;
if (finished == 0)
if
( f0 * { x0
=fmx>m;0 )f0
=
fm;}
else
x1 = xm ;
}
}
引入布尔变量 finished,改 for
▪ 结构化程序设计 ▪ 程序设计风格
▪ 程序复杂性度量
做为软件工程过程的一个阶段,程序编 码是设计的继续。
程序设计语言的特性和程序设计风格会 深刻地影响软件的质量和可维护性。
为了保证程序编码的质量,程序员必须 深刻地理解、熟练地掌握并正确地运用 程序设计语言的特性。此外,还要求源 程序具有良好的结构性和良好的程序设 计风格。
write ( A ) else
if ( A B ) and ( B < C ) then write ( B )
else if 该程序结构清晰、可读性好。
例2 用二分法求方程 f (x)=0 在区间 [a..b]中的根的程序
假设在闭区间[a..b]上函数 f (x) 有唯一
eps)
if ( f0 * fm > 0 ) el{sex0x1==xmx;m;f0 = fm;} }
finish:printf (“\n The root of this equation
is %d\n”,xm );
} 该程序是单入口,两出口。正常出口
是循环达到 n 次,非正常出口是循环 中途控制转出到标号 finish 所在位置。
型循环为 while 型,将单入口多出
口结构改为单入口单出口结构。是
结构化程序!
自顶向下,逐步求精
在详细设计和编码阶段,应 当采取自顶向下、逐步求精 的方法。 把一个模块的功能逐步分解、 细化为一系列具体的步骤, 进而翻译成一系列用某种程 序设计语言写成的程序。
例 用筛选法求100以内的素数
筛选法就是从2到100中去掉2、 3、…、9、10的倍数,剩下的 就是100以内的素数。
的一个零点
程序1
f0 = f (a); f1 = f (b);
if ( f0 * f1 <= 0 ) {
x0 = for
a; ( i=
x11;= ib<;=
n;i++
){
xm = ( x0+x1 ) / 2;
if ( abs goto
f(ifnmi)sh<;eps
||
afmbs=(fx(1x-m)x;0) <
为了解决这个问题,可先按程 序功能写出一个框架。
程序框架
main ( )
{
建立2到100的数组A[ ],其中A[i]=i;
-----------------------------------1
建立2到10的素数表 B[ ],其中存放2到10以内的素数;
-----------------------------------2
若A[i]=i是B[ ]中任一数的倍数,则剔除A[i];
-----------------------------------3
输出A[ ]中所有没有被剔除的数;
-----------------------------------4
}
对程序细化
main ( )
{
/*建立2到100的数组A[ ],其中A[i]=i*/
相关文档
最新文档