【系统分析与设计】作业1

一、简单题

1.软件工程的定义
答:是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,是将系统化、规范化、可度量的方法应用于软件的开发、运行和维护的过程。它把经过实践考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。

2.阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型。
答:
①软件危机(即software crisis)是早期计算机科学的一个术语,是指在软件开发及维护的过程中所遇到的一系列严重问题,这些问题皆可能导致软件产品的寿命缩短、甚至夭折。六十年代以来,随着计算机应用需求的驱动,系统软件和应用软件有很大的发展,如操作系统,编译系统和大型应用软件等。由于软件生产的复杂性和高成本,使大型软件的生产出现了很大的困难,即出现软件危机。
②COCOMO,英文全称为constructive cost model,中文为构造性成本模型。它由TRW公司开发,Boehm提出的结构化成本估算模型,是一种精确、易于使用的,基于模型的成本估算方法。从本质上说是一种参数化的项目估算方法,参数建模是把项目的某些特征作为参数,通过建立一个数字模型预测项目成本(类似于居住面积作为参数计算的整体的住房成本)。由TRW公司开发,Boehm提出的结构化成本估算模型。

3.软件生命周期。
答:软件生命周期(Software Life Cycle,SLC)是软件的产生直到报废或停止使用的生命周期。旧的解释是周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。
从时间角度,把整个周期划分为若干个阶段。
划分的原则:各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发过程中的组织管理受软件规模、性质、种类、开发方法等因素的影响。
典型划分为4个时期、7个阶段:
1.)软件分析时期:问题定义、可行性研究、需求分析。
2.)软件设计时期:总体设计、详细设计
3.)编码与测试时期:编码、测试
4.)运行与维护时期

4.按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?
答:软件需求 Software requirements
软件设计 Software design
软件质量 Software quality
软件工程工具与方法 Software engineering models and methods

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

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

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

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

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

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

每个等级都被分解为过程域,特殊目标和特殊实践,通用目标、通用实践和共同特性:
每个等级都有几个过程区域组成,这几个过程域共同形成一种软件过程能力。每个过程域,都有一些特殊目标和通用目标,通过相应的特殊实践和通用实践来实现这些目标。当一个过程域的所有特殊实践和通用实践都按要求得到实施,就能实现该过程域的目标。

6.用自己语言简述 SWEBok 或 CMMI (约200字)
答:SWEBok,即软件工程知识体系指南,是IEEE计算机学会职业实践委员会主持的一个项目。这个项目的目标是为了促进世界范围内对软件工程的一致观点,阐明软件工程相对其他学科(如计算机科学、项目管理、计算机工程和数学等等)的差别,并明确它们的分界。而这个项目刻画了软件工程学科的内容、提供使用知识体系的主题,以及为开发课程和个人认证与许可材料,提供一个基础。其中,IEEE将其划分了知识域,如:软件需求、软件设计、软件构造、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程工具和方法、软件质量等。

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

  • 阅读《现代软件工程》的 PSP: Personal Software Process 章节。 http://www.cnblogs.com/xinz/archive/2011/11/27/2265425.html
  • 按表格 PSP 2.1, 了解一个软件工程师在接到一个任务之后要做什么,需要哪些技能,解释你打算如何统计每项数据? (期末考核,每人按开发阶段提交这个表)

答:
①软件工程师在接到任务后,要做的事情要进行计划——比如:估计任务完成所需时间、做准备工作等。
然后开始开发,过程包括:需求分析、生成设计文档、设计复审 (和同事审核设计文档)、代码规范 (为目前的开发制定合适的规范)、具体设计、具体编码、代码复审、测试(包括自我测试,修改代码,提交修改)等。
之后还要记录时间花费、测试报告、计算工作量、事后总结、提出过程改进计划等。
②需要的技能很多,如:良好的规划和自律能力(充分管理并分配好自己的时间)、团队合作和沟通能力、把握全局的策划能力、开发软件的硬实力(编程能力)、能够对软件进行全面测试的能力等。
③将任务划分好阶段,对每个阶段定制好目标。
每进行一个阶段,记录好花费的时间,若时间过长,则记录好每个阶段的进度。
完成每个阶段,自我测评阶段任务的完成度有多高并记录下来。
整个任务大致完成后,在测试的过程中测试完成度并记录。

猜你喜欢

转载自blog.csdn.net/m0_38072045/article/details/79560082
今日推荐