软件工程介绍

建议学习时长:60分钟
学习方式:了解

学习目标

  • 了解软件生产的各个周期。
  • 了解软件生产中常用的工具。

详细介绍

什么是软件工程

软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。

软件的生命周期

软件的生命周期以结构化的方法具体分成了六个阶段:

  1. 问题的定义及规划:开发方调研用户需求及用户环境,开发方和需求方论证项目的技术、经济、市场等可行性并制定项目初步计划。
  2. 需求分析:开发方确定系统的运行环境、建立逻辑模型、确定系统的功能和性能要求。
  3. 软件设计:
    1). 概要设计:建立系统总体结构、划分功能模块、定义各个功能模块的接口,制定测试计划。
    2). 详细设计:设计各个模块的具体实现算法,确定各个模块间的详细接口,制定测试方案。
  4. 程序编码:编写程序源代码、进行模块测试和调试,编写用户手册。
  5. 软件测试:集成测试、编写测试报告
  6. 运行维护:日常的运维工作及后续的维护升级。

一般而言,软件系统的生命周期在10年左右。过了10年后,不是说软件系统就不能用了,而是可能会付出更大的成本去维护。也就是说超过投入产出比。并且投入之后还不一定能满足现有业务的需求。一般这个时候,会用新技术去架构之前的软件系统,重新开发。

软件的开发模型

  1. 瀑布式开发流程


    瀑布式开发流程(Waterfall Model)

    瀑布式开发流程(Winston Royce 1970)是最早得到广泛承认的开发流程。这是一个线性的模式,只有完成了前一个步骤才能开始下一个步骤。比如说,在开始设计之前,必须先完成需求分析。如果有信息未被覆盖或者发现了问题,那么就得返回上一个阶段并进行适当的修改。

  2. 螺旋式开发流程


    螺旋式开发流程

    使用螺旋式开发流程,我们能够在早期就提供出产品的原型进行评估。然而,它之所以引入“迭代”的思想其实是因为需要找出项目开发存在的风险并加以控制。风险分析需要有经验的专业人士才能得出正确的结果,如果未能够及时标识风险,势必造成重大损失。
    此外,这种阶段式迭代的流程仍然存在周期较长、开发成本较高的问题。因此它更多适用于大型软件项目。

  3. 迭代式开发


    迭代式开发

    迭代式开发,摒弃了传统的需求分析,设计,编码,测试的流程,而是将整个生命周期变成若干个冲刺(Sprint)阶段,而每一个阶段都是由以上若干或者全部传统的流程组成,在每一个阶段中,都会包含下面四个阶段:初始阶段,细化阶段,构建阶段,交付阶段。在初始阶段中,确认本次冲刺的范围,边界,系统选择的架构,计划,以及所需要的资源等信息。在细化阶段中,对问题进行建域,创建开发案例,创建模板以及准备工具等。在构建阶段的主要任务就是完成构建的开发并且进行测试,将完成的构建集成为产品,并且测试所有的功能(CI)。在交付阶段,主要是完成本次冲刺,将软件产品交付给相关的干系人。

  4. 敏捷式开发


    敏捷式开发

    敏捷式开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷式开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

软件工程中常用工具

  1. WBS


    WBS
    WBS

    工作分解结构(Work Breakdown Structure,简称WBS)跟因数分解是一个原理,就是把一个项目,按一定的原则分解,项目分解成任务,任务再分解成一项项工作,再把一项项工作分配到每个人的日常活动中,直到分解不下去为止。
    即:项目→任务→工作→日常活动
    WBS总是处于计划过程的中心,也是制定进度计划、资源需求、成本预算、风险管理计划和采购计划等的重要基础。WBS同时也是控制项目变更的重要基础。项目范围是由WBS定义的,所以WBS也是一个项目的综合工具。

  2. DFD


    DFD

    数据流图(Data Flow Diagram)简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。

  3. 甘特图


    甘特图
    甘特图

    甘特图(Gantt chart)又称为横道图、条状图(Bar chart)。其通过条状图来显示项目,进度,和其他时间相关的系统进展的内在关系随着时间进展的情况。一般情况下,WBS会结合甘特图,这样可以更有效的管理项目的各个task的进度。

  4. 时序图


    时序图

    时序图(Sequence Diagram)是显示对象之间交互的图,这些对象是按时间顺序排列的。顺序图中显示的是参与交互的对象及其对象之间消息交互的顺序。时序图中包括的建模元素主要有:对象(Actor)、生命线(Lifeline)、控制焦点(Focus of control)、消息(Message)等等。

总结

希望大家通过这篇文章,大概知道一下有这么一个工具或者模型。以便在他人提及这些名词时能有一个概念。同时也为各位想走软件管理者的学员做一个入门介绍。

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,019评论 25 707
  • PMP第五版考点汇总冲刺版 第一章引论 P2:《PMI道德与专业行为规范》详细描述从业者在责任、尊重、公正、诚实方...
    文小梦阅读 20,697评论 5 102
  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    宇文臭臭阅读 6,723评论 5 100
  • 哪有拆不开的快递 哪有拧不开的矿泉水瓶 哪有那么可爱的你 快递会拆开的 水瓶会拧开的 那么可爱的你 可...
    你当温柔阅读 174评论 0 0
  • 【默默耕耘】2017.0220 day 89 Monday 1.古诗背诵:早发白帝城,今天开学了,一切步入正轨,吃...
    ysmalina阅读 78评论 0 0