系统设计与分析homework1

系统设计与分析homework1

简答题

1.软件工程的定义

IEEE计算机学会将软件工程定义为:

(1)应用系统化的、学科化的、定量的方法,来开发、运行和维护软件,即将工程应用带软件。
(2)对(1)中各种方法的研究

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

软件工程包括两种构面:软件开发技术和软件项目管理。

  1. 软件开发技术:软件开发方法学、软件工具和软件工程环境。
  2. 软件项目管理:软件度量、项目估算、进度控制、人员组织、配置管理、项目项目等。

2.解释导致 software crisis 本质原因、表现,述说克服软件危机的方法

本质原因

  • 用户需求不明确
  • 缺乏正确的理论指导
  • 软件开发规模越来越大
  • 软件开发复杂度越来越高

表现

  • 软件开发进度难以预测
  • 软件开发成本难以控制
  • 用户对产品功能难以满足
  • 软件产品质量无法保证
  • 软件产品难以维护
  • 软件缺少适当的文档资料

克服软件危机的方法

  • 软件工程学从硬件工程和其他人类工程中吸收了许多成功的经验,明确提出了软件生命周期的模型,发展了许多软件开发与维护阶段适用的技术和方法,并应用于软件工程实践,取得良好的效果。
  • 在软件开发过程中人们开始研制和使用软件工具,用以辅助进行软件项目管理与技术生产,人们还将软件生命周期各阶段使用的软件工具有机地集合成为一个整体,形成能够连续支持软件开发与维护全过程的集成化软件支援环境,以求从管理和技术两方面解决软件危机问题。
  • 外,人工智能与软件工程的结合成为80年代末期活跃的研究领域。基于程序变换、自动生成和可重用软件等软件新技术研究也已取得一定的进展,把程序设计自动化的进程向前推进一步。
  • 在软件工程理论的指导下,发达国家已经建立起较为完备的软件工业化生产体系,形成了强大的软件生产能力 。软件标准化与可重用性得到了工业界的高度重视,在避免重用劳动,缓解软件危机方面起到了重要作用。

3.软件生命周期

  • 计算机软件有一个孕育、诞生、成长、成熟、衰亡的生存过程,这样的过程称为软件的生命周期 (也称软件开发生命周期 SDLC)。软件生命周期将软件开发过程划分为若干阶段,每个阶段有明确的任务目标和运行机制,从而使复杂的软件开发过程能够得到适当的控制和管理。

  • 软件生命周期一般包括可行性分析与计划、需求分析、设计 (概要设计和详细设计)、编码实现、测试、运行与维护等活动。这些活动应当以适当的方式分配到不同的阶段去完成

3.1可行性分析与计划阶段

  • 确定软件开发的总体目标,给出功能、性能、可靠性以及接口等方面的要求,进行可行性分析。

  • 估计可利用的开发资源 (硬件、软件、人力等)、成本、效益、开发进度,进行投资-收益分析,制订开发计划。

  • 提交可行性分析报告、开发计划等文档。

3.2 需求分析阶段

  • 分析用户提出的要求,给出用户需求详细定义,确定软件系统的各项功能、性能需求和设计约束,确定对文档编制的要求。

  • 提交软件需求说明、软件规格说明、数据要求说明等文档和初步的用户手册

3.3 设计阶段

  • 概要设计/逻辑设计:把各项软件需求转换成软件的体系结构。结构中的每一个组成部分意义明确,并和某些需求相对应。
  • 详细设计/物理设计:对按照概要设计分解的每个模块所要完成的工作进行具体的描述,提供源程序代码编写的直接依据。
  • 提交概要结构设计说明书、详细设计说明书和测试计划初稿等文档

3.4 实现阶段

  • 完成源程序的编码、编译 (或汇编) 和运行调试,得到没有语法错误的程序清单。程序结构良好、清晰易读,且与设计相一致。
  • 编写进度日报、周报和月报 (取决于项目的重要性和规模)。
  • 编制测试计划。
  • 提交用户手册、操作手册等面向用户的文档。

3.5 测试阶段

  • 全面测试目标软件系统,并检查审阅已编制的文档,提交测试分析报告。逐项评价所实现的程序、文档以及开发工作本身,提交项目开发总结报告。

3.6运行与维护阶段

  • 软件提交给用户后,在运行使用中得到持续维护,根据用户新提出的需求进行必要而且可能的扩充、删改、更新和升级。
  • 软件维护包括改正性维护 (发现错误)、适应性维护 (适应运行环境变化) 和完善性维护 (增强功能)。

4.SWEBoK 的 15 个知识域(An Overview of the SWEBOK Guide 请中文翻译其名称与简短说明)

4.1 Software Requirements 软件需求

软件需求关注软件需求的启发,协商,分析,规范和验证。 在软件行业中,人们普遍认为,当这些活动表现不佳时,软件工程项目非常容易受到攻击。 软件需求表达了对软件产品的需求和限制,这些需求和约束有助于解决一些现实问题。

4.2 Software Design 软件设计

软件设计涵盖了设计过程和最终产品。 软件设计过程是软件工程生命周期活动,其中分析软件需求以产生软件内部结构及其行为的描述,其将作为其构造的基础。 软件设计(结果)必须描述软件体系结构 - 即软件如何分解和组织成组件以及这些组件之间的接口。 它还必须描述能够构建它们的详细程度的组件。

4.3 Software Construction 软件构造

软件构建是指通过结合详细设计,编码,单元测试,集成测试,调试和验证来详细创建工作软件。 软件构建包括与满足其要求和设计约束的软件程序开发相关的主题。

4.4 Software Testing 软件测试

