【软件工程导论】 第一章 软件工程学概述

引言:文章是按照markdown格式写的,可直接复制到markdown上进行查看

#第一章 软件工程学概述#
------------------
###1.1 软件危机###

    软件危机的介绍:软件危机是指在计算机开发和维护过程中所遇到的一系列严重的问题
    
    主要包含以下两个问题:
            1.如何开发软件,以满足对软件日益增长的需求
            2.如何维护数量不断膨胀的已有软件
    
    软件危机的典型表现:
            1.对软件开发成本和进度的估计常常不准确
            2.用户对“已完成的”软件系统不满意的现象经常发生
            3.软件产品的质量往往靠不住
            4.软件常常是不可维护的
            5.软件通常没有适当的文档资料
            6.软件成本在计算机系统总成本中所占的比例逐年上升
            7.软件开发生产的速率,跟不上计算机应用迅速普及深入的趋势

    产生软件危机的原因
        一方面与软件本身的特点有关,另一方面也与软件开发与维护的方法不正确。

    消除软件危机的途径
        1.对计算机软件有一个正确的认识。必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好,管理严格,各类人员协同配合,共同完成的工程项目。
        
        2.应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在计算机系统早期发展阶段行程的一些错误概念和做法。
        
        3.应该开发和使用更好的软件工具。
        
        4.综上,既要有技术措施,又要有必要的组织管理措施。

###1.2 软件工程###
    

    软件工程的介绍:软件工程是指导计算机软件开发和维护的一门工程学科。
    
    软件工程的出现原因:软件工程是为了解决软件危机而出现的

    软件工程的本质特性

        (1)软件工程关注于大型程序的构造

        (2)软件工程的中心课题是控制复杂性

        (3)软件经常变化
    
        (4)开发软件的效率非常重要
    
        (5)和谐地合作是开发软件的关键
    
        (6)软件必须有效地支持它的用户
        
        (7)软件工程领域中通常由具有一种文化背景的人代替具有另一种文化背景的人创造产品。

     软件工程的基本原理

        1.用分阶段的生命周期计划严格管理
        
        2.坚持进行阶段评审
        
        3.实行严格的产品控制
        
        4.采用现代程序技术
        
        5.结果应能清楚地审查
        
        6.开发小组人员应该少而精
        
        7.承认不断改进软件工程实践的必要性

    
        二、软件工程三要素
        软件工程是以提高软件质量和生产率为目标,由过程,方法,工具,三个要素组成。

      


        1、软件工程方法:解决软件开发“如何做”的问题。
        2、软件工程过程:管理和控制产品质量的关键。
        3、软件工程工具:提供软件支撑环境,辅助软件开发过程的完成。
        4、软件工程中的质量是最重要的,它是软件工程的目标。

        软件工程方法学
        1.传统方法学
        
            传统方法学也称为生命周期方法学或结构化范型。它采用结构化技术(结构化分析,结构化设计,结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。

        2.面向对象方法学
        
            面向对象方法把数据和行为看成是同等重要的,它是一种以数据为主线,把数据和对数据操作紧密地结合起来的方法。
        
            它的出发点和基本原则是尽量模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界,解决问题的方法与过程,从而使描述问题的问题控件与实现问题的解控件在结构上尽可能的一致。

###1.3软件生命周期###
    

    软件生命周期的概念:
        
        软件生命周期由软件定义,软件开发和运行维护(也称运行维护)3个时期组成,每个时期又进一步划分为若干个阶段。

    每个时期的任务

        1.软件定义时期的任务:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略以及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。

        2.开发时期的任务:具体设计和实现在前一个时期定义的软件。

        3.维护时期的任务:使软件持久地满足用户的需要。

###1.4软件过程###

        1.软件过程的定义
        
            软件过程描述为了开发出客户需要的软件,什么人,在什么时候,做什么事以及怎样做这些事以实现某一个特定的具体目标。
        
        2.生命周期模型
        
            生命周期模型简洁地描述软件过程。生命周期软件模型规定了把生命周期划分成那些阶段以及各个阶段的执行顺序。
        
        3.常见的生命周期模型
        
        (1)瀑布模型 (2)快速还原模型(3)增量模型 (4)快速增量模型 (4)螺旋模型 (5)喷泉模型 
        
        4.Rational统一过程
        
            Rational统一过程是由Rational软件公司推出的一种完整而且完美的软件开发过程。
        
        5.敏捷过程与极限编程
        
            敏捷过程主要是为了使软件开发团队具有高效工作和快速响应变化的能力。
        
            极限编程是把好的开发实践运用到极致。
        
        6.微软过程
        
            微软过程是微软公司自己独特的软件开发过程。
        
        7.常见三种周期模型的优点
                    
            瀑布模型的优点:
        
                1.可强迫开发人员采用规范的方法(例如:结构化技术)
        
                2.严格地规定了每个阶段必须提交的文档;
                
                3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证
        
            快速原形模型的优点:
                
                1.有助于保证用户的真实需要得到满足

            增量模型的优点:
                
                1.能在较短的时间内向用户提交可完成部分工作的产品
                
                2.逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少
                一个全新的软件可能给客户组织带来的冲击。
                
                3.软件的可维护性明显好于封闭结构的软件

猜你喜欢

转载自blog.csdn.net/m0_37768843/article/details/85727199