软件技术基础课件_第1页
软件技术基础课件_第2页
软件技术基础课件_第3页
软件技术基础课件_第4页
软件技术基础课件_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件技术基础8.1软件工程基础8.1.1软件工程的基本概念软件的发展过程软件工程的定义软件工程的内容软件工程过程与软件生命周期软件工程的基本目标与原则

软件开发工具与开发环境软件的发展过程软件的发展大致可划分为四个阶段

:程序设计阶段程序系统阶段软件工程阶段(结构化方法)软件工程阶段(面向对象方法)软件工程的定义

软件工程就是采用工程化的原理、技术和方法来开发、运行和维护软件。软件工程包含三个要素:方法(Methodologies)工具(Tools)过程(Procedures)

软件工程的内容

软件工程的主要内容是揭示和分析计算机系统所要求的各种功能,然后将它们分配给系统的各个部分。软件工程过程与软件生命周期

软件工程过程软件工程包括:获取过程、供应过程、开发过程、操作过程、维护过程、管理过程、支持过程

软件生命周期软件生命周期大体可分为三个时期:计划阶段、开发阶段和运行阶段。软件生命周期模型软件过程模型:瀑布模型、快速原型模型、螺旋模型、增量模型、喷泉模型、变换模型、面向对象生存期模型等。瀑布模型瀑布模型——软件工程中应用最广泛的软件过程模型软件测试软件设计需求分析软件维护软件编码软件计划瀑布模型软件工程的基本目标与原则软件工程的目标可概括为:要付出较低的开发成本,达到要求的软件功能,取得较好的软件性能,开发的软件要易于移植、可靠性高,维护费用要较低些,并能按时完成开发工作,及时交付使用。软件工程的原则:分解、抽象和信息隐蔽、一致性、确定性。8.1.2软件开发方法

结构化方法面向对象分析面向对象设计面向对象编程软件测试问题定义和可行性分析面向对象方法的软件开发过程

面向对象的方法结构化分析结构化设计结构化编程软件测试问题定义和可行性分析结构化方法的软件开发过程8.1.3软件测试与维护

软件测试方法可分为静态测试和动态测试两大类

软件测试

大型软件系统的测试基本上分四步进行:单元测试、集成测试、验收测试(确认测试)和系统测试

软件维护

软件维护的内容有四项:校正性维护、适应性维护、完善性维护和预防性维护

8.1.4程序的调试

程序调试就是诊断和纠正程序错误的过程。

程序调试可分为:静态调试、动态调试。8.2程序设计基础8.2.1程序设计语言的发展

机器语言汇编语言高级语言非过程化语言智能性语言8.2.2程序设计的过程和方法

程序设计过程

问题的分析算法的设计流程的描述编写程序调试运行程序程序设计=算法+数据结构+方法+工具

程序设计方法

程序设计有两大类方法,一种是面向过程的结构化程序设计方法,另一种是面向对象的程序设计方法。8.2.3结构化程序设计

结构化程序设计的原则

结构化程序设计的基本原则是:在软件设计和实现过程中,提倡采用自顶向下、逐步细化的模块化程序设计原则

结构化程序的基本结构

结构化程序的基本结构是顺序结构、选择结构和循环结构

程序设计的应用8.2.4面向对象的程序设计

面向对象的程序设计简介面向对象程序设计的基本概念面向对象程序设计的过程面向对象的程序设计简介特点:

它与人们习惯的思维方法一致,便于分析复杂而多变化的问题可重用性好,能用继承的方式减短程序开发所花费的时间易于软件的维护和软件功能的改变它与可视化技术相结合,改善了工作界面面向对象程序设计的基本概念

面向对象(Object-Oriented)

对象(Object)

类(Class)

属性(Property)

消息和方法(MessageandMethod)

封装(Encapsulation)

继承(Inheritance)

多态性(Polymorphism)面向对象程序设计的过程

分析现实世界问题域建立模型(类属性/方法的确定及类之间关系的确定)

编制程序,建立类数据类型(属性、方法)

用类声明对象,通过对象间传递消息(方法调用)完成预定功能8.2.5常用程序设计语言BASIC语言

FORTRAN语言

Pascal语言

C语言

C++语言

Java语言

HTML(超文本标记语言)8.3算法与数据结构8.3.1算法算法的概念算法设计(评价)的准则算法的复杂度算法的概念算法是解决给定问题的一种方法算法的特征:有穷性:执行了有限条指令后一定要终止确定性:算法的每一步操作都必须有确切定义,不 得有任何歧义性有效性:算法的每一步操作都必须是可行的,即每 步操作均能在有限时间内完成输入:一个算法有n(n≥0)个初始数据的输入输出:一个算法有一个或多个与有效信息的输出算法设计(评价)的准则正确性可读性健壮性时空效率8.3.2数据结构的基本概念(1)西文字符的ASCII编码(2)汉字字符的编码数据与数据结构数据的逻辑结构数据的存储结构数据的运算数据与数据结构

数据:是表示信息的物理符号,是信息的载体,它能够被计算机识别、存储和加工处理。数据是描述客观事物的数、字符以及所有能输入到计算机中并被计算机程序加工处理的符号的集合。

数据结构:是指互相之间存在着一种或多种关系的数据元素的集合。数据结构包括数据的逻辑结构和数据的存储结构(或称物理结构)。数据的逻辑结构

只抽象地反映数据元素的结构,而不管其存储方式的数据结构称为数据的逻辑结构。集合结构线性结构树形结构图形结构集合线性树图数据的存储结构

顺序存储结构链式存储结构链式存储结构中结点由两部分组成:一部分存储结点本身的值,称为数据域;另一部分存储该结点的后继结点的存储单元地址,称为指针域。数据域指针域结点的结构数据的运算

