版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026/4/161
软件开发(1)软件开发语言(2)软件开发基础(3)软件工程基础2026/4/162软件
(Software)简单的说就是那些在计算机中能看的着,但摸不着的东西,概念性的说软件也称为“软设备”,广义地说软件是指系统中的程序以及开发、使用程序所需要的所有文档的集合。软件分为系统软件和应用软件。2026/4/163
软件并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。软件被应用于世界的各个领域,对人们的生活和工作都产生了深远的影响
编程语言:
计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。2026/4/164汇编语言
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序通常由三部分组成:指令、伪指令和宏指令.2026/4/165高级语言
高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
2026/4/1661.程序设计语言程序设计(编程)语言是人类与计算机交流的工具分类:
1、低级语言(机器语言、汇编语言)
2、高级语言(C++C#)2026/4/1672.程序设计语言的发展
程序语言越低级,则必须对过程描写的越具体,指令也就越接近机器的硬件逻辑
相反,程序语言越高级,就越接近对问题的描述和表达,因而更直观,更容易被人们理解
程序语言的发展,总是从低级到高级,也就是从具体表述到抽象描述,高级语言的抽象描述最后都自动转化成机器的具体实现2026/4/168C++是从C语言发展演变而来的,首先是一个更好的C引入了类的机制,最初的C++被称为“带类的C”1983年正式取名为C++从1989年开始C++语言的标准化工作于1994年制定了ANSIC++标准草案于1998年11月被国际标准化组织(ISO)批准为国际标准,成为目前的C++C++语言的产生2026/4/1693.
C++
C++是一种编程灵活、运行高效的高级语言,它可进行多种方法编程,适用于商业处理、科学计算、系统应用等重要领域2026/4/1610编程过程学习程序设计,首先要搞清楚程序的开发过程,否则,无法以成功的运行来验证编程技能的提高4.C++编程流程2026/4/1611
编程风格程序的书写方式完全是人为的,不同的书写方式构成了程序设计的不同风格。C++的程序语法是以空格和换行(回车)来区分词法单位,以特定的字符来辨认语法的,如分号“;”表示语句的结束。程序设计格式的随意性,给程序设计风格带来了可塑性。2026/4/1612
程序设计风格应以可读性为准则,合理的紧凑性、模块整体性、对齐、锯齿型嵌套、注释都是形成特定风格的因素。本书将以一种独特的紧凑风格来展示程序代码.
2026/4/16135.程序与算法程序:从静态上说,是以某种语言为工具编制出来的动作序列,它表达了人的系统性思维。而从动态上说,它是一系列逐一被执行的操作。既然要操作,便要受到操作主体(计算机)的制约。由于不同的主体其操作性能不同,即使同一个主体,在不同状态下执行同一个程序,也会表现出差异。2026/4/1614算法:求解特定问题的一组有限的操作序列。算法的描述也需要借助于专门的工具,如某种计算机语言,其特点:
a)目的性
b)抽象性
c)研究性2026/4/1615编程与结构
编程是为了解决计算问题,计算问题强调算法,程序设计也就是在一定抽象层次上的算法设计。1976年,计算机专家N.Wirth提出了这样的经典式:程序=算法+数据结构
程序设计方法的变革是以简化编程和提高软件生产率为目的的,它不以牺牲程序的正确性和效率为代价。2026/4/16166.过程化程序设计基于过程的程序设计
将复杂的过程简单的按功能分层从而达到解决问题的目的,这种思想就是过程化程序设计思想。过程化程序设计以一系列过程的划分和组织来观察、分析和解决问题。结构化程序设计
程序控制结构有三种:顺序、选择、循环
1)描述任何实体的操作序列只需用三种基本控制结构
2)程序设计中的各个过程体和组成部分应以模块表示
3)过程化的程序设计方法结构化程序设计方法主要体现在过程的功能划分与过程内部的编写规则上,因此它也是一种规范的过程化程序设计思想
2026/4/16177.对象化程序设计基于对象的程序设计
程序=算法+抽象数据类型用抽象数据类型来描述数据结构。这种编程方法是基于抽象数据类型而展开的,或者说是基于对象的程序设计。面向对象的程序设计程序=(对象,对象,对象,…….)2026/4/1618C#(读作“SeeSharp”)是一种简单、现代、面向对象且类型安全的编程语言。C#起源于C语言家族,因此,对于C、C++和Java程序员,可以很快熟悉这种新的语言。C#是面向对象的语言,然而C#进一步提供了对面向组件(component-oriented)编程的支持。现代软件设计日益依赖于自包含和自描述功能包形式的软件组件。这种组件的关键在于,它们通过属性(property)、方法(method)和事件(event)来提供编程模型;它们具有提供了关于组件的声明性信息的属性(attribute);同时,它们还编入了自己的文档。C#简介2026/4/1619为了确保C#程序和库能够以兼容的方式逐步演进,C#的设计中充分强调了版本控制(versioning)。许多编程语言不太重视这一点,导致采用那些语言编写的程序常常因为其所依赖的库的更新而无法正常工作。C#的设计在某些方面直接考虑到版本控制的需要,其中包括单独使用的virtual和override修饰符、方法重载决策规则以及对显式接口成员声明的支持。2026/4/1620C#语言基础
C#.NET是微软公司推出的一种类型安全、现代、简单、由C和C++衍生出来的面向对象的编程语言。掌握C#.NET的特点、程序结构、集成开发环境、C#语言的基本知识等,是利用好C#的前提。2026/4/1621
它吸收了C++、VisualBasic、Delphi、Java等语言的优点,体现了当今最新的程序设计技术的功能和精华。C#继承了C语言的语法风格,同时又继承了C++的面向对象特性。2026/4/1622特点1.语言简洁。2.保留了C++的强大功能3.快速应用开发功能。4.语言的自由性。5.支持跨平台2026/4/16238.软件开发技术基础程序设计基础
软件工程基础结构化程序设计面向对程序设计2026/4/1624程序设计程序设计(Programing)是指利用计算机解决问题的全过程,它包含多方面的内容,而编写程序只是其中的一部分。分析问题确定处理方案确定操作步骤编写程序上机运行程序整理结果
程序设计的一般步骤:2026/4/1625程序设计方法与风格程序设计方法是指关于以什么观点来研究问题并进行求解,以及如何进行系统设计的软件方法学。程序设计方法主要经过了结构化程序设计和面向对象程序设计两个阶段。2026/4/1626程序设计风格是指编写程序时所表现出的特点、习惯和逻辑思路。从总体上说,程序设计风格强调简单和清晰。“清晰第一,效率第二”的观点是当今主导的程序设计风格。
2026/4/1627结构化程序设计
基本结构:顺序结构、选择结构、循环结构
AB假真PAB真假A
P真假A
P2026/4/1628
面向对象程序设计
在现实生活中,所有东西都是对象,例如某一辆车就是一个对象,指具体的一辆车,某个人也是一个对象,指具体的一个人。对象既可以很简单,也可以很复杂,复杂的对象可以由若干简单的对象构成。
任何对象都有两个共同的特点:对象的属性和对象的操作。一个对象通常由对象名、属性和操作组成。
2026/4/1629
属性是用来描述对象的状态,对象的状态又称为对象的静态属性,包括对象内部所包含的信息,每个对象都具有自己专有的内部信息,这些信息说明了对象所处的状态。例如一个球对象有自己的质地、颜色、大小等。当给对象实施了某种操作后,其状态就会发生变化,这一变化体现在信息的改变上。例如,改变球的颜色,其颜色属性得到改变。2026/4/1630
对象的操作又称为对象的行为,主要表述对象的动态属性。操作的作用是设置或改变对象的状态。例如一个球可以滚动、停止或旋转等行为或操作。方法是指当某个行为作用在对象时,我们就称对象执行了一个方法。方法定义了一系列的计算步骤(相当于函数)。2026/4/1631
方法是指当某个行为作用在对象时,我们就称对象执行了一个方法。方法定义了一系列的计算步骤(相当于函数)。2026/4/1632
封装就是把对象的属性和操作结合成一个不可分割的整体,在这个整体中一些属性(操作)是被保护的,以防外界的干扰和误操作,另一些属性(操作)是公共的,它们作为接口供外界使用。封装的结果就是使一个对象形成接口和实现两个部分。对于用户来说,接口是可见的,实现是不可见的。封装是面向对象方法重要的机制,其目的是有效地实现信息隐藏原则。2026/4/1633
接口是对象接受外部消息时所要进行操作的集合。例如:我们看到的是台灯这个整体以及台灯与外部发生联系的开关按钮和亮度旋钮(接口),而不是一些导线、连接灯泡的线路、实现开关、亮度功能的线路等是不可见的(实现)。2026/4/1634
类是一组具有相同属性和相同操作的对象的集合。一个类中的每个对象都是这个类的一个实例。例如,人就是一个类(不是指具体的某个人),而具体的一个人就是人类的一个实例(对象)。再比如,定义了一个名为“球”的类,那么,足球、排球、篮球就是“球”类的一个个实例。
2026/4/1635
事件是为了完成某一任务,向一个对象提供的、并体现其功能的操作。一个事件就是接收到一条消息后所执行的处理。事件是对象的动作,而这个动作可能会改变对象内部的状况或向外界提供某种功能。例如“球”类的撞击事件,撞击可以使球滚动。
2026/4/1636
继承是表达类之间相似性的一种机制,即在已有的类的基础之上增加构造新的类,前者称为父类(或超类),后者称为子类。子类除自动拥有父类的全部属性和操作外,还可以进一步定义新的属性和操作。如果子类只从一个父类继承,则称为单一继承;如果子类从一个以上父类继承,则称为多重继承。优点:能清晰地体现相关类之间的层次结构关系;可以减少代码和数据的冗余,增加程序的复用能力。2026/4/1637
例如,定义一个“汽车”类,属性有(变量):发动机、方向盘、车轮、灯、油箱、颜色、几何尺寸及各种零件等;方法有(函数):开、停、倒退等。但在现实中有这样一类车和上面所定义的“汽车”类非常相似,差别很小,只是车轮小,油箱小,限乘座5人。于是,可在“汽车”类的基础之上派生一个新的类型,叫“小型汽车类”,它是在“汽车类”的基础上加上了一些新的特性。2026/4/1638
对象间的相互合作需要一个机制协助进行,这样的机制称为“消息”。也就是说,消息是向对象发出的服务请求,是对象和对象之间进行通信的手段。一个对象通过向另一个对象发送消息来请求服务,接收到消息的对象经过解释,然后给予响应。这种通讯机制叫做消息传递。消息要素通常包括:发送对象、接受对象、操作和适当的参数。2026/4/1639
多态性:对象在收到消息时要予以响应,不同的对象收到同一消息可产生完全不同的结果,这一现象叫做多态性。多态性增强了软件的灵活性和重用性。多态性与继承性相结合使软件具有更广的重用性和可扩充性。2026/4/1640
面向对象的程序设计基本思想基本思想:将人们在日常生活中习惯的思维方式和表达方式应用在程序设计中,以客观世界中的对象为中心,以类和继承为构造机制来进行软件开发活动。优点:符合人们通常解决问题的思维方式;对象结构稳定;软件具有易于扩充、修改和维护的特性。2026/4/1641
9.软件工程基础软件危机软件危机是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面:①软件开发的实际成本和进度估计不准确②开发出来的软件常常不能使用户满意③软件产品的质量不高,存在漏洞,需要经常打补丁④大量已有的软件难以维护⑤软件缺少有关的文档资料⑥软件的开发和维护成本不断提高,直接威胁计算机应用的扩大⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求的增长2026/4/1642
软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。研究软件工程的主要目的就是在规定的时间、规定的开发费用内开发出满足用户需求的高质量的软件系统(高质量是指错误率低、好用、易用、可移植、易维护等)。软件工程概述2026/4/1643
软件工程的原则:①制定阶段计划②阶段评审③制定规范,实行严格的产品控制2026/4/1644
将软件产品从开始计划起,到废弃不用止,称为软件生命周期。软件生命周期一般划分为计划、开发和运行3个时期,每一时期又区分为若干个阶段。计划时期有问题定义和可行性研究两个阶段;开发时期有需求分析、设计、编码和测试4个阶段;运行时期主要是系统维护阶段。软件生命周期2026/4/1645
模型是为了理解事物而对事物做出的抽象。软件生命周期模型是描述软件开发过程中各种活动如何执行的模型。常见的软件生命周期模型有:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型及基于知识的模型等。右图是软件生存期的瀑布模型。软件生命周期模型2026/4/1646
软件工程过程就是使用适当的资源,为开发软件进行的一组开发活动。这组活动包含“计划”、“开发”、“运行”。2026/4/1647
目的:弄清“用户需要计算机解决什么问题”,以及项目所需的资源和经费任务:进行调研和分析,通过向用户调查后进行高度地抽象,编写出“系统目标与范围说明书”文档问题定义2026/4/1648
目的:弄清“用户要解决的问题是否能够解决和值得解决”任务:对用户提出的问题从技术、经济、运行和法律等方面来研究其可行性,并写出“可行性论证报告”。如果结论认为该项目值得进行,接着应制订出“项目实施计划”,否则便应提出终止该项目的建议可行性研究2026/4/1649
目的:要解决的问题是“做什么”。具体而言,就是通过对问题及其环境的理解、分析和综合,以确定最终的目标系统必须做哪些工作任务:编写“需求规格说明书”,这份文档应包括对软件的性能需求、功能需求、环境约束和外部接口等描述需求分析2026/4/1650
目的:确定软件的总体结构、数据结构、用户界面和算法细节任务:将需求阶段产生的软件需求说明转换为用适当手段表示的软件设计文档软件设计分为总体设计和详细设计软件设计2026/4/1651
总体设计目的:要解决的问题是“怎样实现目标系统”任务:确定软件的总体结构,进行模块划分,确定每个模块的功能、接口及模块之间的调用关系,并对全局数据结构进行设计,同时产生概要设计说明书2026/4/1652
详细设计目的:要解决的问题是“应该怎样具体实现目标系统”任务:在概要设计的基础上,设计每个模块实现的细节及对局部数据进行设计(包括模块的数据结构和所需的算法),同时产生详细设计说明书2026/4/1653
目的:产生能在计算机上执行的程序任务:根据系统的要求和开发环境,选用合适的程序设计语言,把详细设计的结果翻译成用该程序设计语言编写的程序代码(源程序)软件编码2026/4/1654
软件测试是为了发现程序中的错误而执行程序的过程目的和任务:通过在计算机上执行程序来尽可能多地发现软件产品中的错误和缺陷,并改正程序中的错误,以保证程序的可靠运行软件测试分为静态分析和动态测试动态测试又分为白盒测试和黑盒测试
软件测试2026/4/1655
软件测试的每一次测试都需要准备好一些测试数据,与被测程序一起输入到计算机中执行;一般把程序执行一次需要的一组测试数据和该组测试数据可以得出怎样的输出结果(期望结果)称为一个“测试用例”,每一个测试用例产生一个相应的“测试结果”,如果它与“期望结果”不相符合,说明程序中存在错误,需要改正错误。
2026/4/1656
白盒测试
是测试者完全了解被测程序的内部逻辑结构和处理过程,因此,可以对其内部结构和处理过程进行测试,检验内部控制结构和数据结构是否有错,实际的运行结果与期望的结果是否一致
2026/4/1657
黑盒测试
是测试者已经知道被测程序的功能,而对程序内部的逻辑结构和处理过程完全不用考虑,只是对它的每一个功能进行测试,将测试后的结果与期望的结果进行分析比较,检查程序的功能是否符合规格说明书的要求。黑盒测试是在程序接口进行的测试2026/4/1658
测试用例设计测试用例是由测试数据和期望结果组成。设计测试用例的目的就是用尽可能少的测试数据,达到尽可能大的程序覆盖面,发现尽可能多的软件错误和问题
2026/4/1659
用白盒法设计测试用例常用以下几种技术:①语句覆盖②判定覆盖③条件覆盖④判定/条件覆盖⑤条件组合覆盖⑥路径覆盖2026/4/1660
用黑盒法设计测试用例常用以下几种技术:①等价类划分法②边界值分析法③错误推测法④因果图法
2026/4/1661
软件测试的原则①确定期望输出结果②测试者应避免测试自己的程序③对非法和非期望的输入数据也要像合法的和期望的输入数据一样编写测试用例④程序模块经测试后,残存的错误数目与已发现的错误数目成正比⑤严格按测试计划执行,避免测试的随意性⑥对每一个测试结果应当做全面检查⑦妥善保存测试计划、测试用例、出错统计和最终分析报告,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年随州市曾都区社区工作者招聘笔试模拟试题及答案解析
- 2026年泰州市海陵区城管协管招聘笔试备考题库及答案解析
- 2026年雨城区社区工作者招聘笔试参考题库及答案解析
- 2026年七台河市桃山区社区工作者招聘笔试参考试题及答案解析
- 2026年上海市闸北区社区工作者招聘考试参考题库及答案解析
- 2026年娄底市娄星区城管协管招聘笔试备考题库及答案解析
- 附件1:教师资格认定档案袋封面
- 2026年南阳市宛城区社区工作者招聘考试模拟试题及答案解析
- Unit1 Section A 3a教学设计 -人教版英语八年级下册
- 中考历史试卷题和答案
- 酒店反恐演练
- 江苏省“大唐杯”全国大学生新一代信息通信技术大赛省赛题库(含答案)
- 摄影店商铺转让合同协议书
- 新大象版四年级下册科学全册知识点(精编版)
- 涉警舆情分析报告模板
- 学习写好议论文的方法
- 采血健康知识讲座
- 脱毛知识培训课件
- 新生儿喂养不耐受-新生儿喂养不耐受诊断标准教学课件
- 《云南省田坝煤矿二号井采矿权出让收益评估报告》
- 毕业论文-基于三维视觉的工件测量技术研究
评论
0/150
提交评论