测试是一项旨在评估产品质量并通过识别缺陷来改进产品质量的活动。 软件测试涉及在有限的测试用例集上针对预期行为动态验证程序的行为。

4.5 Software Maintenance 软件维护

软件维护包括增强现有功能,调整软件以在新的和修改的操作环境中运行,以及纠正缺陷。 这些类别称为完善,自适应和纠正性软件维护。

4.6 Software Configuration Management 软件配置管理

系统的配置是硬件,固件,软件或这些的组合的功能和/或物理特征。 它还可以被视为根据特定构建过程组合的特定版本的硬件,固件或软件项的集合,以满足特定目的。

4.7 Software Engineering Management 软件工程管理

软件工程管理涉及规划,协调,测量,报告和控制项目或程序,以确保软件的开发和维护是系统化的,规范化的和量化的。

4.8 Software Engineering Process 软件工程过程

软件工程过程关注软件生命周期过程的定义,实施,评估,测量,管理和改进。 涵盖的主题包括流程实施和变更(流程基础架构,流程实施和变更模型以及软件流程管理); 流程定义(软件生命周期模型和流程,流程定义,流程适应和流程自动化的符号); 过程评估模型和方法; 测量(过程测量,产品测量,测量技术和测量结果的质量); 和软件处理工具。

4.9 Software Engineering Models and Methods 软件工程模型和方法

软件工程模型和方法解决了涵盖多个生命周期阶段的方法; 其他涵盖特定生命周期阶段的特定方法。 涵盖的主题包括建模(软件工程模型的原理和属性;语法与语义与不变量;前置条件,后置条件和不变量); 模型类型(信息,结构和行为模型); 分析(分析正确性,完整性,一致性,质量和相互作用;可追溯性;以及权衡分析); 和软件开发方法(启发式方法,形式方法,原型方法和敏捷方法)。

4.10 Software Quality 软件质量

软件质量是许多SWEBOK V3 KAs中普遍存在的软件生命周期问题。 此外,软件质量KA还包括软件质量的基础知识(软件工程文化,软件质量特性,软件质量的价值和成本以及软件质量改进); 软件质量管理流程(软件质量保证,验证和确认,审核和审核); 和实际考虑(缺陷表征,软件质量测量和软件质量工具)。

4.11 Software Engineering Professional Practice 软件工程专业实践

软件工程专业实践关注软件工程师必须具备的专业,负责和道德的软件工程知识,技能和态度。

4.12 Software Engineering Economics 软件工程经济学

软件工程经济学KA关注的是在业务环境中做出决策,以使技术决策与组织的业务目标保持一致。

4.13 Computing Foundations 计算基础

计算基础涵盖了提供软件工程实践所需的计算背景的基础主题。 涵盖的主题包括问题解决技术,抽象,算法和复杂性,编程基础,并行和分布式计算的基础知识,计算机组织,操作系统和网络通信。

4.14 Mathematical Foundations 数学基础

数学基础涵盖了提供软件工程实践所必需的数学背景的基础主题。 涵盖的主题包括集合,关系和功能; 基本命题和谓词逻辑; 证明技术; 图形和树木; 离散概率; 语法和有限状态机; 和数论。

4.15 Engineering Foundations 工程基础

工程基础涵盖了提供软件工程实践所必需的工程背景的基础主题。 涵盖的主题包括经验方法和实验技术; 统计分析; 测量和指标; 工程设计; 仿真与建模; 和根本原因分析。

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

  • 台阶一:CMMI一级,完成级。在完成级水平上,企业对项目的目标与要做的努力很清晰,项目的目标得以实现。但是由于任务的完成带有很大的偶然性,企业无法保证在实施同类项目的时候仍然能够完成任务。企业在一级上的项目实施对实施人员有很大的依赖性。

  • 台阶二:CMMI二级,管理级。在管理级水平上,企业在项目实施上能够遵守既定的计划与流程,有资源准备,权责到人,对相关的项目实施人员有相应的培训,对整个流程有监测与控制,并与上级单位对项目与流程进行审查。企业在二级水平上体现了对项目的一系列的管理程序。这一系列的管理手段排除了企业在一级时完成任务的随机性,保证了企业的所有项目实施都会得到成功。

  • 台阶三:CMMI三级,定义级。在定义级水平上,企业不仅能够对项目的实施有一整套的管理措施,并保障项目的完成;而且,企业能够根据自身的特殊情况以及自己的标准流程,将这套管理体系与流程予以制度化这样,企业不仅能够在同类的项目上生到成功的实施,在不同类的项目上一样能够得到成功的实施。科学的管理成为企业的一种文化,企业的组织财富。

  • 台阶四:CMMI四级,量化管理级。在量化管理级水平上,企业的项目管理不仅形成了一种制度,而且要实现数字化的管理。对管理流程要做到量化与数字化。通过量化技术来实现流程的稳定性,实现管理的精度,降低项目实施在质量上的波动。

  • 台阶五:CMMI五级,优化级。在优化级水平上,企业的项目管理达到了最高的境界。企业不仅能够通过信息手段与数字化手段来实现对项目的管理,而且能够充分利用信息资料,对企业在项目实施的过程中可能出现的次品予以预防。能够主动地改善流程,运用新技术,实现流程的优化。

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

CMMI全称是Capability Maturity Model Integration,即能力成熟度模型集成。CMMI为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,建立了一个自动的、可扩展的框架。因而能够从总体上改进组织的质量和效率。CMMI主要关注点就是成本效益、明确重点、过程集中和灵活性四个方面。CMMI能保证软件开发的质量与进度,能对“杂乱无章、无序管理”的项目开发过程进行规范,且有利于成本控制,有助于提高软件开发者的职业素养,有利于提升公司和员工绩效管理水平,能够解决人员流动所带来的问题等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值