您好,欢迎访问三七文档
济南职业学院申报省级精品课程:软件工程负责人:赛煜第1章软件工程概述本章主要内容•软件的发展、定义及特征;软件危机的表现及解决途径;软件工程的定义及三要素,软件工程的基本原理及目标;软件生存周期的概念和内容;五种软件开发模型;软件开发方法和开发工具;传统软件工程和面向对象软件工程。•本章重点:软件工程的定义及三要素,软件工程的基本原理及目标;五种软件开发模型;软件开发方法和开发工具;•本章难点:五种软件开发模型的使用。••济南职业学院申报省级精品课程:软件工程负责人:赛煜第1章软件工程概述•本章结构:•1.1软件与软件危机•1.2软件工程•1.3软件生存周期•1.4软件开发模型•1.5软件开发方法和软件开发工具•1.6传统软件工程和面向对象软件工程济南职业学院申报省级精品课程:软件工程负责人:赛煜1.1软件与软件危机•1.1.1软件的发展•1.1.2软件的特征•软件是一种逻辑实体,不是具体的物理实体•软件与硬件的生产方式不同•软件与硬件的维护不同•软件是复杂的•软件成本相当昂贵•1.1.3软件危机•软件危机是指在计算机软件的开发、使用和维护过程中遇到的一系列严重问题。•1.软件危机的表现•2.缓解软件危机的途径“软件危机”破解者印度软件业危机中求生济南职业学院申报省级精品课程:软件工程负责人:赛煜1.2软件工程•1.2.1软件工程的概念•软件工程学是一门指导软件开发和维护的工程学科,是为了经济地获得能够在实际机器上有效运行的可靠软件而建立和使用的一系列完善的工程化原则。它应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法来生产软件,以达到提高质量、降低成本的目的。•1.2.2软件工程的基本原理•软件工程专家B.W.Boehm提出了软件工程的7条基本原理:•1.用分阶段的生存周期计划严格管理•2.坚持进行阶段评审•3.实行严格的产品控制•4.采用现代程序设计技术•5.结果应能清楚地审查•6.开发小组的人员应少而精•7.承认不断改进软件工程实践的必要性济南职业学院申报省级精品课程:软件工程负责人:赛煜1.2软件工程•1.2.3软件工程的基本目标•付出较低的开发成本;达到预期的软件功能;•取得较好的软件性能;使软件易于移植;•需要较低的维护费用;能按时完成开发工作,及时交付使用。•互补关系:互斥关系:低开发成本易于维护高可靠性高性能按时交付图1.1软件工程目标之间的关系请您参考:软件工程的发展历史概论济南职业学院申报省级精品课程:软件工程负责人:赛煜1.3软件生存周期•软件生存周期是指一个计算机软件从功能确定、设计,到开发成功投入使用,并在使用中不断地修改、增补和完善,直到停止该软件的使用的全过程。包括•制定计划•需求分析•软件设计•程序编码•软件测试•运行维护•软件生存周期济南职业学院申报省级精品课程:软件工程负责人:赛煜1.4软件开发模型•1.4.1瀑布模型•瀑布模型规定了各项软件工程活动,包括:制定开发计划、需求分析和说明、软件设计、程序编码、测试、运行维护。并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。如图1.2所示。计划需求分析设计编码运行、维护测试定义阶段维护阶段开发阶段图1.2瀑布模型济南职业学院申报省级精品课程:软件工程负责人:赛煜1.4软件开发模型•1.4.2快速原型模型•快速原型模型的基本思想是:软件开发人员根据用户提出的软件基本需求快速开发一个原型,以便向用户展示软件系统应有的部分或全部的功能和性能,在征求用户对原型的评价意见后,进一步使需求精确化、完全化,并据此改进、完善原型,如此迭代,直到软件开发人员和用户都确认软件系统的需求并达成一致的理解为止。需求的采集和细化快速设计建造原型用户评价原型对原型加工(需求精确化)产品样品(需求确认)图1.3快速原型济南职业学院申报省级精品课程:软件工程负责人:赛煜1.4软件开发模型•1.4.3增量模型•增量模型规定软件的开发过程是一次开发产品的一个部分。首先应该开发产品的基本部分,然后再逐步开发产品的附加部分。增量模型的开发过程示意图如图1.4所示:可行性论证验证需求分析验证体系结构设计验证对每个构件进行详细设计、实现、集成、测试,交付给用户验证维护图1.4增量模型济南职业学院申报省级精品课程:软件工程负责人:赛煜1.4软件开发模型•1.4.4螺旋模型•螺旋模型将瀑布模型和原型模型结合起来,不仅体现了两个模型的优点,而且还增加了两个模型都忽略了的风险分析,弥补了两者的不足。•螺旋模型的结构如图1.5所示,它由四部分组成:制定计划、风险分析、实施开发、客户评估。在笛卡尔坐标的四个象限上分别表达了四个方面的活动。详细设计编码单元测试集成测试验收测试需求计划与生命周期开发计划集成与测试计划设计验证与确认需求确认软件产品设计软件需求风险分析风险分析风险分析可运行的原型原型3原型2原型1累计费用制定计划决定目标方案与限制风险分析评估方案,识别并排除风险实施开发开发、验证下一产品客户评估实现图1.5螺旋模型济南职业学院申报省级精品课程:软件工程负责人:赛煜1.4软件开发模型•1.4.5喷泉模型•它是以面向对象的软件开发方法为基础,以用户需求为动力,以对象来驱动的模型。喷泉模型如图1.6所示。•济南职业学院申报省级精品课程:软件工程负责人:赛煜1.4软件开发模型•1.4.6形式化方法模型•形式化方法模型包含了一组活动,它们带来了计算机软件用数学描述的方法。用于软件形式化开发方法的模型有两种:变换模型和净室软件过程模型。变换变换变换需求分析形式化软件规格说明(M0)形式化软件设计说明(M1)模型检查(M2)目标程序(Mn)······图1.7变换模型济南职业学院申报省级精品课程:软件工程负责人:赛煜1.4软件开发模型•【例1.1】假设你被任命为一家软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本开发。由于市场竞争激烈,公司规定了严格的完成期限并且已对外公布。你打算采用哪种软件生命周期模型?为什么?•解:对这个项目的一个重要要求是,严格按照已对外公布了的日期完成产品开发工作,因此,选择生命周期模型时、应该着重考虑哪种模型有助于加快产品开发的进度。使用增量模型开发软件时可以并行完成开发工作,因此能够加快开发进度。•这个项目是开发该公司已被广泛应用的字处理软件的新版本,从上述事实至少可以得出3点结论:第一,旧版本相当于一个原型,通过收集用户对旧版本的反映,较容易确定对新版本的需求,没必要再专门建立一个原型系统来分析用户的需求;第二,该公司的软件工程师对字处理软件很熟悉,有开发字处理软件的丰富经验,具有采用增量模型开发新版字处理软件所需要的技术水平;第三,该软件受到广大用户的喜爱,今后很可能还要开发更新的版本,因此,应该把该软件的体系结构设计成开放式的,以利于今后的改进和扩充。济南职业学院申报省级精品课程:软件工程负责人:赛煜1.5软件开发方法和软件开发工具•1.5.1软件开发方法的概念•一般说来,一个软件方法往往规定了:明确的工作步骤、具体的描述方式以及确定的评价标准。•1.5.2软件开发的基本方法•1.结构化方法•2.面向对象方法•1.5.3软件开发工具•目前已经推出很多软件开发工具,如需求分析阶段的PSL/PSA系统;编码阶段的各种语言编译工具、编辑程序、连接程序等,都是软件编码阶段的软件工具;测试阶段的测试数据产生程序、动态分析程序、静态分析程序等软件自动测试工具;维护阶段的版本控制系统等。从广义上来讲,软件分析、设计阶段的各种图形工具,如数据流图(DFD图)等也可以称为软件开发工具。济南职业学院申报省级精品课程:软件工程负责人:赛煜1.6传统软件工程和面向对象软件工程•1.6.1传统的软件工程•传统的软件工程采用瀑布模型作为软件工程的基本模型,把软件开发和运行过程划分为六个阶段:软件计划、需求分析、软件设计、程序编码、软件测试、运行和维护等,强调各阶段的完整性和先后顺序,根据不同阶段的工作特点,运用不同的手段完成各阶段的任务。•1.传统软件工程存在的问题•2.传统结构化技术的缺点•1.6.2面向对象的软件工程•1.面向对象方法的基本思想•面向对象方法的基本思想是从现实世界中客观存在的事物出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。•面向对象方法学的出发点和基本原则是:尽可能模拟人类所习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识世界、解决问题的方法和过程,即使描述问题的问题域与实现解法的求解域在结构上尽可能一致。济南职业学院申报省级精品课程:软件工程负责人:赛煜1.6传统软件工程和面向对象软件工程•2.面向对象方法的主要优点•符合人们通常的思维方式•高度连续性•重用性好•可维护性好请您参考:面向对象的软件工程
本文标题:第1章软件工程概述
链接地址:https://www.777doc.com/doc-203099 .html