软件工程大纲_第1页
软件工程大纲_第2页
软件工程大纲_第3页
软件工程大纲_第4页
软件工程大纲_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1•软件工程的概念。答:软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术、和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程[目的]:提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本.2.软件工程的基本原理。◊用分阶段的生命周期计划严格管理。◊坚持进行阶段评审。(错误有放大作用)◊实行严格的产品控制(不随意改需求)◊采用现代化程序设计技术(提高开发效率及产品质量)◊结果应能清晰地审查(规定开发组织责任和产品标准)◊开发小组的人员应该少而精(减少通讯开销)◊承认不断改进软件工程实践的必要性(采纳新技术,总结经验)3•软件的生命周期。概念:一个软件从定义,开发使用和维护,直至最终被废弃,要经历的漫长时期称为软件生命周期。(软件生命周期由软件定义、软件开发、运行维护【也成软件维护】三个时期组成)a) 软件定义时期的任务:确定软件开发过程必须完成的总目标;◊确定工程的可行性,导出实现工程目标应该采用的策略以及系统必须完成的功能;◊估计完成该项工程需要的资源和成本,并且制定工程进度表。b) 开发时期具体设计和实现在前一个时期定义的软件。c) 维护时期的主要任务是使软件持久的满足用户的需求。软件生命周期每一个阶段的基本任务如下[1—3属于软件定义,4-7属于软件开发】1) 问题定义【要解决的问题是什么?】☆对问题正确理解☆澄清含糊的地方2) 可行性研究【寻求可行的解决方案】☆高层次的分析+估算系统的成本和效益=《可研究性报告》3) 需求分析【为了几解决这个问题,目标系统必须做什么】与用户的交流生成系统的逻辑模型《系统规格说明书》4)总体设计【应该怎样实现目标系统】◊解决方案低成本方案:只做必需的功能中成本方案:必需+附加功能高成本方案:完美方案◊设计软件结构,确定模块及之间的关系5)详细设计【应该怎样具体地实现这个系统呢】◊设计详细的规格说明(工程蓝图)6)编码和单元测试(写代码,测试每一个模块)◊选取程序设计语言◊编写单元测试文档7)综合测试(通过各类测试和调试来完善软件)◊集成测试+验收测试(用户参加)◊证实或非正式的用户培训测试的计划和方案8)软件维护【通过各种必要的软件维护活动使系统持久的满足用户的需求】改正性维护◊适应性维护◊完善性维护◊预防性维护可行性研究过程。★步骤:(1)复查系统规模和目标■分析员访问关键人员对规模和目标的报告书进一步复查确认-清晰的描述对目标系统的一切限制和约束。(2) 研究目前正在使用的系统(3) 导出新系统的高层逻辑模型(4) 进一步定义问题(5)导出和评价供选择的解法【逻辑模型9物理解决】技术可行性 先操作可行性经济可行性法律可行性给出现实进展度后(6)推荐行动方针・结果之一:是否继续进行这项开发工程分析员对于所推荐的系统必须进行比较仔细的成本/效益分析(7)草拟开发计划工程进度表开发人员需求设备与软件的需求(使用情况说明)估计软件生命周期每个阶段的成本给出下个阶段的进度表/成本估计(8)书写文档提交审查《可行性研究报告》

系统流程图的符号及表示。符号名称说明处理能改变数据值或数据位置的加工或部件,例如,程序模块、处理机等都是处理。£7输入/输出指出输入或输出(或既输入又输出),是一个广义的不指明具体设备的符号O连接指出转到图的另一部分或从图的另一部分转来,通常在同一页上。换页连接指出转到另一页或由另一页图转来。数据流用来连接其他符号,指明数据流动方向。—-J文档通常表示打印输出,也可表示用打印终端输入数据口联机存储表示任何种类的联机存储,包括磁盘、软盘和海量存储器件等o磁盘磁盘输入/输出,也可表示存储在磁盘上的文件或数据库<o显示CRT终端或类似的显示部件,可用于输入或输出,也可既输入又输出。人工输入人工输入数据的脱机处理,例如,填写表格。V7人工操作人工完成的处理,例如,会计在工资支票上签名D辅助操作使用设备进行的脱机工作通信链路通过远程通信线路或链路传送数据数据流图的符号及表示。||或数据的調点/终点□谀(2)交换数据的处現谀二数抵乔储——- 数抓流(a)基本符号的含义&需求分析的任务。☆确定对系统的综合要求ben数据AB同吋喻人才能变换施數狐c数据A变换戒日和C憑据人或匕或人和B同时输入变换战C数据A变换舷日成G或B和C只有数据A或貝右数据B时变换成C憑据A变换成H或C,但不陸变换成H和匸(b)附加符号的含义1•功能需求【通过需求分析划分出系统必须完成的所有功能】一软件系统的一项基本需求2•性能需求【系统技术性能指标,包括速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性能等方面的需求】3•环境要求:系统所处环境【软件、硬件、操作人员技术水平】4•可靠性和可用性需求【系统运行失败的影响一〉对可靠性的要求(有效性,完整性)】5•用户界面的要求:用户界面的友好型6•出错处理需求:系统对环境错误提出的响应7.接口需求【应用系统与它的环境通信的格式】&资源使用的需求:人力、开发设备和支持软件等成本消耗和开发进度需求约束11•逆向需求12•将来可能提出的要求【为系统的维护做好准备工作】☆分析系统的数据要求--需求分析的一个重要任务☆导出系统的逻辑模型描述方法:数据流图实体-联系图状态转换图数据字典和主要的处理算法☆修正系统开发计划重新估计系统的成本和进度,修正以前制定的开发计划9•总体设计的过程,描绘软件结构的图形工具。⑴总体设计的2个组成阶段:•系统设计阶段,确定系统的具体实现方案•结构设计阶段,确定软件结构⑵设计过程的9个步骤:设想供选择的方案【出发点:需求分析阶段得到的数据流图】【方法:设想把数据流图中的处理分组的各种可能的方法对于可行的方法给出不同的实际方案】【注意:不做出任何评价,让客户去选择】共同选取合理的方案【所需准备的4种资料包括】・系统流程图、・组成系统的物理元素清单、・成本/效益分析、・实现这个系统的进度计划推荐最佳方案【推荐一个最佳方案,制定详细的实现计划】功能分解【2个阶段:*进行结构设计,确定模块之间的关系。*过程设计,确定每一个模块的处理过程】【结果:*功能分解使数据流图进一步细化*用IPO来描述细化后每个处理的算法】设计软件结构【任务:把模块组织成良好的层次系统】【结果:用层次方框图或结构图描绘软件结构】设计数据库【过程:☆模块设计:确定数据库的物理结构。☆子模块设计:用户使用的数据试图☆完整性设计☆安全性设计☆优化】制定测试计划【策略方案、预期结果、测试速度计划】书写文档【类型:☆系统说明(系统流程图;物理元素清单;成本/效益分析;最佳方案的概括描述;层次图或结构图的软件结构;IPO图的各个模块的算法,模块间的接口关系;需求、功能和模块三者之间的交叉参照关系)☆用户手册☆测试计划☆实现计划☆数据库设计的结果】复查和复审【技术审查;管理复审】

