版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十章算法及软件工程基本概念10.1算法基本概念10.2软件工程基本概念110.1算法基本概念10.1.1算法概述
程序:计算机为完成某一任务所必须执行的一系列指令的集合。
算法:主要描述问题的每个对象(数据结构)和对这些对象做处理的步骤
。
程序=算法+数据结构210.1算法基本概念
算法(Algorithm)是一系列解决问题的清晰步骤。 算法分为数值计算算法和非数值计算算法。数值算法非数值算法目的求数值解数据处理特点少量的输入、输出复杂的运算大量的输入、输出简单的运算举例求高次方程的根求函数的定积分对数据排序、查找310.1算法基本概念 算法通常由两个基本要素组成:(1)对数据对象进行的运算和操作;(2)算法的控制结构;
例如:求sum=
算法:输入个数n置累加器sumSum=(1+n)*n/2;显示sum
410.1算法基本概念 算法的特点:有穷性可行性确定性零个或多个输入一个或多个输出510.1算法基本概念10.1.2算法的描述
常用的方法:自然语言、传统流程图、N-S流程图、伪代码和计算机语言等。
1.自然语言 通俗易懂,但容易产生歧义,语句冗长繁琐,不利于描述复杂的算法610.1算法基本概念
2.传统流程图 用标准的图形元素即文字说明来描述算法步骤。710.1算法基本概念
开始输入n0sum1ii<=ni+sumsumi+1i输出sum结束是否810.1算法基本概念
3.N-S流程图(盒图)
去掉了传统流程图中带箭头的流程线。非常适合结构化程序设计的描述。910.1算法基本概念
输入n1ii<=ni+sumsumi+1i输出sum0sum1010.1算法基本概念
4.伪代码法
begin
输入n的值
0=>sum 1=>i whilei<=n {
sum+i=>sum i+1=>I }
printfsum end1110.1算法基本概念
5.计算机语言
最终的算法实现都要使用计算机语言编写对应的程序。一般使用高级语言编写源程序,然后经过编译或解释成机器语言程序(目标程序)。
不同的程序设计语言有自己的语法,在学习的过程中要多理解。
1210.2软件工程基本概念10.2.1软件定义和软件特点
软件(software)是包括程序、数据及相关文档的完整集合。1310.2软件工程基本概念
软件特点: ①是一种逻辑实体,不是物理实体,具有抽象性。 ②软件生产和硬件不同,没有明显的制作过程。 ③软件在运行、使用期间不存在磨损、老化问题。 ④软件的开发、运行对计算机系统具有依赖性。 ⑤软件复杂性高,成本昂贵。 ⑥软件开发设计诸多的社会因素。
1410.2软件工程基本概念10.2.2软件危机和软件工程
软件工程(SoftwareEngineering)概念的出现源于软件危机。 软件危机泛指在计算机软件的开发和维护的过程中所遇到的一系列严重问题,包括: ①软件需求的增长得不到满足; ②软件开发成本和进度无法控制; ③软件质量难以保证。1510.2软件工程基本概念 ④软件不可维护或维护程度非常低; ⑤软件的成本不断提高; ⑥软件开发生产率的提高赶不上硬件的发展和应用需求的增长。 为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径,逐渐形成了软件工程的概念。1610.2软件工程基本概念
软件工程:将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。 软件工程包括3个基本要素:方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。1710.2软件工程基本概念10.2.3软件生命周期
软件生命周期分为软件定义、软件开发及软件运行维护三个阶段。1810.2软件工程基本概念10.2.4软件工程的目标与原则
1.软件工程需要达到的基本目标:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发,及时交付使用。 软件工程的理论和技术性研究内容包括:软件开发技术和软件工程管理。1910.2软件工程基本概念
(1)软件开发技术 包括:软件开发方法学、开发过程、开发工具和软件工程环境,其主体内容是软件开发方法学,即根据不同的软件类型,按不同的观点和原则,对软件开发中应遵循的策略、原则、步骤和必须产生的文档资料都作出规定。2010.2软件工程基本概念
(2)软件工程管理 包括:软件管理学、软件工程经济学、软件心理学等内容。是软件按照工程化生产时的重要环节,它要求按照预先制定的计划、进度和预算执行,以实现预期的经济效益和社会效益。
2110.2软件工程基本概念
2.软件工程的原则 ①抽象:采用分层次抽象,自顶向下,逐层细化的办法控制软件开发过程的复杂性。 ②信息隐藏:采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单。 ③模块化:模块是程序中相对独立的成分,一个独立的编程单位,应有良好的接口定义。2210.2软件工程基本概念 ④局部化:在一个物理模块内集中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2022年甘肃省甘南自治州公开招聘警务辅助人员笔试自考题2卷含答案
- 2022年四川省雅安市公开招聘警务辅助人员辅警笔试自考题2卷含答案
- 2022年浙江省湖州市公开招聘警务辅助人员辅警笔试自考题1卷含答案
- 晨会主持发言稿
- 广西梧州市(2024年-2025年小学六年级语文)统编版随堂测试(下学期)试卷及答案
- 2024年姿态控制推力器、推进剂贮箱项目资金需求报告代可行性研究报告
- 《应收款项新》课件
- 《称赞教学》课件
- 2025年毛纺织、染整加工产品项目立项申请报告模范
- 2025年水乳型涂料项目提案报告模范
- 教育理念和教育方法
- 九小场所安全检查表
- 第四代住宅百科知识讲座
- 2022-2023学年佛山市禅城区六年级数学第一学期期末达标测试试题含解析
- 《广联达培训教程》课件
- 扬州育才小学2023-2024六年级数学上册期末复习试卷(一)及答案
- 蔚蓝时代有限公司员工培训现状分析及改进措施研究
- 浙江省温州市2022-2023学年五年级上学期语文期末试卷(含答案)3
- 软件系统实施与质量保障方案
- 2023-2024学年度第一学期四年级数学寒假作业
- UV激光切割机市场需求分析报告
评论
0/150
提交评论