软件工程导论(整理).doc

软件工程导论(整理).doc

ID:59384155

大小:39.50 KB

页数:5页

时间:2020-01-12

软件工程导论(整理).doc_第1页
软件工程导论(整理).doc_第2页
软件工程导论(整理).doc_第3页
软件工程导论(整理).doc_第4页
软件工程导论(整理).doc_第5页
资源描述:

《软件工程导论(整理).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一、软件危机与软件工程1、软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。(正常、不正常运行软件都具有这种问题)2、软件危机的原因1)软件本身特点造成;程序规模庞大;程序复杂性随着程序规模的增加而呈指数上升。2)软件开发与维护的方法不正确。主要表现:(a)忽视软件需求分析;(b)认为软件开发就是写程序并使之运行;(c)轻视软件维护;3、解决软件危机的途径:1、组织管理:软件开发不是某种个体劳动的神秘技巧,软件开发应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。2、方法:应该推广使用在实践中总结出来的开发软件的成功

2、的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在计算机系统早期发展阶段形成的一些错误概念和做法。3、工具:应该开发和使用更好的软件工具。在软件开发的每个阶段都有许多繁琐重复的工作需要做,在适当的软件工具辅助下,开发人员可以把这类工作做得既快又好。4、软件工程包括哪7条基本原理?1.用分阶段的生命周期计划严格管理;2.坚持进行阶段评审;3.实行严格的产品控制;4.采用现代程序设计技术;5.结果能清楚地审查;6.开发小组的人员应该少而精;7.承认不断改进软件工程实践的必要性。5、软件开发流程?1)、问题定义2)、可行性研究3)、需求分析4)、总体设计

3、5)、详细设计6)、编码和单元测试7)、综合测试8)、软件维护6、软件开发模型瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型、rational统一过程、敏捷过程与极限编程、微软过程二、可行性研究1.系统流程图系统流程图是概括地描绘物理系统的传统工具,它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等),表达信息在各个部件之间流动的情况。2.数据流图数据流图描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。3.数据字典数据字典:对数据流图中包含的所有元素的定义的集合;三、需

4、求分析1、需求分析目的及作用需求分析是软件分析时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题。需求分析的作用是对目标系统提出完整、准确、清晰、具体的要求。2、需求分析的过程1)、访谈正式访谈:系统分析员提出事先准备好的问题。非正式访谈:提出一些用户可以自由回答的开放性问题,鼓励被访者说出自己的想法。需要访问大量人员时,利用调查表访问较佳。2)、面向数据流自顶向下求精借助数据流图、数据字典、IPO图等,细化、完善详细的数据流图,等到各处理环节对应的功能。3)、简易的应用规格说明技术面向团队的需求收集法:(用户与开发者配合)l初步访谈;

5、l开发者和用户分别写出“产品需求”;l开会讨论,各自展示需求列表;l得出一致意见,为需求列表制定小型规格说明;l根据会议成果,起草完整的软件需求规格说明。4)、快速建立软件原型快速建立能演示目标系统主要功能的程序。(1)第四代技术包括:数据库查询和报表语言、程序和应用系统生成器以及其他非常高级的非过程语言,其可以快速生成可执行代码(2)可重用的软件构件使用一组已有的软件构件来装配原型(3)形式化规格说明和原型环境四、总体设计1、软件设计软件设计一般包括(总体设计)和详细设计阶段等两个阶段,在软件设计过程中应该遵循的基本原理和相关概念有(模块化)、(抽象)、(

6、逐步求精)、(信息隐藏和局部化)和(模块独立)。2、面向数据流的设计方法面向数据流的软件设计方法,一般是把数据流图中数据流划分为(变换流)和(事务流),再将数据流图映射为软件结构。3、启发式规则1)改进软件结构提高模块独立性2)模块规模应该适中3)深度、宽度、扇入和扇出都应适当4)模块的作用域应该在控制域之内5)力争降低模块接口的复杂程度6)设计单入口单出口的模块7)模块功能应该可以预测4、模块间深度:表示软件结构中控制的层数、往往能粗略的标志一个系统的大小和复杂程度。宽度:是软件结构内同一层次上的模块总数的最大值。宽度越大系统月复杂扇出:是一个模块直接控制

7、(调用)的模块数目,扇出过大意味着模块过分复杂,需要控制和协调过多的下级模块扇入:表明有多少个上级模块直接调用它,扇入越大则共享该模块的上级模块数目越多。作用域:为受该模块内一个判定影响的所有模块集合。七、测试1、测试:为了发现程序中的错误而执行程序的过程;好的测试方案是极可能发现迄今为止尚未发现的错误测试方案;成功的测试时发现了至今尚未发现的错误的测试。2、测试种类(对象):单元测试(模块)、白盒测试(结构测试)、黑盒测试(软件功能)、集成测试(发现与接口有关的问题)、确认测试(验证软件的有效性)3、调试:作为成功测试的后果出现,也就是说,调试时在测试发现

8、错误之后排除错误的过程。八、软件维护1、软件维护:在

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。