第5章 软件工程基础知识

本文详细探讨了软件工程的关键组成部分,包括瀑布、原型、螺旋、敏捷等开发模型,以及需求获取、面向对象分析与设计、测试方法和净室/基于构件的软件工程。涵盖了从需求到设计,再到测试和工程实践的全过程。
摘要由CSDN通过智能技术生成

5.1 软件工程

5.1.1 定义

P:软件规格说明

D:软件开发

C:软件确认

A:软件演化

 5.1.2 软件过程模型

        1、瀑布模型

瀑布模型:

        特点:前一个阶段的输出结果,是后一个阶段的输入

        缺点:需求明确、严格串行化

 2、原型模型

抛弃式原型和演化式模型

        3、螺旋模型

快速原型的基础上扩展,风险分析,4个阶段

(1)目标设定。为该项目进行需求分析,定义和确定这一个阶段的专门目标,指定对过程
和产品的约束,并且制订详细的管理计划。
(2)风险分析。对可选方案进行风险识别和详细分析,制定解决办法,采取有效措施避免
这些风险。
(3)开发和有效性验证。风险评估后,可以为系统选择开发模型,并且进行原型开发,即
开发软件产品。
(4)评审。对项目进行评审,以确定是否需要进入螺旋线的下一次回路,如果决定继续,
就要制订下一阶段计划

          5.1.3、敏捷模型

敏捷核心思想:

        1、适应性,而非预设性

        2、以人为本,而非以过程为本

        3、迭代增量式开发

       1、极限编程 XP

        2、水晶系列 Crystal

        3、Scrumn

                 5大会议:产品代表列表、Sprint计划会议、每日Scrumn、评审会、回顾会

        4、特征驱动 FDD

                6种关键的项目角色:项目经理、首席架构设计师、开发经理、主程序员、程
        序员和领域专家。
                FDD有5个核心过程:开发整体对象模型、构造特征列表、计划特征开发、

        特征设计和特征构建

          5.1.4、统一过程模型 RUP

9个核心核心工作流

        业务建模、需求、分析与设计、实现、测试、部署、配置与变更管理、项目管理、环境

4个阶段

        ● 初始 (inception) 阶段:定义最终产品视图和业务模型,并确定系统范围。
        ● 细化 (elaboration) 阶段:设计及确定系统的体系结构,制订工作计划及资源要求。
        ● 构造 (construction) 阶段:构造产品并继续演进需求、体系结构、计划直至产品提交。
        ● 移交 (transition) 阶段:把产品提交给用户使用。

3个特点

        用例驱动、体系结构为中心、迭代与增量

4+1视图

  • 分析人员和测试人员关心的是系统的行为,会侧重于用例视图;
  • 用户关心的是系统的功能,会侧重于逻辑视图;
  • 程序员关心的是系统的配置、装配等问题,会侧重于实现视图;
  • 系统集成人员关心的是系统的性能、可伸缩性、吞吐率等问题,会侧重于进程视图;
  • 系统工程师关心的是系统的发布、安装、拓扑结构等问题,会侧重于部署视图

        5.1.5、软件成熟度模型

5个等级

1)Level 1 初始级
处于成熟度级别1级时,过程通常是随意且混乱的。这些组织的成功依赖于组织内人员的
能力与英雄主义。成熟度1级的组织也常常能产出能用的产品与服务,但它们经常超出在计划
中记录的预算与成本。
2)Level2已管理级    项目管理(成本、进度、质量)
在该等级下,意味着组织要确保策划、文档化、执行、监督和控制项目级的过程,并且需
要为过程建立明确的目标,并能实现成本、进度和质量目标等。
3)Level3已定义级        企业管理(企业标准化、行业标准化)
在这一等级,企业能够根据自身的特殊情况定义适合自己企业和项目的标准流程,将这套
管理体系与流程予以制度化,同时企业开始进行项目积累,企业资产的收集。
4)Level 4量化管理级  
在成熟度4级,组织建立了产品质量、服务质量以及过程性能的定量目标。成熟度级别3
级与4级的关键区别在于对过程性能的可预测。
5)Level 5优化级
在优化级水平上,企业的项目管理达到了最高的境界。成熟度级别5级关注于通过增量式
的与创新式的过程与技术改进,不断地改进过程性能。处于成熟度5级时,组织使用从多个项
目收集来的数据对整体的组织级绩效进行关注。

        5.2、需求工程

 3个层次

        业务需求:组织高层次目标

        用户需求:用户对软件产品的期望

        功能需求:开发人员必须实现的功能

5个阶段

        需求获取:用户面谈、需求联合会议、问卷调查、现场观察、原型、头脑风暴

        需求分析

        需求规格说明书

        需求确认与验证

        需求管理:变更控制、版本控制、需求跟踪、需求状态跟踪

                       需求跟踪(正向跟踪、反向跟踪):定义其他需求的连接链

                       变更控制过程:问题分析和变更描述、变更分析和成本计算、变更实现

         5.3 系统分析与设计(结构化)

                1、结构化分析

        数据流程DFD:以图形方式,表示业务系统中的数据处理过程和数据流,功能模型

               数据流、处理、数据存储、外部实体

        数据字典:元数据目录,所有数据定义的集合,数据进行定义和描述,数据模型

                2、结构化设计 

 概要设计的主要任务是确定软件系统的结构,对系统进行模块划分,确定每个模块的功能、接口和模块之间的调用关系;

