作品发布     邀请码    设为首页  收藏 

当前位置:文章菜鸟基础 → 文章内容 >> 软件工程详解 (1)


软件工程详解 (1)

更新时间:2013-9-14 0:25:22   作者:华中帝国整理  来源:华中帝国
一.常用的分析工具: 测试工具:ATTOL UniTest、C++ Test、MTE、CodeTest; 覆盖率:ATTOL Coverage、PureCoverage、TrueCoverage; 内存检测:Boundschecker、PURIFY; 静态分析(结构) ...

    一.常用的分析工具:

    测试工具:ATTOL UniTest、C++ Test、MTE、CodeTest;

    覆盖率:ATTOL Coverage、PureCoverage、TrueCoverage;

    内存检测:Boundschecker、PURIFY;

    静态分析(结构):Mccable、Logiscope、Hindsight;

    静态分析(语法):PC-lint、CodeCHK、CheckMate;

    WEB压力测试:Web Express;

    设计工具:UML、Rose、Visio、PowerDesigner;

    编程工具:SourceInsight;

    版本控制:VSS、Beyond Company

    二.软件工程文档和方法:

    (一)传统软件工程(瀑布模型)

    1.问题定义

    讨论要解决的问题,做一份书面报告即可。

    2.可行性研究

    研究问题的范围,探索这个问题是否值得去研究。

    需要做的主要工作有:

    a. 导出问题定义阶段的高层逻辑模型(通常用数据流图表示[1]),物理系统也可以用系统流程图表示),如有需要须初步定义一些数据字典[2];

    b. 并且做成本/效益分析。

    3.需求分析

    确定目标系统必须具备哪些功能。必须准确完整的提出系统逻辑模型。

    需要做的主要工作有:

    a. 划分出系统必须完成的所有功能;

    这部分包含需要将功能用文字表达出来,可用层次方框图和Warnier图。在描述模型之间的关系时,可用ER模型来表示,再用范式来消除冗余。

    b. 根据以上结果导出系统详细的逻辑模型可用数据流图、数据字典和主要处理算法描述(这个主要处理算法可用IPO图来画)

    4.总体设计(概要设计)

    划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等。设计软件的总体结构,确定系统中每个程序由哪些模块组成,以及这些模块相互间的关系。

    需要做的主要工作有:

    a. 功能分解;

    这部分工作含结构设计(主要是模块的划分,可用层次图或结构图描述,可用数据流图来分析)和过程设计(每个模块的处理过程,可用IPO图)

    b. 如有数据库,则需进行数据库设计和优化。(推荐使用PowerDesigner)

    c. 制订测试计划

    5.详细设计

    将每个模块中的处理过程细化。

    需要做的主要工作有:

    a. 描述模块中处理过程;

    可用程序流程图、盒图、PAD图、判定表、判定图,或者用伪代码来表示(可用Visio来作图),可描述其中的复杂度。

    6.编码与单元测试

    编码(略)。

    测试:黑盒测试——功能测试;白盒测试——结构测试;

    单元测试即模块测试,在这个测试步骤中所发现的往往是编码和详细设计的错误。

    需要做的主要工作有:

    a.编写测试案例文档

    7.综合测试

    编写测试案例和文档

    8.软件维护

    (二) 面向对象的方法

    1.概念和摘要

    瀑布式生命周期的缺点表现在三个方面:<1> 后期的变化、迭代、改动困难 <2> 不支持重用 <3> 没有一个联系各个阶段的统一模型。

    使用面向对象方法学开发软件时,工作重点应该放在生命周期中的分析阶段。通常需要建立三种形式的模型,分别时描述系统数据结构的对象模型,描述系统控制结构的动态模型和描述系统功能的功能模型,所以核心是建立对象模型——面向对象的建模(当前常用的建模语言是UML)。

    在面向对象分析过程(OOA)中,构造出完全独立于实现的应用域模型(需求分析);在面向对象设计过程(OOD)中,把求解域的结构逐渐加入到模型中(概要设计和详细设计);在实现阶段,把应用域和求解域的结构都编成程序代码并进行严格的测试验证(编码测试)。测试一个OO系统是另一个需要进一步研究的课题。发布一个稳定的原型需要不同与以往控制结构化开发的产品的配置管理。

    为改善面向对象开发的可管理性,玻姆(Boehm,1988)提出了一个结合了宏观和微观视角(macro & microview)的螺旋开发模型。宏观包括3个阶段:1分析---发现和识别对象;2 设计---发明和设计对象;3 实施---创建和实现对象。每个宏观阶段都包含一些微观迭代活动。

    无论何种复杂程度的工程项目,设计都是从建模开始的,设计者通过创建模型和设计蓝图来描述系统的结构。(Rational Rose)

    2.设计的三层结构

    客户机/服务器体系结构的广泛使用预示了系统复杂化的发展趋势,为了解决这一问题,与之相应的三层结构方案(three-tiered)越来越得到了广泛的应用。

    传统的两层结构不是“胖客户机”就是“胖服务器”,胖客户机结构将事务处理原则在用户端处理,胖服务器则将之与集成在数据库中,大量的数据流动为维护和编程带来了极大的困难,而且,其中包含的事务处理原则不能与其它应用共享。

    三层结构方案是指由用户接口层、事务处理原则层和数据层的应

[1] [2]

责任编辑:华中帝国        



本文引用网址: 

软件工程详解 (1)的相关文章
发表评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码