软件工程学概论【软件工程总结】

1、软件危机是指计算机软件的开发和维护过程中所遇到的一系列严重的问题,软件危机的典型表现如下:

    1)对软件开发成本和进度的估计不准确。

    2)用户对产品不满意。

    3)产品的质量靠不住。

    4)软件不可维护。

    5)软件没有适当的文档资料。

    6)软件成本在计算机系统总成本中的作占比例逐年上升。

    7)软件产品“供不应求”。

2、软件危机产生的原因

    1)软件不同于硬件,缺乏“可见性”。

    2)软件规模庞大,其复杂性随着程序规模的增加呈指数上升。

扫描二维码关注公众号,回复: 2164348 查看本文章

    3)开发人员许多错误的开发观念,如对用户没有完整准确的认识就匆忙着手编写程序。

    4)轻视软件的维护。开发过程中,越晚发现bug,所涉及的面越多,修改的代价越高。

3、消除软件危机的途径:

    1)首先对软件有一个正确的认识:软件是程序、数据及相关文档的完整集合。

    2)其次,要有方法和工具,又要有组织管理措施,因此软件工程这一学科诞生了。

4、软件工程是指导计算机软件开发和维护的一门工程学科,有以下本质特征

    1)其关注于大型工程的构造。

    2)其中心课题是控制复杂性。

    3)软件经常发生变化

    4)非常关注开发效率。

    5)和谐合作是开发的关键。

    6)软件必须支持用户的工作。

    7)开发人员需要了解应用领域的相关知识。

5、软件工程方法学,包含三要素:方法、工具和过程。

    1)传统方法学(结构化泛型):从对问题抽象逻辑分析开始,一个阶段一个阶段地顺序进行开发。每一段结束之前都必须进行严格的技术审查和管理复审。

    2)面向对象方法学:适用于当软件规模庞大或对软件的需求模糊易变时。面向对象方法=对象+类+继承+用消息通信。

6、软件生命周期:

    1)问题定义:回答“要解决什么问题?”,明确工程目标、规模。

    2)可行性分析:探索问题是否值得去解,是否有可行的解决方法,是否效益大于投资。

    3)需求分析:用正式文档准确记录对目标系统的需求,称为规格说明书(specification)。

    4)总体设计:设计出几种可能的方案,至少设计出低成本、中等成本和高成本的3中方案,分析各自优缺点,权衡推荐一个最优方案。设计模块化程序,设计程序的体系结构。

    5)详细设计:具体化问题的解法,设计出程序的详细规格说明,设计每个模块,确定实现模块所需的算法和数据结构。

    6)编码和单元测试:程序员正确写出易理解、易维护的程序模块。

    7)综合测试:通过各种类型的测试(如集成、验收测试)使软件达到预定的要求。

    8)软件维护:通过各种必要的维护(改正性、适应性、完善性和预防性维护)使系统持久地满足用户的需要。

7、软件过程:规定开工作的步骤,以获得高质量软件所需的框架,使用软件过程模型来描述软件过程:

    1)瀑布模型:历史悠久,广为猿知。规范、文档驱动,但是产品可能不真正满足于用户。

    2)快速原型模型:克服瀑布模型,通过快速构建一个原型模型,让用户使用以收集意见,获得用户的真正需求。

    3)增量模型:可在开发早期阶段使投资获得明显回报和轻易维护,但是软件需要有开放的结构,是困难的。

    4)螺旋模型:其风险驱动,适用于内部开发的大型软件项目,但是需要开发人员具有风险分析和排除风险的经验和知识。

    5)喷泉模型:体现了面向对象软件开发过程无缝迭代的特性。

    6)Rational统一过程(RUP):提供了理想开发环境下软件过程的一种完善而且完美的模式,可以作为开发的良好开端。

    7)以极限编程(XP)为代表的敏捷过程:具有对变化和不确定性的更快速、更敏捷的反应特性,能够较好地适应商业竞争环境下对小型项目提出的有限资源和有限开发时间的约束,可以作为对RUP的排除补充,但是不如RUP全面和完善。

    8)微软过程:综合了RUP和敏捷过程的许多优点,但是也有不足,如对方法、工具和产品的论述不如RUP和敏捷过程全面。


猜你喜欢

转载自blog.csdn.net/gnosed/article/details/79766185
今日推荐