软件工程及其实践
软件工程实践报告

软件工程实践报告软件工程实践报告1. 引言软件工程是一门研究如何以系统化、规范化、可预测的方式开发和维护软件的学科。
在软件工程实践过程中,各种软件开发方法和技术被应用和验证。
本报告将重点介绍软件工程实践的重要性以及一些常见的软件工程实践方法。
2. 软件工程实践的重要性软件工程实践对于软件开发过程的成功至关重要。
以下是几个软件工程实践的重要性:2.1 提升软件质量软件工程实践的一个主要目标是确保软件的质量。
通过系统地应用质量保证活动,如代码审查、单元和集成等,可以帮助发现并修复潜在的问题和错误。
这有助于减少缺陷和故障的数量,提高软件的可靠性和可用性。
2.2 提高开发效率软件工程实践可以提供一套标准方法和工具,帮助开发团队更高效地组织和管理开发过程。
通过分析和设计阶段的规范化,以及使用可重用的代码和组件,可以减少重复劳动和开发时间,并提高开发效率。
2.3 降低开发成本软件工程实践可以帮助开发团队合理规划和管理资源,优化开发过程,从而降低开发成本。
通过合理的需求分析和项目管理,可以减少变更和重复工作的数量,降低开发过程中的成本和风险。
3. 软件工程实践方法3.1 敏捷开发敏捷开发是一种以迭代和增量方式开发软件的方法。
它强调快速响应变化和紧密合作的团队工作模式。
敏捷开发方法包括Scrum、XP等,它们强调用户的反馈和需求的快速迭代,以实现更高的客户满意度和开发效率。
3.2 命令式开发命令式开发是一种通过给定一系列操作来描述软件行为的开发方法。
它主要关注软件的执行流程和状态转换。
常见的命令式开发方法包括面向过程的开发方法和面向对象的开发方法。
命令式开发方法的一个优点是易于理解和维护。
3.3 领域驱动设计领域驱动设计是一种将软件设计与领域模型紧密集成的开发方法。
它强调开发团队和领域专家之间的密切合作,通过共享语言和模型来共同理解和解决问题。
领域驱动设计方法可以提高软件的灵活性和可维护性。
3.4 DevOpsDevOps是一种融合了开发和运维的开发方法。
软件工程的实践与方法

软件工程的实践与方法软件工程是一门涉及软件开发和维护的学科,它关注如何以系统化的方法来构建和管理软件项目。
在这篇文章中,我将介绍一些软件工程实践和方法,以帮助开发人员更好地处理软件项目。
1. 需求分析在软件工程中,需求分析是项目成功的关键。
开发人员必须准确理解用户的需求,这样才能为用户构建出满足需求的软件系统。
在进行需求分析时,可以使用UML(统一建模语言)工具来进行需求建模和详细规划。
2. 设计与架构软件设计是指将需求转化为系统结构和组件的过程。
在设计阶段,开发人员需要考虑如何将系统划分为不同的模块,并确定模块之间的接口和依赖关系。
此外,合理的软件架构对于项目的成功也是至关重要的。
开发人员可以使用面向对象设计原则和设计模式来辅助设计和构建高质量的软件系统。
3. 编码与实现在软件工程实践中,编码是将设计转化为计算机程序的过程。
开发人员通常会使用一种编程语言(如Java、Python等)来实现软件系统。
在编码过程中,应遵循代码规范和最佳实践,以确保代码的可读性、可维护性和可扩展性。
4. 测试与调试软件测试是确认软件系统是否符合规格要求的过程。
测试过程应包括单元测试、集成测试和系统测试等多个阶段。
开发人员可以使用测试框架和工具来自动化测试流程,并确保软件的正常功能和性能。
5. 配置管理配置管理是管理和控制软件版本和变更的过程。
开发人员应使用版本控制工具(如Git、SVN等)来跟踪代码的变化,并确保开发团队的协作和代码的稳定性。
6. 项目管理与协作在软件工程实践中,项目管理和协作是确保项目按时交付和满足质量要求的关键环节。
开发团队可以使用项目管理工具(如JIRA、Trello 等)来安排任务、跟踪进度和协同工作。
7. 文档与知识管理在软件开发过程中,文档和知识管理是记录和共享知识的重要手段。
开发人员应编写清晰、准确的文档,以便于项目的后续维护和团队成员的交流。
总结:软件工程实践与方法涵盖了软件项目的各个方面,包括需求分析、设计、编码、测试、配置管理、项目管理、文档管理等。
软件工程毕业实习报告5篇