详细设计的主要任务是为每个模块设计实现的细节。

         程序流程图又称为程序框图,是使用最广泛然的一种描述程序逻辑结构的工具。它用方框表示一个处理步骤,菱形表示一个逻辑条件,箭头表示控制流向。其优点是:结构清晰,易于理解,易于修改。缺点是:只能描述执行过程而不能描述有关的数据。
        N S 流程图,也称为盒图,是一种强制使用结构化构造的图示工具,也称为方框图。其具有以下特点:功能域明确、不可能任意转移控制、很容易确定局部和全局数据的作用域、很容易表示嵌套关系及模板的层次关系。
        PAD 图是一种改进的图形描述方式,可以用来取代程序流程图,相比程序流程图更直观,结构更清晰。最大的优点是能够反映和描述自顶向下的历史和过程。

                3、数据库设计

 数据库设计的内容包括:需求分析、概念结构设计(ER图:视图-联系图)、逻辑结构设计、物理结构设计、数据库的实施和数据库的运行和维护

 5.4 面向对象

        1、面向对象分析 OOA

OOA大致上遵循如下5个基本步骤
(1)确定对象和类。这里所说的对象是对数据及其处理方式的抽象,它反映了系统保存和
处理现实世界中某些事物的信息的能力。类是多个对象的共同属性和方法集合的描述,它包括
如何在一个类中建立一个新对象的描述。
(2)确定结构。结构是指问题域的复杂性和连接关系。类成员结构反映了泛化-特化关系,
整体-部分结构反映整体和局部之间的关系。
(3)确定主题。主题是指事物的总体概貌和总体分析模型。
(4)确定属性。属性就是数据元素,可用来描述对象或分类结构的实例,可在图中给出,
并在对象的存储中指定。
(5)确定方法。方法是在收到消息后必须进行的一些处理方法:方法要在图中定义,并在
对象的存储中指定。对于每个对象和结构来说,那些用来增加、修改、删除和选择的方法本身
都是隐含的(虽然它们是要在对象的存储中定义的,但并不在图上给出),而有些则是显示的

        2、面向对象设计 OOD

在OOD 中,类可以分为3种类型:实体类、控制类和边界类。
实体类映射需求中的每个实体,是指实体类保存需要存储在永久存储体中的信息
控制类是用于控制用例工作的类,一般是由动宾结构的短语(“动词+名词”或“名词+动词”)转化来的名词。
控制类将用例的特有行为进行封装,控制对象的行为与特定用例的实现密切相关,当系统
执行用例的时候,就产生了一个控制对象,控制对象经常在其对应的用例执行完毕后消亡。通常情况下,控制类没有属性,但一定有方法。
边界类用于封装在用例内、外流动的信息或数据流。边界类位于系统与外界的交接处,包
括所有窗体、报表、打印机和扫描仪等硬件的接口,以及与其他系统的接口
 

        3、面向对象编程 OOP

封装、继承、多态

5.5 软件测试

         测试方法:

静态测试、动态测试

黑盒测试。黑盒测试将被测程序看成是一个黑盒,工作人员在不考虑任何程序内部结
构和特性的条件下,根据需求规格说明书设计测试实例,并检查程序的功能是否能够按照规范说明准确无误的运行。其主要是对软件界面和软件功能进行测试。对于黑盒测试行为必须加以量化才能够有效的保证软件的质量。
白盒测试。白盒测试主要是借助程序内部的逻辑和相关信息,通过检测内部动作是否
按照设计规格说明书的设定进行,检查每一条通路能否正常工作。白盒测试是从程序结构方面出发对测试用例进行设计。主要用于检查各个逻辑结构是否合理,对应的模块独立路径是否正常以及内部结构是否有效。常用的白盒测试法有控制流分析、数据流分析、路径分析、程序变异等。根据测试用例的覆盖程度,分为语句覆盖、判定覆盖、分支覆盖和路径覆盖等。
灰盒测试。灰盒测试介于黑盒与白盒测试之间。灰盒测试除了重视输出相对于输入的
正确性,也看重其内部的程序逻辑

测试阶段:

        单元测试、基础测试、系统测试、性能测试、验收测试(alpha测试、被他测试)

        AB测试、web测试、链接测试

5.6 净室工程

净室软件工程中应用的技术手段主要有以下4种。
1.统计过程控制下的增量式开发 (Incremental Development )
增量开发基于产品开发中受控迭代的工程原理——控制迭代。增量开发不是把整个开发过
程作为一个整体,而是将其划分为一系列较小的累积增量。小组成员在任何时刻只须把注意力集中于工作的一部分,而无须一次考虑所有的事情。
2.基于函数的规范与设计
盒子结构方法按照函数理论定义了3种抽象层次:行为视图、有限状态机视图和过程视图。
规范从一个外部行为视图(称为黑盒)开始,然后被转化为一个状态机视图(称为状态盒),最
后由一个过程视图(明盒)来实现。盒子结构是基于对象的,并支持软件工程的关键原则:信
息隐藏和实现分离。
3.正确性验证
正确性验证被认为是CSE的核心,正是由于采用了这一技术,净室项目的软件质量才有了
极大的提高。
4.统计测试 (Statistically Based Testing) 和软件认证
净室测试方法采用统计学的基本原理,即当总体太大时必须采取抽样的方法。

 5.7基于构件的软件工程 CBSE

CBSE特征:可组装、可部署、文档化、独立性、标准化

主要活动

        (1)系统需求概览;
        (2)识别候选构件; 
        (3)根据发现的构件修改需求;
        (4)体系结构设计;
        (5)构件定制与适配;
        (6)组装构件,创建系统。

组装方式:顺序、层次、叠加

  • 8
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值