分享
 
 
 

软件工程-------概述

王朝other·作者佚名  2006-02-01
窄屏简体版  字體: |||超大  

一.软件工程概述:

知识体系:

基本概念:

软件工程 是研究和应用如何以系统化的、规范的、可度量的方法去开发、运行和维护软件,即把工程化应用到软件上。

软件生存周期是指软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程,一般包括计划、分析、设计、实现、测试、集成、交付、维护等阶段。

软件工程的主要环节包括人员管理、项目管理、需求分析、系统设计、程序设计、测试、维护等.

软件开发模型是对软件过程的建模,即用一定的流程将各个环节连接起来,并可用规范的方式操作全过程.

常用软件开发模型:

边做边改模型(Build-and-Fix Model)

在这个模型中,开发人员拿到项目立即根据需求编写程序,调试通过后生成软件的第一个版本。在提供给用户使用后,如果程序出现错误,或者用户提出新的要求,开发人员重新修改代码,直到用户满意为止。

缺点:

(1) 缺少规划和设计环节,软件的结构随着不断的修改越来越糟,导致无法继续修改;

(2) 忽略需求环节,给软件开发带来很大的风险;

(3) 没有考虑测试和程序的可维护性,也没有任何文档,软件的维护十分困难。

瀑布模型(Waterfall Model)

它将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序.

缺点:

(1) 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;

(2) 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险;

(3) 早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。

快速原型模型(Rapid Prototype Model)

快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。

快速原型的关键在于尽可能快速地建造出软件原型,一旦确定了客户的真正需求,所建造的原型将被丢弃。因此,原型系统的内部结构并不重要,重要的是必须迅速建立原型,随之迅速修改原型,以反映客户的需求。

增量模型(Incremental Model)

与建造大厦相同,软件也是一步一步建造起来的。在增量模型中,软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成.

缺陷:

(1) 由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。

(2) 在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。

螺旋模型(Spiral Model):

(1) 螺旋模型强调风险分析,但要求许多客户接受和相信这种分析,并做出相关反应是不容易的,因此,这种模型往往适应于内部的大规模软件开发。

(2) 如果执行风险分析将大大影响项目的利润,那么进行风险分析毫无意义,因此,螺旋模型只适合于大规模软件项目。

(3) 软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险。

各种模型的比较

每个软件开发组织应该选择适合于该组织的软件开发模型,并且应该随着当前正在开发的特定产品特性而变化,以减小所选模型的缺点,充分利用其优点,下表列出了几种常见模型的优缺点。

模型

优点

缺点

瀑布模型

文档驱动

系统可能不满足客户的需求

快速原型模型

关注满足客户需求

可能导致系统设计差、效率低,难于维护

增量模型

开发早期反馈及时,易于维护

需要开放式体系结构,可能会设计差、效率低

螺旋模型

风险驱动

风险分析人员需要有经验且经过充分训练

软件开发中的三种基本策略:复用、分而治之、优化与折衷。

开放软件源代码就一定好。

分 析:一般人都认为开放源代码对一个软件系统的完善有很好的促进作用,因为这样可以集合很多人的智慧,但这种观点并不完全正确。大家赞同开放源码,其实很大程度上是因为先有了Linux成功的例子,而Linux的出现和成功是有它一定的背景的,很大程度上是因为不支持源码开放的代表--微软的缘故。开放源代码对促进全球软件和信息技术行业的快速发展是很有益处的,但是关于源代码的GPL授权方式目前还看不到它对软件企业发展的好处。一味强调过度开放源代码,在现在盗版泛滥的时代,拥有源代码的公司如何得到回报,没有回报就没有进一步研发资金,软件的发展从何而来。

观点二:软件质量问题可通过软件测试得到彻底解决。

分 析:为了克服软件危机和提高软件质量,人们进行了大量的研究和实践。最初的重点是着眼于技术革新,从各种软件工具(如编辑、编译、调试工具等等)研制开始,发展成为对开发各阶段进行全面支持的计算机辅助软件工程(CASE)环境。同时,注重软件开发"模型"研究,也就是如何划分软件开发过程的不同阶段,并针对不同阶段开展了有关技术和方法的研究如需求工程、设计工程、程序设计方法学、软件测试等等。 通过长期的实践发现,仅仅依靠这些工具环境、模型及方法学来提高效率和质量,并未达到预期的目标。同时,人们逐渐认识到,如果能够同时对软件开发过程的质量加以控制,则可以大幅度的提高软件质量。只有从一开始就在开发过程中严格贯彻质量管理,软件产品的质量才有保证。否则,开发工作一旦进行到后期,无论怎样通过测试和补漏洞,都会无济于事。这就是近年来国际上十分重视的"软件过程管理"思想。这种思想并非凭空想象,而是借鉴了在硬件领域成功实施全面质量管理的经验,对软件开发实行相应的质量保证工作,并已取得了成功的经验。

2、软件生存周期是指软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程,一般包括计划、分析、设计、实现、测试、集成、交付、维护等阶段。

(1) 计划阶段:确定待开发系统的总体目标和范围,研究系统的可行性和可能的解决方案,对资源、成本及进度进行合理的估算。软件计划的主要内容包括所采用的软件生命周期模型、开发人员的组织、系统解决方案、管理的目标与级别、所用的技术与工具,以及开发的进度、预算和资源分配。

(2) 分析阶段:分析、整理和提炼所收集到的用户需求,建立完整的分析模型,将其编写成软件需求规格说明和初步的用户手册。通过评审需求规格说明,确保对用户需求达到共同的理解与认识。需求规格说明明确地描述了软件的功能,列出软件必须满足的所有约束条件,并定义软件的输入和输出接口。

(3) 设计阶段:设计阶段的目标是决定软件怎么做,设计人员依据软件需求规格说明文档,确定软件的体系结构,进而确定每个模块的实现算法、数据结构和接口等,编写设计说明书,并组织进行设计评审。

(4) 实现阶段:实现阶段是将所设计的各个模块编写成计算机可接受的程序代码,与实现相关的文档就是源程序以及合适的注释。

(5) 测试阶段:在设计测试用例的基础上,测试软件的各个组成模块。然后,将各个模块集成起来,测试整个产品的功能和性能是否满足已有的规格说明。

(6) 维护阶段:一旦产品已交付运行之后,对产品所做的任何修改就是维护。维护是软件过程的一个组成部分,应当在软件的设计和实现阶段充分考虑软件的可维护性。维护阶段需要测试是否正确地实现了所要求的修改,并保证在产品的修改过程中,没有做其他无关的改动。

3、在使用螺旋模型开发软件的过程中,从核心开始,螺旋的第一圈可能产生软件的规格说明,接下来的螺旋可能用于开发一个原型,随后是软件的更完善的版本。经过计划区域的每一圈是为了调整项目计划,基于从用户评估得到的反馈,调整费用和进度。沿螺旋线自内向外每旋转一圈,便开发出一个更为完善的、新的软件版本

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有