软件工程毕业实习报告5篇软件工程毕业实习报告1一、实习目的1、实习目的毕业实习是我们大学生必须经历的过程,是理论与实践相结合的重要方式,使我们在实践中了解社会、在实践中巩固知识。
实习是个人综合能力的检验,除了有一定的课本知识外,还需有一定的实践动手能力,操作能力。
实习是对我们毕业生专业知识的一种检验,它让我们学到了很多在课堂上根本就学不到的知识,技能开阔视野,又能增长见识,为我们走向社会打下坚实的基础,也是我们走向工作岗位的第一步。
为了将大学所学的专业理论知识运用与实践,在实践中结合理论加深对其认识和总结。
将专业与实际接轨,逐步认识,体会,从而更好地将所学的运用到工作中去。
接触社会,认识社会,学会做事,学会与人相处,学会团结协作。
通过深入基层,了解经济管理和财会会计工作现状,可加深理解并巩固所学专业知识,进一步提高认识问题、分析问题、解决问题的能力,使一个计算机专业的学生应在毕业实习与设计中用所学知识解决现实中的一些问题,对所学专业理论和实践知识进行巩固,同时提高自学、独立开发和协作能力,为走向工作岗位奠定良好的基础。
2、实习情况和实习要求实习情况是我实习是在河南城建学院校内进行的,主要是提高计算机的专业技能以及了解外出学生工厂单位不同情况和工作上的经验。
实习要求有以下几条:1努力学习,刻苦钻研,按时完成毕业实习任务。
2虚心接受教师指导。
3敢于创新,勤于实践,注意锻炼和提高自己。
4热爱劳动,注意节约,严格遵守操作规程和各项规章制度。
5进行毕业实习期间,学生因故请假,一次连续不得超过三天,累计不超过一周,否则不准参加答辩,其成绩按不合格处理。
学生因故请假,须事先取得指导员同意,并报主管教学系主任签字批准,方为有效,否则以旷课论处。
请假情况须在“日志”上注明。
6独立完成规定的工作任务,不得弄虚作假,不准抄袭他人内容,否则其毕业实习成绩以不及格计。
7熟练并掌握C语言程序设计等专业知识的基本操作。
8能熟练操作SQL数据库以及熟悉ASP。
如何进行软件工程的研究和实践

如何进行软件工程的研究和实践软件工程是一门非常重要的学科,它涉及到计算机科学、工程学、管理学等多个学科,同时被广泛应用于各个领域。
软件工程的研究和实践是非常有意义的,可以为我们提供许多有价值的理论和实践经验。
那么如何进行软件工程的研究和实践呢?本文将从以下几个方面进行探讨。
一、理论研究理论研究是软件工程研究的核心,只有在深入研究理论基础的基础上,才能更好地进行实践。
软件工程的理论包括需求分析、设计、测试、部署等各个方面,我们可以通过阅读相关文献、参加相关的学术会议以及与其他领域的专家进行交流,不断拓展自己的知识领域,深入理解软件工程的本质和实践过程,为实践提供有力的理论支持。
二、实践研究实践是验证理论的重要手段,只有通过实践,才能真正了解软件工程理论是否正确,是否能够充分满足各种应用场景的需求。
软件工程的实践包括需求分析、项目管理、质量保证、测试等各个方面,我们可以通过参加项目开发、实际应用以及与业界最新工具和技术的接触,不断提高自己的实践能力,掌握更为高效和实用的实践技术,推动软件工程的发展和进步。
三、团队合作软件工程是一项复杂而繁琐的工作,需要多人协作才能完成。
因此,团队合作是非常重要的。
我们需要与各种类型的人员进行合作,包括需求分析师、设计师、开发人员、测试人员、项目经理等等,只有通过协作和配合,才能保证项目的高质量和顺利完成。
此外,我们还需要更广泛地了解团队合作的原则、技巧和最佳实践,了解如何通过团队合作来提高工作效率,实现项目胜利。
四、学习新技术软件工程是一项充满变化的学科,每天都有新的工具和技术产生。
因此,学习新技术是不可或缺的。
我们需要关注最新的工具和技术,不断提高自己的技能和能力,掌握最新的工具和技术才能更好地为项目提供服务。
此外,我们还需关注行业的发展趋势,提前了解即将到来的新技术和趋势,开发出具有前瞻性和前瞻性的项目方案。
五、持续改进软件工程是一项不断变化和完善的工作。
因此,持续改进非常重要。
软件工程实习总结

