软工学习笔记(1)- 概论

软件的概念

计算机软件指计算机系统中的程序及其文档。

程序:是计算任务的处理对象和处理规则的描述(形式上是源码、二进制码)。
文档:是为了便于了解程序所需的阐明性资料。

软件发展的3个阶段

  • 第一阶段:
    时间:1946-1956年
    标志:从计算机问世到实用的高级程序语言出现前
    特点:输入输出量较小,但计算量较大
    开发方式:主要采用个体开发方式
  • 第二阶段:
    时间:1956-1968年
    标志:从实用的高级程序语言出现到软件工程出现前
    特点:计算量不大,但输入、输出量较大
    开发方式:逐步从个体方式转向合作方式
  • 第三阶段:
    时间:1968年-至今
    标志:从软件工程出现到现在
    特点:受制于所嵌入的宿主系统,而不只是受制于其功能要求
    开发方式:由个体合作方式转向工程方式

软件的特点vs硬件

  • 软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确估算。
  • 软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大。
  • 软件的使用没有硬件那样的机械磨损和老化问题。


    硬件的故障曲线

    软件的故障曲线

    软件的维护可能会引入副作用,使故障率升高。

软件的分类

  • 系统软件:位于计算机系统中最靠近硬件的一层,其它软件一般都通过系统软件发挥作用,它与具体的应用领域无关。如操作系统、编译程序等。
  • 支持软件:支持软件的开发和维护的软件。如数据库管理系统、网络软件、软件开发环境等。
  • 应用软件:特定应用领域专用的软件。如实时软件、嵌入式软件、科学和工程计算软件、事务处理软件、人工智能软件等。

软件工程的定义

IEEE:
① 将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;
② 在①中所述方法的研究

软件生存周期的概念及若干个阶段

  • 软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存周期。
  • 软件生存周期大体可分为如下几个活动:计算机系统工程、需求分析、设计、编码、测试、运行和维护。

软件过程指软件生存周期中的一系列相关的过程。过程是活动的集合,活动是任务的集合。

与开发有关的活动主要:

  • 源代码管理(配置管理)
  • 质量保障(软件测试、Debug)
  • 需求分析
  • 架构设计
  • 程序理解
  • 软件维护(运营)
  • 软件项目管理

CMM的目的

CMM(Capability Maturity Model)能力成熟度模型

  • 开始,用于评价软件机构的软件过程能力成熟度的模型
  • 发展之初,提供一种评价软件承接方能力的方法,为大型软件项目的招投标活动提供一种全面而客观的评审依据。
  • 后来,又同时被软件组织用于改进其软件过程

软件过程模型

软件过程模型是软件开发全部过程、活动和任务的结构框架,也称软件开发模型软件生存周期模型

瀑布模型

1970年W.Royce提出瀑布模型

特征
  • 接受上一阶段的结果作为本阶段的输入
  • 利用这一输入实施本阶段应完成的活动
  • 对本阶段的工作进行评审
  • 将本阶段的结果作为输出,传递给下一阶段
缺点
  • 缺乏灵活性,难以适应需求不明确或需求经常变化的软件开发
  • 开发早期存在的问题往往要到交付使用时才发现,维护代价大

演化模型

可以在获取了一组基本的需求后,通过快速分析构造出该软件的一个初始可运行版本,称之为原型(prototype),然后根据用户在试用原型的过程中提出的意见和建议、或者增加新的需求,对原型进行改造,获得原型的新版本,重复这一过程,最终得到令客户满意的软件产品。

演化模型的开发过程就是从构造初始的原型出发,逐步将其演化成最终软件产品的过程。演化模型适用于对软件需求缺乏准确认识的情况。典型的演化模型有:增量模型、原型模型、螺旋模型。

增量模型


增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软件的一个可发布的“增量”版本,后一个版本是对前一版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。

增量模型融合了瀑布模型的基本成分(重复地应用)和演化模型的迭代特征。

增量模型强调每一个增量都发布一个可运行的产品。

增量模型特别适用于:
  • 需求经常变化的软件开发
  • 市场急需而开发人员和资金不能在设定的市场期限之前实现一个完善的产品的软件开发

增量模型能有计划地管理技术风险,如早期增量版本中避免采用尚未成熟的技术。

原型模型
  • 原型(prototype)是预期系统的一个可执行版本,它反映了系统性质(如功能、计算结果等)的一个选定的子集。一个原型不必满足目标软件的所有约束,其目的是能快速、低成本地构建原型
  • 原型方法从软件工程师与客户的交流开始,其目的是定义软件的总体目标,标识需求。然后快速制订原型开发的计划,确定原型的目标和范围,采用快速设计的方式对其建模,并构建原型
  • 被开发的原型应交付给客户试用,并收集客户的反馈意见,这些反馈意见可在下一轮迭代中对原型进行改进。在前一个原型需要改进,或者需要扩展其范围的时候,进入下一轮原型的迭代开发
原型的类型:
  • 探索型(exploratory prototyping)
    目的是要弄清目标系统的要求,确定所希望的特性,并探讨多种方案的可行性
  • 实验型(experimental prototyping)
    目的是验证方案或算法的合理性,它是在大规模开发和实现前,用于考核方案是否合适,规格说明是否可靠
  • 演化型(evolutionary prototyping)
    目的是将原型作为目标系统的一部分,通过对原型的多次改进,逐步将原型演化成最终的目标系统
原型的使用策略:
  • 废弃(throw away)策略
    主要用于探索型和实验型原型的开发。这种原型通常被废丢,然后根据探索或实验的结果用良好的结构和设计思想重新设计目标系统
  • 追加(add on)策略
    主要用于演化型原型的开发。这种原型通常是实现了目标系统中已明确定义的特性的一个子集,通过对它的不断修改和扩充,逐步追加新的要求,最后使其演化成最终的目标系统

原型可作为单独的过程模型使用,它也可作为一种方法或实现技术应用于其它的过程模型中。

螺旋模型

B.Boehm于1988年提出
是瀑布模型和演化(原型)模型的结合,并增加了风险分析。
螺旋模型沿着螺线旋转,在四个象限上分别表达四个方面的活动,即:

  • 制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件
  • 风险分析:评价所选的方案,识别风险,消除风险
  • 工程实施:实施软件开发,验证工作产品
  • 客户评估:评价开发工作,提出修正建议


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

推荐阅读更多精彩内容