10・程序流程图的表示。【三种基本控制结构】编码及其风格。编码概念:就是把软件设计结果翻译成用某种程序设计语言书写的程序测试☆选择程序设计语言:目的是把模块过稈性描述翻译成用该语言书写的源稈序理论标准:①有理想的模块化机制,以及可读性好的控制结构和数据结构②完善编译机制(尽可能多的发现程序中的错误③独立编译机制实用标准:①系统用户要求②可以使用的编译程序③可以得到的软件工程④工程规模⑤程序员的知识⑥软件可移植性要求⑦软件应用领域☆编码风格:在不影响程序正确性和效率的前提下,有效编排和合理组织程序的基本原则。主要表现:可读性好、易测试、易维护。★源程序代码必须遵守以下规则:(1)程序内部的文档【说明性注释信息:①序言性注释:位于模块首部,用于说明模块相关性描述性注释:位于原程序模块内部,用于对某些难以理解的语句段或某些重要标识符的用途等进行说明】注:标识符p144页(2)数据说明(标识符命名及说明)【命名:①具有实际含义②便于程序输入③便于区分说明:①按某种顺序集中说明②同一类型的多个变量顺序排列】(3) 语句构造【构造语句时每个语句都应该简单而直接:不要为了节省空间而把多个语句写在同一行。尽量避免复杂的条件测试。尽量减少对“非”条件的测试(不使用强制转移goto语句,尽可能使用编译系统提供的函数)避免大量使用循环嵌套和条件嵌套。利用括号使逻辑表达或或算术表达式的运算次序清晰直观】注:语句书写:模块之间递缩,模块之间加空行,用边框,要缩进(4) 输入输出【规则:对所有输入数据都进行检测检查输入项重要组合的合法性保持输入格式的简单使用数据结束标记,不要要求用户指定数据的数目明确提示交互式输入的请求,详细说明可用的选择或边界数值当程序设计语言对格式有严格要求时,应保持输入格式一致涉及良好的输入报表给所有输入数据加标志】⑸效率软件测试的目标、准则、方法与步骤。【目的:】为了发现程序中的错误而执行程序的过程。【准则:】(1)所有测试都应追溯到用户需求。⑵应该远在测试之前就制定出测试计划。把Pareto原理应用到软件测试中。⑶应该从“小规模”测试开始,并逐步进行“大规模”测试。⑷穷举测试是不可能的。⑸为了达到最佳的测试效果,应该由独立的第三方从事测试工作。【方法:】(1)白盒测试(结构测试):按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。(2)黑盒测试:在程序端口进行测试,检查功能程序是否能按照规格说明书的规定正常使用,程序是否能适当地接受输入数据并产生正确的输入信息,程序运行过程中能否保持外部信息的完整性。(简单来说就是首先通过数据输入看输出结果,其次使用有挑战性的输入数据及可能结果会出错的输入数据,了解软件怎样处理各种类型的数据)【步骤:】模块测试:程序员子系统测试:程序员+测试员系统测试:测试员+用户验收测试:用户+测试员平行运行:终端用户13•软件维护【定义:】在软件已经交付使用之后,为了改正错误或满足新的需求而修改软件的过程.【特点:】结构化维护与非结构化维护差别巨大维护的代价高昂维护的问题很多【维护过程:】维护组织维护扌艮告☆维护报告中的软件修改报告应满足:■维护要求表中提出的要求所需要的工作量■维护要求的性质■这项要求的优先次序■与修改有关的事后数据]维护的事件流保护维护记录评价维护动活☆维护评价活动的七个方面■每次程序运行平均失败的次数用■于每一类维护活动的总人数时■平均每一个程序、每种语言、每种维护类型所做的程序变动数■维护过程中增加或删除一个语句源平均花费的人时数■维护每种语言平均花费的人时数■一张维护要求表的平均周转时间■不同维护类型所占的百分比14

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论