遍地孔方兄
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统图平台、标准和设计模式等方面。通俗来讲,软件工程专业就是围绕软件开发相关的一个专业。
其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。这个方向的学科基础选修课有:软件质量管理与测试、软件体系结构、软件项目管理以及软件复用技术。
软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。
追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。软件质量管理与测试:质量管理在软件工程中是非常非常重要的一个环节,无论你有多么精妙的算法,或是使用了多么先进的技术,还是拥有了多少强的设计,在质量控制或质量管理面前,这些都可能什么都不是。这里,有一些质量管理的法则,可以让软件的用户从中受益。
如果对质量管理一言以蔽之:面对一个长期不断需要改善的软件,当其用户或是管理者们来说,他们对某个组织所提供的标准有一种完全和最基本的信任。
软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进。
蒋大女儿
软件工程方面的书目前是计算机科学图书的一个热点,这也是我国的计算机行业从手工作坊式的小规模开发转向工业化大生产方式进行软件产品生产的必然需要。从国外软件业30多年的发展来看,软件工程也是随着为国防、政府和企业开发大型软件系统而不断发展起来的。刚读完《软件工程概论》,感觉很多东西都曾经接触过,但在实际工作中有些理论要完全遵循可能还有些障碍,软件工程只是提供了理论上的一些结论,但对项目的具体可操作性的规范的制定方面却做的很少,所以现在很多同行都说:“我们都学过《软件工程》,但却不可能完全遵守它去做项目”,因为一个项目是否应该遵循《软件工程》还要根据项目的大小、规模、进度的要求有一定的关系。如果对于一个时间很紧的小项目,如果完全按照传统的瀑布模型一步一步的写各种文档,可能是很不现时的,很可能造成了那种“用1周写文档,用1个小时写代码,但期限是1天”的情况,当然这只是一个极端的例子,但《软件工程》发展了几十年,光是开发模型就达到了10多种,对不同的项目采用合适的开发模式,有些项目在不同的开发阶段可能还要转换开发模式,这对于我们这些做项目的人来说,是个不低的门槛。看来关于软件工程方面的著作,我认为可分为两类。一类是看重考察项目过程本身,一类是主要考察项目的参与者。一本好的作品应该是承认实际环境中的种种局限,并在实际局限的基础上考虑合适的策略。由于软件是抽象的、不可触及的、也不受物理定律或加工工程的制约,软件系统也就很容易随着自身的发展而变得复杂和难以理解。软件工程作为一门工程学科,其目的就是在于降低软件开发的风险,使软件系统向高性价比发展。软件工程虽然是一门比较年轻的学科,但软件工程从第一次“软件危机”(1968年)开始到现在已经有了长足的发展,许多新技术和新方法构成了软件工程的重要部分,软件工程已经找到了进行软件描述、设计和实现的有效方法,并极大地完善了我们对软件开发活动的认识,提高了软件开发的效率。 而且我作为一名现代IT从业人员,软件工程已经成为必须掌握的专业知识。没有软件工程知识,很难想象一名软件开发人员如何在大型开发团队中生存。然而令人担忧的是目前许多学校还在使用陈旧的软件工程教材,还在向学生灌输着已经淘汰的软件工程理论。使得软件工程的教学严重脱离了实际软件开发的需要。现在国内外都重视《软件工程》是因为,人们都认识到了如果能够适当合理的利用软件工程的理论可以减小开发成本和风险,风险降低了,成本就减少了,利润就提高了,所以有一种说法就是“软件工程就是提高软件项目利润的理论”。但人们也都意识到《软件工程》的确更接近于理论,它所提供的可操作性太差,于是就有了现在流行的win系列和*nix系列开发理论,这两种理论就是根据《软件工程》的理论经过大量的试验总结出的比较成功的开发模式,现在人们对RUP的诟病也开始心声怀疑,认为这种开发模式也是理论多于实践,管理过程比较繁琐,对于大项目还适合,对于小项目则不利于降低开发成本,所以现在国外提倡“敏捷开发”,而最受吹捧的就是“极限编程”(XP)。现在国内也有很多公司开始使用这种方法,这种方法与其他开发方法最大的不同是将测试提到了一个几乎是最重要的位置,先写测试用历,然后编码,而且在测试过程中提倡使用一些自动化的测试工具,如对Java测试的Junit和对Delphi测试的Dunit。 我个人认为软件工程很重要,但更重要的是要能够根据不同的项目在不同阶段选择合适的开发模式,规避风险,适应客户灵活多变的需求变更。所以对需求调研和需求分析提出了更高的要求。我看过了一些讨论软件工程的文章,几乎一致认为“客户直接参与的项目成功的可能性非常高”,传统的软件工程中提出的不论是“瀑布”还是“螺旋”模型都是进行阶段性的客户确认再开发,等开发完或者客户的需求变了,或者需求分析有错误,完全符合客户要求的几乎没有。所以我们是否考虑一下能否在条件允许的情况下,在以后的项目的开发中多征求客户意见,而不是在一阶段完成后再请客户看,这有利于我们降低开发大规模修改的风险。这也是“极限开发”模式中很重要的一点。当然这也不是绝对的,但这是经过证实的成功率比较高的一种方式。 在前期需求调研和需求分析都做好了之后,我们就可以做概要设计和详细设计了,我认为这部分很关键的一点是确定界面风格和关于代码复用的考虑。一个符合客户习惯的界面是最保险的方案,这里面包括客户的操作习惯和审美习惯。但对开发人员更需要注意的是代码复用,一个好的代码应该是注释详细、代码可读性强、代码复用率高的集合。而要做到代码的高复用率需要高度的抽象能力和对类的粒度的划分,对于粒度的划分应该遵循很多教材上多次提到的“高内聚,低耦合”,也就是说一个函数或方法的功能越单一越容易被组合起来复用,和其他的方法或函数或其他类的关联越少越好,这样在与之关联的对象或方法改变后不需要改动或很少改动就可以被复用。 另外“设计模式”也越来越被开发人员所重视,“设计模式”为开发人员提供了一系列其他人经过多次试验证实成功的可以放心使用的解决套路,能够按照“设计模式”的思路开发系统可以获得很好的扩展性和强壮性,这也是经过无数案例证明过的。举个简单的例子,如果将获得数据的部分和显示数据的代码混在一起,如果将来在改动显示部分或改动获得数据部分则要到混在一起的代码中去挑自己要改动的部分,这可能造成不该动的代码被改动了,或者因为一部分改动了,另一部分必须被改动,这样也带入了被迫改动代码的正确性的问题。对于这样的改动需要在测试时增大测试力度,才能保证代码是正确的,当然这是以增大测试成本为代价的。用另一种方式,使用设计模式,遵循MVC模式,将获得数据部分作为C由于现代软件开发的复杂性和风险性不断增加,软件过程的重点不再是代码的设计和编写,需求工程、质量管理、软件进化的重要性日益突出,作者以敏锐的眼光将这些主题作为本书的讨论重点。同时作者在全书贯穿面相对象的思想,对象模型全部采用UML来描述,其“面相对象的设计”、“分布式系统体系结构”等章节则体现了软件工程与开发实践的紧密结合,反映了软件行业的主流趋势。
小小爱人小姐
件工程(SoftWare Engineering)的框架可概括为:目标、过程和原则. (1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品.正确性指软件产品达到预期功能的程度.可用性指软件基本结构、实现及文档为用户可用的程度.开销合宜是指软件开发、运行的整个开销满足用户要求的程度.这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束. (2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤.软件工程过程主要包括开发过程、运作过程、维护过程.它们覆盖了需求、设计、实现、确认以及维护等活动.需求活动包括问题分析和需求分析.问题分析获取需求定义,又称软件需求规约.需求分析生成功能规约.设计活动一般包括概要设计和详细设计.概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义.详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述.实现活动把设计结果转换为可执行的程序代码.确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求.维护活动包括使用过程中的扩充、修改与完善.伴随以上过程,还有管理过程、支持过程、培训过程等. (3)软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则.
当然肯定是多去找写好论文的素材和材料,然后定好论文的框架和论点。
[编辑本段]基本信息 软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义: 软件工程(1)、BarryBoehm:运用现代科学技术知
〔摘要〕领导是学校管理的主体,学校的成败主要取决于领导。有一个好的领导,便有一个好的学校。领导管理学校,一方面要加强自身修养,特别是品格、感情、知识、能力的修养
[编辑本段]基本信息 软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义: 软件工程(1)、BarryBoehm:运用现代科学技术知
软件工程导论 第6版 _13353381.pdf免费下载 链接: 《软件工程导论》是2009年1月清华大学出版社出版的图书,作者是朱少民。