软件技术基础2.ppt

上传人:b****2 文档编号:2683050 上传时间:2022-11-07 格式:PPT 页数:50 大小:849.50KB
下载 相关 举报
软件技术基础2.ppt_第1页
第1页 / 共50页
软件技术基础2.ppt_第2页
第2页 / 共50页
软件技术基础2.ppt_第3页
第3页 / 共50页
软件技术基础2.ppt_第4页
第4页 / 共50页
软件技术基础2.ppt_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

软件技术基础2.ppt

《软件技术基础2.ppt》由会员分享,可在线阅读,更多相关《软件技术基础2.ppt(50页珍藏版)》请在冰豆网上搜索。

软件技术基础2.ppt

软件技术基础软件技术基础黄华第一章第一章软件工程软件工程l1.11.1软件工程概述软件工程概述l1.21.2软件定义阶段软件定义阶段l1.31.3需求分析需求分析l1.41.4系统设计系统设计l1.51.5详细设计详细设计l1.61.6编码编码l1.71.7软件测试软件测试l1.81.8软件维护软件维护软件开发领域越来越表现出的几个主要问题:

软件开发领域越来越表现出的几个主要问题:

l开发成本难以控制,开发进度不可预计;开发成本难以控制,开发进度不可预计;l软件质量和可靠性很差,用户很不满意;软件质量和可靠性很差,用户很不满意;l在软件开发过程中,缺乏良好的软件文档;在软件开发过程中,缺乏良好的软件文档;l对软件的维护难度很大;对软件的维护难度很大;l软件开发的生产率很低,软件产品供不应求。

软件开发的生产率很低,软件产品供不应求。

1.1.1软件危机软件危机1.1.软件危机的产生软件危机的产生l定义:

定义:

指在计算机软件指在计算机软件开发开发和和维护维护过程中所遇到的过程中所遇到的一系列一系列严重问题严重问题,几乎所有的软件都不同程度地具有这些问题。

,几乎所有的软件都不同程度地具有这些问题。

一方面:

如何开发软件,来满足不断增长,日趋复杂的需一方面:

如何开发软件,来满足不断增长,日趋复杂的需求;求;一方面:

如何维护数量不断膨胀的软件产品。

一方面:

如何维护数量不断膨胀的软件产品。

软件危机产生的主要原因软件危机产生的主要原因l软件开发人员随心所欲地进行编程,缺乏系统软件开发人员随心所欲地进行编程,缺乏系统的、科学的开发方法和指导;的、科学的开发方法和指导;l用户在开发最初对软件需求的描述不准确,甚用户在开发最初对软件需求的描述不准确,甚至在软件开发过程中又提出修改要求;至在软件开发过程中又提出修改要求;l轻视软件维护工作,致使维护费用占软件总费轻视软件维护工作,致使维护费用占软件总费用的用的55%55%到到70%70%。

1.1.2软件工程软件工程l定义定义软件工程是一门研究如何使用系统化、规软件工程是一门研究如何使用系统化、规范化、数量化等工程的概念、原理、技术和方范化、数量化等工程的概念、原理、技术和方法去定义、开发和维护软件的有关技术和管理法去定义、开发和维护软件的有关技术和管理方法的工程科学。

方法的工程科学。

1.1.2软件工程软件工程l研究的内容研究的内容1.1.技术:

技术:

软件开发方法学、软件工具及软件工程环境等。

软件开发方法学、软件工具及软件工程环境等。

2.2.管理:

管理:

通过计划、组织和控制等一系列活动,合理地配通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,已达到既定目标的过程。

置和使用各种资源,已达到既定目标的过程。

l软件工程的三要素软件工程的三要素1.1.方法方法-技术手段技术手段2.2.工具工具-支撑环境支撑环境3.3.过程过程-工作步骤工作步骤1.1.2软件工程软件工程l目标目标以尽量小的代价和尽量少的时间开发出较以尽量小的代价和尽量少的时间开发出较高性能的合格软件。

高性能的合格软件。

1.1.3软件生命周期软件生命周期l概念:

软件生命周期是指从用户提出开发要求概念:

软件生命周期是指从用户提出开发要求起,经过开发、使用和维护,直到最后退役止起,经过开发、使用和维护,直到最后退役止的全过程。

的全过程。

l具体过程:

具体过程:

计划、分析、设计、实现、测试、集成、计划、分析、设计、实现、测试、集成、交付、维护等阶段。

