新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 软件工程、需求工程、系统工程,UML、MDA、模型驱动开发,面向对象软件工程、面向目标软件成功、面向场景的设计、敏捷
    [返回] 计算机科学论坛计算机技术与应用『 软件工程论坛 』 → CMM4实践(第二章)---软件生命周期模型1 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 22580 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: CMM4实践(第二章)---软件生命周期模型1 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     admin 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      头衔:W3China站长
      等级:计算机硕士学位(管理员)
      文章:5255
      积分:18406
      门派:W3CHINA.ORG
      注册:2003/10/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给admin发送一个短消息 把admin加入好友 查看admin的个人资料 搜索admin在『 软件工程论坛 』 的所有贴子 点击这里发送电邮给admin  访问admin的主页 引用回复这个贴子 回复这个贴子 查看admin的博客楼主
    发贴心情 CMM4实践(第二章)---软件生命周期模型1

    ● CMM4实践(第二章)---软件生命周期模型1发信人: detian (呵呵), 信区: SoftEng
    标  题: CMM4实践(第二章)---软件生命周期模型1
    发信站: BBS 水木清华站 (Thu May  8 22:59:44 2003)

                           第二章  软件生命周期模型

      在上一章的叙述中我们曾用到了一个V模型的例子来说明需求跟踪矩阵。在这个例子中我
    们把软件的开发过程分成了这样几个阶段:需求规格阶段,概要设计阶段,详细设计阶段
    ,代码阶段,单元测试阶段,集成测试阶段,以及系统测试阶段。也就是说,在实际的开
    发过程中,我们要逐一完成每个阶段的工作,当完成最后一个阶段的工作后也就完成了整
    个软件项目。像这样组织软件开发过程的规则,就可以称为软件生命周期模型。一个定义
    良好的软件生命周期模型,可以很好的指导我们的开发工作,使漫长的开发工作易于控制
    。事实上,我们可以任意定义自己喜欢的软件生命周期模型。但是,如果生命周期模型定
    义不合理,却会制约我们的开发过程。软件开发人员在长期开发过程已经总结出了几种常
    用的软件生命周期模型,我们可以根据项目的特点来选择一个合适的模型,然后在此基础
    上再加以裁减。这些生命周期模型是:
    1)瀑布模型,
    2)快速原型模型,
    3)渐增模型,
    4)演进模型。
    下面我们重点阐述前3种常用的生命周期模型。

    2.1瀑布模型
      顾名思义,该模型就是像瀑布一样。这是一个最传统的生命周期模型,是一种顺序的模
    型,自顶向下把一个软件开发过程分为:系统定义、需求分析、设计、编码、测试和维护
    等阶段。在开发过程中这些阶段顺序进行,就像是一个飞流直下的瀑布,因此得名。该模
    型可以用下面的图形来表示。
            系统定义
              \|/
            需求分析
              \|/
             设计
              \|/
             编码
              \|/
             测试
              \|/
             维护
    有时,根据项目的特点,设计又可分为概要设计和详细设计。
      上图中各阶段所要完成的工作在一般的论述软件工程的书籍中都有描述,这里就不再细
    述。
      虽然上面的阶段是顺序进行的,但是这并不是限定我们的软件项目必须在完成了上个阶
    段的工作后才能进行下个阶段的工作。在实际的开发过程中,我们常常会遇到这样的情况
    :阶段反复和重叠。
      在前面的需求管理部分我们曾经阐述过需求变更管理。也就是说,在软件开发的某个阶
    段可能发生需求变更,而一旦软件需求发生变化,就势必会造成软件设计的改变,因此,
    如果该软件项目已经进行到了测试阶段,那么我们就必须回过头来重新进行需求分析、概
    要设计、详细设计和编码。像这种在后面的阶段又返回来做前面阶段工作的情形,就成为
    阶段反复。当然,也有可能因为开发人员前面的工作做得不够准确而导致阶段反复。阶段
    反复常常会造成进度延迟,但是,只要严格控制好每个阶段的输入和输出,我们还是可以
    有效的控制软件项目的开发过程。
      在实际的开发过程中我们还会遇到这种情况:如果一个软件项目规模较大,而且各功能
    模块相对独立,那么,我们就没有必要要求所有模块的进度都一致,也就是说,模块1可能
    很快就能完成概要设计和详细设计,而模块2由于太复杂概要设计可能就需要很长的时间。
    对于这种情况,只要控制好模块1各阶段的输入和输出,完全可以让模块1先行,直到完成
    或者必须停下来等待其他模块。像这种情况,一个软件项目的各模块可能处于不同的阶段
    ,就成为阶段重叠。出现这种情况,必须是某些模块比较独立,否则就不可能比其他模块
    先行。
      虽然阶段的重叠和反复是允许的,但是我们却不能允许这种情况随意发生。比如说,需
    求分析和设计可以重叠,但是如果需求分析和编码也重叠就很难说代码会写成什么样了;
    编码阶段可以因为需求变更回过头来进行需求分析和设计,但是如果已经进行系统测试了
    还在进行阶段反复,这就等于又开发一个新项目了。因此,为了更好的控制软件开发过程
    ,要尽量减少阶段重叠和反复,如果实在不可避免,应该对所有的变更进行严格控制,这
    样才能保证我们的开发过程陷入无序状态。
      另外,在该模型的基础上,还衍生出了强调测试活动的V模型。它把瀑布模型的测试阶段
    进行细分,并于前面的阶段进行对应。细分出来的这些阶段分别为:单元测试阶段、集成
    测试阶段和系统测试阶段。V模型的结构图如下。

         系统定义                           维护
    ----------\------------------------------/------------

             需求分析       .....       系统测试
                  \                      /
                概要设计    .....   集成测试
                     \               /
                   详细设计  ...  单元测试
                          \       /
                            编码

      与需求分析对应的是系统测试。因为需求分析的工作是分解用户的功能和性能需求并规
    格化,所以系统测试的工作主要就是测试这些功能和性能指标是否都在软件中正确实现。
    该测试把软件作为一个黑盒,针对每个需求规格组织各种输入并根据软件输出来判断该需
    求规格是否正确实现,因此系统测试属于黑盒测试。与概要设计对应的是集成测试。因为
    概要设计的工作主要是根据功能把大的系统进行模块分解,所以集成测试的工作主要是,
    把各模块逐步集成在一起,来测试数据是否能够在各模块间正确流动,以及各模块能否正
    确同步。因为这种测试依赖于软件的架构但又不关心每个函数的实现细节,所以该测试又
    常称为灰盒测试。与详细设计对应的是单元测试。它主要是详细设计中的每个功能单元(
    通常是函数或过程)进行逻辑覆盖测试,因此这种测试属于白盒测试。与从需求到设计、
    统测试,于是就形成了一个V字形的结构。
      与在瀑布模型中描述的一样,这些测试活动也是顺序进行的,并遵循一定的输入和输出
    规则(具体的测试在以后的章节中会详细描述),但是这些阶段也同样可以重叠和反复。

      瀑布模型的优点是清楚地标识出了软件开发的阶段。它采用自顶向下逐步求精的方式把
    整个开发过程分成不同的阶段,每个阶段的工作都很明确,因此便于控制开发过程。当所
    有的阶段都完成之后,该软件的开发过程也随之结束。
      瀑布模型的缺点正是它自身的顺序性所导致的。实际的开发过程中,在需求阶段很难把
    用户的需求完全明确下来,因此,当需求变更时将会导致阶段反复,而且都要重复需求、
    设计、编码、测试等过程。
      实际的开发过程中,用得较多的就是瀑布/V模型,只是可以根据实际需要进行阶段合并
    与裁减。

    --

    ※ 来源:·BBS 水木清华站 http://smth.org·[FROM: 211.149.97.15]                 

    索引页面|上一篇|下一篇


       收藏   分享  
    顶(0)
      




    ----------------------------------------------

    -----------------------------------------------

    第十二章第一节《用ROR创建面向资源的服务》
    第十二章第二节《用Restlet创建面向资源的服务》
    第三章《REST式服务有什么不同》
    InfoQ SOA首席编辑胡键评《RESTful Web Services中文版》
    [InfoQ文章]解答有关REST的十点疑惑

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/9/23 1:22:00
     
     xmzhy 帅哥哟,离线,有人找我吗?狮子座1978-8-18
      
      
      威望:5
      等级:计算机学士学位
      文章:385
      积分:2003
      门派:XML.ORG.CN
      注册:2003/10/22

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给xmzhy发送一个短消息 把xmzhy加入好友 查看xmzhy的个人资料 搜索xmzhy在『 软件工程论坛 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看xmzhy的博客2
    发贴心情 
    up
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/12/15 16:51:00
     
     imaha 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:2
      积分:62
      门派:XML.ORG.CN
      注册:2005/6/6

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给imaha发送一个短消息 把imaha加入好友 查看imaha的个人资料 搜索imaha在『 软件工程论坛 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看imaha的博客3
    发贴心情 
    继续贴哦?
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/6/6 8:40:00
     
     lywzd 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(C++考了100分!)
      文章:69
      积分:324
      门派:XML.ORG.CN
      注册:2005/10/31

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lywzd发送一个短消息 把lywzd加入好友 查看lywzd的个人资料 搜索lywzd在『 软件工程论坛 』 的所有贴子 点击这里发送电邮给lywzd 引用回复这个贴子 回复这个贴子 查看lywzd的博客4
    发贴心情 
    v字模型提的好,贴切,表现出来因果关系直观.
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/11/1 13:15:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 软件工程论坛 』 的所有贴子 点击这里发送电邮给Google AdSense 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/12/4 8:35:28

    本主题贴数4,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    2,888.672ms