软件工程与实践第三版课件第6章 软件编程实现
软件工程第6章 软件编码设计

10
(1)理论标准 1)理想的模块化机制、易于阅读和使用的控制结 构及数据结构 模块化、良好的控制结构和数据结构可以降低编码 工作的难度,增强程序的可理解性,提高程序的可测试 性和可维护性,从而减少软件生存周期中的总成本,并 缩短软件开发所需的时间。 2)完善、独立的编译机制
11
(2)实用标准 1)系统用户的要求 由于用户是软件的使用者,因此软件开发者应充分 考虑用户对开发工具的要求。特别是当用户要负责软件 的维护工作时,用户理所应当地会要求采用他们熟悉的 语言进行编程。 2)工程的规模 3)软件的运行环境 4)可以得到的软件开发工具
16
(3)语句的构造及书写 语句是构成程序的基本单位,语句的构造方式和书 写格式对程序的可读性具有非常重要的决定作用。 在一行内只写一条语句,并且采取适当的移行格式, 使程序的逻辑和功能变得更加明确。 程序编写首先应当考虑清晰性,不要刻意追求技巧 性,使程序编写得过于紧凑。
17
(4)输入/输出 由于输入和输出是用户与程序之间传递信息的渠道, 因此输入、输出的方式往往是用户衡量程序好坏的重要 指标。为了使程序的输入、输出能便于用户的使用,在 编写程序时应对输入和输出的设计格外注意。 1)输入 2)输出
23
良好的编码风格,应该以结构程序设计的原则为指 导,使用单输入口和单输出口的控制结构。倡导源程序 代码的文档化,程序内部良好的文档资料,有规律的数 据说明格式,简单清晰的语句构造和输入输出格式等, 都对程序的可读性有很大作用,也在相当大的程度上改 进了程序的可维护性。程序的输入输出应该充分考虑运 行工程学的要求,在满足数据可靠性的前提下,尽量做 到对用户友善。
19
(1)用于提高运行速度的指导原则 ①编写程序之前,先对需要使用的算术表达式和逻 辑表达式进行化简。 ②尽可能多地采用执行时间短的算术运算。 ③尽量避免使用多维数组、指针和其他复杂的数据 类型。 ④尽量采用整型算术表达式和布尔表达式。 ⑤尽可能减少循环体,特别是内循环中语句的个数。 ⑥尽量使同一表达式中的数据类型保持统一。 ⑦应当对所有的输入和输出安排适当的缓冲区,以 减少频繁通信所带来的额外开销。
软件工程 第6章 软件实现

软件工程第6章软件实现在软件工程中,软件实现是将软件设计转化为实际可运行的软件产品的过程。
这一阶段就像是建筑师根据设计图纸把大楼一砖一瓦地建造起来,是从抽象到具体、从概念到实物的关键步骤。
软件实现首先要选择合适的编程语言。
不同的编程语言有着各自的特点和适用场景。
例如,C 和 C++语言在系统编程、性能要求极高的应用中表现出色;Java 则广泛应用于企业级应用开发;Python 在数据科学、人工智能领域备受青睐;而 JavaScript 则在 Web 开发中占据重要地位。
选择编程语言时,需要考虑项目的需求、开发团队的技术栈、性能要求以及可维护性等因素。
在代码编写过程中,遵循良好的编程规范至关重要。
这包括清晰的变量和函数命名、合理的代码结构、适当的注释等。
良好的命名能够让其他人快速理解代码的功能和用途;合理的代码结构有助于提高代码的可读性和可维护性;而适当的注释则可以解释代码的意图和逻辑,方便后续的开发者理解和修改。
代码的复用也是提高开发效率和软件质量的重要手段。
可以通过使用现有的库和框架,或者在项目内部提取可复用的模块和函数来实现。
这样不仅能够减少重复劳动,还能够提高代码的一致性和可靠性。
在软件实现过程中,测试驱动开发(TDD)是一种被广泛认可的开发方法。
它强调先编写测试用例,然后再编写实现代码,以确保代码能够满足预期的功能。
通过不断地运行测试用例,可以及时发现并修复代码中的错误,从而提高软件的质量。
同时,版本控制系统也是必不可少的工具。
它可以记录代码的修改历史,方便开发者进行代码的回溯和比较。
当多人协作开发时,版本控制系统能够有效地管理代码的合并和冲突解决,确保团队的工作能够顺利进行。
除了编写代码,软件实现还包括对代码的优化。
优化可以从多个方面进行,比如算法的优化、数据结构的选择、内存的使用等。
但需要注意的是,优化应该在确保代码正确性和可读性的基础上进行,不能为了追求性能而牺牲代码的可维护性。
另外,软件的安全性也是不能忽视的一个方面。
软件工程实践与软件应用教程