交付、维护等阶段。

软件开发的模型软件开发的模型l瀑布模型瀑布模型l原型模型原型模型l螺旋模型螺旋模型l增量模型增量模型l迭代模型迭代模型l软件开发的模型软件开发的模型一、瀑布模型一、瀑布模型将生命周期划分为制定计划、需求分析、将生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等软件设计、程序编写、软件测试和运行维护等66个基本阶段,并且规定了它们自上而下、相个基本阶段,并且规定了它们自上而下、相互衔接的固定次序。

互衔接的固定次序。

传统的瀑布模型存在的弊端传统的瀑布模型存在的弊端l用户难以清楚地给出所有需求用户难以清楚地给出所有需求;l设计阶段中可能会发生规格说明文档中的错误设计阶段中可能会发生规格说明文档中的错误;l设计上的缺陷或错误可能在实现过程中显现出来设计上的缺陷或错误可能在实现过程中显现出来;l综合测试阶段将发现需求分析、设计或编码阶段综合测试阶段将发现需求分析、设计或编码阶段的许多错误的许多错误;l掩饰项目中真正的风险掩饰项目中真正的风险;具有维护循环的瀑布模型具有维护循环的瀑布模型瀑布模型必须坚持以下原则瀑布模型必须坚持以下原则l1.1.每个阶段都必须提供完整的文档,以作为该每个阶段都必须提供完整的文档,以作为该阶段工作结束的标志。

阶段工作结束的标志。

l2.2.每个阶段结束前都应对所完成的文档进行评每个阶段结束前都应对所完成的文档进行评审,以便尽早发现问题,改正错误。

审,以便尽早发现问题,改正错误。

软件开发的模型软件开发的模型二、原型模型二、原型模型建立一个能够反映用户主要需求的原型,建立一个能够反映用户主要需求的原型,使用户通过使用该原型来提出对原型的修改意使用户通过使用该原型来提出对原型的修改意见,然后再对原型进行修改,如此反复,最后见,然后再对原型进行修改,如此反复,最后建立起符合用户要求的新系统。

建立起符合用户要求的新系统。

原型模型原型模型原型模型原型模型l关键在于尽可能快速地建造出软件原型,一旦关键在于尽可能快速地建造出软件原型,一旦确定了客户的真正需求,所建造的原型将被丢确定了客户的真正需求,所建造的原型将被丢弃。

因此,原型系统的内部结构并不重要,重弃。

因此,原型系统的内部结构并不重要,重要的是必须迅速地建造原型,随之迅速地修改要的是必须迅速地建造原型,随之迅速地修改原型,以反映客户的需求。

原型,以反映客户的需求。

软件风险是任何软件开发项目中都普遍存软件风险是任何软件开发项目中都普遍存在的实际问题,项目越大,软件越复杂,承担在的实际问题,项目越大,软件越复杂,承担该项目所冒的风险也越大。

软件风险可能在不该项目所冒的风险也越大。

软件风险可能在不同程度上损害软件开发过程和软件产品质量。

同程度上损害软件开发过程和软件产品质量。

因此,在软件开发过程中必须及时识别和分析因此,在软件开发过程中必须及时识别和分析风险,并且采取适当措施以消除或减少风险的风险,并且采取适当措施以消除或减少风险的危害。

危害。

软件开发的模型软件开发的模型l构建原型是一种能使某些类型的风险降至最低的构建原型是一种能使某些类型的风险降至最低的方法。

方法。

l为了降低交付给用户的产品不能满足用户需要的为了降低交付给用户的产品不能满足用户需要的风险,一种行之有效的方法是在需求分析阶段快风险,一种行之有效的方法是在需求分析阶段快速地构建一个原型。

速地构建一个原型。

l原型并不能原型并不能“包治百病包治百病”,对于某些类型的风险,对于某些类型的风险,原型方法是无能为力的。

原型方法是无能为力的。

螺旋模型螺旋模型l螺旋模型的基本思想是,使用原型及其他方法螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险。

理解这种模型的一个简便方来尽量降低风险。

理解这种模型的一个简便方法,是把它看作在每个阶段之前都增加了风险法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型,如图所示。

分析过程的快速原型模型,如图所示。

螺旋模型螺旋模型l优点:

优点:

1.有风险驱动,对可选方案和约束条件的强调。

有风险驱动,对可选方案和约束条件的强调。

