软件工程知识体系
1.软件工程概论主要的体系结构框架有哪些
软件工程的基本概念、软件生存周期与软件过程、结构化软件分析(需求工程)、结构化软件设计、面向对象软件工程、面向对象分析、面向对象设计、编码与测试、软件维护、软件复用、软件工程管理、软件质量管理、软件工程环境等。
第一章 软件工程概述
第一节软件危机与软件工程
知识点:软件危机形成的原因;软件工程的概念、原理;
第二节软件过程
知识点:软件生命周期及软件开发的各个模型;
第二章 可行性研究
第一节可行性研究的任务
知识点:可行性分析的步骤及方法;
第二节数据流图及数据字典
知识点:系统流程图及数据流图的画法;数据字典的定义方法;
第三章 需求分析
第一节需求分析的任务
知识点:需求的重要性;获取需求的方法;
第二节图形工具
知识点:实体联系图;状态转换图;层次方框图;
第四章 概要设计
第一节设计原理
知识点:设计原理;启发规则;
第二节面向数据流的设计方法
知识点:变换分析;事务分析;
第五章 详细设计
第一节过程设计的工具
知识点:程序流程图;N-S图;PAD图;PDL;
第二节程序复杂程度的定量度量
知识点:McCabe方法;Halstead方法;
第六章 面向对象的分析与设计方法
第一节面向对象分析
知识点:统一建模语言;三大模型;
第二节面向对象设计
知识点:面向对象设计准则;面向对象设计模型;
第七章 编码与实现
第一节编码与实现
知识点:编程语言的选择;编码原则;
第二节调试与维护
知识点:调试;软件可靠性;软件维护;
第八章 软件质量与质量保证
第一节软件测试技术
知识点:各种测试的概念;白盒测试;黑盒测试;
第二节质量保证
知识点:软件质量要素;质量保证措施;
2.项目管理九大知识体系有哪些
您说的是9大项目管理的知识领域吧,这是PMBOK第4版的内容包括:
项目整合管理、项目范围管理、项目进度管理、项目成本管理、项目质量管理、项目人力资源管理、项目沟通管理、项目风险管理、项目采购管理
到了第5版就是更改为10个知识领域了,包括:
项目整合管理、项目范围管理、项目进度管理、项目成本管理、项目质量管理、项目人力资源管理、项目沟通管理、项目风险管理、项目采购管理,项目干系人管理
目前最新的第6版中,调整了两个知识领域,包括:
项目整合管理、项目范围管理、项目进度管理、项目成本管理、项目质量管理、项目资源管理、项目沟通管理、项目风险管理、项目采购管理,项目相关方管理
3.软件工程师必备知识
软件工程师考试(高级)大纲 一、考试说明 1.考试要求: (1)理解软件工程管理的概念和任务; (2)理解软件生存期过程; (3)理解软件工程标准; (4)掌握需求分析、测试、维护基本技术; (5)掌握软件度量、软件配置管理方法; (6)理解软件复用概念; (7)理解软件质量保证的手段; (s)理解软件项目对人员的需求; (9)理解软件知识产权的基本知识。
2.通过本级水平考试的合格人员具有从事软件系统分析与工程系统分析员、工程管理员的实际工作能力和业务水平。 3.本级水平考试范围包括三个模块,即模块1、模块2和模块3。
题型为单项选择题十多项选择题十综合题。每个模块考试时间为90分钟。
二、考试范围 模块1:软件工程技术 1.1软件生存期过程 1.1.1软件工程过程和软件生存期 1.1.2软件生存期模型 1.1.3国际标准:ISO/IECI2207信息技术一软件生存期过程 1.2软件需求分析 1.2.1需求分析的任务 1.2.2需求分析过程 1.2.3需求的类型。 1.2.4需求分析的原则 1.2.5需求分析人员和用户的责任 1.2.6需求文档 1.2.7需求说明技术的选择 1.3软件复用技术 1.3.1软件复用的概念 1.3.2软件开发过程 1.3.3构件技术 1.3.4分层式体系结构 1.3.5实施软件复用开发单位的组织结构 1.4软件测试技术 1.4.1软件测试的基本概念 1.4.2测试用例设计 ●白盒测试 ●黑盒测试 1.4.3性能测试 1.4.4软件测试策略 1.4.5软件测试工具 1.5软件维护 1.5.1软件维护的概念 1.5.2软件维护活动 1.5.3软件维护的实施 1.5.4软件可维护性 1.5.5软件再工程 1.6软件工具与软件开发环境 1.6.1软件开发工具的分类、作用和功能 1.6.2软件开发环境的概念 模块2:软件质量管理与软件质量保证 2.1软件质量 2.1.1什么是软件质量 2.1.2软件可靠性 2.1.3软件质量问题的根源 2.1.4软件产品质量与软件过程质量 2.2软件质量保证 2.2.1软件质量保证的概念 2.2.2软件质量保证体系 2.2.3质量保证的实施 2.2.4软件质量设计 2.2.5软件容错技术 2.3软件工程标准与软件文档 2.3.1什么是软件工程标准 2.3.2软件工程标准化的意义 2.3.3软件工程标准的制订与推行 2.3.4软件工程标准的层次 2,3.5软件工程国家标准 2.4ISO9000国际标准 2.4.1质量管理、质量认证与质量审核 2.4.2ISO9000标准概要 2.4.3ISO9000族标准构成 2.4.4质量体系 2.4.5ISO9001的主要内容 2.4.6ISO9000_3实施指南概要 2.5软件过程能力评估CMM 2.5.1软件过程评估的意义 2.5.2软件过程能力成熟度分级及其关键过程域 2.5.3软件过程评估的国际标准 2.6软件度量 2.6.1软件度量的概念 2.6.2功能点方法计算软件的大小 2.6.3程序环路复杂度计算 2.6.4Halstead程序工作量计算 2.6.5程序风格度量 2.7软件配置管理 2.7.1什么是软件配置管理 2.7.2配置管理计划的制订 2.7.3变更管理 2.7.4版本管理和发行管理 模块3:软件工程管理 3.1软件工程管理和软件项目管理 3.1.1软件工程管理的任务与意义 3.1.2软件工程管理的范围 3.1.3软件文档管理 3.1.4软件成本估算 3.1.5软件风险分析 3.1.6软件项目进度计划与监控 3.2软件人员管理 3.2.1软件开发组织结构 3.2.2软件人员能力成熟度模型 3.2.3软件工程师道德和职业活动规范 3.3软件知识产权保护 3.3.1什么是知识产权 3.3.2计算机软件著作权 3.3.3计算机软件著作权登记管理 3.3.4计算机软件著作权侵权与法律保护 3.3.5计算机软件的商业秘密与反不正当竞争=================================高级软件工程师哪些必须精通2007年09月26日 星期三 下午 05:31程序员的七种武器 信息技术的发展时间虽然不长,但其爆炸式的发展速度使信息技术迅速覆盖社会和人类生活的各个角落。
程序员们是这场信息化浪潮的见证者之一,更是其中的主要参与者,这是时代赋予每个程序员的机会和责任。 信息技术的更新速度是惊人的,程序员的职业生涯则是一个要求不断学习的过程,永远不能固步自封。
本人在工作期间曾看见过很多程序员只要有闲暇时间就浏览一些没有太大作用的网页,在网上聊天,打游戏,浪费了大量的时间,十分不可取。而另外一种情况是,IT技术的日新月异使很多程序员眼花缭乱,什么都想学,却又不知从何学起,今天看看这个,明天学学那个,贪多不熟。
虽然IT技术发展迅速,但很多技术都是有规律可循,一些基本的概念、原理和方法还很通用,可以举一反三。本人根据自己的体会和经验,向那些刚刚踏入IT行业的新程序员们或正在迷茫的程序员们推荐程序员必须掌握的七种武器,有了这七种武器,虽不敢说笑傲江湖,但将自己立于不败之地还是可以的。
第一种武器:开发工具 至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是我重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而本人对SUN公司的“网络即计算机”的概念相当欣赏,并相信JAVA即其相关的技术集JAVA One会成为未来的主流开发工具之一。
其次,如果能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,C++ Builder,则更好,62616964757a686964616fe59b9ee7ad943。
4.软件工程专业的组成结构
ACM和IEEE-CS发布的SWEBOK定义了软件工程学科的内涵,它由10个知识域构成。
(1)软件需求 软件需求描述解决现实世界某个问题的软件产品,及对软件产品的约束。软件需求涉及需求抽取、需求分析、建立需求规格说明和确认,涉及建模、软件开发的技术、经济、时间可行性分析。
软件需求直接影响软件设计、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程和软件质量等。 (2)软件设计 设计是软件工程最核心的内容。
设计既是“过程”,也是这个过程的“结果”。软件设计由软件体系结构设计、软件详细设计两种活动组成。
它涉及软件体系结构、构件、接口、以及系统或构件的其它特征,还涉及软件设计质量分析和评估、软件设计的符号、软件设计策略和方法等。 (3)软件构造 通过编码、单元测试、集成测试、调试、确认这些活动,生成可用的、有意义的软件。
软件构造除要求符合设计功能外,还要求控制和降低程序复杂性、预计变更、进行程序验证和制定软件构造标准。软件构造与软件配置管理、工具和方法、软件质量密切相关。
(4)软件测试 测试是软件生存周期的重要部分,涉及测试的标准、测试技术、测试度量和测试过程。测试不再是编码完成后才开始的活动,测试的目的是标识缺陷和问题,改善产品质量。
软件测试应该围绕整个开发和维护过程。测试在需求阶段就应该开始,测试计划和规程必须系统,并随着开发的进展不断求精。
正确的软件工程质量观是预防,避免缺陷和问题比改正好。代码生成前的主要测试手段是静态技术(检查),代码生成后采用动态技术(执行代码)。
测试的重点是动态技术,从程序无限的执行域中选择一个有限的测试用例集,动态地验证程序是否达到预期行为。 (5)软件维护 软件产品交付后,需要改正软件的缺陷、提高软件性能或其他属性、使软件产品适应新的环境。
软件维护是软件进化的继续。软件维护要支持系统快速地、便捷地满足新的需求。
基于服务的软件维护越来越受到重视。软件维护是软件生存周期的组成部分。
然而,历史上维护从未受到重视。情况有了改变,软件组织力图使软件运营时间更长,软件维护成为令人关注的焦点。
(6)软件配置管理 为了系统的控制配置变更,维护整个系统生命周期中配置的一致性和可追踪性,必须按时间管理软件的不同配置,包括配置管理过程的管理、软件配置鉴别、配置管理控制、配置管理状态记录、配置管理审计、软件发布和交付管理等。(7)软件工程管理 运用管理活动,如计划、协调、度量、监控、控制和报告,确保软件开发和维护是系统的、规范的、可度量的。
它涉及基础设施管理;项目管理;度量和控制计划三个层次。度量是软件管理决策的基础。
近年来软件度量的标准、测度、方法、规范发展较快。(8)软件工程过程 管理软件工程过程的目的是,实现一个新的或者更好的过程。
软件工程过程关注软件过程的定义、实现、评估、测量、管理、变更、改进,以及过程和产品的度量。软件工程过程分为,①围绕软件生存周期过程的技术和管理活动,即需求获取、软件开发、维护和退役的各种活动。
②对软件生存周期的定义、实现、评估、度量、管理、变更和改进。 (9)软件工程工具和方法 软件开发工具是以计算机为基础的,用于辅助软件生存周期过程。
通常,工具是为特定的软件工程方法设计的,以减少手工操作的负担、使软件工程更加系统化。软件工具的种类很多,从支持个人到整个生存周期。
软件工具分为:需求工具、设计工具、构造工具、测试工具、维护工具、配置管理工具、工程管理工具、工程过程工具、软件质量工具等。软件工程方法支持软件工程活动,使软件开发更加系统,并能获得成功。
软件开发方法不断发展。当前,软件工程方法分为:①启发式方法,包括结构化方法、面向数据方法、面向对象方法和特定域方法;②基于数学的形式化方法;③用软件工程多种途径实现的原型方法,原型方法帮助确定软件需求、软件体系结构,用户界面等。
(10)软件质量 软件质量贯穿整个软件生存周期,涉及软件质量需求、软件质量度量、软件属性检测、软件质量管理技术和过程等。SWEBOK还把软件工程相关学科列为知识域,它们是软件工程发展不可或缺的部分。
相关学科知识域包括计算机工程、计算机科学、数学、管理学、项目管理、质量管理、系统工程学和软件人类工程学八个领域。