赞
踩
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。
用科学的原理和理论定义开发
一。 确定对系统的综合要求
1.功能需求;2. 性能需求;3. 可靠性和可用性需求;4. 出错处理需求;5. 接口需求;6. 约束;7. 逆向需求;8. 将来可能提出的要求。
二 。分析系统的数据要求
任何一个软件系统本质上都是信息处理系统,系统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌,对软件设计有深远影响,因此,必须分析系统的数据要求,这是软件需求分析的一个重要任务。
三。 导出系统的逻辑模型
综合上述两项分析的结果可以导出系统的详细的逻辑模型,通常用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。
四。 修正系统开发计划
根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。
开发人员准备的理解用户的需求,并进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明过程。
基本任务:
箭头表示数据流,圆圈表示加工,双模横线表示存储,方框表示数据的原点和终点。
(1) 测试从一个侧面证明程序员的失败;调试证明程序员的正确;
(2) 测试从已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试从不可知内部条件开始,除统计性调试外,结果是不可预见的;
(3) 测试有计划并且要进行测试设计;调试不受时间约束;
(4) 测试是发现错误、改正错误、重新测试的过程;调试是一个推理的过程;
(5) 测试执行是有规程的;调试执行要求程序员进行必要的推理;
(6) 测试由独立的测试组在不了解软件设计的件下完成;调试由了解详细设计的程序员完成;
(7) 大多数测试的执行和设计可由工具支持;调试用的工具主要是调试器。
1、维护组织;2、维护报告;3、维护的事件流;4、保存维护记录;5、评价维护活动。
软件维护的含义是什么,什么是软件的可维护性?决定软件可维护性的因素是什么?
所谓软件维护是指在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。软件维护是软件生命周期的最后一个阶段,也是持续时间最长代价最大的一个阶段。
软件的可维护性可以定义为:维护人员理解、改正和改动软件的难易程度。
决定软件可维护性的因素是可理解性、可测试性和可修改性。
软件危机是指软件在开发和维护过程中遇到的一系统严重问题,主要包含二方面的问题,一是如何开发利用软件,二是如何维护数量不断膨胀的已有软件。
产生软件危机的原因,一方面与软件本身的特点有关,另一方面和软件开发与维护的方法不正确有关。
为了消除软件危机,首先应该对计算机软件有一个正确的认识,更重要的是必须充分认识到软件开发不是个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目,应该开发和使用更好的软件工具,总之,为了解决软件危机,既要有技术措施,又要有必要的组织管理措施。
1>边做边改模型:一种类似作坊的开发方式
2>瀑布模型:强调文档的使用,并要求每个阶段都仔细验证
3>快速原模型:克服了瀑布模型的特点,减少由于软件需求不明确带来的开发风险
4>增量模型:高强的灵活性
5>螺旋模型:强调风险分析
6>喷泉模型:有更多增量和迭代性质
7>智能模型
维护人员理解、改正、改动或改进这个软件的难易程度。可理解性、可测试性、可修改性、可移植性、可重用性.
尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。软件测试是软件测试人员和程序员都参与的一项工作,是贯穿整个生命周期的,只需要发现软件的错误,而软件调试主要是程序员自己参与,对程序(设计、编码)进行修改、排除错误,主要是在开发阶段。
简述软件测试的步骤,简要说明各测试步骤的目的。
软件系统的测试基本上由以下几个步骤组成:
模块(单元)测试,目的是保证第个模块作为一个单元能正确执行。
子系统测试,目的是把经过单元测试的模块放在一起形成一个子系统,测试模块相互间的协调和通信。
系统测试,在这个过程中不仅应该发现设计和编码的错误,还应该验证系统确实能提供需求说明书中指定的功能,而且系统的动态特性也符合要求。
验收测试,目的是验证系统确实能够满足用户的要求。
平行运行,目的是用户能在准生产环境下熟悉系统、验证文档、负荷测试和验证系统性能指标。
从形成软件概念起,所开发的软件使用之后,直到失去使用价值,消失为止的整个过程。
整个时期有:
①软件的定义时期:问题的定义、可行性研究、需求分析
②开发时期:总体设计、详细设计、编码和单元测试、综合测试。
③维护时期:使软件持久的满足用户的需求。
原则:
目标:
顺序 选择 case型多分支 while型循环 until型循环
模块独立性是指模块内部各部分及模块间的关系的一种衡量标准,由内聚和耦合来度量。是模块化、抽象化、信息隐藏和局部化概念的直接结果。
模块与模块化:模块是数据说明、可执行语句等程序对象的集合,它是单独命名的而且可通过名字来访问,例如:过程、函数、子程序等。
模块化是把模块划分为若干个模块,每个模块完成一个子功能,把这些模块集合起来组成一个整体,可以完成指定的功能满足问题的要求。
数据字典是描述数据流图中数据的信息的集合。它对数据流图上每一个成分:数据项、文件(数据结构)、数据流、数据存储、加工和外部项等给以定义和说明;它主要由数据流描述、加工描述和文件描述三部分组成。对用户来讲,数据字典为他们提供了数据的明确定义;对系统分析员来讲,数据字典帮助他们比较容易修改已建立的系统逻辑模型。
有数据流图、数据字典、判定表、判定树、结构化自然语言、层次方框图、Warnier图、IPO图和需求描述语言等。
① 深度:表示软件结构中从顶层模块到最底层模块的层数;
② 宽度:表示控制的总分布;
③ 扇出数:指一个模块直接控制下属的模块个数;
④ 扇入数:指一个模块的直接上属模块个数。
一个好的软件结构的形态准则是:顶部宽度小,中部宽度最大,底部宽度次之;在结构顶部有较高的扇出数,在底部有较高的扇入数。
模块化准则:所谓模块化就是将系统划分成若干模块,每个模块完成一个子功能,把这些模块集中起来组成一个整体,以满足所要求的整个系统的功能。我们利用模块化来降低软件复杂度。注意选择分解的最佳模块数。
软件独立性准则: 软件独立性的含义是指开发具有功能专一,模块之无过多相互作用的模块。又称为模块独立性准则。这种类型的模块可以并行开发,开发容易,能减少错误的影响,使模块容易组合、修改及测试。
软件独立性的度量标准是两个定性指标:耦合性和内聚性。
等价划分法:等价划分是黑盒设计测试方案的一种技术。把所有可能的输入数据按有效与无效分为若干个等价类(即类中每一个值在测试中的作用与这一类中所有其它值的作用相同。等价划分法先要划分输入数据的等价类,再分别设计测试方案覆盖有效等价类和无效等价类。
用交互的、快捷建立起来的原型取代规格说明,用户通过在计算机上运行、使用这个原型系统了解系统的概貌,向开发者提供反馈意见。
详细设计的任务就是要针对每个模块,根据模块的功能,给出可以直接用于编码的程序逻辑结构。
因此,在详细设计阶段,我们应该完成两个方面的工作,一是确保模块功能实现的程序逻辑结构的设计,二是采用什么方法来表达和描述程序的逻辑结构。
白盒测试:所谓白盒测试就是在知道产品内部工作过程或程序内部结构和处理过程的前提下,检验产品内部动作是否按照规格说明书的规定正常进行或按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按照预定要求正确工作的测试方法。因此白盒测试又称为结构测试或逻辑测试。
黑盒测试是指在完全不考虑程序的内部结构和处理过程的前提下,在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接受输入数据产生正确的输出信息,并且保持外部信息的完整性。因此,又称为功能测试。
数据字典是描述数据流图中数据的信息的集合。它对数据流图上每一个成分:数据项、文件(数据结构)、数据流、数据存储、加工和外部项等给以定义和说明;它主要由数据流描述、加工描述和文件描述三部分组成。对用户来讲,数据字典为他们提供了数据的明确定义;对系统分析员来讲,数据字典帮助他们比较容易修改已建立的系统逻辑模型。
数据流图、PAD图、数据词典
对重要功能的描述、软件确认准则、软件的性能
工具、方法、过程
N-S图
也叫盒图,由美国学者I.Nassi 和 B.Shneiderman提出,所以又称N-S图,可以清晰的表示程序的结构以及流程,其主要特征为“矩形框”。
PAD图
全称为Problem Analysis Diagram,即问题分析图表,利用二维树形结构表示程序的控制流,也就是将程序功能的路线图给画出来,既可以表示程序的逻辑,也可以表示程序的结构,区分它的方法是程序的最左端有一条“竖线”,表示程序的“主线”。
27. 软件需求分析阶段的工作,可以分为4个方面:需求获取,需求分析,编写需求规格说明书以及需求审评
28. 在原型法中称用户为用户/设计者,开发人员根据用户需求不断修改原型,直到满足用户要求为止。下面不属于软件工程的3个要素是环境
工具、过程、方法
加工、数据存储、源和潭
抽象、模块化、信息隐蔽
阶段间具有顺序性和依赖性;推迟实现的观点;质量保证的观点。瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开
HIPO图由层次结构图和IPO图两部分构成,前者描述了整个系统的设计结构以及各类模块之间的关系,后者描述了某个特定模块内部的处理过程和输入/输出关系。
加油!
感谢!
努力!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。