信息系统项目管理师考点二之系统开发基础

  • 知识点归纳
  • 软件开发方法
  • 软件开发模型
  • 需求工程
  • 软件设计
  • 软件测试
  • 软件维护
  • 软件质量管理
  • 软件过程改进
  • 面向对象方法
  • 构件与软件复用
  • 软件体系结构

知识点归纳

  • 软件工程知识

    软件需求分析与定义、软件设计、测试与维护、软件复用、软件质量保证及质量评价、软件配置管理、软件开发环境、软件过程管理

  • 软件构件技术知识

    构件及其在信息系统项目中的重要性、常用构件标准(COM/DCOM/COM+、CORBA和EJB)

  • 软件体系结构

    软件体系结构定义、典型体系结构、软件体系结构设计方法、软件体系结构分析与评估、软件中间件

  • 面向对象系统分析与设计

    面向对象的基本概念、统一建模语言UML、可视化建模、面向对象系统分析、面向对象系统设计

  • 软件工具

    建模工具、软件开发工具、软件测试工具、项目管理工具

软件开发方法

软件开发方法是以软件开发方法为研究对象的学科。从不同角度可以把软件方法学做如下分类:

  1. 开发风范上看:分为自顶向下、自底向上开发方法

  2. 性质上看:分为形式化、非形式化方法

  3. 适用范围上看:分为整体性、局部性方法

  • 净室方法

    净室软件工程方法是一种形式化方法,它可以生产高质量的软件。

    净室方法是一种严格的软件工程方法,它是一种强调正确性的数据验证和软件可靠性的认证的软件过程模型,其目标和结果都有非常低的出错率,这是使用非形式化方法难于或不可能达到的。

    主要使用三种盒模型:黑盒、状态盒、清晰盒

    净室软件工程并不强调单元测试或集成测试,而是通过定义一组使用场景、确定对每个场景的使用概率及定义符合概率的随机测试来进行软件测试(这种活动称为正确性验证)

  • 结构化方法

    结构化方法属于自顶向下的开发方法,强调开发方法的结构合理性及所开发软件的结构合理性。包括:

    结构化分析(Structured Analysis,SA)

    结构化设计(Structured Design,SD)

    结构化程序设计(Structured Programming,SP)等方法

  • 面向对象方法

    1. 统一称为UML(United Model Language,统一建模语言):

      OMT(Object Model Technology,对象建模技术)方法

      OOSE(Object-Oriented Software Engineering,面向对象的软件工程方法)

      Booch方法

    2. 其他

      Coad/Yourdon方法

  • 原型法

    原型法适合于用户需求不明确的场合。它是先根据已知的和分析的需求,建立一个原始模型,这是一个可以修改的模型。在软件开发的各个阶段都把有关信息相互反馈,直至模型的修改,使模型渐趋完善。在这个过程中,用户的参与和决策加强了,缩短了开发周期,降低了开发风险,最终的结果是更适合用户的要求。原型法成败的关键及效率的高低,在于模型的建立及建模的速度

  • 逆向工程

    软件再工程(Reengineering)是对现有软件系统的重新开发过程,包括:逆向工程(Reverse Engineering,反向工程)、新需求的考虑(软件重构)和正向工程三个步骤

软件开发模型

要掌握软件生命周期的概念、各种开发模型的特点和应用场合。

  • 瀑布模型

    瀑布模型也称为生命周期法,适用于需求明确或很少变更的项目,它把软件开发的过程分为6个阶段:需求分析、软件计划、程序编码、软件测试、运行维护。

    简记:需计承测维

  • 其他经典模型

    包括:演化模型、螺旋模型、喷泉模型、智能模型、增量模型、迭代模型、构件组装模型。

  • V模型

    从左到右

    用户需求 -> 需求分析 -> 概要设计 -> 详细设计 -> 编码阶段

    从右到左

    验收测试 <- 系统测试 <- 集成测试 <- 单元测试

    简记:用需概详编,单集系统验

  • 快速应用开发

    快速应用开发(Rapid Application Development,RAD)模型是一个增量型的软件开发过程模型,强调极短的开发周期。RAD模型是瀑布模型的一个高速变种,通过大量使用可复用构件,采用基于构件的建造方法赢得快速开发。

  • 敏捷方法

    敏捷方法的发展过程中出现了不同的流派,如:极限编程(Extreme Programming,XP)、自适应软件开发、水晶方法、特性驱动开发等。

    从开发者角度,主要关注点:

    1. 短平快会议(Stand Up)
    2. 小版本发布(Frequent Release)
    3. 较少的文档(Minimal Document)
    4. 合作为重(Collaborative Focus)
    5. 客户直接参与(Customer Engagement)
    6. 自动化测试(Automated Testing)
    7. 适应性计划调整(Adaptive Planning)
    8. 结对编程(Pair Programming)

    从管理者的角度,主要关注点:

    1. 测试驱动开发(Test-Driven Development)

    2. 持续集成(Continuous Integration)

    3. 重构(Refactoring)

  • 统一过程

    统计过程(Unified Process,UP)是一个通用过程框架,在为软件系统建模时,UP使用的是UML。UP的三个特点:用例驱动、以基本架构为中心、迭代和增量

    UP中的软件过程在时间上被分解为4个顺序的阶段:初始阶段、细化阶段、构建阶段和交付阶段。

