




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
5.1软件开发技术5.2软件工程基础5.3程序设计基础5.4算法
5.1.1软件技术的重要思想
1.软件开发技术
2.软件开发方法中的重要思想
5.1软件开发技术5.1.2软件技术的发展及趋势
软件开发设计是人的智力的高度发挥,不是传统意义上的硬件制造。
1.软件技术的发展过程
迄今为止,计算机软件开发技术经历了结构化程序设计、面向对象设计方法、软件工程、软件组件(即插即用)设计和网构软件等方法的演变,如图5-1所示。图5-1软件开发技术的发展
2.软件开发技术的发展趋势
(1)自动化程度的提高。
(2)把需求分析包括到软件工作的范围内,使软件开发过程进一步向用户方面延伸,离用户更近了,避免了以往“你出算法,我编程序”的做法所带来的种种问题。
(3)把软件开发工作延伸到项目管理和版本管理,把软件开发从一次编程扩展到全过程,这是软件研制从个体的、手工作坊的方式向科学的、有组织的方式转变的重要表现。
(4)研究吸收了许多管理科学的内容和方法,如开发人员的组织、质量的控制、开发过程的协调等,这一变化把软件开发项目负责人的思想和方法摆在了更重要的位置,这是符合软件规模越来越大、软件开发工作越来越依赖组织与管理的发展趋势的。5.1.3软件开发方法
软件研究人员在不断探索新的软件开发方法,至今已形成了八类软件开发方法。
1.Parnas方法
2.SASD方法(结构化方法)
3.Jackson方法(面向数据结构的软件开发方法)
4.面向问题的分析法
5.面向对象的软件开发方法
6.可视化开发方法
7.ICASE方法
8.软件重用和组件连接
5.1.4软件开发过程
1.可行性讨论阶段
2.需求分析阶段
3.系统设计阶段
4.程序开发阶段
5.软件测试阶段
6.文档资料描述阶段
7.系统的运行与维护阶段
5.2.1软件工程的基本概念
1.软件工程的定义
2.软件工程的核心思想及内容
3.软件工程的基本目标与原则
5.2软件工程基础5.2.2软件工程的基本原理
1.用生命周期计划严格管理
2.坚持进行阶段评审
3.产品一致性控制
4.采用最新的软件设计技术
5.清楚地审查软件产品
6.人员应该少而精
7.不断改进软件工程实践的必要性
5.2.3软件工程过程与软件生命周期
1.软件工程过程
2.软件生命周期(SoftwareLifeCycle)
大体可分为三个时期(如图5-2所示):软件定义时期、软件开发时期和软件维护时期,各阶段的任务及产生的相应文档如表5-1所示。图5-2软件生命周期表5-1软件生命周期各阶段的任务5.2.4瀑布模型
1970年温斯顿·罗伊斯(WinstonRoyce)提出了著名的“瀑布模型(WaterfallModel)”,它是最早出现的软件开发模型,在软件工程中占有重要的地位。
瀑布模型将软件生命周期划分为制订计划、需求分析、软件设计、程序编写、软件测试和运行维护等6个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落,如图5-3所示。图5-3瀑布模型5.3.1程序设计语言
1.程序设计语言的演变
1)机器语言
2)汇编语言
3)高级语言
4)第四代语言
5.3程序设计基础2.常用程序设计语言
3.语言处理程序
1)汇编程序
2)解释程序
3)编译程序
5.3.2程序设计的基本知识
1.计算机程序
2.计算机执行程序
3.程序流程图
1)流程图的特点
2)流程图的种类
3)流程图的基本符号
可以采用中国国家标准局批准的GB1525-89中规定的常用标准符号,也可以用NS图的规则表示。传统流程图的部分基本符号如图5-4所示。图5-4部分流程图符号5.3.3程序设计的过程
1.程序的设计过程
2.程序的编制过程
语言处理程序包括编译程序、解释程序、汇编程序等。程序的编制过程如图5-5所示。
3.程序的设计风格
图5-5程序的编制过程5.3.4程序设计的方法
1.结构化程序设计
1)结构化程序设计的原则
2)结构化程序的基本结构与特点
其流程如图5-6所示,即执行完A框内的操作后,必然接着执行B框内的操作。
图5-6顺序结构
(2)选择结构。其流程图如图5-7所示,即根据条件P,若成立,执行A框内的操作,若不成立,则执行B框内的操作。
(3)重复结构。其流程图如图5-8所示,即判断条件P,若成立,执行A框内的操作,执行完A框的操作,再判断条件P是否成立,若成立,再执行A框内的操作,如此反复执行A框,直到P条件不成立时不执行A框内的操作,跳出循环。图5-7选择结构
图5-8重复结构
3)程序的扩展结构
程序的扩展结构可以统称为子程序,在不同的程序设计语言中也称为过程、函数或组件。
用流程图描述程序的结构,如图5-9所示。图5-9程序的结构2.面向对象的程序设计
1)面向对象的程序设计简介
2)面向对象程序设计的基本概念
3)面向对象程序设计的主要特征
4)面向对象程序设计的过程5.4.1算法的定义
1.算法的概念
2.算法的要素和内容
3.算法的特性
4.算法的正确性判定
5.4算法5.4.2算法的描述
算法可采用任何形式的语言或符号来描述,通常有自然语言、图形等多种方法。
1.自然语言
2.图形
1)传统流程图
其含义如图5-10所示。图5-10传统流程图的常用符号
(1)陈述问题和需求分析:该问题明确,输入任意两个数,输出两数中较大的数。
(2)确定算法:根据两个数的比较结果决定程序的输出结果。用传统流程图描述算法如图5-11所示。这是一个选择结构算法。按照条件比较结果,选择某个分支执行。图5-11用传统流程图描述算法
2)盒图
盒图是取代传统流程图的一种描述方式,它是由IkeNassi和BenShneiderman于1973年提出的,也称NS图。NS图以结构化程序设计(StructureProgramming,SP)方法为基础,仅含有图5-12的5种基本成分,它们分别表示SP方法的几种标准控制结构。图5-12NS图的几种标准控制结构用NS图作为详细设计的描述手段时,常用两个盒子:数据盒和过程盒,前者描述有关的数据,包括全程数据、局部数据和模块界面上的参数等,后者描述执行过程,如图5-13所示。图5-13数据盒和过程盒
(1)陈述问题和需求分析:输入30个学生成绩数据,输出它们的平均值。
(2)确定算法:首先30个学生成绩数据需要求和,然后用和值除以30取平均值。
使用NS流程图描述解决该问题的循环结构算法如图5-14所示。图5-14例5-3算法
5.4.3算法的复杂度
算法的复杂度是算法效率的度量,在评价算法性能时,复杂度是一个重要的依据。算法复杂度的程度与运行该算法所需要的计算机资源的多少有关。
1)时间复杂度
2)空间复杂度5.4.4算法设计与分析的基本方法
1.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 统编版语文六年级下册习作《写作品梗概》精美课件
- 牛饲养与饲料配方优化考核试卷
- 那首歌初三语文作文
- 碳排放核查法律问题考核试卷
- 亚麻籽种植园灾害预防与应对措施考核试卷
- 介绍一种蔬菜初二语文作文
- 牧业机械化饲料作物种植与收获考核试卷
- 生物质资源调查与评价方法研究考核试卷
- 生物细胞工程与生物医药考核试卷
- 真空电子器件的纳米加工技术与应用考核试卷
- 2025商业综合体委托经营管理合同书
- 人工智能导论课件 第十三章 类脑智能
- 河北单招时政试题及答案
- 2024-2025班主任的培训心得体会(29篇)
- 实验14 探究液体内部压强的特点-中考物理必考实验专项复习
- 7 请到我的家乡来(第一课时)(教学设计)统编版道德与法治三年级下册
- 护理不良事件案例分析及警示
- B超健康知识讲座课件
- 煤炭仓储协议合同
- 政 治薪火相传的传统美德 教案-2024-2025学年统编版道德与法治七年级下册
- 2025-2030中国脑芯片模型行业市场发展趋势与前景展望战略研究报告
评论
0/150
提交评论