常用的几种运算有:插入删除查找替换排序8.3.3线性表

线性表的定义和逻辑特征线性表是具有相同数据类型的n(n≥0)个数据元素的有限集(a1,a2,…,an),每个元素的位置是线性(一维)的。线性表(a1,a2,…,an)的逻辑特征:有且仅有一个开始结点ai(无直接前趋)

有且仅有一个终端结点an(无直接后继)

其余的结点ai(1<i<n)都有且仅有一个直接前趋ai–1和一个直接后继ai+1ai是属于某个数据对象的元素,它可以是一个数字、一个字母或一个记录

线性表的两种结构:

顺序存储结构(顺序表)

非顺序存储结构(链表)8.3.4栈

栈是限制在表的一端进行插入和删除运算的线性表,又称为后进先出的线性表(LIFO表),是一种特殊的线性表。表尾称为栈顶(top),表头叫做栈底(bottom),表中无元素时称为空栈进栈出栈栈顶栈底ana2a1栈结构8.3.5队列

插入在表一端进行,而删除在表的另一端进行,将这种数据结构称为队或队列。

队列的物理存储可以用顺序存储结构,也可以用链式存储结构。队列的基本运算有入队、出队、取队头、判队列空、插入和删除等。a2a1a3an出队列入队列头尾队列的示意8.3.6树与二叉树

树和二叉树的定义二叉树的几个基本性质二叉树的存储

二叉树的遍历树和二叉树的定义

树是由一个或多个结点组成的有限集合。它很像一株倒悬着的树,从树根到大、小枝干、直到叶子,将数据联系起来,这样的数据结构称为树结构(简称为树)。

二叉树是有限个元素的集合,该集合或者为空、或者由一个称为根的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成。当集合为空时,称该二叉树为空二叉树。在二叉树中,一个元素也称作一个结点。二叉树的几个基本性质

性质1:在二叉树第i层上至多有2i–1个结点 (i≥1)。性质2:深度为k的二叉树中,最多有2k–1 个结点(k≥1)。性质3:具有n个结点的完全二叉树的深度 是:[log2n]+1。性质4:在任意一棵二叉树中,若其叶子 结点数为n0,度为2的结点数为 n2,则:n0=n2+1。二叉树的存储

二叉树的存储通常采用链接方式。它是指用链表来表示一棵二叉树,即用链来指示元素的逻辑关系。链表中每个结点由三个域组成,除了数据域外,还有两个指针域,分别用来给出该结点左子树和右子树所在的链结点的存储地址。结点的存储的结构为:lchilddaterchild二叉树的遍历

三种重要的二叉树遍历的方法:先序遍历法中序遍历法后序遍历法二叉树的遍历

例:给出如图8-20所示的一棵二叉树,写出对应的遍历序列。按先序遍历序列:

abdecfgh

按中序遍历序列:按后序遍历序列:debfcgahedfgcbha

cdehgfba树的结构8.3.7查找

查找就是在某种数据结构中找出满足条件的结点。两种基本的查找方法:

二分法查找

顺序查找顺序查找的方法

顺序查找方法为:从表的一端开始,向另一端逐个按给定值kx与表中各结点的关键码进行比较,若找到,查找成功,并给出数据元素在表中的位置;若整个表检索完之后,仍未找到与给定值kx相同的关键码,则查找失败,给出失败信息。二分法查找的方法

二分法查找的方法是:在有序表中,取中间元素作为比较对象,若给定值与中间元素的关键码相等,则查找成功:若给定值小于中间元素的关键码,则在中间元素的左半区继续查找;若给定值大于中间元素的关键码,则在中间元素的右半区继续查找。不断重复上述查找过程,直到查找成功,或所查找的区域无数据元素,查找失败。

顺序查找的优缺点

顺序查找的优点:一是对线性表的结点的逻辑次序不作要求,无需按关键码值先排序。二是对线性表的存储结构不作要求,顺序存储、链式存储均可。其缺点是:平均检索长度大二分法查找的优缺点

二分法查找的优点:平均检索长度小,即每经过一次关键码比较,则将查找范围缩小一半,经过次比较就可完成查找过程。其缺点是排序线性表费时间8.3.8排序

排序是计算机程序设计中的一种重要操作,它是将一个无序序列整理成按关键字递增(或递减)的有序序列的处理过程。

几种最常用的内排序方法:

直接插入排序冒泡排序选择排序快速排序8.4数据库技术基础8.4.1数据库技术的发展人工管理阶段文件系统阶段应用程序1应用程序2应用程序n数据1数据2数据n人工管理阶段

应用程序1应用程序2应用程序n文件1文件2文件n存取文件系统阶段数据库系统阶段应用程序1应用程序2应用程序n数据库管理系统数据库数据库系统阶段数据库系统阶段数据库的发展趋势数据库的发展趋势分布式数据库面向对象数据库多媒体数据库

模糊数据库演绎数据库主动数据库数据仓库8.4.2数据库的基本概念数据库系统的基本概念数据库管理系统的基本功能数据库系统的基本特点数据库系统的基本概念数据数据处理数据库数据库管理系统数据库管理员数据库系统数据库应用系统数据库管理系统的基本功能数据库管理系统的主要功能:数据定义数据操纵数据库运行控制数据库的建立和维护数据库系统的基本特点数据的结构化数据的共享高最低冗余度数据的独立性数据的完整性数据的安全性数据的统一管理8.4.3数据模型什么是数据模型数据模型是用于表示实体类型及实体之间联系的模型,或者说,表示事物与事物间联系的模型称为数据模型。

数据模式的三个要素数据结构数据操作数据的完整性约束条件基本数据模型基本数据模型层次模型

网状模型关系模型

实体联系模

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论