计算机文化基础PPT课件第1章计算机文化和信息技术.docx
《计算机文化基础PPT课件第1章计算机文化和信息技术.docx》由会员分享,可在线阅读,更多相关《计算机文化基础PPT课件第1章计算机文化和信息技术.docx(60页珍藏版)》请在冰豆网上搜索。
计算机文化基础PPT课件第1章计算机文化和信息技术
计算机文化基础PPT课件_第1章_计算机文化和信息技术
第10章软件工程基础
佳木斯大学
content
101>.1软件工程基本概念
计算机软件(Software)是计算机系统中一个重要的组成部分,它与硬件相互依存,互不可缺,是包括程序、数据及相关文档的完整集合。
软件由两部分组成:
一是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护、使用等有关的文档。
国标(GB)中对计算机软件的定义为:
与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。
软件在开发、生产、维护和使用等方面都有自己的特点,与计算机硬件相比存在显著的不同,它具有如下的几个特点:
软件定义与软件特点
佳木斯大学
content
10.1软件工程基本概念
①软件是一种逻辑实体,而不是物理实体,具有抽象性。
硬件是物理实体,是具体的。
而软件则与其他工程对象有着明显的差异。
②软件没有明显的制作过程,这一点使它的生产与硬件不同。
③软件在运行、使用期间不存在磨损、老化问题。
④软件的移植问题。
⑤软件复杂性高,成本昂贵。
⑥软件开发涉及诸多的社会因素。
软件定义与软件特点
佳木斯大学
content
10.1软件工程基本概念
软件按功能可以分为:
应用软件、系统软件、支撑软件(或工其软件)。
应用软件是为解决具体应用而开发的软件。
系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。
支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具性软件
软件定义与软件特点
佳木斯大学
content
10.1软件工程基本概念
1.软件危机的含义
所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
实际上,绝大多数软件都不同程度地存在上述问题。
具体地说,在软件开发和维护过程中,软件危机主要表现在:
①无法很好地满足软件需求的增长。
用户常常对系统的功能和使用情况不满意。
②无法很好地控制软件开发的成本和进度。
开发成本超出预算,同时也经常发生开发周期大大超过规定日期的情况,造
软件危机与软件工程
佳木斯大学
content
10.1软件工程基本概念
成用户的不满。
③难以好很好地保证软件的质量。
④软件不可维护或维护程度非常低。
⑤软件的成本不断提高,造成软件用户和开发者都难以接受。
⑥硬件的发展和应用需求的增长都很快,软件开发生产率的提高无法与之适应。
总之,可以将软件危机归结为成本、质量、生产率等问题。
软件危机与软件工程
佳木斯大学
content
10.1软件工程基本概念
2.软件危机的产生原因
可以从宏观和微观两方面来分析带来软件危机的原因,从宏观方面来看,是由于软件日益深入社会生活的各个层面,对软件需求的增长速度大大超过了技术进步所能带来的软件生产率的提高。
从微观方面,就每一项具体的工程任务来看,许多困难来源于软件工程所面临的任务和其他工程之间的差异以及软件和其他工业产品的不同。
软件危机与软件工程
佳木斯大学
content
10.1软件工程基本概念
软件开发和维护过程中存在这些严重的问题与多种因素有关。
首先,这与软件本身的特点有关,
另外,软件的显著特点是规模庞大,复杂度超线性增长,在开发大型软件时,要保证高质量,极端复杂困难,不仅涉及技术问题(如分析方法、设计方法、版本控制),更重要的是必须有严格而科学的管理。
再者,它还与软件开发和维护方法不正确有关,这是主要原因。
软件危机与软件工程
佳木斯大学
content
10.1软件工程基本概念
3.软件危机的消除—软件工程
软件工程就是试图用工程、科学和数学的原理与方法研制、维护计算机软件的有关技术及管理方法。
软件工程一直以来都缺乏一个统一的定义。
(1)关于软件工程的定义,国标(GB)中指出,软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。
(2)BarryBoehm:
运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
软件危机与软件工程
佳木斯大学
content
10.1软件工程基本概念
(3)IEEE在软件工程术语汇编中的定义:
软件工程是将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。
(4)FritzBauer在NATO会议上给出的定义:
软件工程是建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
(5)《计算机科学技术百科全书》中的定义:
软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。
软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。
软件危机与软件工程
佳木斯大学
content
10.1软件工程基本概念
目前比较认可的一种定义认为:
软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
软件工程包括3个要素,即方法、工具和过程。
方法是完成软件工程项目的技术手段;工具支持软件的开发、管理、文档生成:
过程支持软件开发的各个环节的控制、管理。
软件工程的核心思想是引入工程的思想与概念,在软件开发的过程中,按照一个工程产品的处理模式来处理软件产品。
软件危机与软件工程
佳木斯大学
content
10.1软件工程基本概念
软件工程过程与软件生命周期
1.软件工程过程(SoftwareEngineeringProcess)
ISO9000定义:
软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。
定义支持了软件工程过程的两方面内涵。
其一,软件工程过程是指为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。
基于这个方面,软件工程过程通常包含4种基本活动:
①P(Plan)——软件规格说明。
规定软件的功能及其运行时的限制。
②D(Do)——软件开发。
产生满足规格说明的软件。
佳木斯大学
content
10.1软件工程基本概念
软件工程过程与软件生命周期
③S(Check)——软件确认。
确认软件能够满足客户提出的要求。
④A(Action)——软件演进。
为满足客户的变更要求,软件必须在使用的过程中演进。
其二,从软件开发的观点看,它就是使用适当的资源(包括人员、硬软件工具、时间等),为开发软件进行的一组开发活动,在过程结束时将输入(用户要求)转化为输出(软件产品)。
佳木斯大学
content
10.1软件工程基本概念
软件工程过程与软件生命周期
2.软件生命周期(SoftwareLifeCycle)
将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。
一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动,如图10.1所示。
还可以将软件生命周期分为如图10.1所示的软件定义、软件开发及软件运行维护三个阶段。
图10.1所示的软件生命周期的主要活动阶段是:
①可行性研究与计划制定。
②需求分析。
③软件设计。
佳木斯大学
content
10.1软件工程基本概念
软件工程过程与软件生命周期
④软件实现。
⑤软件测试。
⑥运行和维护。
图10.1软件生命周期
佳木斯大学
content
10.1软件工程基本概念
软件工程的目标与原则
1.软件工程的目标
软件工程的目标是,在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。
软件工程需要达到的基本目标应是:
付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发,及时交付使用。
基于软件工程的目标,软件工程的理论和技术性研究的内容主要包括:
软件开发技术和软件工程管理
佳木斯大学
content
10.1软件工程基本概念
软件工程的目标与原则
(1)软件开发技术
软件开发技术包括:
软件开发方法学、开发过程、开发工具和软件工程环境,其主体内容是软件开发方法学。
(2)软件工程管理
软件工程管理包括:
软件管理学、软件工程经济学、软件心理学等内容。
软件工程管理要求按照预先制定的计划、进度和预算执行,从而实现预期的经济效益和社会效益,它是软件按工程化生产时的重要环节。
软件工程经济学是研究软件开发中成本的估算、成本效益分析的方法和技术,用经济学的基本原理来研究软件工程开发中的经济效益问题。
佳木斯大学
content
10.1软件工程基本概念
软件工程的目标与原则
软件心理学是软件工程领域具有挑战性的一个全新的研究视角,它是从个体心理、人类行为、组织行为和企业文化等角度来研究软件管理和软件工程的。
2.软件工程的原则
软件工程的基本原则是为了达到上述的软件工程目标,在软件开发过程中,必须遵循的一些基本原则。
这些基本原则包括:
①抽象。
抽象是忽略事物非本质的细节,抽取事物最基本的特性和行为。
采用分层次抽象,自顶向下,逐层细化的办法控制软件开发过程的复杂性。
佳木斯大学
content
10.1软件工程基本概念
软件工程的目标与原则
②信息隐蔽。
为了使模块接口尽量简单,消除复杂性,可以采用封装技术,将各个程序模块的实现细节隐藏起来。
③模块化。
模块是程序中相对独立的成分,以一个独立的编程单位存在。
④局部化。
耦合性和内聚性是两个要重点注意的事项。
⑤确定性。
⑥一致性。
⑦完备性。
⑧可验证性。
佳木斯大学
content
10.1软件工程基本概念
软件开发工具与软件开发环境
1.软件开发工具
软件开发工具根据在不同软件开发生命周期中起到的作用可以分为:
软件建模工具、软件实施工具、模拟运行平台、软件测试工具、软件开发支撑工具等。
2.软件开发环境
软件开发环境或称软件工程环境是一些软件工具集合,它全面支持软件开发全过程。
软件开发环境是按照一定的方法或模式组台起来的软件开发工具,它支持软件生命周期内的各个阶段和各项任务的完成。
佳木斯大学
content
10.1软件工程基本概念
软件开发工具与软件开发环境
计算机辅助软件工程(CASE,ComputerAidedSoftwareEngineering)是当前软件开发环境中富有特色的研究工作和发展方向。
CASE将各种软件工具、开发机器和一个存放开发过程信息的中心数据库组合起来,形成软件工程环境。
CASE的成功产品将最大限度地降低软件开发的技术难度并使软件开发的质量得到保证。
佳木斯大学
content
10.2结构化分析方法
需求分析与需求分析方法
软件开发方法包括分析方法、设计方法和程序设计方法,它是软件开发过程所遵循的方法和步骤。
软件开发方法的目的在于有效的得到一些工作产品,即程序和文档,并且满足质量要求。
1.需求分析
软件需求是指用户对目标软件系统的期望,具体体现在功能、行为、性能、设计约束等多个方面。
需求分析的任务是发现需求、求精、建模和定义需求的过程。
需求分析将创建所需的数据模型、功能模型和控制模型。
佳木斯大学
content
10.2结构化分析方法
需求分析与需求分析方法
(1)需求分析的定义
1997年IEEE软件工程标准词汇表对需求分析定义如下:
①用户解决问题或达到目标所需的条件或权能;
②系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或权能;
③一种反映①或②所描述的条件或权能的文档说明。
(2)需求分析阶段的工作
需求分析阶段的工作,可以概括为4个方面:
①需求获取
需求获取的目的是确定对目标系统的各方面需求。
佳木斯大学
content
10.2结构化分析方法
需求分析与需求分析方法
需求获取涉及的关键问题有:
对问题空间的理解;人与人之间的通信;不断变化的需求。
②需求分析绘制关联图、创建开发原型、分析可行性、确定需求优先级、为需求建立模型、编写数据字典、应用质量功能调配。
③编写需求规格说明书
④需求评审
2.需求分析方法
常见的需求分析方法有:
①结构化分析方法。
佳木斯大学
content
10.2结构化分析方法
需求分析与需求分析方法
主要包括:
面向数据流的结构化分析方法(SA—Structuredanalysis),面向数据结构的Jackson方法(JSD—Jacksonsystemdevelopmentmethod),面向数据结构的结构化数据系统开发方法(DSSD—Datastructuredsystemdevelopmentmethod)。
②面向对象的分析方法(00A—Object-Orientedmethod)
从需求分析建立的模型的特性来分,需求分析方法又分为静态分析方法和动态分析方法。
佳木斯大学
content
10.2结构化分析方法
结构化分析方法
1.关于结构化分析方法
结构化分析方法其目的是帮助弄清用户对软件的需求。
对于面向数据流的结构化分析方法,按照DeMarco的定义,“结构化分析就是使用数据流图(DFD)、数据字典(DD)、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化规格说明的目标文档。
”
结构化分析方法的实质是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
结构化分析的步骤如下:
①通过对用户的调查,获得当前系统的具体模型
佳木斯大学
content
10.2结构化分析方法
结构化分析方法
②抽象出当前系统的逻辑模型
③根据计算机的特点分析当前系统与目标系统的差别,建立目标系统的逻辑模型;
④完善目标系统并补充细节,写出目标系统的软件需求规格说明;
⑤评审直到确认完全符合用户对软件的需求。
2.结构化分析的常用工具
(1)数据流图(DFD—DataFlowDiagram)
数据流图(DFD)是描绘信息流和数据从输入移动到输出的过程中所经受的变换的一种图形化技术。
佳木斯大学
content
10.2结构化分析方法
结构化分析方法
数据流图中的主要图形元素与说明如下:
(1)
(2)
(3)
(4)
建立数据流图的步骤如下:
第1步:
由外向里:
先画系统的输入输出,然后画系统的内部。
第2步:
自顶向下:
顺序完成顶层、中间层、底层数据流图。
佳木斯大学
content
10.2结构化分析方法
结构化分析方法
第3步:
逐层分解。
数据流图的建立从顶层开始,顶层的数据流图形式如图10.2所示。
顶层数据流图应该包含所有相关外部实体,以及外部实体与软件中间的数据流,其作用主要是描述软件的作用范围,对总体功能、输入、输出进行抽象描述,并反映软件和系统、环境的关系。
对复杂系统的表达应采用控制复杂度策略,需要按照问题的层次结构逐步分解细化,使用分层的数据流图表达这种结构关系。
分层的功能级数据流图如图10.3所示,把处理事务的功能进一步分解后的数据流图如图10-4所示。
佳木斯大学
content
10.2结构化分析方法
结构化分析方法
图10.2定货系统的基本系统模型
佳木斯大学
content
10.2结构化分析方法
结构化分析方法
图10.3定货系统的功能级数据流图
佳木斯大学
content
10.2结构化分析方法
结构化分析方法
图10.4把处理事务的功能进一步分解后的数据流图
佳木斯大学
content
10.2结构化分析方法
结构化分析方法
为保证构造的数据流图表达完整、准确、规范,应遵循以下数据流图的构造规则和注意事项:
①对加工处理建立惟一、层次性的编号,且每个加工处理通常要求既有输入又有输出;
②数据存储之间不应该有数据流;
③数据流图的一致性。
它包括数据守恒和数据存储文件的使用。
④父图、子图关系与平衡规则。
(2)数据字典(DD—DataDictionary)
数据字典是结构化分析方法的核心。
佳木斯大学
content
10.2结构化分析方法
结构化分析方法
数据字典是为了描述在结构化分析过程中定义的对象的内容,而使用的一种半形式化的工具。
通常数据字典包含的信息有:
名称、别名、何处使用/如何使用、内容描述、补充信息等。
在数据字典的编制过程中,常使用定义式方式描述数据结构。
表10.1给出了常用的定义式符号。
佳木斯大学
10.2结构化分析方法
结构化分析方法
连接符
..
表示“注释”
**
表示“可选”,即括号中的项可以没有
(...)
表示“重复”,即括号中的项要重复若干次,n,m是重复次数的上下限
n{}m
表示“与”,“和”
+
表示“或”,即选择括号中用“|”号分隔的各项中的某一项
[…|…]
表示“等于”,“定义为”,“由什么构成”
=
含义
符号
表10.1数据字典定义式方式中出现的符号
佳木斯大学
content
10.2结构化分析方法
结构化分析方法
(3)判定树
判定树是以判定条件和结论为基础的,所以要想使用判定树进行描述,首先应先从问题定义的文字描述中分清哪些是判定的条件,哪些是判定的结论,根据描述材料中的连接词找出判定条件之间的从属关系、并列关系、选择关系,再以此为依据构造判定树。
例如,某货物托运管理系统中,计算行李费的算法,可以使用类似分段函数的形式来描述这些约束和处理。
对这种约束条件的描述,如果使用自然语言,表达易出现不准确和不清晰。
如果使用如图10.5所示的判定树来描述,则简捷清晰。
佳木斯大学
content
10.2结构化分析方法
结构化分析方法
图10.5用判定树表示计算行李费的算法
佳木斯大学
content
10.2结构化分析方法
结构化分析方法
(4)判定表
判定表与判定树相似,当数据流图中的加工要依赖于多个逻辑条件的取值,即完成该加工的一组动作是由于某一组条件取值的组合而引发的,使用判定表描述比较适宜。
判定表由四部分组成,如图10.6所示,其中标识为①的左上部称条件项,列出了各种可能的条件。
标识为②的右上部称条件项,它列出了各种可能的条件组合。
标识为③的左下部称基本动作项,它列出了所有的操作。
标识为④的右下部称动作项,它列出在对应的条件组合下所选的操作。
图10.7为“计算行李费;判定表,其中“√;表示满足对应条件项时执行的操作。
佳木斯大学
content
10.2结构化分析方法
结构化分析方法
图10.6判定表组成
佳木斯大学
10.2结构化分析方法
结构化分析方法
图10.7“计算行李费;判定表
×
(w-30)*12
×
(w-30)*8
×
(w-30)*6
×
×
×
(w-30)*4
×
(w-30)*3
×
(w-30)*2
×
免费
F
F
F
F
F
F
F
F
T
行李重W<=30
T
T
F
F
T
T
F
F
残疾乘客
F
T
F
T
F
T
F
T
头等舱
F
F
F
F
T
T
T
T
国内乘客
9
8
7
6
5
4
3
2
1
佳木斯大学
content
10.2结构化分析方法
结构化分析方法
3.软件需求规格说明书
软件需求规格说明书(SRS,SoftwareRequirement
Specification)是需求分析阶段的最后成果,是软件开发中的
重要文档之一。
(1)软件需求规格说明书的作用
①为用户、开发人员进行理解和交流提供方便。
②反映出用户问题的结构,可以作为软件开发工作的基础
和依据。
③作为确认测试和验收的依据。
佳木斯大学
content
10.2结构化分析方法
结构化分析方法
(2)软件需求规格说明书的内容
软件需求规格说明书是作为需求分析的一部分而制定的可
交付文档。
该说明把在软件计划中确定的软件范围加以展开,
制定出完整的信息描述、详细的功能说明、恰当的检验标准以
及其他与要求有关的数据
(3)软件需求规格说明书的特点
软件需求规格说明书是确保软件质量的有力措施,衡量软
件需求规格说明书质量好坏的标准,标准的优先级及标准的内
涵是:
佳木斯大学
content
10.2结构化分析方法
结构化分析方法
①正确性。
②无歧义性。
③完整性。
④可验证性。
⑤一致性。
⑥可理解性。
⑦可修改性。
⑧可追踪性。
佳木斯大学
content
10.3结构化设计方法
软件设计的基本概念
1.软件设计的基础
软件设计是一个把软件需求转换为软件表示的过程,它是
软件工程的重要阶段。
软件设计的基本目标是用比较抽象概括
的方式确定目标系统如何完成预定的任务,即软件设计是确定
系统的物理模型。
软件设计的重要性和地位概括为以下几点:
①软件开发阶段(设计、编码、测试)在软件项目开发总成
本中占据较大的比例,是在软件开发中形成质量的关键阶段;
②软件设计是开发阶段最重要的步骤,是将需求准确地转
化为完整的软件产品或系统的惟一途径;
佳木斯大学
content
10.3结构化设计方法
软件设计的基本概念
③软件设计作出的决策是至关重要的,它将最终影响软件
实现的成败;
④设计是软件工程和软件维护的基础。
从技术观点来看,软件设计包括软件结构设计、数据设
计、接口设计、过程设计。
从工程管理角度来看,软件设计分两步完成:
概要设计和
详细设计。
软件设计的一般过程是:
软件设计是一个迭代的过程;先
进行高层次的结构设计;后进行低层次的过程设计;穿插进行
数据设计和接口设计。
佳木斯大学
content
10.3结构化设计方法
软件设计的基本概念
2.软件设计的基本原理
软件设计遵循软件工程的基本目标和原则,建立了适用于
在软件设计中应该遵循的基本原理和与软件设计有关的概念。
(1)抽象
人类在认识复杂现象的过程中使用的最强有力的思维工具
是抽象。
(2)模块化
模块是由边界元素限定的相邻的程序元素(例如,数据说
明,可执行的语句)的序列,而且有一个总体标识符来代表
它。
佳木斯大学
content
10.3结构化设计方法
软件设计的基本概念
模块化就是把程序划分成独立命名且可独立访问的模块,
每个模块完成一个子功能,把这些模块集成起来构成一个整
体,可以完成指定的功能满足用户的需求。
(3)信息隐蔽
信息隐蔽原理指出:
应该这样设计和确定模块,使得一个
模块内包含的信息(过程和数据)对于不需要这些信息的模块来
说,是不能访问的。
(4)模块