信息系统概述

信息系统的生命周期

软件工程学科的知识(软件专业技术知识)(1)

软件工程学科的知识(软件专业技术知识)(2)

四阶段划分法

软件工程学科的知识(软件专业技术知识)(3)

五阶段划分法

系统规划

  1. 确定信息系统的发展战略,对建设新系统的需求做出分析和预测,同时考虑建设新系统所受的各种约束,研究建设新系统的必要性和可能性。
  2. 给出拟建系统的备选方案,写出可行性研究报告。
  3. 可行性研究报告审议通过后,将新系统建设方案及实施计划编写成系统设计任务书。

系统分析

系统分析阶段的任务是根据系统设计任务书所确定的范围,对现行系统进行详细调查,描述线性系统的业务流程,指出现行系统的局限和不足之处,确定新系统的基本目标和逻辑功能要求,提出新系统的逻辑模型。系统分析阶段的工作成果体现在系统说明书中,这是系统建设的必备文件。

系统设计

  1. 确定信息系统的发展战略,对建设新系统的需求做出分析和预测,同时考虑建设新系统所受的各种约束,研究建设新系统的必要性和可能性。
  2. 给出拟建系统的备选方案,写出可行性研究报告。
  3. 可行性研究报告审议通过后,将新系统建设方案及实施计划编写成系统设计任务书。

系统实施

系统实施阶段是将设计的系统付诸实施的阶段。这一阶段的任务包括计算机等设备的购置、安装和调试、程序的编写和调试、人员培训、数据文件转换、系统调试与转换等。这个阶段的特点是几个互相联系互相制约的任务同时展开。必须精心安排、合理组织。

系统运行和维护

系统投入运行后,需要经常进行维护和评价,记录系统运行的情况,根据一定的规则对系统进行必要的修改,评价系统的工作质量和经济效益。

软件工程学科的知识(软件专业技术知识)(4)

生命周期模型与开发方法

结构化方法

软件工程学科的知识(软件专业技术知识)(5)

结构化开发方法对应的瀑布模型

软件工程学科的知识(软件专业技术知识)(6)

软件工程学科的知识(软件专业技术知识)(7)

原型法

( 1 )演化式原型:原型的构造从目标系统的部分基本需求出发,通过修改和完善功能的过程逐渐演化成最终的目标系统。

( 2 )抛弃式原型:在真正捕获用户的需求后就放弃不用的原型。

特点:① 缩短开发周期、成本和风险降低、速度加快,综合开发效益高。 ② 用户参与增加了满意度,提高了系统开发的成功率。

缺点:①开发环境高;②管理水平高

原型法对应原型模型

软件工程学科的知识(软件专业技术知识)(8)

原型化模型是为弥补瀑布模型的不足而产生的。

原型化模型减少了瀑布模型中因为软件需求不明确而给开发工作带来的风险,因为在原型基础上的沟通更为直观,也为需求分析和定义,提供了新的方法。

对于复杂的大型软件,开发一个原型往往达不到要求,为减少开发风险,在瀑布模型和原型化模型的基础上的演进,出现了螺旋模型和以及大最使用的 RUP 。

面向对象方法

软件工程学科的知识(软件专业技术知识)(9)

面向对象开发方法对应喷泉模型

喷泉模型( Fountain Model )是一种以用户需求为动力,以对象为驱动的模型。该模型认为软件开发过程是自下而上的,周期中各阶段是相互重叠和多次反复的,就像水喷上去又可以落下来,类似一个喷泉。

喷泉棋型没有特定阶段,各阶段可同步开发。喷泉棋型适用面向对象的软件开发方法。该模型给出了面向对象软件开发的框架,描述面向对象开发的两个主要特点:集成与测试阶段。

软件工程学科的知识(软件专业技术知识)(10)

软件工程学科的知识(软件专业技术知识)(11)

面向服务方法

迭代模型

迭代模型的生命周期四个阶段:初始、细化、构造、移交,可进一步描述为周期( Cycle )、阶段 ( Phase )、迭代( lteration )。

核心工作流从技术角度描述迭代模型的静态组成部分,包括:业务建模、需求获取、分析与设计、实现、测试、部署,如图所示。

软件工程学科的知识(软件专业技术知识)(12)

RUP模型

软件统一过程( RUP , Rational Unified Process )是一种“过程方法" ,它就是迭代模型的一种。依据时间顺序, RUP 生命周期分为四个阶段:

*这 4 个阶段的顺序执行就形成了一个周期。

*每个阶段,从上到下完成一次迭代。

*根据需要,在一个阶段内部,可以完成一次到多次的迭代。

螺旋模型

将原型(原型法)实现的迭代特征线性顺序瀑布法)模型中控制的和系统化的方面结合起来。使得软件的增量版本的快速开发成为可能。

对于新近开发,需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更。

螺旋模型强调了风险分析,特别适用于庞大而复杂的、高风险的系统。

软件工程学科的知识(软件专业技术知识)(13)

V模型

V 模型的特点:

敏捷开发

软件工程-需求分析

软件工程

软件工程学科的知识(软件专业技术知识)(14)

完整的需求工程如下:

质量功能部署( Quality Function Doployment , QFD )是一种将用户要求转化成软件需求的技术,其目的是最大限度地提升软件工程过程中用户的满意度。为了达到这个目标, QFD 将软件需求分为三类,分别是常规需求、期望需求和意外需求。