需求获取与分析
需求获取的方法与 工具
用户访谈 问卷调查 头脑风暴
需 求 分 析 的 流 程 与 需求文档的编写与管
技术
理
需求识别 需求分类
需求确认
用例文档 需求规格说明书
变更管理
数据库设计与优化
数据库设计的重要 性
数据结构设计 数据表设计 数据关系设计
数据库模型的选择
数据库性能优化方法
关系型数据库模型 非关系型数据库模型
的建议和展望也是必不可少的。
谢谢观看!
采用分支策略管理代码
软件发布与更新策略
制定发布计划和回滚策略
版本管理与发布
总结
软件开发与测试是软件工程中至关重要的环 节,通过编码规范、调试技巧、自动化测试、 质量保证与控制、版本管理与发布等一系列 流程,可以有效提高软件质量和开发效率,
保证项目顺利进行。
● 05
第五章 软件部署与运维
环境配置与部署
团队文化、技术分享
流程优化
自动化、效率提升
工作改进
持续学习、技能提升
运维最佳实践
故障排查与处理流程
在软件部署与运维中,故障排查与处理流程 是运维团队必备技能。故障排查的关键是快 速定位问题,并采取有效的解决方案。处理 流程包括实时监控、日志分析、故障记录等。 故障处理的及时性和准确性直接影响系统稳
在软件部署与运维中,环境配置是至关重要的一 环。环境配置的要点包括环境变量设置、依赖库 安装等。应用部署的流程包括打包应用、上传至 服务器、解压部署等步骤。此外,部署自动化工
具的使用可以提高效率,减少人为错误。
运维监控与故障处理
运维监控系统
搭建步骤
性能优化
策略建议
软件工程原理与实践

需求工程师角色
沟通技能
与团队和客户有效沟通 理解需求背后的真正意图
分析技能
深入分析需求细节 理清需求之间的逻辑关系
建模技能
使用工具建模需求结构 清晰呈现需求架构
文档编写技能
撰写清晰、准确的需求文档 确保需求沟通无障碍
需求获取
调研用户需求
深入了解用户的需 求和期望
访谈用户
直接与用户沟通, 收集真实反馈
化,快速响应市场需求。
MORE>>
DevOps
持续集成
CI/CD流程
自动化部署
脚本自动化
持续交付
快速部署
监控与反馈
实时监控反馈
软件安全
SQL注入
数据库攻击
XSS攻击
跨站脚本攻击
CSRF攻击
跨站请求伪造
软件项目管理
范特勒模型
需求分析 设计 编码 测试 维护
卡内基模型
计划 组织 领导 控制
时间管理
未来软件工程发展的挑战。
软件工程发展趋势比较
人工智能
智能化应用 自动化测试
云计算
弹性扩展 数据存储
物联网
传感器技术 远程监控
区块链
去中心化 安全性保障
软件工程未来展望
软件工程作为一门重要的技术学科,将继 续在信息化社会中发挥重要作用。未来, 随着人工智能、大数据、物联网等新技术 的不断渗透,软件工程将面临更多挑战和 机遇。我们需要不断学习和适应,以迎接
改善质量
增强软件稳定性和 功能性
降低成本
减少项目变更和维 护成本
提升可维护性
便于后续升级和维 护
软件工程的发展历程
软件危机时期
《软件工程与实践》课件

