软件工程教案-概述
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章 软件工程概述
软件工程概述 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 软件概述 软件危机 软件工程 软件过程 软件开发方法 软件工程工具 软件工程课程学习资源 “学生档案管理系统”案例介绍 学生档案管理系统” 学生档案管理系统
Company Logo
1.1
软件概述
软件的概述及特点 软件的分类
Company Logo
软件危机的表现与原因
人们对软件产品认识的不足以及对软件开发的内在规律 理解的偏差是软件危机出现的本质原因。具体来说, 理解的偏差是软件危机出现的本质原因。具体来说,软 件危机出现的原因可以概括为以下几点: 件危机出现的原因可以概括为以下几点:
忽视软件开发前期的需求分析 。 开发过程缺乏统一的、规范化的方法论的指导。 文档资料不齐全或不准确。 忽视与用户之间、开发组成员之间的交流 。 忽视测试的重要性。 不重视维护或由于上述原因造成维护工作的困难。 从事软件开发的专业人员对这个产业认识不充分,缺乏经验。 没有完善的质量保证体系。
用分阶段的生存周期计划进行严格的管理 坚持进行阶段评审 实行严格的产品控制 采用现代程序设计技术 软件工程结果应能清楚地审查 开发小组的人员应该少而精 承认不断改进软件工程实践的必要性
B.Boehm指出,遵循前六条基本原则,能够实现软件的工程化生产; 指出,遵循前六条基本原则,能够实现软件的工程化生产; 指出 按照第七条原则,不仅要积极主动地采纳新的软件技术, 按照第七条原则,不仅要积极主动地采纳新的软件技术,而且要 注意不断总结经验。 注意不断总结经验。
失效原因
软件复杂度 非线性(多线程) 非线性(多线程)软件 对不期待的输入或条件估计不足 与外设接口动作异常 硬件或操作系统与软件不兼容 管理不善 测试不充分 粗心大意
失效原因
想走捷径 不向管理部门通报问题 风险分析不充分 数据输入错误 错误的输出解释 对软件过于自信 缺乏生产高质量软件的市场或法律压力
Company Logo
软件危机的启示
软件危机给我们的最大启示, 软件危机给我们的最大启示,是使我们更加深刻的认识 到软件的特性以及软件产品开发的内在规律。 到软件的特性以及软件产品开发的内在规律。
软件产品是复杂的人造系统,具有复杂性、不可见性和易变性, 难以处理。 个人或小组在开发小型软件时使用到的非常有效的编程技术和 过程,在开发大型、复杂系统时难以发挥同样的作用。 从本质上讲,软件开发的创造性成分很大、发挥的余地也很大, 很接近于艺术。 计算机和软件技术的快速发展,提高了用户对软件的期望,促 进了软件产品的演化,为软件产品提出了新的、更多的需求, 难以在可接受的开发进度内保证软件的质量。 几乎所有的软件项目都是新的,而且是不断变化的。 “人月神化”现象——生产力与人数并不成正比。
Company Logo
软件工程概念
图 1-4 软件工程层次图
Company Logo
软件工程发展
20世纪 年代,软件已经出现,但其作用和人们对其重视程度远远 世纪50年代 软件已经出现, 世纪 年代, 不如硬件 。 60年代,人们开始发现软件和硬件在许多方面都存在着不同 。 年代, 年代 70年代,人们开始采用与六十年代的“编码和组装”相反的过程,先 年代, 年代 人们开始采用与六十年代的“编码和组装”相反的过程, 做系统需求分析,然后再设计,最后再编码, 做系统需求分析,然后再设计,最后再编码,并把五十年代硬件工程 技术最好的方面和改进的软件方向的技术加以总结 。 伴随先前70年代开发的一些 最佳实践” 80年代开始了一系列工 年代开发的一些“ 伴随先前70年代开发的一些“最佳实践”,80年代开始了一系列工 作以处理七十年代遗留问题, 作以处理七十年代遗留问题,并且开始改进软件工程的生产效率和可 测量性。 测量性。 90年代,面向对象方法的强劲势头得以持续。 年代, 年代 面向对象方法的强劲势头得以持续。 90年代末,出现了许多的敏捷方法 。 年代末, 年代末 在新千年里,对快速应用开发追求的趋势仍在继续,在信息技术、 在新千年里,对快速应用开发追求的趋势仍在继续,在信息技术、组 竞争对策以及环境等方面的变革步伐也正在加快。 织、竞争对策以及环境等方面的变革步伐也正在加快。
项目经理 开发人员 测试人员 约250人 人 约1700人 人 约3200人 人
软件灾难故事
受医用线性加速器的过度辐射,造成6人严重烧伤 受医用线性加速器的过度辐射,造成 人严重烧伤 或死亡。 或死亡。 火星气候轨道航天器撞到了火星的表面。 火星气候轨道航天器撞到了火星的表面。 几架“黑鹰”直升机撞毁,多人罹难。 几架“黑鹰”直升机撞毁,多人罹难。 COMFIRM旅游预订系统在经过 旅游预订系统在经过1.25亿美元的投 旅游预订系统在经过 亿美元的投 资后流产。 资后流产。 F22战机的一个软件故障(边界值测试的漏洞) 战机的一个软件故障(边界值测试的漏洞) 战机的一个软件故障 2007年北京机场信息系统瘫痪。 年北京机场信息系统瘫痪。 年北京机场信息系统瘫痪 国外开发的2008北京奥运售票系统瘫痪。 北京奥运售票系统瘫痪。 国外开发的 北京奥运售票系统瘫痪
为了解决软件危机, 为了解决软件危机,人们开始尝试着用工程化的思想去指导软 件开发,于是软件工程诞生了。 件开发,于是软件工程诞生了。
Company Logo
1.3
软件工程
软件工程概念 软件工程发展 软件工程目标和原则 软件工程知识体
Company Logo
软件工程概念
IEEE对软件工程的定义为:(1)将系统化、严 对软件工程的定义为:( )将系统化、 对软件工程的定义为:( 格约束的、可量化的方法应用于软件的开发、 格约束的、可量化的方法应用于软件的开发、运 行和维护,即将工程化应用于软件。( 。(2) 行和维护,即将工程化应用于软件。( )对(1) ) 中所述方法的研究。 中所述方法的研究。 具体说来,软件工程是以借鉴传统工程的原则、 具体说来,软件工程是以借鉴传统工程的原则、 方法,以提高质量, 方法,以提高质量,降低成本为目的指导计算机 软件开发和维护的工程学科。 软件开发和维护的工程学科。它是一种层次化的 技术。 技术。
Company Logo
什么是软件
软件是指与操作一个计算机有关的计算机 程序、进程以及可能相关的记录和数据。 程序、进程以及可能相关的记录和数据。 软件的工作是告诉计算机做什么和如何做。 软件的工作是告诉计算机做什么和如何做。 软件具有与硬件明显不同的特点: 软件具有与硬件明显不同的特点:
软件是被开发或设计的,而不是被制造的 软件不会“磨损” 复杂性是软件的一个固有特性
Company Logo
软件危机的表现与原因
软件危机主要表现为: 软件危机主要表现为:
开发出来的软件产品不能满足用户的需求,即产品的功能或特 性与需求不符。 相比越来越廉价的硬件,软件代价过高。 软件质量难以得到保证,且难以发挥硬件潜能。 难以准确估计软件开发、维护的费用以及开发周期。 难于控制开发风险,开发速度赶不上市场变化 。 软件产品修改维护困难,集成遗留系统更困难。 软件文档不完备,并且存在着文档内容与软件产品不符的情况。
什么是软件危机: 什么是软件危机:
指在计算机软件的开发和维护过程中所遇 到的一系列严重问题。 到的一系列严重问题。
软件危机包括两个方面的问题: 软件危机包括两个方面的问题:
如何开发软件, 如何开发软件,怎样满足对软件的日益增长的 开发软件 需要。 需要。 如何维护数量不断膨胀的已有软件。 如何维护数量不断膨胀的已有软件。 维护数量不断膨胀的已有软件
Company Logo
软件工程目标和原则 软件工程要达到的基本目标包括: 软件工程要达到的基本目标包括:
达到要求的软件功能; 取得较好的软件性能; 开发出高质量的软件; 付出较低的开发成本; 需要较低的维护费用; 能按时完成开发工作,及时交付使用。
Company Logo
软件工程目标和原则
为了达到上述目标,软件工程设计、 为了达到上述目标,软件工程设计、工程支持以及工程管 理在软件开发过程中必须遵循一些基本原则。 理在软件开发过程中必须遵循一些基本原则。著名软件工 程专家B.Boehm B.Boehm综合有关专家和学者的意见并总结了多年 程专家B.Boehm综合有关专家和学者的意见并总结了多年 来开发软件的经验,提出了软件工程的七条基本原则: 来开发软件的经验,提出了软件工程的七条基本原则:
Company Logo
软件工程知识体 概括来讲,美国 协会和ACM的联合 概括来讲,美国IEEE协会和 协会和 的联合 建立“软件工程知识体系指南” 建立“软件工程知识体系指南”的目的主 要有以下几点: 要有以下几点:
促进世界范围内对软件工程的一致观点。 阐明软件工程相对其他学科的位置,并确立 它们的分界。 刻画软件工程学科的内容。 提供使用知识体系的主题。 为开发课程表、个人认证和许可材料提供基 础。
不按工程生产软件的代价
不得不重新构造代码; 不得不重新构造代码; 由于不良的代码结构造成昂贵的维护代价; 由于不良的代码结构造成昂贵的维护代价; 产生出含有错误或不可靠的代码; 产生出含有错误或不可靠的代码; 由于误解而不得不重写代码; 由于误解而不得不重写代码; 很难集成系统中各独立成份; 很难集成系统中各独立成份; 项目管理困难; 项目管理困难; 超出预算和工期。 超出预算和工期。
软件的复杂性
为什么会有这么多的软件开发项目失败? 为什么会有这么多的软件开发项目失败? 答案只有一个词,即复杂性。 答案只有一个词,即复杂性。 我们该怎么办? 我们该怎么办?简单地用一个词来回答就 是组织( 是组织(Organization)。 )。
软件的概述及特点
软件是计算机系统中不可或缺的一部分, 软件是计算机系统中不可或缺的一部分,它与硬 件合为一体,从而完成特定的系统功能。 件合为一体,从而完成特定的系统功能。 程序是人们为了完成特定的功能而编制的一组指 令集,它由计算机的语言描述, 令集,它由计算机的语言描述,并且能在计算机 系统上执行。而软件不仅包括程序, 系统上执行。而软件不仅包括程序,还包括程序 的处理对象——数据,以及与程序开发、维护和 数据, 的处理对象 数据 以及与程序开发、 使用有关的图文资料,即文档。 使用有关的图文资料,即文档。 计算机系统由软件和硬件组成。当建造硬件时, 计算机系统由软件和硬件组成。当建造硬件时, 人的创造性过程最终被转换成有形的形式。 人的创造性过程最终被转换成有形的形式。
复杂性 生产率
例:Windows95有1000万行代码 :Windows95有1000万行代码 Windows2000有5000万行代码 Windows2000有5000万行代码 Windows2000开发人员结构: Windows2000开发人员结构: 开发人员结构
Windows2000 2000
Company Logo
软件的概述及特点
作为计算机系统的重要组成部分,计算机软件功能的发挥 作为计算机系统的重要组成部分, 依赖于计算机硬件的支持,它与硬件相比, 依赖于计算机硬件的支持,它与硬件相比,具有以下一些 特点: 特点:
软件是一种逻辑实体,具有抽象性。 软件的生产与硬件的制造不同。 软件在运行使用过程中,不会磨损。 软件的开发至今尚未完全摆脱手工艺的开发方式。 软件的开发和运行必须依附于特定的计算机系统环境。
Company Logo
软件的概述及特点
图 1-1 硬件失效曲线图
Company Logo
软件的概述及特点
图 1-2 软件失效曲线图
Company Logo
软件的分类
图 1-3 软件的分类
CompanBiblioteka Logo1.2软件危机
软件危机的表现与原因 软件危机的启示
Company Logo
计算机软件发展的三个时期: 计算机软件发展的三个时期: 早期时代( 年中期以前 年中期以前) 早期时代(60年中期以前) 软件作坊( 年代) 软件作坊(60-70年代) 年代 软件工程 软件技术面临的问题: 软件技术面临的问题
软件工程概述 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 软件概述 软件危机 软件工程 软件过程 软件开发方法 软件工程工具 软件工程课程学习资源 “学生档案管理系统”案例介绍 学生档案管理系统” 学生档案管理系统
Company Logo
1.1
软件概述
软件的概述及特点 软件的分类
Company Logo
软件危机的表现与原因
人们对软件产品认识的不足以及对软件开发的内在规律 理解的偏差是软件危机出现的本质原因。具体来说, 理解的偏差是软件危机出现的本质原因。具体来说,软 件危机出现的原因可以概括为以下几点: 件危机出现的原因可以概括为以下几点:
忽视软件开发前期的需求分析 。 开发过程缺乏统一的、规范化的方法论的指导。 文档资料不齐全或不准确。 忽视与用户之间、开发组成员之间的交流 。 忽视测试的重要性。 不重视维护或由于上述原因造成维护工作的困难。 从事软件开发的专业人员对这个产业认识不充分,缺乏经验。 没有完善的质量保证体系。
用分阶段的生存周期计划进行严格的管理 坚持进行阶段评审 实行严格的产品控制 采用现代程序设计技术 软件工程结果应能清楚地审查 开发小组的人员应该少而精 承认不断改进软件工程实践的必要性
B.Boehm指出,遵循前六条基本原则,能够实现软件的工程化生产; 指出,遵循前六条基本原则,能够实现软件的工程化生产; 指出 按照第七条原则,不仅要积极主动地采纳新的软件技术, 按照第七条原则,不仅要积极主动地采纳新的软件技术,而且要 注意不断总结经验。 注意不断总结经验。
失效原因
软件复杂度 非线性(多线程) 非线性(多线程)软件 对不期待的输入或条件估计不足 与外设接口动作异常 硬件或操作系统与软件不兼容 管理不善 测试不充分 粗心大意
失效原因
想走捷径 不向管理部门通报问题 风险分析不充分 数据输入错误 错误的输出解释 对软件过于自信 缺乏生产高质量软件的市场或法律压力
Company Logo
软件危机的启示
软件危机给我们的最大启示, 软件危机给我们的最大启示,是使我们更加深刻的认识 到软件的特性以及软件产品开发的内在规律。 到软件的特性以及软件产品开发的内在规律。
软件产品是复杂的人造系统,具有复杂性、不可见性和易变性, 难以处理。 个人或小组在开发小型软件时使用到的非常有效的编程技术和 过程,在开发大型、复杂系统时难以发挥同样的作用。 从本质上讲,软件开发的创造性成分很大、发挥的余地也很大, 很接近于艺术。 计算机和软件技术的快速发展,提高了用户对软件的期望,促 进了软件产品的演化,为软件产品提出了新的、更多的需求, 难以在可接受的开发进度内保证软件的质量。 几乎所有的软件项目都是新的,而且是不断变化的。 “人月神化”现象——生产力与人数并不成正比。
Company Logo
软件工程概念
图 1-4 软件工程层次图
Company Logo
软件工程发展
20世纪 年代,软件已经出现,但其作用和人们对其重视程度远远 世纪50年代 软件已经出现, 世纪 年代, 不如硬件 。 60年代,人们开始发现软件和硬件在许多方面都存在着不同 。 年代, 年代 70年代,人们开始采用与六十年代的“编码和组装”相反的过程,先 年代, 年代 人们开始采用与六十年代的“编码和组装”相反的过程, 做系统需求分析,然后再设计,最后再编码, 做系统需求分析,然后再设计,最后再编码,并把五十年代硬件工程 技术最好的方面和改进的软件方向的技术加以总结 。 伴随先前70年代开发的一些 最佳实践” 80年代开始了一系列工 年代开发的一些“ 伴随先前70年代开发的一些“最佳实践”,80年代开始了一系列工 作以处理七十年代遗留问题, 作以处理七十年代遗留问题,并且开始改进软件工程的生产效率和可 测量性。 测量性。 90年代,面向对象方法的强劲势头得以持续。 年代, 年代 面向对象方法的强劲势头得以持续。 90年代末,出现了许多的敏捷方法 。 年代末, 年代末 在新千年里,对快速应用开发追求的趋势仍在继续,在信息技术、 在新千年里,对快速应用开发追求的趋势仍在继续,在信息技术、组 竞争对策以及环境等方面的变革步伐也正在加快。 织、竞争对策以及环境等方面的变革步伐也正在加快。
项目经理 开发人员 测试人员 约250人 人 约1700人 人 约3200人 人
软件灾难故事
受医用线性加速器的过度辐射,造成6人严重烧伤 受医用线性加速器的过度辐射,造成 人严重烧伤 或死亡。 或死亡。 火星气候轨道航天器撞到了火星的表面。 火星气候轨道航天器撞到了火星的表面。 几架“黑鹰”直升机撞毁,多人罹难。 几架“黑鹰”直升机撞毁,多人罹难。 COMFIRM旅游预订系统在经过 旅游预订系统在经过1.25亿美元的投 旅游预订系统在经过 亿美元的投 资后流产。 资后流产。 F22战机的一个软件故障(边界值测试的漏洞) 战机的一个软件故障(边界值测试的漏洞) 战机的一个软件故障 2007年北京机场信息系统瘫痪。 年北京机场信息系统瘫痪。 年北京机场信息系统瘫痪 国外开发的2008北京奥运售票系统瘫痪。 北京奥运售票系统瘫痪。 国外开发的 北京奥运售票系统瘫痪
为了解决软件危机, 为了解决软件危机,人们开始尝试着用工程化的思想去指导软 件开发,于是软件工程诞生了。 件开发,于是软件工程诞生了。
Company Logo
1.3
软件工程
软件工程概念 软件工程发展 软件工程目标和原则 软件工程知识体
Company Logo
软件工程概念
IEEE对软件工程的定义为:(1)将系统化、严 对软件工程的定义为:( )将系统化、 对软件工程的定义为:( 格约束的、可量化的方法应用于软件的开发、 格约束的、可量化的方法应用于软件的开发、运 行和维护,即将工程化应用于软件。( 。(2) 行和维护,即将工程化应用于软件。( )对(1) ) 中所述方法的研究。 中所述方法的研究。 具体说来,软件工程是以借鉴传统工程的原则、 具体说来,软件工程是以借鉴传统工程的原则、 方法,以提高质量, 方法,以提高质量,降低成本为目的指导计算机 软件开发和维护的工程学科。 软件开发和维护的工程学科。它是一种层次化的 技术。 技术。
Company Logo
什么是软件
软件是指与操作一个计算机有关的计算机 程序、进程以及可能相关的记录和数据。 程序、进程以及可能相关的记录和数据。 软件的工作是告诉计算机做什么和如何做。 软件的工作是告诉计算机做什么和如何做。 软件具有与硬件明显不同的特点: 软件具有与硬件明显不同的特点:
软件是被开发或设计的,而不是被制造的 软件不会“磨损” 复杂性是软件的一个固有特性
Company Logo
软件危机的表现与原因
软件危机主要表现为: 软件危机主要表现为:
开发出来的软件产品不能满足用户的需求,即产品的功能或特 性与需求不符。 相比越来越廉价的硬件,软件代价过高。 软件质量难以得到保证,且难以发挥硬件潜能。 难以准确估计软件开发、维护的费用以及开发周期。 难于控制开发风险,开发速度赶不上市场变化 。 软件产品修改维护困难,集成遗留系统更困难。 软件文档不完备,并且存在着文档内容与软件产品不符的情况。
什么是软件危机: 什么是软件危机:
指在计算机软件的开发和维护过程中所遇 到的一系列严重问题。 到的一系列严重问题。
软件危机包括两个方面的问题: 软件危机包括两个方面的问题:
如何开发软件, 如何开发软件,怎样满足对软件的日益增长的 开发软件 需要。 需要。 如何维护数量不断膨胀的已有软件。 如何维护数量不断膨胀的已有软件。 维护数量不断膨胀的已有软件
Company Logo
软件工程目标和原则 软件工程要达到的基本目标包括: 软件工程要达到的基本目标包括:
达到要求的软件功能; 取得较好的软件性能; 开发出高质量的软件; 付出较低的开发成本; 需要较低的维护费用; 能按时完成开发工作,及时交付使用。
Company Logo
软件工程目标和原则
为了达到上述目标,软件工程设计、 为了达到上述目标,软件工程设计、工程支持以及工程管 理在软件开发过程中必须遵循一些基本原则。 理在软件开发过程中必须遵循一些基本原则。著名软件工 程专家B.Boehm B.Boehm综合有关专家和学者的意见并总结了多年 程专家B.Boehm综合有关专家和学者的意见并总结了多年 来开发软件的经验,提出了软件工程的七条基本原则: 来开发软件的经验,提出了软件工程的七条基本原则:
Company Logo
软件工程知识体 概括来讲,美国 协会和ACM的联合 概括来讲,美国IEEE协会和 协会和 的联合 建立“软件工程知识体系指南” 建立“软件工程知识体系指南”的目的主 要有以下几点: 要有以下几点:
促进世界范围内对软件工程的一致观点。 阐明软件工程相对其他学科的位置,并确立 它们的分界。 刻画软件工程学科的内容。 提供使用知识体系的主题。 为开发课程表、个人认证和许可材料提供基 础。
不按工程生产软件的代价
不得不重新构造代码; 不得不重新构造代码; 由于不良的代码结构造成昂贵的维护代价; 由于不良的代码结构造成昂贵的维护代价; 产生出含有错误或不可靠的代码; 产生出含有错误或不可靠的代码; 由于误解而不得不重写代码; 由于误解而不得不重写代码; 很难集成系统中各独立成份; 很难集成系统中各独立成份; 项目管理困难; 项目管理困难; 超出预算和工期。 超出预算和工期。
软件的复杂性
为什么会有这么多的软件开发项目失败? 为什么会有这么多的软件开发项目失败? 答案只有一个词,即复杂性。 答案只有一个词,即复杂性。 我们该怎么办? 我们该怎么办?简单地用一个词来回答就 是组织( 是组织(Organization)。 )。
软件的概述及特点
软件是计算机系统中不可或缺的一部分, 软件是计算机系统中不可或缺的一部分,它与硬 件合为一体,从而完成特定的系统功能。 件合为一体,从而完成特定的系统功能。 程序是人们为了完成特定的功能而编制的一组指 令集,它由计算机的语言描述, 令集,它由计算机的语言描述,并且能在计算机 系统上执行。而软件不仅包括程序, 系统上执行。而软件不仅包括程序,还包括程序 的处理对象——数据,以及与程序开发、维护和 数据, 的处理对象 数据 以及与程序开发、 使用有关的图文资料,即文档。 使用有关的图文资料,即文档。 计算机系统由软件和硬件组成。当建造硬件时, 计算机系统由软件和硬件组成。当建造硬件时, 人的创造性过程最终被转换成有形的形式。 人的创造性过程最终被转换成有形的形式。
复杂性 生产率
例:Windows95有1000万行代码 :Windows95有1000万行代码 Windows2000有5000万行代码 Windows2000有5000万行代码 Windows2000开发人员结构: Windows2000开发人员结构: 开发人员结构
Windows2000 2000
Company Logo
软件的概述及特点
作为计算机系统的重要组成部分,计算机软件功能的发挥 作为计算机系统的重要组成部分, 依赖于计算机硬件的支持,它与硬件相比, 依赖于计算机硬件的支持,它与硬件相比,具有以下一些 特点: 特点:
软件是一种逻辑实体,具有抽象性。 软件的生产与硬件的制造不同。 软件在运行使用过程中,不会磨损。 软件的开发至今尚未完全摆脱手工艺的开发方式。 软件的开发和运行必须依附于特定的计算机系统环境。
Company Logo
软件的概述及特点
图 1-1 硬件失效曲线图
Company Logo
软件的概述及特点
图 1-2 软件失效曲线图
Company Logo
软件的分类
图 1-3 软件的分类
CompanBiblioteka Logo1.2软件危机
软件危机的表现与原因 软件危机的启示
Company Logo
计算机软件发展的三个时期: 计算机软件发展的三个时期: 早期时代( 年中期以前 年中期以前) 早期时代(60年中期以前) 软件作坊( 年代) 软件作坊(60-70年代) 年代 软件工程 软件技术面临的问题: 软件技术面临的问题