『壹』 软件工程新技术的相关资料 最好多点 ,, 谢谢 好的话可以加分
1 形式化方法
2 净室软件工程
3 基于构件的软件工程
4 软件复用与再工程
5 敏捷软件过程
『贰』 浅谈对软件工程的基本概念,方法与过程的理解及如何运用1500字左右
件工程(SoftWare Engineering)的框架可概括为:目标、过程和原则.
(1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品.正确性指软件产品达到预期功能的程度.可用性指软件基本结构、实现及文档为用户可用的程度.开销合宜是指软件开发、运行的整个开销满足用户要求的程度.这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束.
(2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤.软件工程过程主要包括开发过程、运作过程、维护过程.它们覆盖了需求、设计、实现、确认以及维护等活动.需求活动包括问题分析和需求分析.问题分析获取需求定义,又称软件需求规约.需求分析生成功能规约.设计活动一般包括概要设计和详细设计.概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义.详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述.实现活动把设计结果转换为可执行的程序代码.确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求.维护活动包括使用过程中的扩充、修改与完善.伴随以上过程,还有管理过程、支持过程、培训过程等.
(3)软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则.
『叁』 谈谈对软件工程的认识
软件工程(SoftWare Engineering)的框架可概括为:目标、过程和原则。
(1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜是指软件开发、运行的整个开销满足用户要求的程度。这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。
(2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。伴随以上过程,还有管理过程、支持过程、培训过程等。
(3)软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。
这个问题很复杂,恕在下自不量力说几句。
软件工程的目标是最小的成本、最高的质量、最短的开发时间开发软件产品。眼下流行的各种软件工程方法对这个目标的实现都差强人意。以RUP为代表的重量方法用来做计划、准备的时间太多,真正用在开发的精力却很少,以为只要企业保证软件过程的实施,其他的事情都好办,这种极端压抑人性的方法不会取得很好效果。轻量方法要好一些,毕竟绝大部分注意力都在开发上,大家都很喜欢,可是仅依靠少数几个人,对付不了大型项目。当然,大家都在改进各自的缺点,吸收对方的优点。
G.Booch说过,自动化不足是软件开发过程中大量问题存在的重要原因,在下深以为然,并且认为是最小的成本、最高的质量、最短的开发时间之目标难以实现的根本原因。因此,将来的软件工程必然要发展到以软件自动化技术为核心的阶段——4GL时代。
为什么4GL时代还没有来临,这是因为软件自动化太困难,眼下所取得的成果局限在某些很窄的领域内,达不到实际项目要求,而且这种技术太难理解,需要对理论的深入学习,一般的开发人员难以接受。软件自动化技术没有大发展的重要愿意是目前描述动作语义的技术都很低级,因此即便用形式化方法作设计也是很费时间的,虽然可以提高一定的效率,但是还是远远不够的。
为了解决这个问题,只有从利用以前的成果入手了,也就是复用构件,但不是用今天的构件技术。将来,实现了机器检索的大型构件库,这是计算机实现对构件的查找、转配等自动化的构件库,不是今天的手工构件库。但这样的构件库为什么没有出现,还是老问题,我们还没有一个很理想的描述动作语义的方法,计算机无法判定两个构件或规约和构件之间是否等价,或者有等价的成分,当然也就无法进行自动检索了。
虽然有很多困难,但我相信将来软件工程的发展方向必将是高度自动化的构件式开发方法。
上面说的,完全是个人观点,也许不足采信。
『肆』 软件工程最近两年有什么新技术 方法 思想啊
1、软件技术上推陈出新比较快,软件语言,技术方法,技术框架,每天都是在进步、发展,就是的更新非常非常快速的。
2、但是软件工程这块的更新并没有那么快,软件工程这块比较新一点,其实也是老的概念,敏捷、结对、快速迭代、面向领域、面向驱动、面向业务,这块属于管理科学,很多东西其实也只是新瓶装老酒。
3、希望对你有帮助
『伍』 对软件工程应该怎样理解
软件工程(SoftWare Engineering)的框架可概括为:目标、过程和原则。
(1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜是指软件开发、运行的整个开销满足用户要求的程度。这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。
(2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。伴随以上过程,还有管理过程、支持过程、培训过程等。
(3)软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。
软件工程是计算机软件的一个分支学科,主要研究软件开发全过程中的各种技术;
主要包括:
1、软件开发的原则与策略,
2、软件开发方法与软件过程模型,
3、软件标准与软件质量的衡量;
4、软件开发的组织与项目管理,......
软件工程是计算机软件的一个分支学科,主要研究软件开发全过程中的各种技术;
主要包括:
1、软件开发的原则与策略,
2、软件开发方法与软件过程模型,
3、软件标准与软件质量的衡量;
4、软件开发的组织与项目管理,
5、软件版权。
它一般应用于大型的软件系统的开发。
其开发团队包括:用户、项目负责人、分析员、初高级程序员、资料员、操作员。
软件工程是指利用工程的概念、原理、技术和方法来开发、维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的
最好的技术方法结合起来,指导计算机软件的开发和维护的工程学科。
软件工程强调使用生存周期方法学、结构分析和结构设计技术以及新兴的面向对象分析和设计技术。
生存周期学(SDLC--系统开发生命周期)是指从软件开发项目的提出到软件产品完成使命而报废的整个时期;
分为八个阶段:
1、问题定义:问题是什么? 完成规模和目标的报告。
2、可行性研究:有可行性么?是否值得去做? 完成系统的实际模型,数据流图,成本/效益分析。
3、需求分析:系统必须做什么? 系统逻辑模型,数据流图,数据字典,算法描述,需求说明书。
4、总体设计:如何解决此问题? 可行的解法,系统流程图、成本/效益分析,推荐的系统结构,层次图 /结构图。
5、详细设计:如何实现此系统? 编码的规格说明。
6、编码和单元测试:正确的程序模块。 程序清单,单元测试方案和结果。
7、综合测试:符合要求的软件。 综合测试方案和结果,完整一致的系统配置。
8、软件维护:持久的满足用户。 完整准确的维护记录,需求的软件。
需求分析阶段:客户的业务活动进行分析,明确在用户的业务环境中,软件系统应该做什么。客户的要求一般包括"功能要求、性能要求、可靠性要求、安全保密要求、开发费用、开发周期及可使用的资源"。
用户的业务需要经用户与软件人员讨论后,理解用户的要求,并将双方共同的理解明确的写成一份文档---需求说明书。
需求说明书主要有三个作用:1、作为用户和软件人员之间的合同,为双方相互了解提供基础。2、反映问题的结构,可以作为软件人员进行设计和编程的基础。3、作为验收的依据,即作为选取测试用例的依据。
需求说明书应该达到完整、一致、精确、无二义,既简明易懂并易于修改和维护。
在需求阶段、还应考虑设计的限制"成本、进度、可用的软硬件资源";客户验收准则"客户需求的细化";编写"初步用户手册"及复查需求说明书。
『陆』 软件工程有哪些最新技术
软件工程在过去几十年的发展历程中,也形成了一些鲜明的新思想。例如,IBM 提出了软件开发思想的4项要点——迭代开发、以系统架构为中心、持续的质量保证以及管理变更和资产,其中只有“持续的质量保证”和传统工业工程是十分吻合的,而其它3项具有软件特性所拥有的思想。软件的变更比较频繁,自然对其管理的高要求,进一步促进迭代开发的合理性。 客户和业务用户始终希望软件能够按时交付高质量的产品,又认可软件的灵活性,希望软件能够具有随需应变的能力,及时进行必要的修改来满足业务的新需求。同时,软件又是一种知识型产品,需要创造性,并依赖每个开发人员的创造力和积极性。所有这些引导人们新的思考,引导人们不断认识软件工程而建立独特的软件工程思想。 迭代开发,以时间换空间,消除市场风险。 敏捷开发或轻量级过程,以不变应万变。 永远的Beta,不断推陈出新,永无止境。 持续集成、持续构建、全程测试。 知识管理,将软件工程纳入知识管理的范畴。 面向对象是一种方法,也是一种思想。 软件即服务(SaaS),面向服务架构(SOA)的开发思想。 用例驱动开发,用户为本思想在软件中的体现。 同时,软件工程可以向传统工业工程学习,吸收传统工业工程上百年实践积累下来的经验、沉淀下来的思想。 以顾客为中心的全面质量管理。 过程决定结果。 有效的持续改进过程。 预防为主,检验为辅。 验证和确认缺一不可,质量保证和测试融为一体。 以架构设计为中心,体现设计为重的思想。 生产标准化、产品标准化和技能标准化。 软件工厂思想造就了组件、构件技术,包括自动化测试。 围绕项目管理开展工作,包括风险预防、里程碑控制和关键路径法等。
『柒』 谈谈你对软件开发技术的理解
过去几十年,软件技术经历了一系列重要的变化和发展,构成软件的软件实体的粒度不断增大,软件基本模型越来越符合人类的思维模式;软件运行平台的能力不断增强,越来越多地屏蔽掉计算机底层的复杂性;软件支撑平台的能力不断增强,越来越多地屏蔽了软件开发过程的复杂性;软件技术的应用范围不断扩大,越来越广地渗透到人类生活的各个方面。网络技术的发展日新月异,基于新一代网络技术的各种应用的融合是大势所趋。网络新技术与软件新技术的相互促进必将为人类创造一个更为灿烂多彩的IT世界。
在上面写了一些对软件工程软件开发技术方向的认识,因为自己学习软件才只是两年,所以理解实在有限。更多的东西还要在以后慢慢理解思考,值得一提的是当学习的两年之后,回过头来再看软件工程,亲切多了,同时这也让我更加清晰我要学的是什么,将来要做的是什么,这次对软件工程的重温让我受益匪浅。一直以来,把软件工程理解为是一种数学建模,用给定的资源(人,资金等)用最短的时间满足用户的需求,完成项目,并使后续维护的成本最小。明显这是个最优化的模型,还有模型的求解要应该我们来做。
『捌』 谈一谈对软件工程专业的认识
对软件工程的一点看法--希望能够抛砖引玉
在这里看到很多网友的高论,很有启发。而且目前市面上也涌现出一批面向不同方面的软件过程的书籍,可是在这里,我一直没找到真正对实践有指导意义的,可操作的应用方法,所以现在这儿抛块砖,望各位高手指正。
我个人的理解,软件工程就是按照工程学的管理方式,有组织、有计划的,在一定的质量基础、时间限度和成本范围内,实现功能明确的软件系统。而且,软件工程在企业范围内运行,一定需要企业资源的支持,要与企业的经营、决策、管理体系联系在一起,才能够被踏踏实实的落实下来。
软件业作为一个服务业,要想得到发展,首先必须形成一个对软件服务有迫切需要的市场。其次,这个市场中的消费者必须具备足够的购买力。软件的消费群体简单一点,可以分为个体消费和企业消费。中国的企业群体,数量庞大,但是质量不高。上规模的企业极少,因此,中国的企业对大型软件的消费肯定是有限的,软件的个人消费,至少目前在中国,还是不成气候。因此,国内目前能够形成比较大规模的独立市场的,肯定是小规模的软件系统。
此外,质量的好与坏也不能绝对而论。比如说,你花500元,买双皮鞋,只穿了一个月就坏了,肯定是劣质产品。可是如果你只花了5元买这双鞋,还是穿了一个月就坏了,他就是个优质产品了。软件也是一样。
还有一个,就是软件生命周期问题。在国外,很多中、大型企业里,软件系统已经作为企业的命脉在运行,这些企业当然需要长期、稳定的软件服务、开发体系作为保障,因此相对来说,对于软件的功能需求就比较明确,而国内的中小企业在运营方面本来就把灵活多变作为生存武器,当然不可能有比较长期的经营计划,更不可能运用软件系统进行全面企业管理。这就导致对软件系统需求的短期行为,因此,他们更加希望一次性购买功能有限的软件系统,而不是长期连续的软件服务。
如果上面的分析有代表性的话,那就是说我们现在必须对开发这类软件形成一套非常有效的工程方法:
1。规模小。
2。成本低
3。质量要求不高。
4。售后服务有限。
5。生命期短。
我想,对于这类系统,RUP未必是一套好的方法。另外,我还想谈谈对软件人员素质的看法。
从我个人的经历来说,我觉得我们对于软件工程师的培养方法有问题。理论上说,软件只要设计了一个好的结构,解决了所有的技术难点,剩下的代码高中生就能做。实际上我们的很多名牌大学的计算机专业毕业生都不能很好的Coding。尤其是现在有了VB、PB、JAVA之后,大家似乎认为计算机的体系结构都不用关心了。我曾经经手的几个软件项目中,很多工程师对于用C语言开发Win32多线程、事件驱动、死锁、内存分配等问题根本束手无策。我不相信这些问题可以靠很好的文档解决。实际上,能够用OO的工具工作,根本不代表能够进行OO的系统分析与设计。
话又说回来,在中国,有10年以上软件开发背景的人,又有几个?而且他们在过去10年里的经验,更多的是小项目的Coding,而不是大项目的管理与系统分析。而一个好的系统分析师,需要的是实践、实践、再实践。假如说我们的商业环境中根本没有大型的软件项目,怎么可能有优异的系统分析师呢?
所以,我想,目前我们的问题,是工程师的技术水平、知识面与管理意识、管理方法同样重要,在这样的前提下,我们是不是要探索一下真正适合我们的软件工程方法呢?