软件工程实习总结软件工程实习总结(精选11篇)一段时间的实习生活又接近尾声,想必你学习了很多新技巧,在实习总结中记录下这来之不易的成果吧。
很好奇实习总结是怎么写的吧,以下是小编帮大家整理的软件工程实习总结,欢迎阅读与收藏。
软件工程实习总结篇1时间过的很快,转眼间已经实习将近5个月。
最先在内部系统组参与内部管理系统开发(struts+mysql+spring+ibernate),之后是去做网络交换机软件的脚本测试。
现在又回归内部系统,虽然在脚本组期间,编码能力被别人甩在后头,但至少具有了一些测试经验。
至少自己做的东西,是真正交付到了客户手上,到也稍微有些成就感。
1、浅谈测试一直以来,我都认为测试是脱离了软件工程范围的工作,不以为屑。
但在实际情况中,测试是既重要且难以精湛的。
其真正的压力,在于找不到bug,责任在你,而不在于编码人员。
一般的测试人员不懂编码,他们靠的是日以累计的经验总结和想象力。
而要做到高级测试工程师,则一定要懂编码,因为这是你完全掌握整个系统的方方面面具体运作的前提。
但占主导地位的,还是大型系统的集成测试经验。
实际项目中,编码时间一般只占30%左右,真正耗费时间的是IT阶段的找bug与对应bug,此阶段基本评定了coder的编码质量。
2、程序员的困惑有些人,以为教学视频和代码看多,自己就懂的多,实际做起来,却不知从何下手,问题在那?如何定位?如何解决?通通跟一样能力有关,debug追踪能力,也称调试。
在项目组工作不愁源码资源,但问题是蛋糕摆在面前,你如何去消化?有位同事告诉我:代码看几遍都没用,要去抄,例如一个查询模块,在此基础上去做具体记录的历史记录查询模块,你可能会觉得很简单,但实际情况却往往报一堆异常,配置问题涉及到方方面面,以及数据库字段,传值问题等等,一大堆对于新人来说很郁闷的问题。
但不用怕,只要学会调试,一个个问题去追踪,一个个去解决,自然而然,那段“源码”才真正属于你。
软件工程综合实践举例

软件工程综合实践举例
以下是一些软件工程综合实践的例子:
1. 敏捷开发:敏捷开发是一种以迭代、自组织和跨功能团队合作为基础的软件开发方法。
团队通过密切合作、迭代开发和及时反馈来快速交付高质量的软件。
实践中,团队通常会使用Scrum或Kanban等敏捷项目管理框架。
2. 持续集成和持续交付:持续集成和持续交付是一种通过自动化测试和部署来频繁地集成和交付软件的方法。
开发人员在每个提交代码时都会运行自动化测试,确保稳定性并快速检测和解决问题。
同时,软件的持续交付使得新功能能够快速地推向生产环境。
3. 质量管理和测试:质量管理和测试是软件开发过程中非常重要的一部分。
团队通常会定义测试计划、制定测试策略,执行功能测试、性能测试和安全测试等各种类型的测试来确保软件的质量。
此外,还会使用代码审查、静态分析和缺陷跟踪工具等方式来对代码进行质量控制。
4. 可回溯的需求管理:可回溯的需求管理是一种对需求进行跟踪和管理的方法。
通过在需求文档中使用唯一的标识符或编号,团队可以轻松地跟踪每个需求的状态、变更和实现情况。
此外,还可以使用需求管理工具来帮助跟踪和管理需求。
5. 风险管理:软件项目中存在各种风险,如技术风险、进度风险和需求风险等。
风险管理是一种识别、评估和应对项目风险
的方法。
团队可以使用不同的风险评估方法和工具来识别和评估潜在风险,并根据风险的严重性和优先级采取相应的措施进行管理。
总之,软件工程综合实践涵盖了各个方面的软件开发实践,旨在提高软件质量、开发效率和团队协作能力。
以上举例是其中一些常见的实践,实际应用中可能根据具体项目和团队需求进行定制。
软件工程的方法与实践

