系统分析与设计:第一次作业

1.软件工程的定义

研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。

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

(1)用户需求不明确

(2)缺乏正确的理论指导

(3)软件规模越来越大

(4)软件复杂度越来越高

表现

(1)软件开发成本难以控制。

(2)软件开发进度难以预测。

(3)用户对产品功能难以满足。开发的软件不通满足用户要求。

(4)软件产品质量无法保证。开发的软件可靠性(质量)差。

(5)开发的软件可维护性差。开发过程没有统一的、公认的规范,导致软件维护困难。

克服软件危机的方法

认真分析软件危机的原因,研究软件生产的客观规律性,建立与系统化软件生产有关的概念、原则、方法、技术和工具,指导和支持软件系统的生产活动,以期达到降低软件生产成本 、改进软件产品质量、提高软件生产率水平的目标。

3.软件生命周期

1、问题定义: 确定好要解决的问题是什么(what),通过对客户的访问调查,系统分析员扼要的写出关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后这份报告应该得到客户的确认。

2、可行性研究: 确定该问题是否存在一个可以解决的方案。这个阶段的任务不是具体解决问题,而是研究问题的范围,套索这个问题是否值得去解决,是否有可行的解决办法。可行性研究的结果是客户做出是否继续进行这项工程的决定的重要依据,一般来说,只有投资可能取得较大的效益的那些工程项目才值得继续进行下去。

3、需求分析: 深入具体的了解用户的需求,在所开发的系统要做什么这个问题上和用户想法完全一致。明确目标系统必须做什么,确定目标系统必须具备哪些功能。通常用数据流图、数据字典和简要的算法表示系统的逻辑模型。用《规格说明书》记录对目标系统的需求。

4、开发阶段: 软件编码实现与测试
(1)概要设计(总体设计): 概括的说,应该怎样实现目标系统,设计出实现目标系统的几种可能方案,设计程序的体系结构,也就是确定程序由哪些模块组成以及模块之间的关系。
(2)详细设计: 实现系统的具体工作,编写详细规格说明,程序员可以根据它们写出实际的程序代码。详细设计也称模块设计,在这个阶段将详细的设计每个模块,确定实现模块功能所需的算法和数据结构。
(3)编码和单元测试: 编码占全部开发工作量的10%-20%
(4)综合测试: 测试占全部开发工作量的40%-50%,分为集成测试和验收测试。

5、软件维护: 通过各种必要的维护活动使系统持久的满足用户的需求。主要分为:
(1)改正性维护:在软件交付使用后,由于开发测试时的不彻底、不完全、必然会有一部分隐藏的错误被带到运行阶段,这些隐藏的错误在某些特定的使用环境下就会暴露。
(2)适应性维护:是为适应环境的变化而修改软件的活动。
(3)完善性维护:是根据用户在使用过程中提出的一些建设性意见而进行的维护活动。
(4)预防性维护:是为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础。

4.SWEBoK 的 15 个知识域(An Overview of the SWEBOK Guide 请中文翻译其名称与简短说明)
(1)软件工程实践的知识领域

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

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

软件构建
软件构建是指通过结合详细设计,编码,单元测试,集成测试,调试和验证来详细创建工作软件。软件构建KA包括与满足其要求和设计约束的软件程序开发相关的主题。该KA涵盖了软件构建基础; 管理软件建设; 建筑技术; 实际考虑; 和软件构建工具。

软件测试
测试是一项旨在评估产品质量并通过识别缺陷来改进产品质量的活动。软件测试涉及在有限的测试用例集上针对预期行为动态验证程序的行为。这些测试用例是从(通常非常大的)执行域中选择的。软件测试KA包括软件测试的基础知识; 测试技术; 人机界面测试与评估; 与测试有关的措施; 和实际考虑。

