系统分析与设计 - Homework1

简单题


软件工程的定义

Software engineering is “(1) the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, that is, the application of engineering to software,” and “(2) the study of approaches as in (1).” – IEEE Standard 610.12

阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型。

  • Software crisis:

Software crisis is a term used in the early days of computing science for the difficulty of writing useful and efficient computer programs in the required time. The software crisis was due to the rapid increases in computer power and the complexity of the problems that could not be tackled. With the increase in the complexity of the software, many software problems arose because existing methods were insufficient.

  • COCOMO模型:

COCOMO,英文全称为constructive cost model,中文为构造性成本模型.它是一种精确、易于使用的,基于模型的成本估算方法,最早由勃姆 (Boehm) 于 1981 年提出。从本质上说是一种参数化的项目估算方法,参数建模是把下那个目的某些特征作为参数,通过建立一个数字模型预测项目成本。

在COCOMO模型中,工作量调整因子(Effort Adjustment Factor, EAF)代表多个参数的综合效果,这些参数使得项目可以特征化和根据COCOMO数据库中的项目规格化.每个参数可以定位很低,低,正常,高,很高.每个参数都作为乘数,其值通常在0.5到1.5之间,这些参数的乘积作为成本方程中的系数.

软件生命周期

软件的生命周期,亦称软件的生存周期。它是按开发软件的规模和复杂程度,从时间上把软件开发的整个过程(从计划开发开始到软件报废为止的整个历史阶段)进行分解,形成相对独立的几个阶段,每个阶段又分解成几个具体的任务,然后按规定顺序依次完成各阶段的任务并规定一套标准的文档作为各个阶段的开发成果,最后生产出高质量的软件。

软件生命周期共有6个阶段:

  1. 问题的定义及规划

  2. 需求分析

  3. 软件设计

  4. 程序编码

  5. 软件测试

  6. 运行维护

按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?

15个领域中我们需要关注的是前三个领域:

  • Software requirements

  • Software design

  • Software construction

解释 CMMI 的五个级别。

  • Level 1 - Initail: 软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。

  • Level 2 - Managed: 建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。

  • Level 3 - Defined: 已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。

  • Level 4 - Quantitatively managed: 分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。

  • Level 5 - Optimizing: 过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。

用自己语言简述 SWEBok 或 CMMI。

CMMI的全称是Capability Maturity Model Integration,中文翻译为能力成熟度模型。什么是能力成熟度模型呢?在我的理解里,它大概就是一系列的评估标准。它从各个方面对一个企业进行衡量,如果这个企业达到了它的标准,那么这个企业就是有能力的,成熟的企业。CMMI的前身是CMM,都是由SEI(Software Engineering Institute)制定的。

CMMI包括了5个等级,等级越高,成熟度越高,综合软件能力越强。所有的企业都满足第一等级,而从第二级到第五级,则有对应的指标去判断该企业能不能够达到这个等级。每达到一个等级,说明该企业满足了该等级以下的所有等级的所有要求。而每个等级之间的跨越难度也是不一样的。我认为这非常符合事物的发展规律,总有一段时期是比较艰难的,一旦你跨过去了,后面的发展又会相对轻松起来。每一个等级有若干个PA(Process Area),而每一个PA又有对应的若干目标(Goal),这意味着,一个企业要达到一个新的级别,必须满足这个级别的所有PA里面的所有目标。可以说,这不是一件容易的事。但我认为,正是这样的详细的标准,能够给一个企业最全面而细致的评估。

解释 PSP 各项指标及技能要求。


PSP有7个大指标:Planning, Development, Record Time Spent, Test Report, Size Measurement, Postmortem, Process Improvement Plan. 其中Development下面还有8个子指标:Analysis, Design Spec, Design Review, Coding Standard, Design, Coding, Code Review, Test.

  • Planning: 估计这个任务需要多少时间

  • Development:

    • Analysis:分析需求

    • Design Spec:生成设计文档

    • Design Review:设计复审 (和同事审核设计文档)

    • Coding Standard:代码规范 (为目前的开发制定合适的规范)

    • Design:具体设计

    • Coding:具体编码

    • Code Review:代码复审

    • Test:测试(包括自我测试,修改代码,提交修改)

  • Record Time Spent:记录时间花费

  • Test Report:测试报告

  • Size Measurement:计算工作量

  • Postmortem:事后总结

  • Process Improvement Plan:提出过程改进计划

因此一个软件工程师在接到任务之后,就应该按照上面的顺序和要求,进行工作。而为了这些工作,他除了需要编程的技能之外,还需要时间计划的技能;需要数据分析的技能以得出需求;需要扎实的文字技能,起码能够写出清晰明了的设计文档;还需要高效的沟通技能,不会沟通的工程师绝不是一个好的工程师;了解设计和编程规范;有足够的耐心记录时间并且善于总结。这些都是一个软件工程师应该具有的技能。

我打算使用大概的时间估计来记录这些数据。在每次工作的时候大概记录所用的小时数,特别的是,具体编码这一块则按照天数记录,以每天工作8小时为标准。

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

推荐阅读更多精彩内容

  • 构思了一个多月,这个周末在公司加(tōu)班(lǎn)敲了20h+的代码,终于还是把博客从 wordpress 迁...
    罗罗磊磊阅读 14,412评论 14 54
  • 因为要乘公交车上下班,在这个小小的车厢里每天来回要耗上一个小时的时间。于是选对座位是一个颇费思量的活计,于是就会被...
    华枝春满5339阅读 403评论 0 2
  • 弹指眨眼间,时光已殆尽。 蓝天白云风,山川河水雪。 早春一棵树,迟夏一只蝉。 晚秋一场雨,暮冬一袅烟。 远山雾霭里...
    拾耳阅读 321评论 1 1
  • 题目: 利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.45...
    Manegga阅读 583评论 0 0