软件工程的方法与实践软件工程是一种以科学规范化的方式进行软件开发的方法。
软件工程的方法和实践是指软件工程领域中,用来指导软件研发和管理的方法和实践技巧。
软件工程的方法有很多,其中比较常见的有面向对象、结构化、模块化和面向服务的开发方法。
面向对象开发是针对对象进行建模和开发的方法,可以轻松地实现代码重用和维护。
结构化方法主要将软件的开发分解成几个层次,每个层次都有自己的职责和任务,便于协作开发和管理。
模块化方法则将软件分解成几个可独立使用的部分,方便维护和扩展。
面向服务的方法以服务为中心,以组件化的方式构建软件系统,便于在不同的应用程序和平台之间共享服务。
实践是指软件工程的各个方面都需要数据和证据支持,而不是仅仅通过经验判断。
软件工程实践可以分为五个方面:软件规划、需求分析、设计、实现和测试。
在软件规划方面,需要建立一个针对具体项目的软件开发计划,并考虑项目的开发成本、风险、进度和质量等。
需求分析方面需要明确用户需求并与用户进行沟通,以确保软件系统能够满足用户需求。
在设计方面,需要进行系统设计、组件设计和数据模型设计等工作。
实现方面则是根据设计文档完成软件代码的编写。
在测试方面则需要对软件进行各种类型的测试,确保软件系统质量和稳定性。
除了以上五个方面的实践,软件工程还需要注意质量保证、版本控制、软件配置管理和持续集成等方面的实践。
质量保证需要确保软件系统在开发过程中符合质量标准,并进行测试和质量评估。
版本控制则是管理软件系统不同版本的开发,包括版本的修改、发布和回退等。
软件配置管理可以确保软件系统在不同开发环境下的一致性,并确保版本的正确性和可追踪性。
持续集成是一种持续地在软件开发中集成和测试的方法,可以保证软件系统的开发进程与实践保持同步。
软件工程方法和实践的正确应用可以提高软件开发的效率和质量,并促进软件工程领域的发展。
在实际应用中,需要按照具体项目特点和需求进行选择和调整,并不断总结和改进实践方法,以保证软件系统的质量和开发效率。
软件工程》实践教学大纲(3篇)