软件维护
软件维护包括增强现有功能,调整软件以在新的和修改的操作环境中运行,以及纠正缺陷。这些类别称为完善,自适应和纠正性软件维护。软件维护KA包括软件维护的基础知识(维护的性质和需求,维护类别,维护成本); 软件维护中的关键问题(技术问题,管理问题,维护成本估算,软件维护测量); 维护过程; 软件维护技术(程序理解,重新设计,逆向工程,重构,软件退役); 灾难恢复技术和软件维护工具。

软件配置管理
系统的配置是硬件,固件,软件或这些的组合的功能和/或物理特征。它还可以被视为根据特定构建过程组合的特定版本的硬件,固件或软件项的集合,以满足特定目的。因此,软件配置管理(SCM)是在不同时间点识别系统配置的规则,用于系统地控制配置的改变,以及在整个软件生命周期中维持配置的完整性和可追溯性。软件配置管理KA涵盖SCM过程的管理; 软件配置识别,控制,状态核算,审计; 软件发布管理和交付;

软件工程管理
软件工程管理涉及规划,协调,测量,报告和控制项目或程序,以确保软件的开发和维护是系统化的,规范化的和量化的。软件工程管理KA涵盖了启动和范围定义(确定和协商要求,可行性分析以及要求的审查和修订); 软件项目计划(过程计划,工作量估算,成本和进度,资源分配,风险分析,质量计划); 软件项目制定(计量,报告和控制;收购和供应商合同管理); 产品验收; 审查和分析项目绩效; 项目结束; 和软件管理工具。

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

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

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

软件工程专业实践
软件工程专业实践关注软件工程师必须具备的专业,负责和道德的软件工程知识,技能和态度。软件工程专业实践KA涵盖专业性(专业行为,专业协会,软件工程标准,雇佣合同和法律问题); 道德准则; 小组动态(团队合作,认知问题复杂性,与利益相关者互动,处理不确定性和模糊性,处理多元文化环境); 和沟通技巧。

(2)软件工程教育要求的知识领域

软件工程经济学
软件工程经济学KA关注的是在业务环境中做出决策,以使技术决策与组织的业务目标保持一致。涵盖的主题包括软件工程经济学的基本原理(提案,现金流量,货币时间价值,计划视野,通货膨胀,折旧,替代和退休决策); 非营利性决策(成本效益分析,优化分析); 估计,经济风险和不确定性(估算技术,风险决策和不确定性); 和多属性决策(价值和衡量尺度,补偿和非补偿技术)。

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

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

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

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

1.Level 1 - Initial(初始级)
软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。
2.Level 2 - Managed(可管理级)
建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。
3.Level 3 - Defined(已定义级)
已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
4.Level 4 - Quantitatively Managed(量化管理级)
分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。
5.Level 5 - Optimizing(优化管理级)
过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。

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

