软件工程学概述

1.1 软件危机

  1. 软件危机:计算机软件在开发和维护的过程中所遇到的一系列严重问题;

  2. 软件危机的7项典型表现:

    a. 对软件开发成本和进度的估计常常很不准确;

    b. 用户对“已完成的”的软件系统不满意的现象经常发生;

    c. 软件产品的质量往往靠不住;

    d. 软件常常是不可维护的;

    e. 软件通常没有适当的文档资料;

    f. 软件成本在计算机系统成本中所占的比例逐年上升;

    g. 软件开发生产率提高的速度,往往跟不上计算机应用迅速普及深入的趋势。

  3. 软件生命周期:一个软件从定义、开发、使用和维护,直到最终被废弃,要经历的一个漫长时期。

  4. 为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术两方面研究如何更好的开发和维护计算机软件的一门新兴学科。


1.2 软件工程

  1. 软件工程是:①把系统的、可规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。

  2. 软件工程的7条基本原理:

    a. 用分阶段的生命周期计划严格管理;

    b. 坚持进行阶段评审;

    c. 实行严格的产品控制;

    d. 采用现代程序设计技术;

    e. 结果应能清楚地审查;

    f. 开发小组的人员应该少而精;

    g. 承认不断改进软件工程实践的必要性。

  3. 软件工程方法学:

    a. 软件生命周期学(传统方法学);

    b. 面对对象方法学。


1.3 软件生命周期

软件生命周期

1.4 软件过程

  1. 软件过程是为了获得高质量软件所需要完成的一系列任务的框架,规定了完成各项任务的工作步骤。(软件过程必须科学有效)

  2. 生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此也称为过程模型。

  3. 瀑布模型:应用最广泛的过程模型,有下述几个特点

    a. 阶段间具有顺序性和依赖性;(前一阶段的输出文档就是后一阶段的输入文档)

    b. 推迟实现的观点;(清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现)

    c. 质量保证的观点。(每个阶段都必须完成规定的文档并在结束前对文档进行评审)

  4. 快速原型模型:快速原型是快速建立起来的可以在计算机上运行的程序,用户试用原型系统后提出意见,开发人员快速修改,重复直到完成开发。

    a. 不带反馈环,基本上做到线性顺序开发;

    b. 本质是快速,软件产品一旦交付给用户使用之后,维护便开始了。

  5. 增量模型:也称为渐增模型,把软件产品作为一系列的增量构件来设计、编码、集成和测试。

    a. 第一个增量构件往往实现软件的基本需求,提供最核心的功能;

    b. 软件产品分解成增量构件时唯一必须遵守的约束条件是,当把新构件集成到现有软件中时,所形成的产品必须是可测试的;

    c. 优点1是能在较短的时间内向用户提交可完成部分工作的产品,优点2是逐步增加产品功能可以使用户有较充裕的时间学习的适应新产品,从而减少一个全新的软件可能给用户组织带来的冲击。

    d. 困难是,每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来已经开发出的产品。

  6. 螺旋模型:基本思想是使用原型及其他方法来尽量降低风险。(可以看作在每个阶段前都增加了风险分析过程的快速原型模型)

    a. 螺旋模型有许多优点:对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标;减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险;更重要的是,在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。

    b. 主要适用于内部开发的大规模软件项目。(风险过大时方便中止项目)

    c. 主要优势在于它是风险驱动的,也是一个弱点,需要开发人员有丰富的风险评估经验。

6.喷泉模型:是典型的面向对象的软件过程模型之一,体现了面向对象软件开发过程迭代和无缝的特性。

  1. Rational 统一过程:(Rational Unified Process,RUP)是由Rational软件公司推出的一种完整而且完美的软件过程。

  2. RUP 总结的6条最有效的软件开发经验(最佳实践)

    a. 迭代式开发;

    b. 管理需求;

    c. 使用基于构件的体系结构;

    d. 可视化建模;

    e. 验证软件质量;

    f. 控制软件变更

  3. RUP 软件开发生命周期:核心工作流、工作阶段、RUP迭代式开发。

  4. 敏捷过程与极限编程

    a. 敏捷软件开发宣言:个体的交互胜过过程和工具;可以工作的软件胜过面面俱到的文档;客户合作胜过合同谈判;响应变化胜过遵循计划。

    b. 极限编程(eXtreme Programming,XP)是敏捷过程中最富盛名的一个,其中“极限”是指把好的开发实践运用到极致。

  5. 微软过程:作为一种适用于商业环境下具有有限资源和有限开发时间约束的项目的软件过程模式,微软综合了 Rational 统一过程和敏捷过程的许多优点,但在方法、工具和产品等方面的论述不如RUP和敏捷过程全面。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容