需求工程

内容介绍

需求工程是包括创建和维护系统需求文档所必须的一切活动的过程,可分为需求开发和需求管理两大工作。
  1. 需求开发包括:需求获取、需求分析、编写规格说明书(需求定义)、需求验证

  2. 需求管理包括:定义需求基线、处理需求变更及需求跟踪等方面的工作。

  • 需求开发概述

    需求开发的工作可以分为:问题识别、分析与综合、编制需求分析的文档、需求分析与评审。

    需求的分类:软件需求包括功能需求、非功能需求、设计约束3个方面。

    需求的另一分类:业务需求、用户需求、系统需求

  • 需求获取

    需求获取技术:用户访谈、用户调查、现场观摩、阅读历史文档、联合讨论会。

    需求获取、需求分析、需求定义、需求验证这4个需求过程阶段不是瀑布式的发展,而应该是迭代式的演化过程。

  • 需求分析

    需求分析方法种类:结构化分析方法、面向对象分析方法、面向问题域的分析方法(Problem Domain Oriented Analysis,PDOA)。PDOA方法现在还在研究阶段,并未广泛使用。

    数据流程图(DFD)和数据字典共同构成系统的逻辑模型。

  • 需求定义

    需求定义的过程就是形成需求规格说明书的过程,有两种需求定义方法;严格需求定义方法和原型方法。

  • 需求管理

软件设计

内容介绍

从工程管理角度,软件设计可分为概要设计和详细设计两个阶段。
  1. 概要设计

    也称为高层设计,即将软件需求转化为数据结构和软件的系统结构

  2. 详细设计

    为低层设计,即对结构图进行细化,得到详细的数据结构与算法

  • 软件设计活动

    软件设计包括4个独立又相互联系的活动,即数据设计、体系结构设计、接口设计(界面设计)和过程设计。这4个活动完成以后就得到了全面的软件设计模型。

  • 结构化设计

    结构化设计是一种面向数据流的设计方法,是以结构化分析阶段所产生的成果为基础,进一步自顶向下、逐步求精和模块化的过程。

软件测试

内容介绍

软件测试的目的是在软件投入生产性运行之前,尽可能多地发现软件产品中的错误和缺陷。软件测试只是软件质量保证的手段之一。
  • 测试的类型

    分为动态测试和静态测试两大类

    1. 动态测试:通过运行程序发现错误。

      测试方法有:黑盒测试法、白盒测试法、灰盒测试法

    2. 静态测试:不运行程序,采用人工检测和计算机辅助静态分析的手段进行测试。

      测试方法有:桌前检查(Desk Checking)、代码审查、代码走查

  • 测试的阶段

    可以分为:单元测试、集成测试、确认测试(包括内部确认测试、Alpha测试、Beta测试、验收测试)和系统测试等。

  • 性能测试

    性能测试是通过自动化的测试工具模型模拟多种正常、峰值及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行,统一称为负载压力测试。

    通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。

    压力测试是通过确定一个系统的瓶颈或不能接受的性能点,来获得系统能提供的最大服务级别的测试。

  • 验收测试

    验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。

  • 第三方测试

    第三方测试是指独立于软件开发方和用户方的测试,也称为"独立测试"。

软件维护

  • 内容介绍

    软件维护占整个软件生命周期的60%~80%,维护的类型主要有3种:改正性维护、适应性维护、完善性维护

    还有一类叫:预防性维护,可以定义为"把今天的方法学用于昨天的系统以满足明天的需要"。

    简记:该si晚育

软件质量管理

  • 软件质量

    是指软件特性的综合,即软件满足规定或潜在用户需求的能力。

  • 软件质量保证

    是指为保证软件系统或的软件产品充分满足要求的质量而进行的有计划、有组织的活动,这些活动贯穿与软件生产的各个阶段即整个生命周期。

    软件质量特性度量有两类:预测型和验收型。

  • 软件质量模型

    常用的国际通用软件质量模型ISO/IEC9126和Mc Call模型。

    ISO/IEC9126软件质量模型已被我国的国家标准《GB/T 16260————2002 信息技术 软件产品评价 质量特性及其使用指南》。

