系统设计与分析
Posted alva112358
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统设计与分析相关的知识,希望对你有一定的参考价值。
目录
软件工程的定义
IEEE计算机学会将软件工程定义为:
- (1)应用系统化的、学科化的、定量的方法,来开发、运行和维护软件,即将工程应用带软件。
- (2)对(1)中各种方法的研究
解释导致software crisis本质原因、表现,述说克服软件危机的方法
软件危机,是早期计算机科学用于描述在规定时间内编写实用而高效计算机程序困难性的专业术语。
软件危机的本质表现
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.
软件危机的表现
The causes of the software crisis were linked to the overall complexity of hardware and the software development process. The crisis manifested itself in several ways:
- Projects running over-budget
- Projects running over-time
- Software was very inefficient
- Software was of low quality
- Software often did not meet requirements
- Projects were unmanageable and code difficult to maintain
- Software was never delivered
软件危机的克服方法
Various processes and methodologies have been developed over the last few decades to improve software quality management such as procedural programming and object-oriented programming. And the development of software demands not only the programming problems but also the systematic software engineering methods of the times.
软件生命周期
在时间维度,对软件项目任务进行划分,又称为软件开发过程。常见有瀑布模型、螺旋模型、敏捷的模型等。
SWEBoK的15个知识域
软件需求
软件需求描述解决现实世界某个问题的软件产品,及对软件产品的约束。软件需求涉及需求抽取、需求分析、建立需求规格说明和确认,涉及建模、软件开发的技术、经济、时间可行性分析。软件需求直接影响软件设计、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程和软件质量等。
软件设计
设计是软件工程最核心的内容。设计既是“过程”,也是这个过程的“结果”。软件设计由软件体系结构设计、软件详细设计两种活动组成。它涉及软件体系结构、构件、接口、以及系统或构件的其它特征,还涉及软件设计质量分析和评估、软件设计的符号、软件设计策略和方法等。
软件构造
通过编码、单元测试、集成测试、调试、确认这些活动,生成可用的、有意义的软件。软件构造除要求符合设计功能外,还要求控制和降低程序复杂性、预计变更、进行程序验证和制定软件构造标准。软件构造与软件配置管理、工具和方法、软件质量密切相关。
软件测试
测试是软件生存周期的重要部分,涉及测试的标准、测试技术、测试度量和测试过程。测试不再是编码完成后才开始的活动,测试的目的是标识缺陷和问题,改善产品质量。软件测试应该围绕整个开发和维护过程。测试在需求阶段就应该开始,测试计划和规程必须系统,并随着开发的进展不断求精。正确的软件工程质量观是预防,避免缺陷和问题比改正好。代码生成前的主要测试手段是静态技术(检查),代码生成后采用动态技术(执行代码)。测试的重点是动态技术,从程序无限的执行域中选择一个有限的测试用例集,动态地验证程序是否达到预期行为。
软件维护
软件产品交付后,需要改正软件的缺陷、提高软件性能或其他属性、使软件产品适应新的环境。软件维护是软件进化的继续。软件维护要支持系统快速地、便捷地满足新的需求。基于服务的软件维护越来越受到重视。软件维护是软件生存周期的组成部分。然而,历史上维护从未受到重视。情况有了改变,软件组织力图使软件运营时间更长,软件维护成为令人关注的焦点。
软件配置管理
为了系统的控制配置变更,维护整个系统生命周期中配置的一致性和可追踪性,必须按时间管理软件的不同配置,包括配置管理过程的管理、软件配置鉴别、配置管理控制、配置管理状态记录、配置管理审计、软件发布和交付管理等。
软件工程管理
运用管理活动,如计划、协调、度量、监控、控制和报告,确保软件开发和维护是系统的、规范的、可度量的。它涉及基础设施管理;项目管理;度量和控制计划三个层次。度量是软件管理决策的基础。近年来软件度量的标准、测度、方法、规范发展较快。
软件工程过程
管理软件工程过程的目的是,实现一个新的或者更好的过程。软件工程过程关注软件过程的定义、实现、评估、测量、管理、变更、改进,以及过程和产品的度量。软件工程过程分为,①围绕软件生存周期过程的技术和管理活动,即需求获取、软件开发、维护和退役的各种活动。②对软件生存周期的定义、实现、评估、度量、管理、变更和改进。
软件工程模型和方法
软件开发工具是以计算机为基础的,用于辅助软件生存周期过程。通常,工具是为特定的软件工程方法设计的,以减少手工操作的负担、使软件工程更加系统化。软件工具的种类很多,从支持个人到整个生存周期。软件工具分为:需求工具、设计工具、构造工具、测试工具、维护工具、配置管理工具、工程管理工具、工程过程工具、软件质量工具等。
软件工程方法支持软件工程活动,使软件开发更加系统,并能获得成功。软件开发方法不断发展。当前,软件工程方法分为:①启发式方法,包括结构化方法、面向数据方法、面向对象方法和特定域方法;②基于数学的形式化方法;③用软件工程多种途径实现的原型方法,原型方法帮助确定软件需求、软件体系结构,用户界面等。
软件质量
软件质量贯穿整个软件生存周期,涉及软件质量需求、软件质量度量、软件属性检测、软件质量管理技术和过程等。
SWEBOK还把软件工程相关学科列为知识域,它们是软件工程发展不可或缺的部分。相关学科知识域包括计算机工程、计算机科学、数学、管理学、项目管理、质量管理、系统工程学和软件人类工程学八个领域。
软件工程专业实践
软件工程专业实践是指软件工程师必须具备的知识、技能和态度,以便以专业、负责任和合乎道德的方式实践软件工程。软件工程专业实践知识领域涵盖专业(专业行为、专业社团、软件工程标准、雇佣合同、法律问题);伦理准则;群体动力学(团队合作,认知问题复杂性,与利益相关者互动,处理不确定性和模糊性,处理多元文化环境);和沟通能力。
软件工程经济学
软件工程经济学知识领域关注的是在业务上下文中做出决策,使技术决策与组织的业务目标保持一致。涵盖的主题包括软件工程经济学的基本原理(建议、现金流、金钱的时间价值、规划范围、通货膨胀、折旧、替换和退休决定);非营利性决策(成本效益分析、优化分析);评估、经济风险与不确定性(评估技术、风险与不确定性下的决策);多属性决策(价值和度量尺度、补偿和非补偿技术)。
计算基础
计算基础知识领域涵盖了为软件工程实践提供必要的计算背景的基本主题。主题包括问题解决技术、抽象、算法和复杂性、编程基础、并行和分布式计算基础、计算机组织、操作系统和网络通信。
数学基础
The Mathematical Foundations KA covers fundamental topics that provide the mathematical background necessary for the practice of software engineering. Topics covered include sets, relations, and functions; basic propositional and predicate logic; proof techniques; graphs and trees; discrete probability; grammars and finite state machines; and number theory.
工程基础
工程基础知识领域涵盖了为软件工程实践提供必要的工程背景的基本主题。主题包括经验方法和实验技术;统计分析;测量和度量;工程设计;仿真和建模;以及根本原因分析。
简单解释CMMI的五个级别。例如:Level 1 - Initial:无序、自发生产模式
- Level 1 Initial 无序,自发生产模式
- Level 2 Managed 程序用于描述项目特征,并且通常具有反应性
- Level 3 Defined 程序用于描述组织特征,并且通常具有积极主动性
- Level 4 Quantitatively Managed 程序测量与控制过程
- Level 5 Optimizing 关注程序改进
摘自 (https://en.wikipedia.org/wiki/Capability_Maturity_Model_Integration)[维基百科]
用自己语言简述SWEBoK或CMMI
SWEBoK,即软件工程知识体,是一个有关软件工程的国际标准,被用于促进世界范围内对软件工程的一致性观点,阐明软件工程与计算机科学等学科的区别,并刻画软件工程的学科内容和知识体系,为开发课表和个人认证提供基础。SWEBoK同时将软件工程组织为10个知识域,包括软件需求、软件设计等,指导软件工程人才的培养和学科建设。
以上是关于系统设计与分析的主要内容,如果未能解决你的问题,请参考以下文章