第1篇一、课程简介《软件工程》是一门研究软件开发原理、方法和工具的学科,旨在培养学生具备软件开发的基本理论、实践技能和工程素养。
本课程通过实践教学,使学生能够掌握软件工程的基本方法,提高软件开发能力,为后续课程学习和实际工作打下坚实基础。
二、教学目标1. 理解软件工程的基本概念、原理和方法。
2. 掌握软件开发过程中的需求分析、设计、编码、测试和维护等基本技能。
3. 具备使用常用软件开发工具进行实际项目开发的能力。
4. 培养良好的团队协作和沟通能力,提高工程素养。
三、教学内容1. 软件工程概述- 软件工程的定义和发展历程- 软件生命周期和开发模型- 软件工程的目标和原则2. 需求分析- 需求获取和分析方法- 需求规格说明和文档编写- 需求管理3. 软件设计- 设计原则和模式- 数据库设计- 系统架构设计4. 软件开发- 编码规范和最佳实践- 集成开发环境(IDE)的使用- 版本控制工具的使用5. 软件测试- 测试方法和技术- 测试用例设计- 软件测试管理6. 软件维护- 维护过程和方法- 软件配置管理- 软件质量保证7. 软件项目管理- 项目管理的基本概念和原理- 项目计划、执行和监控- 团队协作和沟通四、实践教学安排1. 实践教学课时:共40学时,其中理论课24学时,实践课16学时。
2. 实践教学环节:(1)课堂演示:讲解软件工程的基本概念、原理和方法,演示常用软件开发工具的使用。
(2)案例分析与讨论:分析实际软件项目案例,讨论软件工程在实际开发中的应用。
(3)上机实验:完成以下实验项目:1. 需求分析实验:完成一个简单软件的需求分析,编写需求规格说明书。
2. 设计实验:完成一个简单软件的设计,包括数据库设计、系统架构设计等。
3. 编码实验:使用一种编程语言实现一个简单软件的功能。
4. 测试实验:编写测试用例,对软件进行功能测试和性能测试。
5. 维护实验:对已完成的软件进行维护,修复已知问题和优化性能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程及其实践——以GIS中图形编辑为例朱玲解放军信息工程大学测绘学院地图制图学与地理信息工程系制本35班摘要:本文介绍了目前流行的一种软件开发技术——软件工程技术。
通过对其发展过程、有关概念、开发方法及在国内外发展的叙述,说明了软件工程技术给软件开发带来的巨大成就。
并以GIS中图形编辑为例,论述了如何应用软件工程的思想开发GIS软件产品。
关键词:软件工程,GIS软件,面向对象,基类,继承引言:50多年来,随着计算机系统的发展,软件开发技术也发生着变化,软件工程首先是为了解决软件危机而提出的。
面对着那无穷无尽的现实的和潜在的计算机应用需求,研究如何更快、更好、更多、更方便地开发出各种不同类型、不同目的的软件,这就是软件开发技术和软件工程技术所要解决的一个问题。
软件开发技术的巨大成就,已经使软件开发不再是少数逻辑天才或专家的专利,而是广大用户可以参与和直接开发自己的应用项目。
一、软件工程的由来、原则和开发方法(一)软件工程的概念软件工程——将系统化的、规范的、可度量的方法用于软件的开发、运行和维护的过程。
它把经过实践和时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,是指导计算机软件开发和维护的工程科学。
软件工程的指导思想,是以处理工程问题一样的方法处理软件生产的全过程,利用较少的投资获得高质量的软件产品。
(二)软件危机计算机软件是一个逻辑的而不是物理的系统,它具有一些与硬件显著不同的特点。
开发软件的主要工作集中在定义、开发和维护等方面。
60年代以来,计算机语言和编译技术的成果为程序设计工作带来了方便,又为计算机的广泛应用开辟了道路。
然而,我们必须看到软件开发技术虽然出现了许多新事物,但和硬件技术的飞速发展相比,他已经明显落后了。
许多年来被人们沿用的手工作坊式软件开发方法一直未曾被突破,这种传统的方法使得许多发现了的问题得不到及时解决。
在软件产品的质量、成本以及开发时间等方面无法满足人们的需求,极大的影响着软件行业的声誉。
一些典型的问题表现在软件产品质量低劣(如工作可靠性差、用户难以使用、难以维护等),研制软件成本太高,不能按时交付使用等。
这些现象一般称其为“软件危机”。
造成“软件危机”的原因是多方面的,从认识方面看,程序设计曾经被当作是一种任人发挥创造精神的技术科学。
不少人认为,写出的程序只要能在计算机上得出正确的结果,程序如何编写不应受到任何约束。
尽管程序很难被别人看懂,但只要含有精心设计的程序技巧,就是高水平的程序。
殊不知这样可供“孤芳自赏”的程序在测试、修改以及维护中会遇到很多困难,而且常常是从新产生错误的祸根。
进一步分析技术和管理上的原因,包括:未能充分理解和正确表达用户的需要;采用了不适当的开发方法;没有或未能认真遵循开发规范;测试方法不当;项目管理不利;不重视资料、文档工作等等。
“软件危机”出现于60年代末期,人们认识到那种手工作坊似的软件开发已经行不通了,必须寻找新的技术来指导软件开发。
1968年在北大西洋公约组织的一次学术会议上首次提出了“软件工程”这一名称。
70年代中期又提出了软件生命期的概念。
80年代以来,软件工程的思想得到系统的归纳和整理,提出了许多工程化方法。
总之,为了摆脱软件危机,把软件开发向前推进一步,人们认识到出路只有一个,就是软件研制一定要走工程化的道路。
(三)软件工程的发展软件开发技术和方法的发展,大体经历了三个时代,即程序设计时代、软件时代、软件工程时代。
各时代的特点如表(1)所列。
表(1)软件工程的发展(四)软件开发的基本原则成功的软件开发总是遵循以下七个原则:●严格性和形式化原则:影响软件产品的可靠性、可维护性、复用、可移植性、可理解性等等。
●分隔原则:指从问题的不同方面分别单独考虑,从而集中精力分别去解决每一方面的问题。
●模块 / 部件化原则:指划分为较为简单的“单元”,通常称之为模块(module)。
对于开发人员来说,首先要面对的问题是如何在应用领域的应用模型中找出有共性、可通用的部分做成软件构件;第二,构件相互之间的集成和装配;第三,如何实现构件之间的相互通讯、如何实现数据共享的问题;第四,软件构件化技术只是刚刚起步,如何实现由以前的一体化系统到新的构件化系统的转变。
●抽象原则:指标识出重要的方面,忽略次要细节。
●预期变化原则:指在软件开发早期就应对软件未来变化的发生情况、范围和时间进行有效的预测。
●通用性原则 / 软件复用原则:指尽可能集中注意力去揭示那些隐藏在表面之下的、具有一定普遍性和通用性的问题。
●递增模式原则:指先组成目标的一个子集,完成其开发,提交用户使用得到反馈信息,从而进一步改进。
(五)软件设计及开发方法1、结构化方法又称为生命周期法或瀑布法。
这是目前最常用也是最成熟的软件开发方法。
使用该方法的优点是有严格的一套开发程序,各开发阶段都要求完整的文档记录。
在开发软件系统的整个过程中,需严格按照件生命期的各阶段进行。
系统开发的生命周期的划分实际上是系统开发的一种方法论,或者说是组织工作的过程。
特别是对计算机信息系统这样的复杂系统工程来说将有许多人参加研制,有许多任务要完成。
因此,必须有人组织、协调、控制。
系统开发生命期的每一步都必须有检查、评价及决策。
结构化方法的主要特点有:(1)强调需求定义的重要性;(2)严格的 / 预先定义方法;结构化方法的软件生命期分为下面几个阶段:(模型如图(1))●软件项目规划阶段●需求分析阶段●设计阶段●编码阶段●测试阶段●维护阶段图(1)瀑布模型2、面向对象的开发方法因为把用结构化的分析设计和建模方法产生的结果过度到面向对象系统是不自然的,也是困难得,因此面向对象软件开发方法是为客观现实世界(用对象观更容易理解)和对象的程序设计(建立面向对象系统)之间架起的一座桥梁。
面向对象的方法把功能和数据看作是高度统一的。
尽管面向对象的软件开发方法并不是一剂万灵药,但概括的说,它的主要优点有:(1)较好的处理软件的规模和复杂性不断增加所带来的问题。
主要通过以下办法:使用各种类型的抽象;围绕较大的类型进行局部化(如围绕对象和类抽象,而不是围绕函数抽象);使用递归把软件划分成一些小的易处理的小集合。
(2)更适合系统中控制关系复杂,重要而分散的情况。
(3)不是由系统的高层模块起控制作用,而是通过对象间的协作完成特定任务,所以更易管理。
(4)通过使用各种直接模仿应用领域的实体得到的抽象和对象,使规格说明和设计更加完整和易于理解。
(5)通过给软件工程师提供更好的统一化规范(例如,在分析和设计中使用相同的流程、概念、模型和注释),使得开发活动之间的过度变的容易。
(6)通过围绕对象和类进行局部化,提高了规格说明、设计和代码的可扩展性、可维护性、可复用性和结构管理。
(7)通过形成界面更少、更抽象的聚集度更高的模块,提高了软件工程中的模块化和信息隐藏度。
(8)使用面向对象程序设计语言和面向对象数据库管理系统时,便于转入应用。
因为面向对象程序设计语言和面向对象数据库管理系统的使用,大大缩小了代码规模,提高了效率和可复用性。
(9)使开发者的工作更加简单,提高了软件和文挡的质量。
二、软件产业在国内外的发展工业发达国家的计算机系统已经经历了三个不同的发展时期,计算机硬件性能/ 价格比平均每十年提高两个数量级,;与此同时,计算机软件成本却在逐年上升,质量没有可靠保证。
软件已经成为限制计算机系统发展的关键因素。
进入90年代,在经济全球化背境的推动下,信息的交流、资源的共享成为无法抵抗的诱惑。
在90年代,大量已开发出的优秀系统设计,提供了将系统设计成果和重要设计问题的成功解决方案从软件系统中分离出来的可能性。
如果说,数据结构与算法的成果是使编程不在成为天才的专利,那么目前这种分离将使构造系统成为普通人的工作。
我国软件产业起步于80年代,经过十几年的艰苦创业和发展,已具有一定的软件开发和小规模生产能力。
然而,总体水平仍处于初级阶段,企业规模小、人员分散、抗风险能力差。
不可否认,我国软件产业的发展也取得了一定的成绩,但国产软件的比重依然比较低,国产软件的市场占有率只有30%,且主要是应用软件,国产软件销售总额中所占的比重不足1%,并且与发达国家甚至是某些发展中的国家的差距越来越大。
形势严峻,大力发展我国的软件产业迫在眉睫。
三、地理信息系统(GIS)软件开发地理信息系统(简称GIS)是60年代中期开始逐渐发展起来的新技术。
它最初以解决地理问题而起,如今已涉及测绘科学、环境科学、计算机技术科学等,成为一门名副其实的多学科交叉技术。
概括的讲,地理信息系统是输入、处理、管理、输出具有空间特性的信息的计算机软硬件系统。
GIS软件在这十年间发生了很大的变化。
硬件性能的提高,软件技术的演进,计算机体系结构的不断变化,均促进了更为强大、成熟和更为复杂的GIS 软件系统的出现。
想要建造正确的GIS软件产品,开发的方法和技术其实就是上面所介绍的软件工程,它包括GIS软件开发中采用的方法,应用的技术和工具。
(一)项目开发方法随着计算机系统的增多,计算机软件库开始扩展。
这时,程序员发现自己越来越繁忙起来:当发现错误时需要纠正所有这些程序;当用户需求发生变化时需要修改;当硬件环境更新时需要适应。
这些活动统称为软件维护。
在软件维护上所花费的精力开始以惊人的速度消耗资源。
其费用甚至远远超过了系统初始开发的整个费用。
一般说来,GIS是一个大型、复杂的软件系统。
为了确保这样一个大型软件项目的质量,降低开发费用,提高系统开发的成功率,必须借助科学的软件开发方法。
有效的系统开发需要开发小组的共同努力,了解软件开发的方法对参与GIS软件开发项目的所有人员都是非常重要的,其中包括用户和所有GIS 专业人员。
下面介绍三种常用的GIS软件开发方法。
1、线形顺序模型即上面所说的结构化方法(又称生命周期法或瀑布法)。
有时,某一阶段得到的信息会使周期向前一阶段回退。
这种方法存在的最大问题是,用户只有在系统几乎全部完工时才能使用该系统,另一个问题是开发者常常因为在生命开发周期的某个环节发生“阻塞”而影响随后环节的进行。
2、原型法当用户定义了系统的一般性目标,但不能标识出详细的输入、输出、处理及反馈需求,这时可以先建立系统的一个初始版本提供给用户试用,经过用户反馈后,进行改进后成为第二代、第三代版本,一直到整个系统最终完成(如图(2))。
原型法的优点在于它能够很快完成可操作原型并提供给用户,这样用户会变得更积极主动,容易及时发现错误并判断是否满足需求。
3、面向对象的方法如前面软件(五)设计及开发方法中所介绍的面向对象开发方法。
图(2)原型法(二)为GIS项目选用开发方法通常,选用软件项目的开发方法是非常主观的,它受用户需求、个人(组织)喜好、现有的开发工具以及对改变的畏惧等多种因素的影响,当软件开发组织的成员熟悉了一种开发方法以后,简直就象一种信仰,不容易轻易改变。