第三章软件工程基础
- 格式:ppt
- 大小:149.00 KB
- 文档页数:32
第三章计算机软件一、计算机系统基本组成:硬件和软件(一)计算机软件:能指挥计算机完成特定任务的、以电子格式存储的程序、数据和相关文档。
(二)软件的功能都在硬件的支撑下实现,用硬件实现的功能可能由软件来部分实现。
二、软件(一)定义(ISO):包含与数据处理系统操作有关的程序、规程、规则以及相关文档的智力创作。
(二)组成:程序+(与程序相关的)数据和文档。
1.文档:程序开发、维护和使用所涉及的资料,如设计报告、维护手册和用户使用指南等2.程序是软件的主体,单独的数据和文档一般不认为是软件。
(三)特性:1.依附性:通常必须使用物理载体进行存储,依附于一定的硬件和软件环境运行2.不可见性:以二进位表示、无形的产品3.脆弱性:容易受到病毒入侵4.易复制性5.无磨损性(四)软件版权:1.定义:软件的作者享有拷贝、发布、修改等权利,用户购买软件只有使用权2.软件盗版:未获得版权所有者许可就复制和散发商品软件的行为3.相关法律法规:知识产权保护法、著作权法、专利法、计算机软件保护条例……(五)软件分类:1.按应用角度分:系统软件和应用软件1)系统软件:A.定义:管理系统资源、提供常用基本操作的软件B.特点:交互性(与计算机硬件系统)、通用性C.组成:a)基本输入/输出系统(BIOS)——最接近计算机硬件的系统软件b)操作系统i.DOS、Windows 95、Windows 98、WindowsMe、Windows NT 4.0、Windows 2000、WindowsXP、Windows 2003、Windows Vista、Windows 7ii.Unix:BSD、SRV4、SCO UNIX、AIX、Solaris、HP-UXiii.Linux:Red Hat、SuSE等c)程序设计语言处理系统(编译器):FORTRAN、BASIC、Visual Basic、Java、C、C++、LISP、PROLOG、MATLAB、ALGOL、PASCAL等d)数据库管理系统(DBMS):FoxPro、Microsoft Access、VFP、SQL Server、Oracle、DB2、SYBASE等e)实用程序:磁盘清理程序、磁盘碎片整理程序、杀毒软件、防火墙等2) 应用软件:A. 定义:为用户完成某项特定任务的软件B. 按应用软件的开发方式和适用范围,可分为:通用应用软件、定制应用软件a) 通用应用软件: b) 定制应用软件: i. 定义:按照不同领域用户的特定应用要求而专门设计开发的软件 ii. 举例:超市销售管理和市场预测系统、工厂的集成制造系统、大学教务管理系统、医院门诊挂号系统、酒店客房管理系统、民航售票系统3) 系统软件和应用软件的关系:应用软件以系统软件为基础(如:Powerpoint 以windows 为基础;Powerpoint 调用windows 的功能)2. 按软件权益如何处置分为:商品软件、共享软件、自由软件1) 软件许可证(License):允许用户购买一份软件而同时安装在约定的若干台计算机上使用 2) 自由软件A. 代表:TCP/IP 、LinuxB. 允许用户随便拷贝、修改其源代码和销售(六) 软件发展的历史:1. 第一阶段:个体工作方式2. 第二阶段:合作方式1) 标志:软件危机2) 软件危机产生原因:软件复杂程度提高、研制周期变长、正确性难以保证、可靠性问题突出(并非硬件软件不协调发展)3. 第三阶段:软件工程(用工程化的方法组织软件的开发)三、操作系统(一) 地位:计算机运行配置必不可少的底层系统软件 (二) 作用:1. 管理分配系统中的各种软硬件资源2. 为用户提供友善的人机界面1) 命令行界面2) 图形用户界面:采用图标(icon )来形象地表示系统中的文件、程序和设备等对象3. 为应用程序的开发和运行提供一个高效率的平台(开发和运行应用程序与运行的操作系统密切相关) 1) 裸机:只有硬件、没有软件的计算机。
第三章软件工程基础习题部分一、选择题(1) 软件工程的出现是由于______。
A)程序设计方法学的影响B)软件产业化的需要C)软件危机的出现D)计算机的发展(2) 下列描述中正确的是______。
A)软件工程只是解决软件项目的管理问题B)软件工程主要解决软件产品的生产率问题C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D)软件工程只是解决软件开发中的技术问题(3) 下列描述中正确的是______。
A)程序就是软件B)软件开发不受计算机系统的限制C)软件既是逻辑实体,又是物理实体D)软件是程序、数据与相关文档的集合(4) 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做______。
A)软件投机B)软件危机C)软件工程D)软件产生(5) 软件开发的结构化生命周期方法将软件生命周期划分成______。
A. 定义、开发、运行维护B. 设计阶段、编程阶段、测试阶段C. 总体设计、详细设计、编程调试D. 需求分析、功能定义、系统设计(6) 需求分析阶段的任务是确定______。
A. 软件开发方法B. 软件开发工具C. 软件开发费用D. 软件系统功能(9) 需求分析中,开发人员要从用户那里了解______。
A)软件做什么B)用户使用界面C)输入的信息D)软件的规模(10) 软件生命周期中所花费用最多的阶段是______。
A)详细设计B)软件编码C)软件测试D)软件维护(11) 软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及______。
A. 阶段性报告B. 需求评审C. 总结D. 都不正确(12) 下面不属于软件工程的3个要素的是______。
A. 工具B. 过程C. 方法D. 环境(13) 下面不属于软件设计原则的是______。
A. 抽象B. 模块化C. 自底向上D. 信息隐蔽(16) 为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为______。
全国计算机等级考试二级公共基础知识要点汇总第一章数据结构与算法1.1 算法算法:是指解题方案的准确而完整的描述。
算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。
特征包括:(1)可行性;(2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性;(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;(4)拥有足够的情报。
算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。
指令系统:一个计算机系统能执行的所有指令的集合。
基本运算包括:算术运算、逻辑运算、关系运算、数据传输。
算法的控制结构:顺序结构、选择结构、循环结构。
算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。
算法复杂度:算法时间复杂度和算法空间复杂度。
算法时间复杂度是指执行算法所需要的计算工作量。
算法空间复杂度是指执行这个算法所需要的内存空间。
1.2 数据结构的基本概念数据结构研究的三个方面:(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。
数据结构是指相互有关联的数据元素的集合。
数据的逻辑结构包含:(1)表示数据元素的信息;(2)表示各数据元素之间的前后件关系。
数据的存储结构有顺序、链接、索引等。
线性结构条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。
非线性结构:不满足线性结构条件的数据结构。
1.3 线性表及其顺序存储结构线性表是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。
在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。
软件工程基础软件工程是指应用工程原理、方法和工具来开发和维护高质量的软件系统。
作为计算机科学的重要分支,软件工程为我们理解和应用软件开发的基础提供了框架和指导。
本文将介绍软件工程的基本概念、原则和方法,以及其在软件开发过程中的重要性。
一、软件工程概述软件工程是一门系统性的学科,旨在通过应用科学和工程原理,将计算机科学理论和方法应用于软件的开发和维护中。
与传统的工程领域不同,软件工程面临着特殊的挑战和复杂性,包括软件产品的不可见性、复杂性和易变性等。
软件工程的核心目标是提高软件的质量和效率,使其满足用户的需求并具备可维护性。
为了实现这一目标,软件工程引入了许多原则和方法,如需求分析、系统设计、编码和测试等。
这些方法和原则为软件开发过程提供了指导和规范,有助于提高开发团队的协作效率和开发质量。
二、软件工程原则软件工程根据实践总结出了许多重要的原则,在软件开发中起到了指导作用。
下面列举了其中几个重要的原则:1. 模块化:软件应该通过模块化的方式进行设计和开发。
模块化可以提高代码的复用性和可维护性,同时也降低了开发的复杂性。
2. 可重用性:软件应该促进可重用性。
通过开发可重用的组件和模块,可以提高软件开发的效率,并减少重复劳动。
3. 适应性:软件应该具备适应性,即能够满足用户的需求,并能够随着需求的变化进行调整和扩展。
4. 可测试性:软件应该具备可测试性,即能够进行有效的测试和验证。
通过测试,可以发现和修复潜在的问题,提高软件的质量。
5. 可维护性:软件应该具备可维护性,即能够方便地进行修改和维护。
良好的软件结构和文档可以降低维护成本,并延长软件的使用寿命。
三、软件开发方法软件工程提供了多种开发方法和过程,以帮助开发团队有效地管理和组织开发任务。
下面介绍几种常见的软件开发方法:1. 瀑布模型:瀑布模型是一种线性的开发过程模型,依次进行需求分析、系统设计、编码和测试。
每个阶段完成后,才能进入下一个阶段。
瀑布模型适用于需求变化较少的项目,但在需求变化频繁的项目中效果较差。
第3章习题答案3」什么是软件危机?为什么会岀现软件危机?解答:软件危机是指落后的软件生产方式无法满足开发复杂软件的需求,从而导致软件开发与维护过稈屮出现一系列严重的问题,主要表现在:(1)软件开发费用和进度估计不准。
(2)软件的正确性和可靠性难以保证。
(3)文档不全,导致软件维护难度加大。
总Z,可将软件危机归结为:成木、质量和生产率等问题。
到了20世纪50年代末和60年代初,随着计算机应用的普及,软件的规模和复杂度提高了,“家庭作功”式的方法已经无法适应软件的开发。
软件开发的周期变长、费用上涨,导致软件的生产效率下降、目标软件的正确性难于保证,即出现了“软件危机”。
3.2软件T程的概念是什么?软件T程的忖标和原则是什么?解答:软件工程是指导计算机软件开发和维护的一门学科。
软件工程从管理和技术两个方面,研究如何更好地开发和维护计算机软件,内容主要包括:软件开发技术和软件工程管理。
软件工程的日标是在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。
软件工稈的原则,在软件开发各阶段,应遵循一些基木原则,包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
3.3什么是软件的生命周期?瀑布模型把软件生命周期划分成几个时期、几个阶段?每一个阶段的任务是什么?每个阶段产生的文档是什么?解答:软件从提出、开发、使用到退役的整个过稈称为软件生命周期,软件生命周期可划分为3个时期,共8个阶段,毎个阶段应完成的基本任务和产生的文档如下表所示。
时期阶段任务文档定义期(计划期)问题的定义理解用户要求,明确工作目标计划任务书可行性研究可行性方案分析需求分析软件系统的目标及应完成的任务需求规格说明书开发期概要设计(总体设计)(系统设计)系统逻辑设让,明确软件模块结构,及各模块间的调用关系软件概要设计说明书数据库/数据结构设计说明书集成测试计划详细设计系统的模块设计,对各模块进行功能说明,实现细节描述软件详细设计说明书编码编写程序代码程序、数据、详细注释测试和调试单元测试、集成测试测试大纲、方案,测试用例,测试结果维护期使用和维护运行和维护运行、修改记录3.4什么是结构化方法?结构化分析、结构化设计、结构化程序设计分别用在软件生命周期的哪一个阶段?解答:结构化开发方法是现有软件开发方法屮最成熟、应用最广泛的方法。
二级公共基础知识第三章软件工程基本概念
重点:需求分析、概要设计、详细设计、软件测试和软件调试的作用、方法等
一、 软件工程基本概念
1. 软件是计算机系统中与硬件相互依存的重要部分,包括程序、数据及相关的 文档 。
其中,程序 是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。
2. 下列叙述中,正确的是(D)。
A.软件就是程序清单 B.软件就是存放在计算机中的文件 C.软件应包括程序清单及运行结果 D.软件包括程序和文档
3. 软件按功能可以分为:应用软件、系统软件、支撑软件(或工具软件)
4. 软件工程的出现是由于(软件危机的出现)
5. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(软件危机)
软件工程概念的出现源自软件危机。
所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
总之,可以将软件危机归结为成本、质量、生产率等问题。
6. 开发大型软件时,产生困难的根本原因是(大型系统的复杂性)。
7. 软件危机出现于20世纪60年代末,为了解决软件危机,人们提出了软件工程学 的原理来设计软件这就是软件工程诞生的基础。
8. 下列不属于软件工程的3个要素的是(D)A.工具 B.过程 C.方法 D.环境。