2.有利于已有软件的重用,也有助于把软件质有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标;量作为软件开发的一个重要目标;3.减少了过多测试(浪费资金)或测试不足减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险;(产品故障多)所带来的风险;螺旋模型螺旋模型l局限性:

局限性:

1.强调风险分析,但要求许多客户接受和相信强调风险分析,但要求许多客户接受和相信这种分析,并作出相关反应是不容易的;这种分析,并作出相关反应是不容易的;2.如果执行风险分析将大大影响项目的利润;如果执行风险分析将大大影响项目的利润;3.软件开发人员需要具有丰富的风险评估经验软件开发人员需要具有丰富的风险评估经验和专门知识,否则将出现真正的风险:

当项和专门知识,否则将出现真正的风险:

当项目实际上正在走向灾难时,开发人员可能还目实际上正在走向灾难时,开发人员可能还认为一切正常。

认为一切正常。

1.1.4软件开发方法软件开发方法l结构化方法结构化方法l面向对象的软件开发方法面向对象的软件开发方法l可视化开发方法可视化开发方法l生命周期法生命周期法l原型化方法原型化方法l1.1.4软件开发方法软件开发方法1.1.结构化方法结构化方法用结构化分析对软件进行需求分析,然后用结构化分析对软件进行需求分析,然后用结构化设计方法进行总体设计,最后是结构用结构化设计方法进行总体设计,最后是结构化编程和结构化测试。

化编程和结构化测试。

结构化分析结构化分析l结构化分析方法是使用数据流图(结构化分析方法是使用数据流图(DFDDFD)、数据字典)、数据字典(DDDD)、结构化语言、判定表和判定树的工具,来建立)、结构化语言、判定表和判定树的工具,来建立一种新的、结构化规格说明的目标文档。

一种新的、结构化规格说明的目标文档。

l步骤:

步骤:

1.1.理解当前现状环节,建立当前系统的理解当前现状环节,建立当前系统的“具体模型具体模型”;2.2.从当前系统的从当前系统的“具体模型具体模型”抽象出当前系统的逻辑模型;抽象出当前系统的逻辑模型;3.3.建立目标系统的逻辑模型;建立目标系统的逻辑模型;4.4.作进一步的补充和优化作进一步的补充和优化-为了对目标系统做完整的描为了对目标系统做完整的描述,还需要考虑人机界面和其他问题。

述,还需要考虑人机界面和其他问题。

结构化设计结构化设计l概要设计:

解决系统的模块结构,分解模块,概要设计:

解决系统的模块结构,分解模块,确定系统的模块层次关系确定系统的模块层次关系l详细设计:

对系统中的每个模块的内部过程详细设计:

对系统中的每个模块的内部过程进行设计和描述,解决每个程序功能模块究进行设计和描述,解决每个程序功能模块究竟如何实现的竟如何实现的“算法算法”问题。

问题。

1.1.4软件开发方法软件开发方法2.2.面向对象的软件开发方法面向对象的软件开发方法多层面的建立系统模型多层面的建立系统模型3.3.可视化开发方法可视化开发方法辅助开发工具辅助开发工具将开发人员注意力集中在业务逻辑和业务流将开发人员注意力集中在业务逻辑和业务流程上,在编程环节上利用可视化工具来完成。

程上,在编程环节上利用可视化工具来完成。

1.2软件开发的定义阶段软件开发的定义阶段软件定义阶段的任务是:

软件定义阶段的任务是:

l确定软件开发工程必须完成的总目标;确定软件开发工程必须完成的总目标;l确定工程的可行性;确定工程的可行性;l导出实现工程目标应该采用的策略及系统必须导出实现工程目标应该采用的策略及系统必须完成的功能;完成的功能;l估计完成该项工程需要的资源和成本,并且制估计完成该项工程需要的资源和成本,并且制定工程进度表。

定工程进度表。

1.2软件定义阶段软件定义阶段1.2.11.2.1问题定义问题定义l主要任务:

主要任务:

确定系统要解决的关键问题。

确定系统要解决的关键问题。

l实现方法:

实现方法:

通过对客户的访问调查,系统分析人员扼要地写出关于问通过对客户的访问调查,系统分析人员扼要地写出关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要的题性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后这份报告应该得到客户的确认。

修改之后这份报告应该得到客户的确认。

l需要交付的文档需要交付的文档项目任务书项目任务书项目定义的内容项目定义的内容l目标、范围和进度目标、范围和进度l风险估计及防范措施风险估计及防范措施l完成期限与交

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1