第01章软件工程学概述课件.ppt





《第01章软件工程学概述课件.ppt》由会员分享,可在线阅读,更多相关《第01章软件工程学概述课件.ppt(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、人是有生命期的,那么软件呢?什么是软件生命周期?软件工程导论软件工程导论1.3 软件生命周期 1、定义(GB/T11457)软件有一个孕育、诞生、成长、成熟、衰亡的生软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存期存过程。这个过程即为计算机软件的生存期 2、理解要点 1)从时间角度分解软件开发和维护中的各种复杂问题;2)是一个描述软件生存周期内系统开发、操作和维护所需实施的过程、活动和任务的框架;3)软件生存周期阶段的划分可因软件的规模、种类、开发方式、开发环境、开发方法的不同而不同。4)1988年发布的GB8566计算机软件开发规范中软件生存周期阶段的划分是基
2、于“瀑布模型”给出的。33、生命周期各阶段的基本任务(系统分析)(系统分析)4案例分析n n某电力公司A,希望软件公司B 为他们制造一种”电费结算系统”,该系统用于结算每一户电表1个月期间应该缴纳的电费。n nB 公司得到电力公司A的这个要求之后,开始进入制作“电费结算系统”软件的生命周期。5问题定义阶段该阶段的关键任务是要明确:要解决的问题是什么?要解决的问题是什么?思考:以下几个选项中,哪个是B公司得出的结论:A.要解决某小区用电总度数问题B.要解决某小区总收电费问题C.要解决电力公司A管辖范围内的所有电表每月每户电费结算问题D.要解决重庆市内电表结算问题6可性行研究阶段该阶段的关键任务是
3、要明确:该阶段的关键任务是要明确:做不做?做不做?用最小的代价在尽可能短的时间内从用最小的代价在尽可能短的时间内从经济、技术、经济、技术、社会因素社会因素等方面论证解决方案的可行性等方面论证解决方案的可行性n n思考:思考:B公司在可行性分析阶段应该做些什公司在可行性分析阶段应该做些什么事情,会得出什么结论?么事情,会得出什么结论?高层逻辑模型,准确和具体的工程规模和目标,成本/效益分析等可行性报告7需求分析阶段该阶段的关键任务是要明确:该阶段的关键任务是要明确:做什么做什么1.1.通过与客户不断的讨论、协商,对目标系统提出通过与客户不断的讨论、协商,对目标系统提出完整、完整、准确、清晰、具体
4、准确、清晰、具体的要求的要求.2.2.用用正式的文档准确地正式的文档准确地记录对目标系统的需求,形成软记录对目标系统的需求,形成软件需求规格说明书件需求规格说明书(SRS)(SRS)注意点n nB B公司在这个阶段应该对用户的要求进行详细的调研与公司在这个阶段应该对用户的要求进行详细的调研与分析,需要去了解电费结算中需要涉及到信息、结算电分析,需要去了解电费结算中需要涉及到信息、结算电费的标准与公式、这个电费结算系统的产出文档是什么费的标准与公式、这个电费结算系统的产出文档是什么等内容等内容,确定该系统需要实现的功能,例如:对使确定该系统需要实现的功能,例如:对使用电表的用户进行管理,对用电表
5、的用户进行管理,对1 1个用户个用户1 1个月的电费计算,个月的电费计算,能够生成结算单。最后以文档的形式描述出需求规格。能够生成结算单。最后以文档的形式描述出需求规格。这些是指导这些是指导B B公司进行下一步工作的依据。公司进行下一步工作的依据。8概要设计(总体设计)阶段该阶段的关键任务是要明确:怎么怎么做?做?1.1.提出实现目标系统的几种方案,制定最佳方案的详细计划2.2.系统的体系结构设计3.3.阶段性成果:概要设计说明书、数据库或者数据结构说明书、组装测试计划等n n根据上一 步得到的需求规格说明书,将需求功能进行模块划分,B公司的设计人员开始了对“电费结算系统”的设计。例如,系统管
6、理模块,电费计算模块,生成结算单模块等。9详细设计阶段该阶段的关键任务是要明确:具体做法具体做法 设计出程序的详细规格说明,即详细地设计每个模块,确定实现模块功能所需要的算法和数据结构。阶段性成果:详细设计规格说明书和单元测试计划等n n对每一个模块,设计它的实现算法和数据结构。例如,电费计算模块,需要根据计算公式进行电费的计算。B公司的设计人员开始了对“电费结算系统”的设计。10编码和单元测试阶段该阶段的关键任务是编码和单元测试编码和单元测试1.1.编写出正确的、易理解的、易维护的程序模块;2.2.仔细测试编写出的每一个模块;3.3.阶段成果:经过单元测试后的代码,单元测试报告等。n nB公
7、司程序员们开始对每个模块进行分工,各自负责1个或者多个模块,然后写代码,代码写好了,还需要对自己所写模块的代码进行测试,保证自己的正确性。11综合测试阶段 该阶段的关键任务是通过该阶段的关键任务是通过各种类型的测试(及调各种类型的测试(及调试)试)使软件达到预定的要求使软件达到预定的要求1.1.组装测试组装测试:根据设计的软件结构,把经过单元测试:根据设计的软件结构,把经过单元测试检验的模块按某种策略装配起来,在装配过程中对检验的模块按某种策略装配起来,在装配过程中对程序进行必要的测试。程序进行必要的测试。2.2.验收测试验收测试:按照规格说明书的规定,由用户对目标:按照规格说明书的规定,由用
8、户对目标系统进行验收,看其是否达到需求规格说明书中定系统进行验收,看其是否达到需求规格说明书中定义的全部功能和性能等方面的需求。义的全部功能和性能等方面的需求。3.3.验收测试结束后,经过评审的软件产品就可以交付验收测试结束后,经过评审的软件产品就可以交付投入使用了。投入使用了。n n经过上面的几个步骤,B公司的人员终于拿出了“电费结算系统”,他们需要对该系统进行各种测试,包括集成测试,系统测试,用户环境测试,验收测试等等,确保该系统能够平稳的运行在A公司中。12软件维护阶段该阶段的关键任务是通过该阶段的关键任务是通过各种必要的维护活动各种必要的维护活动使使系统持久地满足用户的要求。系统持久地
9、满足用户的要求。改正性维护改正性维护:诊断和改正在使用过程中发现的软件错误:诊断和改正在使用过程中发现的软件错误适应性维护:适应性维护:修改修改软件以适应环境软件以适应环境的变化的变化完善性维护:完善性维护:根据用户的要求改进或扩充软件使它更完根据用户的要求改进或扩充软件使它更完善善预防性维护:预防性维护:修改软件为将来的维护活动预先做准备修改软件为将来的维护活动预先做准备qq在电力公司在电力公司A A的实际使用当中,的实际使用当中,“电力结算系统电力结算系统”出现了一些问题,出现了一些问题,B B公司需要派人员进行维护。公司需要派人员进行维护。n n此外,A公司对B公司所开发的系统比较满意,
10、愿意继续让B公司对其进行其他方面功能的扩充,例如:分小区进行用电量和电费收益的统计分析等。13软件工程(软件工程(软件工程(软件工程(生命周期各阶段的基本任务生命周期各阶段的基本任务生命周期各阶段的基本任务生命周期各阶段的基本任务)问题定义可行性研究需求分析总体设计详细设计编码与单元测试综合测试软件维护要解决的问题是什么?问题性质、工程目标和规模的报告分析员:实际用户+负责人是否有解决办法?分析员 高层逻辑模型,准确和具体的工程规模和目标,成本/效益分析等可行性报告为了解决问题,目标系统必须做什么?准确确定系统的功能系统的逻辑模型(数据流图+数据字典+简要算法)如何解决这些问题模块划分软件结构
11、如何具体地实现系统:每个模块的流程图(程序的详细规格说明)通过各种类型的测试,使软件达到预定的要求写出正确的容易理解和容易维护的程序模块 通过各种必要的维护活动使系统持久地满足用户的需要14几个关干软件生命周期阶段的问题n n问题一:开发一个软件大概需要多少资金、时间,将获得问题一:开发一个软件大概需要多少资金、时间,将获得什么效益一般是在哪个阶段确定?相对而言,在哪个阶段什么效益一般是在哪个阶段确定?相对而言,在哪个阶段与用户交流最多?与用户交流最多?n n问题二:系统分析员主要工作在哪个时期?程序员主要工问题二:系统分析员主要工作在哪个时期?程序员主要工作在哪个时期?作在哪个时期?n n问
12、题三:软件定义时期的三个阶段,各自回答什么关键问问题三:软件定义时期的三个阶段,各自回答什么关键问题?题?n n问题四:软件开发时期有几个阶段?各自回答什么关键问问题四:软件开发时期有几个阶段?各自回答什么关键问题?题?15几个关干软件生命周期阶段的问题n n问题五:软件体系结构最早是在哪个阶段决定的问题五:软件体系结构最早是在哪个阶段决定的?n n问题六:详细设计与程序编写阶段有什么样的密问题六:详细设计与程序编写阶段有什么样的密切联系?切联系?n n问题七:问题七:“软件测试是为了验证系统的正确性软件测试是为了验证系统的正确性”这句话对吗?这句话对吗?n n问题八:软件维护有那几种?各有什
13、么功能?问题八:软件维护有那几种?各有什么功能?161.4 软件过程n n软件开发的这些阶段,是按什么样的顺序排列的呢?经过软件工程领域科学家在实际项目的基础上不断研究和发现,总结出了一些可以遵循的规律过程模型171.4 软件过程n n什么是软件过程?为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。n n过程是软件工程三要素之一。n n通常用软件生命周期模型来描述。18软件开发模型n n瀑布模型 n n快速原型模型n n螺旋模型n n喷泉模型19过程模型的选择n n首先,了解每一种首先,了解每一种过程模型的特点过程模型的特点和适用性。和适用性。n n其次,根据软
14、件其次,根据软件项目的特点项目的特点选择合适的过程模选择合适的过程模型。型。n n值得注意的是,由于现实中项目的复杂性,通值得注意的是,由于现实中项目的复杂性,通常会在一个项目中选择常会在一个项目中选择几种过程模型嵌套使用几种过程模型嵌套使用。20案例案例:某个老师(某个老师(T T)想要考察一个同学()想要考察一个同学(S S)的学习情况和技术水平,)的学习情况和技术水平,于是交给该学生一个任务。于是交给该学生一个任务。T:T:我有一个朋友想要一个图象浏览软件,能够查看多种格式的我有一个朋友想要一个图象浏览软件,能够查看多种格式的图象,包括图象,包括BMPBMP、TIFFTIFF、JPGJP
15、G、PNGPNG,并且能够支持一般的放大、,并且能够支持一般的放大、缩小、漫游。你能做这样一个软件吗?缩小、漫游。你能做这样一个软件吗?S S:就是类似:就是类似ACDSEEACDSEE这样的软件吗?这样的软件吗?T:T:差不多,不过不需要那么强大的功能,我这个朋友计算机是外差不多,不过不需要那么强大的功能,我这个朋友计算机是外行,最好能做的比较方便,傻瓜型的,例如象行,最好能做的比较方便,傻瓜型的,例如象ACDSEEACDSEE自动翻页这自动翻页这种功能还是要的。种功能还是要的。S S:我以前学过:我以前学过BMPBMP和和JPGJPG的图象格式解析,我想没有问题的图象格式解析,我想没有问题
16、 T T:好的,给你:好的,给你3030天时间,下周你再来一趟,跟我讲一下你的工天时间,下周你再来一趟,跟我讲一下你的工作进度。作进度。这位同学非常明白老师的意图,回去后想了一下,并列出了一个这位同学非常明白老师的意图,回去后想了一下,并列出了一个清单。清单。21 一、功能:1。读取、显示、另存四种格式图片(BMP、TIFF、JPG、PNG)2。放大、缩小、漫游 3。列出当前目录下所有四种格式图片文件名 4.PAGEUP(PAGEDOWN)自动调出当前目录上一张(下一张)图片 二、其它说明:1。界面尽量简介,容易操作 2。不要图片预览和打印 三、开发工具:Visual Studio 四、开发环
17、境:普通PC机;Windows 7/8/10 五、工作量:1.研究一下四种图片的格式 2.设计一个解析器类,解析这四种格式 3.设计一个文档类,实现读取、另存和目录浏览功能 4.设计一个视图类,实现显示、缩放、漫游功能工作清单工作清单22PART ONE The Process软件制造的八个阶段软件制造的八个阶段:可行性分析可行性分析需求分析需求分析概要设计概要设计详细设计详细设计编码编码测试测试交付交付维护维护对话过程对话过程工作清单一、二工作清单一、二工作清单三、四、五工作清单三、四、五写代码前的思考过程写代码前的思考过程写代码写代码提交给老师检查提交给老师检查给老师朋友安装、讲解给老师朋
18、友安装、讲解修正问题、改进软件修正问题、改进软件23实际情况1一切顺利,学生S按期交付了软件,经过一两周的试用、修改、完善后,三方都比较满意,该软件在老师的朋友那里成为一个得心应手的工具。瀑布模型241.4.1瀑布模型n n19701970年,由W.RoyceW.Royce提出 n n1、传统的瀑布模型qq 从上一阶段接受本阶段从上一阶段接受本阶段的工作对象,作为输的工作对象,作为输 入;入;qq 利用输入,完成本阶段活利用输入,完成本阶段活动的内容动的内容qq 本阶段的工作成果作为输出本阶段的工作成果作为输出传入下一阶段。传入下一阶段。25瀑布模型 实际的瀑布模型 需求分析需求分析验证验证规
19、格说明规格说明验证验证设计设计验证验证编码编码测试测试综合测试综合测试维护维护变化的需求变化的需求验证验证n n 增加了一个评审活动,评审每个阶段完成的活动,若得到确认,则进行下一阶段的活动;否则返回前一阶段,甚至更前阶段返工;26瀑布模型特点1.1.阶段间具有顺序性和依赖性2.2.推迟实现的观点3.3.质量保证的观点27瀑布模型 优点:优点:1 1)可强迫开发人员采用规范)可强迫开发人员采用规范的开发方法;的开发方法;2 2)严格规定每个阶段必须提)严格规定每个阶段必须提交的文档;交的文档;3 3)要求每个阶段的提交工作)要求每个阶段的提交工作产品都必须通过产品都必须通过QAQA的的验证验证
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 01 软件 工程学 概述 课件

限制150内