软件需求说明书

软件需求说明书( SRS , Software Requirement Specifications )的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解,使之成为整个开发工作的基础。软件需求说明书是软件开发、软件验收和软件管理的依据。

软件需求说明书中指出:客户需求就是项目要开发的是什么软件产品,该产品是干什么的。

需求分类

(软件需求可以分为功能需求、性能需求、外部接口需求(用户接口、硬件接口、软件接口、通信接口)、设计约束(标准、硬件限制)和质量属性(可移植性、正确性、可维护性及安全性)等几类。

软件工程中应用的几种图

系统流程图、数据流图、数据字典、实体联系图、状态转换图、层次方框图、 Warnier 图、 IPO 图、层次图、 HIPO 图、结构图、程序流程图、盒图、 PAO 图、判定表、判定树、 Jackson 图、流图、甘特图、工程网络图

软件工程学科的知识(软件专业技术知识)(15)

软件工程学科的知识(软件专业技术知识)(16)

ER 图,即实体关系图,专用于数据库建模,即对于构建的数据库画出模型图。是古老的有生命力的描述方法。

DFD,数据流图,用于描述数据在系统中的流动方向及变化,便于开发人员把握数据的来龙去脉。

软件工程-架构设计

软件架构

软件架构:软件总是有架构的。将软件系统划分成多个模块,明确各模块之间的相互作用,组合起来实现系统的全部特性,就是系统架构。软件架构属于高层设计,主要描述软件的结构和组织,即描述软件系统的草图。需求分配是软件架构设计师要完成的主要任务。软件架构设计和软件详细设计同属于软件设计不同阶段。

软件工程学科的知识(软件专业技术知识)(17)

软件架构模式

  1. 管道/过滤器模式:其典型应用包括批处理系统。
  2. 面向对象模式:其典型应用是基于组件的软件开发 CBD。
  3. 事件驱动模式:其典型应用包括各种图形界面应用。
  4. 分层模式:其典型应用是分层通信协议,如ISO / OSI 的七层网络模型。
  5. 客户/服务器模式( Client / Server , C / S ) :为了解决 C/S 模式中客户端的问题,发展形成了浏览器/服务器 B / S 模式;为了解决 C / S 模式中服务器端的问题,发展形成了三层(多层) C / S 模式,即多层应用架构。

软件工程学科的知识(软件专业技术知识)(18)

客户机/服务器(C/S)模式

C/S 模式由服务端、客户端组成,其中服务端负责数据处理,客户端负责用户交互。 C / S 模式强于数据操作和事务处理,但部署、维护成本高。

浏览器/服务器(B/S)模式

C 是 C/S 结构的改进结构,该方式的客户端是浏览器,解决了 C/S 模式中客户机负载过重的问题。 B/S 模式的主要事务逻辑在服务器端实现。对比 C/S 架构的信息系统,基于 B/S 架构更加容易部署和升级维护。

C/S 模式由服务端、客户端组成,其中服务端负责数据处理,客户端负责用户交互。 C/S 模式强于数据操作和事务处理,但部署、维护成本高。

通用架构风格的分类

  1. 数据流风格:批处理序列;管道/过滤器。
  2. 调用/返回风格:主程序/子程序;面向对象风格;层次结构。
  3. 独立构件风格:进程通信;事件系统。
  4. 虚拟机风格:解释器;基于规则的系统。
  5. 仓库风格:数据库系统;超文本系统;黑板系统。
软件工程-面向对象系统分析设计

OO, Object Oriented ,面向对象

OOA , Object Oriented Analysis ,面向对象的分析

OOD , Object Oriented Design ,面向对象的设计

OOP , Object Oiented Programming ,面向对象的编程

面向对象

面向对象(Obiect Oriented)是软件开发方法。面向对象的思想已经涉及到软件开发的各个方面,并且扩展到多个领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。

面向对象基本概念

① 对象。对象是系统描述客观事物的封装,是构建系统的基本要素。对象由属性和操作组成,属性表示对象的数据特征,操作则用于改变对象的状态。对象可以是实物,也可以是抽象实物,如规则、事件。

② 类。类是对一组有相同数据和相同操作的对象的定义,一个类所包含的方法和数据描述是一组对象的共同属性和行为。

类是对象的抽象,对象是类的实例。

对象是类的实例,类是对象的模板。

如果将对象比作房子,类就是房子的设计图纸。

③ 消息和方法。对象之间进行通信使用消息来实现。类中操作的实现过程叫做方法。

④ 软件复用。用已有软件构造新的软件,以缩减软件开发和维护的费用,称为软件复用。

⑤ 抽象。针对特定实例抽取共同特征的过程。

⑥ 接口。操作的规范说明,说明操作应该做什么( What )。

面向对象的三大主要特征

  1. 继承性。继承性用于子类共享父类的数据结构和方法。‘,容器是一个构件,构件不一定是容器;一个容器可以包含一个或多个构件,一个构件只能包含在一个容器中”。根据上述描述,容器类和构件类之间存在继承关系。
  2. 多态性。多态性是指相同的操作或函数、过程可作用于多种不同类型的对象上并获得不同的结果。
  3. 封装。封装是一种信息隐蔽技术,是指把数据及操作数据的相关方法组合在同一单元中,使我们可以把类作为软件复用中的基本单元,提高内聚度,降低祸合度。

原文链接:cyz

,