软件过程改进

  • 软件过程能力成熟度模型(Capability Maturity Model,CMM)

    分为:初始级、可重复级、已定义级、已管理级、优化级

  • 能力成熟度模型集成(Capability Maturity Model Integration,CMMI)

    与CMM相比CMMI涉及面不限于软件,专业领域覆盖软件工程、系统工程、集成产品开发和系统采购

    CMMI可以看作把各种CMM集成到一个系列的模型中,CMMI的基础源模型包括软件CMM、系统过程CMM、集成化产品和过程开发CMM等。

    每一种CMMI模型都有两种表示法,即阶段式和连续式

面向对象方法

主要考查面向对象的基本概念、数据隐藏、UML和构件

  • 基本概念

    面向对象方法包括面向对象的分析、面向对象的设计、面向对象的程序设计。

    1. 对象

      对象是指一组属性及这组属性上的专用操作的封装体。一个对象通常可由三部分组成:对象名、属性和操作方法。

    2. 类是具有相同属性和相同操作的对象的集合。每一个类一般都有实例,没有实例的类是抽象类

    3. 继承

      继承时指某个类的层次关联中不同的类共享属性和操作的一种机制。对于两个类A和B,如果A类是B类的子类,则B类是A类的泛化。继承时面向对象方法区别与其他方法的一个核心思想。

    4. 封装

      面向对象系统中的封装单位是对象,对象之间只能通过接口进行信息交流。

    5. 消息

      消息是对象间通信的手段、一个对象通过向另一个对象发送消息来请求其服务。

    6. 多态性

      多态性是指同一个操作作用于不同的对象时可以有不同的解释,并产生不同的执行结果。

  • 统一建模语言

    统一建模语言(UML)是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发全过程

    UML的结构:UML的结构包括基本构造块、支配这些构造块如何放在一起的规则(体系架构)和一些运用于整个UML的机制。

    1. UML有三种基本的构造块、分别是事物(thing)、关系(relationship)和图(diagram)

    2. 公共机制是指达到特定目标的公共UML方法,主要包括规格说明(详细说明)、修饰、公共分类(通用划分)和扩展机制四种

    3. 规则,UML用于描述事物的语义规则分别为事物、关系和图命名。5个系统视图:逻辑视图、进程视图、实现视图、部署视图、用例视图

构件与软件复用

内容介绍

构件(Component,组件) 是一个功能相对独立的具有可重用价值的软件单元。在面向对象方法中,一个构件由一组对象构成,包含了一些协作的类的集合,它们共同工作来提供一种系统功能。

  • 软件复用

    可重用性是指系统和(或)其组成部分在其他系统中重复使用的程度。

    系统的软件重用由可重用的资产(构件)的开发、管理、支持和重用4个过程。

  • 构件技术

    构件是软件系统可替换的、物理的组成部分,它封装了实现体(实现某个职能),并提供一组接口的实现方法

    为了将不同软件生产商在不同软硬件平台上开发的构件组装成一个应用系统,必须解决异构平台的各构件间的互操作问题,目前已出现一些支持互操作的构件标准,3个主要流派为:

    1. OMG 的 CORBA(Common Object Request Broker Architecture,公共对象请求代理);

    2. Microsoft 的 COM(Component Object Model,构件对象模型)和DCOM(Distributed Component Object Model,分布式构件对象模型);

    3. Sun 的 EJB(Enterprise JavaBean,企业JavaBean)

软件体系结构

内容介绍

软件体系结构(Software architecture,软件架构)为软件系统提供了一个结构、行为和属性的高级抽象,有构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。

软件体系结构图在软件需求与软件设计之间架起一座桥梁,着重解决软件系统的结构和需求向实现平坦地度过的问题。

  • 软件体系结构建模

    软件体系结构建模的首要问题是如何表示软件体系结构,即如何对软件体系结构建模。根据建模的侧重点不同,可以将软件体系结构的模型分为5种,分别是结构模型、框架模型、动态模型、过程模型、功能模型。其中最常用的是结构模型和动态模型。

  • 软件体系结构风格

    典型的软件体系结构风格有:分层结构、客户/服务器

  • 设计模型

    MVC(Model-View-Controller,模型-视图-控制器)框架包括3个抽象类:View抽象类、Controller抽象类、Model抽象类。