CMMI也被称作软件能力成熟度集成模型,其建立的目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。它是一套融合多学科的、可扩充的产品集合,本质上是软件管理工程的一部分。它通常被认为是一个软件工程中各个进程的一个关键元素,在很多领域里面集成的一个点。它是一个能够用于度量软件工程的有效性和实用性、同时协助软件公司找到继续改进的机会的评估架构。CMMI的评估过程分为Class A、B、C三种类型。A类评估是正式的标准过程,目的是获得评估等级;B类评估只需要满足部分的ARC要求,可以认为是组织内部的评估过程;C类评估是一种非正式评估过程,满足更少的ARC要求,通常是在组织发展过程中进行。通过CMM的评估认证不是目标,它只是推动软件企业在产品的研发、生产、服务和管理上不断成熟和进步的手段,是一种持续提升和完善企业自身能力的过程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 《雷达系统分析设计MATLAB第三版》是一本介绍雷达系统分析设计的教材。该书基于MATLAB环境,提供了一些MATLAB代码实例,用于帮助读者理解雷达系统的工作原理和实现方法。 该书的第三版相较于前两版进行了一些更新和修订。书中首先介绍了雷达系统的基本原理和信号处理方法,包括雷达的发送和接收机制、雷达信号的特点以及常用的信号处理技术等。然后,书中介绍了一些常见的雷达系统设计方法,包括目标检测与跟踪、雷达信号的处理与分析、及信噪比的优化等。最后,书中还介绍了一些实际的雷达系统的应用案例,以帮助读者了解雷达技术在实际应用中的具体场景和问题。 该书提供的MATLAB代码主要是一些示例程序,用于演示和实践相关的内容。这些代码可以帮助读者更好地理解书中的理论知识,并通过实际的代码实现来加深对雷达系统的理解。通过学习这些代码,读者可以学会如何使用MATLAB工具箱进行雷达信号处理和系统设计,并可以根据自己的需要进行修改和扩展。 综上所述,该书是一本介绍雷达系统分析设计的教材,通过MATLAB代码的演示,帮助读者更好地理解和掌握雷达系统的工作原理和设计方法。读者可以通过学习这本书,获得对雷达技术的深入理解,并能够应用MATLAB工具箱进行相关的实际操作。 ### 回答2: 《雷达系统分析设计MATLAB第三版》是一本针对雷达系统分析设计的教材。该书使用MATLAB软件作为工具,介绍了雷达系统的基本原理和常用技术,以及如何用MATLAB进行雷达系统分析设计。 该书的第三版相比前两版,在内容和代码方面进行了更新和完善。具体而言,第三版在以下几个方面进行了改进: 1. 增加了对新领域和新技术的介绍。雷达技术不断发展,出现了许多新的技术和应用,如空间雷达、多普勒雷达等。第三版增加了对这些新领域和新技术的介绍,并提供了相应的MATLAB代码示例。 2. 修改和优化了部分内容和代码。第三版根据读者反馈和作者的经验,对一些内容和代码进行了修改和优化,使得书中的内容更加准确和易于理解。同时,第三版还加入了一些新的实例,用于演示和练习。 3. 更新了MATLAB版本和工具箱的使用。第三版针对MATLAB的更新,对书中的代码进行了更新和适配。同时,还介绍了一些常用的MATLAB工具箱的使用方法,以帮助读者更好地应用MATLAB进行雷达系统分析设计。 总之,《雷达系统分析设计MATLAB第三版》是一本系统性和实用性都较高的教材,通过对雷达系统的基本原理和常用技术进行介绍,再结合MATLAB软件的使用,帮助读者更好地理解和应用雷达技术。无论是对从事雷达系统分析设计的专业人士,还是对雷达技术感兴趣的学生和科研人员,都具有一定的参考价值。 ### 回答3: 《雷达系统分析设计 MATLAB 第三版》是一本介绍雷达系统原理、分析设计以及 MATLAB 代码实现的书籍。该书是基于 MATLAB 平台进行雷达系统分析设计的实践指南。 该书分为六个部分,分别为:基础知识、连续波雷达、脉冲雷达、多普勒雷达、MTI雷达和自适应雷达。每个部分都从基础概念出发,逐步深入介绍相关内容,并给出 MATLAB 代码实现示例。 以脉冲雷达为例,该书首先介绍了脉冲雷达基本原理和信号模型,然后介绍了脉冲压缩技术、矩阵方法、距离解析等关键技术,并给出了相应的 MATLAB 实现代码。读者可以通过阅读该书,了解雷达系统的工作原理和设计方法,并自行在 MATLAB 平台上实现相关代码。 该书第三版相比前两版增加了更多 MATLAB 代码实例和案例分析,能更好地帮助读者理解和掌握雷达系统分析设计方法。这本书适用于雷达系统工程师、研究人员和对雷达系统感兴趣的读者。 总之,《雷达系统分析设计 MATLAB 第三版》通过结合理论与实践,提供了一种全面的、基于 MATLAB 平台的雷达系统分析设计方法指南,读者可以通过学习该书中的内容和实现代码,了解雷达系统的原理,并且能够在 MATLAB 平台上进行相关系统设计和仿真。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZTao-z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值