瀑布模型是一种传统的软件开发模型,它将软件开发过程 划分为一系列顺序的阶段,每个阶段都有明确的任务和输 出。从需求分析、设计、编码、测试到维护,每个阶段都 有严格的输入和输出要求,以保证开发过程的顺利进行。
总结词
强调文档和计划
详细描述
瀑布模型注重文档的编写和计划的制定,要求在每个阶段 开始之前就完成上一阶段的文档和计划,以确保每个阶段 的顺利进行。
测试驱动开发(TDD)
01
单元测试
编写单元测试用例,对每个模块进 行测试。
系统测试
对整个系统进行测试,确保满足需 求和性能要求。
03
02
集成测试
对模块间的集成进行测试,确保模 块间协同工作。
测试用例管理
建立测试用例库,对测试用例进行 维护和跟踪。
04
持续集成与持续部署(CI/CD)
代码审查
对代码进行审查,确保代码质量。
部署与维护
软件部署
将软件安装到目标环境中,并 进行配置和优化。
软件维护
对软件进行故障排除、功能扩 展和性能优化等维护工作。
软件升级与版本控制
根据用户反馈和需求变化,对 软件进行升级和维护。
软件文档编写
编写软件使用手册、安装指南 等技术文档,方便用户使用和
维护。
03
软件开发模型
瀑布模型
总结词
一种线性的软件开发模型
软件审计
软件审计是对软件产品或项目的合规性、安全性、可靠性和 性能等方面进行的审查。审计可以发现潜在的问题和风险, 并提供改进建议和解决方案。
05
软件开发工具与技术
版本控制工具
版本控制工具
用于管理代码的版本,记录每次
修改的内容和历史,方便团队成
软件工程——理论与实践(第3版)