信息系统项目管理师考点二之系统开发基础相关推荐

  1. 信息系统项目管理师考点之错题知识汇总

    信息系统项目管理师考点之错题知识汇总 理论知识点 计算公式 强制记忆 1. 成本控制的主要内容 2. 如何保障项目顺利进行(P215) 3. 成本估算方法(P218) 4. 进度滞后可能原因有哪些(P ...

  2. 软考系统架构师、信息系统项目管理师、系统分析师、系统规划与管理师和网络规划师资料大汇总

    公众号此文章地址:https://mp.weixin.qq.com/s/ojzMFODodAnKkhNSmLg1kg 前言 在软考交流群的几天,很多准备2021年软考的同学已经开始准备整理复习资料了. ...

  3. 信息系统项目管理师之二决策树分析

    名称:决策树分析.EMV(期望货币值) 定义:它利用了概率论的原理,并且利用一种树形图作为分析工具.其基本原理是用决策点代表决策问题,用方案分枝代表可供选择的方案,用概率分枝代表方案可能出现的各种结果 ...

  4. 软考高级-系统架构师-第四章系统开发基础知识

    本篇博文目录: 一.软件开发方法 1.软件开发生命周期 (1) 软件定义 (2) 软件开发 (3) 软件运行与维护 2.软件开发模型 3.敏捷方法 (1) 敏捷方法的特点 (2) 敏捷方法核心思想 ( ...

  5. 深圳软考高级报信息系统项目管理师,这样备考更高通过率!

    深圳软考高级报信息系统项目管理师,这样备考更高通过率! 软考高级资格考试项目有信息系统项目管理师.系统分析师.系统架构设计师.网络规划设计师.系统规划与管理师.考试科目包含综合知识.案例分析和论文3个 ...

  6. 信息系统项目管理师考试大纲(组织整理)

    信息系统项目管理师考试大纲(组织整理)   信息系统项目管理师考试大纲 一.考试说明 1.考试要求: (1)掌握信息系统知识: (2)掌握信息系统项目管理知识和方法: (3)掌握大型.复杂项目管理和多 ...

  7. 零基础考信息系统项目管理师要怎么准备?

    摘要:零基础考信息系统项目管理师能一次考过吗?怎么才能高效备考息系统项目管理师. 在备考信息系统项目管理师,大多数人都是零基础培训,信息系统项目管理师本身报考无门槛,所以不拼学历,但拼学习方法和技巧. ...

  8. 内蒙古计算机四级网络工程师报名时间,2021内蒙古软考报名-信息系统项目管理师报名-系统集成项目管理工程师报名-报名简章-报名通知...

    2021年上半年计算机技术与软件专业技术资格(水平)考试报名通知 一.考试报名 考试采取网上报名和网上缴费的方式进行.报考人员可直接登录全国计算机技术与软件专业技术资格(水平)考试网上平台(https ...

  9. 一次通过国家软考信息系统项目管理师的心得体会

    2009年7月20日工业和信息化部教育与考试中心(全国软考办)公布了2009年上半年计算机技术与软件专业技术资格(水平)考试各科目成绩的合格标准均为45分,很幸运自己能一次通过了信息系统项目管理师(高 ...

最新文章

  1. 浏览器控制台执行代码_JavaScript 和 浏览器那些事
  2. java基础----String、StringBuffer、StringBuilder
  3. MHA选择主库源码解析
  4. Unity3D笔记十 游戏元素
  5. 数学 - 线性代数导论 - #10 线性相关性、向量空间的基和维数
  6. php 三种传递函数,php – 是否可以将传递函数传递给包含的文件?
  7. 9.6 shell脚本应用3
  8. 蓝桥每日真题之时间显示
  9. java.lang.Runtime 运行时类 执行 dos 、cmd 命令、VBS 脚本
  10. 隐马尔科夫模型HMM学习最佳范例
  11. python字典统计排序1_python笔记17-字典如何按value排序
  12. AD09 pcb绘制技巧笔记
  13. 达梦数据库学习之备份还原
  14. 微信公众号推送模板消息,推送个人消息,给指定的人发送模板消息
  15. 优秀程序设计的Kiss原则(keep it simple,stupid)
  16. 最新麦子学院嵌入式开发系列培训教程
  17. codewars练习(javascript)-2021/1/19
  18. VirtualBox 安装Android on X86
  19. 聊聊Benchmark测试【转载】
  20. 【微信测试号实战——01】注册一个属于你自己的微信测试号

热门文章

  1. 超级好用的k8s安装工具-kuboard
  2. 数据结构--链式存储结构
  3. 新手入门WPF之DataGrid控件(一)
  4. QQ邮件列表:自动定时发送最新文章到订阅者的邮箱
  5. B+树和LSM树对比
  6. Ubuntu16.04执行sudo apt-get update时出现其他软件更新错误
  7. Win XP系统文件损坏/丢失 修复方法
  8. JS执行机制、同步和异步、宏观任务和微观任务
  9. 计算机中agp显卡的原理,电脑安装agp显卡的具体方法【图文】
  10. jsjq来封装一个图片文字合成图案的方法