天天看点

系统分析与设计 HW1

1、简单题

    1)、软件工程的定义。

        (1)将系统化、规范化、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。

        (2)对(1)中所述方法的研究。

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

        Software Crisis:软件危机,是早期计算机科学的一个术语,是指在软件开发及维护的过程中所遇到的一系列严重问题,这些问题皆可能导致软件产品的寿命缩短、甚至夭折。着计算机应用需求的驱动以及计算能力的巨大提升,软件生产变得更为复杂,成本更高,大型软件的生产出现了很大的困难,即出现了软件危机。软件危机的本源是复杂、期望和改变,从本质上来说,它谈到了写出正确、可理解、可验证的计算机程序的困难。

        COCOMO模型:构造性成本模型,它是一种精确、易于使用的,基于模型的成本估算方法,从本质上说是一种参数化的项目估算方法,最早由勃姆 (Boehm) 于 1981 年提出。型按其详细程度可以分为三级:基本COCOMO模型,中间COCOMO模型,详细COCOMO模型。

    3)、软件生命周期。

        软件生命周期是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。

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

        软件需求 Software requirements 

        软件设计 Software design 

        软件质量 Software quality

        软件工程工具与方法 Software engineering models and methods

    5)、解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。

        初始级(Initial):软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。

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

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

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

        优化管理级(Optimizing):过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。

    6)、用自己语言简述 SWEBok 或 CMMI (约200字)

        SWEBok是一种国际标准,定义了软件工程学科的内涵,它由10个知识域(KA)构成,其中4个KA与系统分析与设计这门课程有关。SWEBok提供了基本的引导,描述在软件工程中需要掌握的知识主体。其目标是:①使全球范围内对软件工程形成一致观点;②澄清软件工程与其他相关学科如计算机科学、项目管理、计算机工程以及计算机数学的关系,并且确定软件工程学科的范围;③反映软件工程这个学科内容的特征;④ 确定软件工程本体知识的各个专题;⑤为相应的课程和职业资格认证材料的编写奠定基础。

2、解释 PSP 各项指标及技能要求:

  • 阅读《现代软件工程》的 PSP: Personal Software Process 章节。 

    http://www.cnblogs.com/xinz/archive/2011/11/27/2265425.html

  • 按表格 PSP 2.1, 了解一个软件工程师在接到一个任务之后要做什么,需要哪些技能,解释你打算如何统计每项数据? (期末考核,每人按开发阶段提交这个表)
系统分析与设计 HW1

        软件工程师需要完成的工作:任务计划;需求分析;生成设计文档;代码规范等;具体设计;具体编码;代码复审、测试;总结工作等。

        需要的技能:时间管理和自我管理约束能力、编程测试的能力、与人协作的能力、表达和交流的能力、高执行力 

        统计方法:把项目分成若干个部分,每完成一个部分就记录其所花费的时间,最后全部完成后 ,把各个部分所花费的时间加起来就是所花费的全部时间。