教学资源
《软件工程——理论与实践(第3版)》配有微软软件工程精品课程、中英文版本的软件工程网络课件、在线 自测、案例分析等多媒体网络教学资源。
《软件工程——理论与实践(第3版)》配有Abook数字课程,该课程包括电子教案与案例、内容的讲解视频、 习题参考解答等辅助教学内容。
教材特色
该教材的特色是注重理论与实践相结合,在系统介绍软件工程基本理论的同时,不仅提供软件开发案例和建 模技术,还引入了“Learning by doing”这一行之有效的教学理念,开设与课堂教学同步进行的综合性、设计 型的软件工程课程设计,让学生在软件项目的开发实践中学习、深化、应用软件工程理论。
作者简介
பைடு நூலகம்
许家珆,电子科技大学教授。 白忠建,男,硕士研究生,讲师,中国**党员,2007年10月被任命为电子科技大学成都学院计算机系任系主 任兼党总支书记并工作至今。长期从事教学和科研工作,主要研究方向为数字媒体技术和软件工程。 吴磊,男,电子科技大学数学科学学院副教授、博士生导师。
谢谢观看
软件工程——理论与实践(第3版)
2017年高等教育出版社出版的图书
软件工程与实践第三版课件第6章 软件编程实现
(3) 类库和开发环境。综合3个因素:语言、开发环境 和类库,共同决定可重用性。
(4) 适应发展趋势,未来仍处主导地位,不会很快被淘汰. (5) 性能等其他方面的因素。
6.2 软件编程语言和技术方法
6.1 软件编程实现概述
6.1.2 软件实现的准则
1.面向对象实现的准则
实现的准则主要包括:
(1)高可重用性。 (2)高可扩充性。
又称鲁棒性指软件对 规范要求以外的输入
(3)高可靠性及健壮性。 情况的处理能力。
2.其他软件实现方法的准则
其他软件实现主要遵循5个准则:
(1)精简编程。
(2)便于验证。
(6)从应用特点分,高级语言又可分为基础语言、现代 语言和专用语言3类。 ① 基础语言。是通用语言,其特点是出现早且应用较广。 ② 现代语言。也称结构化语言。 ③ 专用语言。是为某种特殊应用设计的独特语言。 (7)从语言的内在特点分,高级语言还可分为4类。 ① 系统实现语言。从汇编语言发展改进而来。如C语言。 ② 静态高级语言。如FORTRAN等。 ③ 块结构高级语言。用于提供有限形式的动态存储分配, 存储管理系统支持程序运行,如PASCAL和ALGOL。 ④ 动态高级语言。特点是动态地完成所有存储管理,即执 行个别语句可能引起分配存储或释放存储。一般为特殊应 用而设计,不属于通用语言。
1讨论思考:
(1)什么是软件实现?软件实现的过程是什么? (2)通常软件实现主要遵循原则有哪几个? (3)软件实现策略有那些?举例说明。
6.2 软件编程语言和技术方法
6.2.1 软件编程语言概述
1.软件编程语言的概念
软件工程与实践第6章
6.1 6.2 6.3 6.4 6.5 6.6
结构程序设计 人机界面设计 过程设计的工具 面向数据结构的设计方法 程序复杂程度的定量度量 小结
详细设计阶段的根本目标是确定应该怎样具体地实 现所要求的系统。 详细设计阶段的任务还不是具体地编写程序,而是 要设计出程序的“蓝图”,以后程序员将根据这个 蓝图写出实际的程序代码。 详细设计的目标不仅仅是逻辑上正确地实现每个模 块的功能,更重要的是设计出的处理过程应该尽可 能简明易懂。 结构程序设计技术是详细设计的逻辑基础。
6.2.3 人机界面设计指南
用户界面设计主要依靠设计者的经验,总结众多设 计者的经验得出的设计指南,有助于设计者设计出 友好、高效的人机界面。下面介绍3类人机界面设 计指南。 1. 一般交互指南 一般交互指南涉及信息显示、数据输入和系统整体 控制,因此,这类指南是全局性的,忽略它们将承 担N-ELSE型分支和 DO-WHILE型循环这3种基本控制结构,则称为经 典的结构程序设计;如果除了上述3种基本控制结 构之外,还允许使用DO-CASE型多分支结构和 DO-UNTIL型循环结构,则称为扩展的结构程序设 计;如果再加上允许使用LEAVE(或BREAK)结构, 则称为修正的结构程序设计。
6.3.6 过程设计语言
过程设计语言(PDL)也称为伪码,它是用正文形 式表示数据和处理过程的设计工具。 PDL应该具有下述特点: (1) 关键字的固定语法,它提供了结构化控制结构、 数据说明和模块化的特点。 (2) 自然语言的自由语法,它描述处理特点。 (3) 数据说明的手段。应该既包括简单的数据结构 (例如纯量和数组),又包括复杂的数据结构(例如, 链表或层次的数据结构)。 (4) 模块定义和调用的技术,应该提供各种接口描 述模式。
全套电子课件:软件工程-理论与实践(第3版)
程”,是软件开发和维护中的管理和
1.第一代软件工程 支—持传能力统,的逐软步件形工成程软件过程工程。
2.第二代软件工程 — 对象工程
3.第三代软件工程 — 过程工程
4.第四代软件工程 — 构件工程
90起年代,基于构件(Component)
螺旋模型将开发过程 分为几个螺旋周期,每 个螺旋周期可分为4个工 作步骤: 第一,确定目标、方案 和限制条件; 第二,评估方案、标识 风险和解决风险; 第三,开发确认产品; 第四,计划下一周期工 作。
6.智能模型(intelligent model)
也称为基于知识的软件开发模型,是知识工程 与软件工程相结合的软件开发模型。
软件工程是一门新兴的边缘学科,涉及的学科多, 研究的范围广,研究的主要内容有以下几方面:
软件开发方法、技术 软件开发工具及环境 软件管理技术 软件规范(国际规范)
} 软件开发技术 } 软件管理技术
1.2 软件工程过程
为了克服软件危机,人们从其他产业的工业 化生产得到启示,于是在68年北大西洋公约的软 件可靠性会议(NATO)上,首次提出了“软件工 程”的概念。提出了在软件生产中采用工程化的 方法,采用一系列科学的、现代化的方法技术来 开发软件。这种工程化的思想贯穿到软件开发和 维护的全过程。
2. 增量模型(incremental model)
增量模型是一种非整体开发的模型。是一种进 化式的开发过程。
根据增量的方式和形式的不同,分为: 基于瀑布模型的渐增模型 基于原型的快速原型模型 该模型具有较大的灵活性,适合于软件需求不 明确、设计方案有一定风险的软件项目。
增量模型和瀑布模型之间的本质区别是什么?
软件工程导论PPT课件-第6章-实现
将从以下几方面来说明编码风格:程序内部文 档、语句的构造及书写、输入/输出、效率 。
6.3 编码风格
6.3.1 程序内部文档
说明性注释信息
包括标识符的选取、增加注解和好的程序布局。
6.3 编码风格
输入设计:
(1) 输入方式力求简单,避免给用户带来不必要的麻烦。如: 尽可能采用简单的输入格式、尽可能减少用户的输入量。
(2) 交互式输入数据时应有必要的提示信息。 (3) 程序应对输入数据的合法性进行检查。 (4) 若用户输入某些数据后可能会产生严重后果,应给用户
输出必要的提示并在必要的时候要求用户确认。 (5) 当需要输入一批数据时,不要以记数方式控制数据的输
Tom J. McCabe McCabe & Associates 公 司创始人、CEO及董事会 主席、McCabe 圈复杂度 的始创者。
6.4 程序复杂度度量 6.4.1 McCabe方法
环形复杂度:根据程序控制流的复杂程度定量度 量程序的复杂程度,可得到环形复杂度。
流图: 也称“程序图”,即“退化了的”程序 流程图,仅描绘程序的控制流图,不表现对数据 的操作及分支或循环条件。
在书写语句时,应通过采用递缩式格式使程序的 层次更加清晰。
在模块之间通过加入空行进行分隔。 为了便于区分程序中的注释,最好在注释段的周
围加上边框。
6.3 编码风格
6.3.3输入/输出
输入、输出的方式往往是用户衡量程序好坏 的重要指标。为了使程序的输入、输出能便于用 户的使用,在编写程序时应对输入和输出的设计 格外注意。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.2 软件编程语言和技术方法
案例6-2
TIOBE:2017年6月公布的全球编程语言 排行榜。2017年最流行的前十大编程语言及实际应用 比重排序情况。如表6-1。
6.2 软件编程语言和技术方法
*常用编程语言具有其各自的特点: (1) Java语言。 (2) C语言。 (3) C++语言。 (4) Python语言。 (5) C#语言。 (6) Visual 语言。 (7) JavaScript语言。 (8) PHP语言。 (9) Perl语言。 (10) Assembly language 。计算机/手机、微处理器
(3)β版本。能够稳定运行的软件,可交付给终端用户进行测试。是经过 多个α版本的完整测试,确认没有问题后产生的,β版本提交给直接用户在实际 工作中进行测试和检验,一般需要几个月的测试时间。
(4)发布版本。正式向社会发布或向用户提交使用的软件产品。 (5)维护版本。对发布的版本进行错误纠正,及功能或性能改进的版本。
6.2 软件编程语言和技术方法
6.2.2 软件编程语言的选择
1. 选择软件编程语言的准则 选择软件程序语言考虑因素和准则6个方面: (1)适合软件应用领域。 (2)软件开发人员熟悉。 (3)利于软件运行环境。 (4)有助于性能实现。 (5)算法和计算复杂性简便。 (6)数据结构的复杂性低。
6.2 软件编程语言和技术方法
6.2 软件编程语言和技术方法
3 . OOP方法 1) OOP设计思想 为了解决面向过程程序设计中存在的功能与数据分离而 引起的程序复杂性问题而设计的。与SP相比,更易于实现对 现实世界的描述。通过对象机制封装处理与数据,以控制程 序的复杂度,通过继承提高程序可重用性和软件开发效率。 2) OOL OOL是以对象作为基本程序结构单位的程序设计语言, 用于描述的设计是以对象为核心,对象是程序运行时的基本 成分。语言中提供了类、封装、继承、消息等机制。 OOL描述客观系统较为自然,便于软件扩充与复用。4个 主要特点:①识认性、②类别性、③多态性、④继承性。
可以为企业快速打造WebAPP应用平台,实现更便捷研发。
6.1.1 软件实现的主要任务及过程
1. 软件实现的概念和目标
具体实施完成的过程
软件实现是通过编码、调试、集成和测试,完成软件
产品的过程。主要目的是按照软件需求分析和详细设计的
要求,选择合适的技术路线和编程语言及工具,遵照程序
设计规范的开发过程和方法,实现目标系统的功能、性能、
(4)第四代语言。超高级编程语言(4GL), 不再涉及很多算法性细
节.具有3个特征:强大数据管理能力,可对数据库有效存取、查询等操作; 提供高效、非过程化命令,组成语言基本语句;可满足多功能一体化要求
用来快速开发连接数据库的编程语言。如PowerBuilder、SQL等。Biblioteka 6.2 软件编程语言和技术方法
6.1 软件编程实现概述
在微观上,软件实现是指 通过编程、调试、单元与集成 测试、系统集成等创建软件产 品的过程。软件实现是在软件 设计基础上进行的,其本身也 涉及到设计和测试工作。软件 实现的输入是“软件详细设计 文档”,输出是源程序、目标 程序和用户手册.如图6-1所示。
用户手册
图6-1软件实现过程
(3)适合更新扩充。
(4)遵守编程规范。
(5)选择熟悉的语言及工具。
6.1 软件编程实现概述
6.1.3 软件实现策略和有效管理
1.软件实现的策略 开发策略主要有3种: (1)OOP开发策略。 (2)自顶向下策略。 (3)自底向上策略。
2.软件实现的有效管理 为了确保工期、提高开发效率,需要对人力资源进行有 效组织。最好将程序员组成开发小组, 以团队承担编程工 作。小组组成具有平等协作制、组长负责制和技能互补 制三种形式。开发管理人员,对项目开发的进度和工作 安排都必须有详细计划,出现软件危机最主要的两个因 素就是开发成本难控制和开发计划难落实。
3. 软件编程语言的分类 编程语言种类很多,可从不同角度分类。 (1)从语言层次方面,可分为面向机器的语言和面向 问题的语言两大类。 (2)从语言适用性方面,可分为通用语言和专用语言 两类。 (3)从语言面向方面,可分为面向过程语言和OOL两 类。 (4)从应用领域,可分为科学计算、数据处理、实时 处理和人工智能等语言
重点
小组交流:软件需求分析、软件总体设计(结合选题)
4.25(周二) 软件详细设计、软件实现 (任务-过程-技术-方法)
6.1 软件编程实现概述
案例6-1 随着移动互联网快速发展,用户广泛且信息量丰富,
内容多元化,快捷方便成为手机WebAPP的优势。将企业相关图文信 息按模块组织集成,快速生成手机WebApp.手机用户下载安装WebApp 软件后即可进行浏览查看该图文信息,如产品分类展示、技术成果、 营销及互动展示、评价投票、发布等基本功能,企业还可以根据自 身需要对展示内容进行更新,方便用户查看。企业版手机客户端还
① 重复代码。 ② 函数过长。 ③ 循环过长/嵌套过深。 ④ 类的内聚性差。 ⑤ 方法传递过多参数。
(3) 类库和开发环境。综合3个因素:语言、开发环境 和类库,共同决定可重用性。
(4) 适应发展趋势,未来仍处主导地位,不会很快被淘汰. (5) 性能等其他方面的因素。
6.2 软件编程语言和技术方法
6.2 软件编程语言和技术方法
(5)从语言级别上,分为低级语言和高级语言。如图62为其分类图。从应用特点分,高级语言又可分为基础语言、 现代语言和专用语言3类。从语言的内在特点分,高级语言 还可分为系统实现语言、静态高级语言、块结构高级语言 和动态高级语言等4类。
图6-2 高级语言分类图
6.2 软件编程语言和技术方法
6.1 软件编程实现概述
3. 软件实现的过程和目标 软件实现是按照“软件详细设计文档”要求,在开 发平台下,以指定的开发工具和开发语言,遵循特定的 程序设计方法,编写目标程序的过程。软件实现包括编 程和单元测试。 在宏观上,软件实现的目标是:遵照程序设计规范, 按照“软件详细设计文档”中对数据结构、算法分析和 模块实现等方面的要求和说明,从研发机构的函数库、 存储过程库、类库、构件库、中间件库中挑选有关的部 件,采用OOL,将相关部件进行组装,最终实现新系统的功 能、性能、接口、界面等要求。
( 第3版 )
第6章 软件编程实现
目录
1 6.1 软件编程实现基础 2 6.2 编程语言和技术方法 3 6.3 常用编程工具与环境 4 6.4常用编程工具与环境 5 6.5软件实现的文档 6 6.6实验六 应用软件编程实现 7 6.7本章小结
第6章 软件实现
教学目标
● 理解软件实现的任务、过程、准则和策略 重点 ● 掌握软件编程语言、技术方法、标准和规范 ● 熟练手机WebAPP开发技术应用及软件生成 技术 ●理解软件实现工具的应用和文档编写方法
2. 软件编程语言的发展
(1)第一代语言.机器语言无需编译和转换就能被 CPU 直接使用。 (2)第二代语言。汇编语言。 (3)第三代语言。具有直接支持结构化构件,并具有很强的过程
能力和数据结构能力特点的结构化与现代程序语言。分为三类:通用 高级语言、面向对象的语言和专用语言。结构化程序语言Turbo C,面 向对象的语言有C++、Java、Delphi等。
6.2 软件编程语言和技术方法
6.2.3 常用软件编程方法
1.利用模块化编程 模块化程序设计思想是在进行程序设计时,将一个大 程序按照功能划分为若干小程序模块,每个小程序模块完 成一个确定功能,在这些模块之间建立必要的联系,通过 模块的互相协作完成整个功能。 2.结构化编程方法 结构化编程(Structured Programming,SP)是以模 块功能和处理过程设计为主的详细设计过程。是软件发展 的一个重要里程碑。主要特点: (1)自顶而下,逐步求精。 (2)结构化的程序由且仅由顺序、选择、循环三种基 本控制结构组成,既保证了程序结构清晰,又提高了程序 代码的可重用性。
6.1 软件编程实现概述
5.软件版本管理与控制
软件一般具有中间版本、α版本、β版本、发布版本和维护版 本等,以不同标号标识。
(1)中间版本。软件未完成前且未进行正式测试的版本。一个软件可能会 有多个中间版本,记录不同时间、不同人员开发的软件程序。
(2)α版本。是软件未完成但可以提交进行严格测试的软件版本。生存周 期通常只有几天或几周。
6.1 软件编程实现概述
6.1.2 软件实现的准则
1.面向对象实现的准则
实现的准则主要包括:
(1)高可重用性。 (2)高可扩充性。
又称鲁棒性指软件对 规范要求以外的输入
(3)高可靠性及健壮性。 情况的处理能力。
2.其他软件实现方法的准则
其他软件实现主要遵循5个准则:
(1)精简编程。
(2)便于验证。
4.选取编程语言的标准
选取程序设计语言标准,主要有两大方面: 1)理想化标准:主要体现在3个“有利于”: (1) 有利于实现的优质高效。 (2) 有利于实现功能性能及可靠性。 (3) 有利于降低软件开发及维护成本。 2)实用性标准
选取程序语言不仅限于理论标准,应兼顾实用要求。 (1) 程序语言自身特性。 (2) 软件的应用领域。 (3) 编程人员的熟悉情况。 (4) 软件开发方法。根据其特点应考虑3个方面: ① 语言的发展前景;② 类库的可扩展性; ③ 开发环境。 (5) 软件开发/运行环境。 (6) 算法和数据结构的复杂性。 (7) 软件可移植性要求。
(6)从应用特点分,高级语言又可分为基础语言、现代 语言和专用语言3类。 ① 基础语言。是通用语言,其特点是出现早且应用较广。 ② 现代语言。也称结构化语言。 ③ 专用语言。是为某种特殊应用设计的独特语言。 (7)从语言的内在特点分,高级语言还可分为4类。 ① 系统实现语言。从汇编语言发展改进而来。如C语言。 ② 静态高级语言。如FORTRAN等。 ③ 块结构高级语言。用于提供有限形式的动态存储分配, 存储管理系统支持程序运行,如PASCAL和ALGOL。 ④ 动态高级语言。特点是动态地完成所有存储管理,即执 行个别语句可能引起分配存储或释放存储。一般为特殊应 用而设计,不属于通用语言。