软件开发技术复习(2010121h)
- 格式:doc
- 大小:75.50 KB
- 文档页数:6
软件技术基础知识要点复习:1、软件的概念,软件的特性,软件的分类软件的内容?图1-5答:软件是程序、数据及相应文档所组成的完整集合。
特性:①软件的抽象性②软件的知识性③软件的复杂性④软件的复用性⑤软件开发的手工方式。
2、数据的基本概念?数据的三个结构层次是什么?答:数据是按一定规则组织的符号串,并能被计算机所识别‘三个结构层次:客观世界—事物与事物之间的联系逻辑世界-数据逻辑结构与逻辑值物理世界-数据的物理结构与物理值3、什么是数据元素?数据的逻辑结构(分为哪几类?)和物理结构是怎样的?答:数据元素:数据结构中不可再分的基本数据单位.数据的逻辑结构:从应用问题角度组织数据的结构或用户数据视图;主要有线性表、树和图三种结构。
数据的物理结构:数据在计算机存储器上存储的结构;主要有顺序存储结构和链式存储结构。
4、线性表的概念、特点、存储结构、基本运算。
答:概念:数据元素只有后继和前继关系的数据结构,是数据元素的有限序列。
特点:数据元素之间是线性关系,即在线性表中必存在唯一的一个“第一个”元素;必存在唯一的一个“最后一个”元素;除第一个元素外,每个元素有且只有一个前驱元素;除最后一个元素外,每个元素有且只有一个后继元素。
存储结构:顺序存储结构和链式存储结构.基本运算:插入、删除、查找、排序5、线性链表的基本操作见P42-43图4—11,4—12及其算法.6、线性表的顺序存储和链式存储各有何有缺点?答:顺序存储结构的优点:①有最佳的空间效率,因为无须存储元素数据以外的任何数据;但是,由于其存储特性的原因,常常要留有足够的自由节点空间以备长度伸展的需要,这又降低了空间效率;②节点定位计算与数据规模和节点大小无关。
缺点:①当插入或删除节点时为保证位置比邻而要频繁地移动节点,这种移动有时是大量的;②因为初始存储空间的限制致使过多的插入产生“溢出”;③未必能如愿地申请到足够大小的成片空间。
链式存储结构的优点:不要求连续成片的存储空间,同一数据结构中的诸节点可以任意散存在存储器任何位置,只要保证一个节点能完整存储就够了,且不要求预留任何自由节点空间而能保证长度的任意伸展,节点存储只受存储容量的限制;克服了顺序存储结构的几个致命缺点缺点:(1)占用额外的空间以存储指针(浪费空间)(2)存取某个元素速度慢(3)插入元素和删除元素速度快(4)没有空间限制,存储元素的个数无上限,基本只与内存空间大小有关.7、栈表是线性表吗?队列是线性表吗?它们各自的特点是什么?它们有那些存储形式?有三个元素A、B、C,若入栈、入队次序均为A、B、C,则出栈、出队次序各是怎样的?循环队列见作业。
选择软件生存周期包括可行性分析、(需求分析检测审核调试)、软件设计、程序设计、测试、发布维护等活动。
属于软件的特点的是软件是一种逻辑实体,具有抽象性软件在使用过程中没有磨损、老化的问题软件有形,有色,有味,看得见,摸得着,闻得到(用例图活动图E—R图状态图)不属于UML图制约软件成功的因素有:,成本(费用),进度(时间),质量(客户满意度)工作态度(积极性)范围(符合客户的需求和希望)编成技巧(精通计算机语言)是否加班(赶进度)在软件测试中,白盒测试方法是通过分析程序的(功能输入数据内部逻辑应用范围)来设计测试用例的方法鱼与水生生物之间的关系是(组合聚合泛化依赖)用例模型包括用例图和(E—R图数据字典用例规约状态图)(Visual Studio> NetBeans、Eclipse> Rose)是用于软件设计的辅助工具软件测试的目的是(评价软件的质量、发现软件的错误、找出软件的所有错误、证明软件是正确的)软件维护会产生副作用,(文档副作用、编码副作用、测试副作用、数据副作用)不属于维护副作用可行性分析研究的目的是(争取项目、项目值得开发否、开发项目、规划项目)在确定类时,所有(名词、动词、形容词、副词)是候选的类技术可行性研究的问题之一是(成本效益问题、存在侵权否、技术风险问题、运行方式可行否)象棋与棋之间的关系是(组合、聚合、泛化、依赖)用例模型包括用例图和(状态图、E—R图、数据字典、用例规约)(project、word、Eclipse、Rose)是用于设计程序的辅助工具维护阶段产生的文档是(需求规格说明书、软件问题报告、操作手册、设计说明书)按照ISO/IEC 9126—1991的规定软件质量可用3个特性来评价:功能性,,易用性A.可靠性B.理解性C.理论性D.维护性(软件、文档、数据、程序)是计算机程序及其说明程序的各种文档小汽车与交通工具之间的关系是(组合、聚合、泛化、依赖)概念模型包括(类和对象、类和类之间关系、活动图、顺序图)软件质量必须在(实现期间、开发之前、开发之后、整个开发期间)加以保证软件重用是指在软件开发过程中重复使用相同或相似(函数、过程、子程序、软件元素)系统定义明确之后,应对系统的可行性进行研究,可行性研究应包括技术可行性、经济可行性、经济可行性、社会可行性安全可行性、操作可行性社会可行性、系统可行性实用性、社会可行性顺序图(时序图)属于(动态模型、功能模型、静态模型)软件开发技术包括(软件经济学、软件开发方法学、软件心理学、软件管理学),软件开发过程, 软件工具和软件工程环境软件工程的三要素是(需求、方法、资金、市场)、工具和过程青蛙与两栖动物之间的关系是(组合、聚合、泛化、依赖)用例模型包括(状态图、E—R图、用例图、活动图)和用例规约(RequisitePro^ NetBeans, Eclipse, Rose)是用于需求管理辅助工具VSS和CVS用于(编写程序、软件设计、文档编辑、版本管理)概念计春:机软件、软件工程、配置管理、单元测试、静态测试技术、类、对象,类的特性、集成测试、设计模式、白盒测试技术、软件质量、外观模式、概念模型、黑盒测试技术、简述软件开发模型有哪些主要模型。
考试题型分布:填空题(30分:30*1分),简答题(30分:6*5分),计算题(30分:3*10分),编程题(10分:1*10分)1.软件工程的三个基本要素2.算法的概念3.算法的基本特征4.算法描述方式5.算法设计基本方法6.递归设计7.算法评价标准8.制约算法效率的要素9.时间复杂度10.空间复杂度11.数据12.阐述数据、数据元素、数据项和数据结构的含义和联系。
13.数据类型的概念;举例常见数据类型14.数据逻辑结构包含15.数据结构主要包括数据的逻辑结构和存储结构。
两者的关系16.数据存储结构两种常见类型:顺序存储结构,链式存储结构。
分别的特点:17.数据结构基本操作有哪些18.线性表(Linear List19.线性表的顺序存储结构的特点:20.顺序表中数据元素的存储地址计算21.顺序表插入,删除算法的时间和空间复杂度:22.栈的基本概念:栈、栈顶、栈底、栈的修改(后进先出,先进后出)、入栈、退栈。
23.栈的顺序存储结构(大概了解)24.栈的溢出类型:上溢,下溢。
25.基于栈的表达式计算:算术运算符的优先级,给定一个表达式,构建栈。
26.波兰表示法(Polish notation)27.队列的术语:排头,队尾,队列规则(先进先出,后劲后出)。
28.队列的假溢出及其避免方法。
(了解)29.循环队列30.线性链表31.线性链表插入,删除后指针的变化。
32.单链表33.双向链表34.索引存储的概念:35.索引存储的方式36.数组37.树结构概念具有分支和层次关系的非线性结构(一对多)对于结构中的一个节点,可能有一个前趋和多个后继(线性表中是有且仅有一个前趋和一个后继。
38.树的基本术语树是n(n≥0)个结点的有限集。
若n = 0,称为空树。
1)结点-包含一个数据元素及若干指向子树的分支;根结点:没有前驱,仅有后继叶结点:没有后继,仅有前驱分支结点:有且仅有一个前驱,可以有多个后继(2)度与深度结点的度:该结点拥有的子树数目。
2024年软件工程开发等专业技能知识考试题库(附含答案)一、单选题1.数据流图是进行软件需求分析的常用图形工具,其基本图形符号是( )。
A.输入、输出、外部实体和加工B.变换、加工、数据流和存储C.加工、数据流、数据存储和外部实体D.变换、数据存储、加工和数据流参考答案:C2.集成测试的主要方法有两个,一个是()一个是()。
A.白盒测试方法、黑盒测试方法B.等价类划分方法、边缘值分析方法C.渐增式测试方法、非渐增式测试方法D.因果图方法、错误推测方法参考答案:C3.软件文档是软件工程实施的重要成分,它不仅是软件开发各阶段的重要依据,而且也影响软件的( )。
A.可用性B.可维护性C.可扩展性D.可移植性参考答案:B4.面向对象设计阶段的主要任务是系统设计和( )。
A.结构化设计B.数据设计C.面向对象程序设计D.对象设计参考答案:D5.包含风险分析的软件工程模型是( )。
A.喷泉模型B.瀑布模型C.增量模型D.螺旋模型参考答案:D6.Jackson方法根据()来导出程序结构。
A.数据流图B.数据间的控制结构C.数据结构D.IPO图参考答案:C7.需求工程的主要目的是( )。
A.系统开发的具体方案B.进一步确定用户的需求C.解决系统是“做什么的问题”D.解决系统是“如何做的问题”参考答案:C8.只有类的共有界面的成员才能成为使用类的操作,这是软件设计的( )原则。
A.过程抽象B.信息隐藏C.功能抽象D.共享性参考答案:B9.下列哪项不是风险管理的过程?( )。
A.风险规划B.风险识别C.风险评估D.风险收集参考答案:D10.在分层体系结构中,( )实现与实体对象相关的业务逻辑。
A.表示层B.持久层C.实体层D.控制层参考答案:D11.下列选项中不属于CI管道的是()。
A.构建B.模拟C.单元测试D.集成测试参考答案:B12.应该在( ),确定对象类中应有的服务。
A.建立对象模型之时B.建立动态模型和功能模型之后C.建立功能模型之后D.建立动态模型之后参考答案:B13.需求分析的主要方法有( )。
计算机软件工程设计复习在计算机软件工程设计中,复习是一项必不可少的工作。
通过复习,我们能够回顾和巩固已经学过的知识,提升对软件工程设计的理解和掌握。
本文将从软件开发生命周期、需求分析、设计模式以及软件质量保证等方面,对计算机软件工程设计进行复习,并提供相应的答案和解析。
一、软件开发生命周期软件开发生命周期是指软件从诞生到退役的整个过程。
它包括需求分析、设计、编码、测试和维护等阶段。
在软件开发生命周期中,每个阶段都有其特定的任务和目标。
1. 需求分析阶段需求分析阶段是软件开发生命周期的第一阶段,其主要任务是理解用户的需求并转化为明确的需求规格说明。
在需求分析阶段,应该进行以下工作:- 收集用户需求,了解用户的期望和需求。
- 对需求进行分析和分类,识别用户需求中的关键要素。
- 与用户进行沟通和协商,确保需求的准确性和完整性。
- 编写需求规格说明,明确描述软件的需求。
2. 设计阶段设计阶段是在需求分析阶段的基础上,进一步详细定义软件系统的结构和行为。
在设计阶段,应该进行以下工作:- 制定系统的总体结构和模块之间的关系。
- 根据需求规格说明,设计软件的功能和界面。
- 选择适当的设计模式和算法,提高软件的可维护性和可扩展性。
- 编写设计文档,对软件的设计进行详细说明。
3. 编码阶段编码阶段是根据设计文档,将设计好的软件系统转化为具体的计算机程序代码。
在编码阶段,应该进行以下工作:- 选择合适的编程语言和开发工具。
- 按照设计文档的要求,编写实现软件功能的代码。
- 采用合适的编码规范和代码注释,提高代码的可读性和可维护性。
- 进行单元测试,验证代码的正确性和功能是否符合需求。
4. 测试阶段测试阶段是对开发完成的软件系统进行各种测试,以验证其功能和性能是否满足需求规格说明。
在测试阶段,应该进行以下工作:- 制定测试计划和测试用例,覆盖软件系统的各个方面。
- 进行功能测试,检查软件的功能是否符合需求。
- 进行性能测试,验证软件的运行效率和资源消耗。
《Java 软件开发基础》复习提纲1. Java 语言的特点:面向对象、简单、平台无关性、健壮性和安全性、分布性、多线程、动态性、解释型2. Java 程序的类型:Application、Applet、JSP/Servlet3. 环境变量a) ApplicationI. javac HelloWorld.javaII. java HelloWorldb) AppletI. Javac HelloWorldApplet.javaII. appletviewer HelloWorldShow.html5. Java 标识符、关键字a) 标识符I. 用来唯一地标识 Java 程序中的各种成分的名称,包括类名、对象名、方法名、常量名和变量名II. 由字母、数字、下划线(_)和($)符号组成,但是标识符的第一个字符不允许为数字III. 长度不限,区分大小写,为提高可读性应使用有意义的名称b) 关键字(保留字)I. Java 语言为特殊目的而保留的由 ASCII 字符构成的字符串II. 关键字都有特定含义,只能用于特定位置,不能作为标识符使用III. 有些关键字尚未使用,如 goto, const 等IV. 有些非关键字如 true 和 false 也不能作为标识符使用6. 数据类型(基本类型和引用类型及区别)、类型转换a) 数据类型I. 确定了该类型数据的取值范围,由所占存储单元的多少而决定II. 确定了允许对这些数据所进行的操作III.分类1. 基本数据类型a) 由 Java 语言定义,编译器可以理解,不需要外部的程序b) 占用内存的大小固定c) 数据存储在栈内存中d) 分类I. 整数类型:byte(1 Byte)、short(2 Byte)、int(4 Byte)、long(8 Byte)II. 浮点类型:float(4 Byte)、double(8 Byte)III. 字符类型:char(4 Byte)IV. 布尔类型:boolean(1 bit)a) JAVA_HOME:JDK 的安装路径(C:\ProgramFiles\Java\jdk1.7.0_04\)b) Path:Java 的编译器等 JDK 可执行文件的路径(C:\Program Files\Java\jdk1.7.0_04\bin)c) Classpath:JVM 运行时所需加载的类字节码文件的路径(.)4. 编译和执行一个 Java 程序的命令2. 引用数据类型a) 由类库开发者和程序员定义,占用内存的大小不固定b) 数据存储在堆内存中,通过栈内存中的引用类型变量访问c) 引用类型变量的值为数据在堆内存中的地址d) 分类:类(class)、接口(interface)、数组[]b) 类型转换隐式类型转换:byte → short → char → int → long → float → double显式类型转换:(<类型名>)<表达式>II.7. 各种运算符、优先级、结合性a) 成员运算(.)、数组下标[]、括号():自左至右b) 单目运算(++)(--)(-)(!)(~):右/左c) 分配空间(new)、强制类型转换(type):自右至左d) 算数乘(*)、除(/)、求余(%)运算:自左至右(左结合性)e) 算数加减运算(+)(-):自左至右(左结合性)f) 位运算(<<)(>>)(>>>):自左至右(左结合性)g) 小于(<)、小于等于(<=)、大于(>)、大于等于(>=):自左至右(左结合性)h) 相等(==)、不等(!=):自左至右(左结合性)i) 按位与(&):自左至右(左结合性)j) 按位异或(^):自左至右(左结合性)k) 按位或(|):自左至右(左结合性)l) 逻辑与(&&):自左至右(左结合性)m) 逻辑或(||):自左至右(左结合性)n) 条件运算符(?:):自右至左(右结合性)o) 赋值运算(=)(*=)(/=)(%=)(+=)(-=)(<<=)(>>=)(>>>=)(&=)(^=)(|=):自右至左(右结合性)8. 选择和循环语句、break 和 continue 语句a) 循环语句:基本同 C++b) 跳转语句当程序中有嵌套的多层循环时,为从内循环直接退出外循环,可使用带标号的break label 语句,此时应在要退出的外循环的入口语句前方加上 label 标号。
软件开发技术复习题第一部分:1、哪种模型分批地逐步向用户提交一个满足用户需求子集的可运行的产品( )。
A. 增量模型B. 喷泉模型C. 原型模型D. 螺旋模型2、可行性分析研究的目的是( )。
A.争取项目B. 项目是否值得开发C.开发项目D. 规划项目3、软件复审是保证软件质量的重要技术手段,复审的主要目的和( )。
A. 较早发现程序错误B. 做测试的前期准备C. 较早发现软件缺陷D. 严格贯彻工程规范5.快速原型模型的主要特点之一是( )A.开发完毕才见到产品B.及早提供全部完整的软件产品C.开发完毕后才见到工作软件D.及早提供工作软件6.模块的内聚性最低的是( )A.逻辑内聚B.时间内聚C.偶然内聚D.功能内聚7.软件详细设计主要采用的方法是( )A.模块设计B.结构化设计C.PDL语言D.结构化程序设计8.程序的三种基本控制结构是( )A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移9.下列不属软件工程方法学的三要素的是( )。
A. 方法B. 工具C. 过程D.操作10.下列哪项不是在需求分析阶段要进行工作( )。
A. 问题识别B. 分析与综合C. 导出软件的逻辑模型D.编码11.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是( )。
A. 把软件划分成模块B.设计每个模块的伪代码C. 确定各个模块的功能D. 确定模块之间的调用关系12.影响软件开发成本估算的因素不包括以下哪项( )。
A.软件人员业务水平 B.软件开发规模及复杂度C.开发所需时间 D.开发所需硬件资源13.软件生命周期中所花费用最多的阶段是( )A.详细设计 B.软件编码C.软件测试 D.软件维护14.通过( )可以完成数据流图的细化。
A. 结构分解 B、 功能分解 C、 数据分解 D、 系统分解 15.Jackson方法是面向( )的设计方法。
A. 系统设计 B、 数据结构 C、 DFD D、 OO16.软件测试的目的是( )。
重点复习软工软工(软件工程)是计算机科学与工程领域的一门重要学科,旨在研究以科学原理与工程技术为基础,以经济、可靠和高质量为目标,开发和维护复杂软件系统的学科体系。
对于计算机相关专业的学生来说,软工是一门必不可少的课程。
本文将介绍关于软工的重点复习内容,以帮助读者更好地准备软工考试。
一、软件开发生命周期软件开发生命周期指的是从软件项目的规划到最终交付使用的整个过程。
它包含了需求分析、设计、编码、测试、维护等阶段。
在复习软工时,需要了解各个阶段的主要任务和活动,以及它们之间的关系和依赖。
1. 需求分析阶段:需求分析是软件开发的第一步,目的是识别出用户需求并定义功能和性能要求。
在这个阶段,需要学习如何进行需求获取、需求分析和需求建模等技术和方法。
2. 设计阶段:设计阶段是将需求转化为可执行的规划和设计方案的阶段。
这个阶段包括系统架构设计、详细设计、数据库设计等。
在复习软工时,需要了解常用的设计原则和设计模式,如单一职责原则、开放封闭原则、工厂模式、观察者模式等。
3. 编码阶段:编码阶段是将设计好的方案转化为计算机可执行代码的阶段。
在复习软工时,需要熟悉常用的编程语言和开发工具,如Java、C++、Eclipse、IntelliJ IDEA等。
同时,还需要了解编码规范和代码质量管理的重要性。
4. 测试阶段:测试阶段是为了发现和修复软件中存在的问题和错误。
在复习软工时,需要熟悉各种测试方法和技术,如单元测试、集成测试、系统测试、性能测试等。
此外,还需要了解测试用例的设计和执行,以及错误跟踪和修复的方法。
5. 维护阶段:维护阶段是软件开发生命周期中最后一个阶段。
它主要涉及对软件进行改进和修复。
在复习软工时,需要了解维护活动的类型和方法,如改正性维护、适应性维护、完善性维护等。
二、软件开发方法论软件开发方法论是指在软件开发过程中使用的一套规范和约束,它们可以指导和帮助开发团队更好地组织和管理软件项目。
在复习软工时,需要了解以下几种常见的软件开发方法论。
《工程软件开发技术》复习题1.软件产品具有哪些特性?(1)软件是一种逻辑产品,不是客观存在的实体,看不见摸不着,具有无形性,它是脑力劳动的结晶,它以程序和文档的形式保存在作为计算机存储器的磁盘和光盘介质上,通过操作计算机才能体现它的功能和作用。
(2)软件产品的生产主要是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发研制完成后,通过复制就可以产生大量的软件产品,不需要再花费人力物力。
(3)软件产品不会用坏,不存在磨损、消耗等问题。
(4)软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,大部分产品是“定做”的。
(5)软件费用不断增加,软件成本相当昂贵。
软件的研制工作需要投入大量的、复杂的、高强度的脑力劳动,它的成本非常高。
2.软件工程面临的问题有哪些?(1)软件费用。
软件生产基本上仍处于手工状态,软件是知识高集的技术的综合产物,人力资源远远不能适应软件这种迅速增长的社会要求,所以软件费用仍然继续呈上升的趋势。
(2)软件可靠性。
在软件开发中,通常要花费40%的代价进行测试和排错,就这样还不能保证以后不再发生错误,为了提高软件可靠性,就要付出足够的代价。
(3)软件可维护性。
统计数据表明:软件的维护费用占整个软件系统费用的2/3左右,而软件开发费用只占整个软件系统费用的1/3左右。
因此,软件工程面临如何提高软件的可维护性,减少软件维护的工作量的问题。
(4)软件生产率。
计算机的广泛应用使得软件的需求量大幅度上升,而软件的生产又处于手工开发的状态,软件生产率低下,使得各国都感到软件开发人员不足,这种趋势仍旧继续下去。
(5)软件重用。
提高软件的重用性,对于提高软件生产率、降低软件成本有重要意义。
当前的软件开发存在着大量重复的劳动,耗费了不少的人力资源。
软件重用是软件工程中的一个重要研究课题。
3.什么是测试用例?动态测试有哪些方法?所谓“测试用例”,是指为寻找程序中的错误而精心设计的一组测试数据,每个测试用例一般是一个二元组(输入数据、预期结果)。
软件开发技术复习题
一、名词解释
1 SQA / SCM
2 软件过程与过程改进
3 ESB(企业服务总线)
4 IT规划
5 RUP与XP过程模型
6 UML统一建模
二、简答题
1 优秀的需求的特征,如何获取有效的软件需求。
2 企业级软件特点与软件架构作用?。
3 说明软件建模语言UML进行软件系统分析设计过程。
4 IT规划的作用与步骤。
5 SOA体系架构特点与作用?
6 RUP对软件开发管理的商业实践的价值与意义。
7 CMM有何用途?描述其管理思想与体系结构。
三、综述题
1新一代网络技术条件下软件危机问题的新发展?软件开发技术平台如何适应软新变化。
2描述信息化需求的规划过程,说明基于SOA技术的企业级软件系统架构方法与关键技术描述。
论文作业:
1 如何构建随需变化的大规模企业级信息化软件系统?
提示:信息孤岛、信息融合、应用集成EAI、面向服务SOA、体系架构、模型驱动BEA Weblogic、IBM Websphere
2 新一代网络条件下软件开发平台的变化趋势?
提示:NGI、NGN、3G、P2P、IPv6、技术融合、网格技术、增值服务、DCOM/COM、JA V A、J2EE、.NET、开源软件、CORBAR
要求:两题必作,以学术论文的形式提交两篇综合报告,
1 每篇字数5000字,两篇合计共一万字内容(约A4纸10页)。
2 中英文摘要、关键词、参考文献(不少于10篇)
3 提交时间:课程结束上交(过期未交要扣20分)。
软件开发技术复习名词解释建模是一个从多视角进行逐层分解来求解问题的方法,通常采用分而治之的方法把系统中复杂、困难的问题进行细化分解,然后设法解决每一个小问题,最后通过组合完成系统的求解。
软件的质量保证:(SQA)是一种应用于整个软件过程的保护性活动,是恰当保证为项目生存周期中的软件产品和过程符合规定需求和已制订的计划提供足够保证的过程”。
“质量保证可以是内部的,也可以是外部的,取决于向供方还是顾客管理部门演示产品或过程质量的证据。
”RUP(Rational Unified Process,统一软件开发过程,统一软件过程)是一个面向对象且基于网络的程序开发方法论。
敏捷软件开发(极限编程——XP) 极限编程是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常严谨和周密的方法。
它的基础和价值观是交流、朴素、反馈和勇气;即,任何一个软件项目都可以从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是。
XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。
白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。
在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
软件配置管理(Software Configuration Management,SCM)是一种标识、组织和控制修改的技术。
软件配置管理应用于整个软件工程过程。
我们知道,在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。
SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。
从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动。
实体-联系(E-R)方法:反应的是现实世界中的事物及其互相联系,其基本构成元素有:实体、联系和属性模型(Model),视图(View)和控制Controller)MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。
使用MVC应用程序被分成三个核心部件:模型、视图、控制器。
MDA,Model Driven Architecture 模型驱动架构MDA提供了一种途径(通过相关的工具)来规范化一个平台独立的系统、规范化平台、为系统选择一个特定的实现平台,并且把系统规范转换到特定的实现平台。
MDA的三个主要目标是:通过架构性的分离来实现轻便性、互操作性和可重用性软件危机:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
耦合与内聚:内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。
它描述的是模块内的功能联系耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据软件测试的基本原则。
1) 应尽早地不断地进行软件测试2)开发人员应尽量避免测试3)注重测试用例的设计和选择4)充分注意测试中的群集现象5)避免测试的随意性,严格执行测试计划6)全面检查每一个测试结果7)妥善保护测试过程中的一切文档,为软件维护提供方便软件设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
模块与模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程,有多种属性,分别反映其内部特性;模块,又称构件,是能够单独命名并独立地完成一定功能的程序简答题1.常用软件开发模型有哪些?每种模型的优缺点。
1)瀑布模型•开发阶段的顺序过程;•前后的开发阶段存在因果关系;•发现错误的位置越向后则修改的难度和工作量就越大;2)原型模型•易于满足用户的近期需求;•开发过程的重复多、修改量大;•开发的产品质量较差;•原型化方法适用于需求不明确的系统3)增量模型融合了瀑布模型的基本成分和原型的迭代特征采用随着日程时间的进展而交错的线性序列4)螺旋模型•在原型基础上,进行多次原型反复并增加风险评估,形成螺旋模型。
•兼有瀑布模型和原型模型的特点;•通过多级验证已确保系统的质量;•开发周期长,适合大型项目5)迭代方法•这种方法可以在生命周期早期强制性的确定项目中存在的风险。
•这种方法是一个连续地发现、创造和实现的过程。
•在每个迭代过程中,促使开发小组以一种循环的、可预测的方式驱动项目制品的生产和制作。
2.结构化开发方法的基本思想与开发过程。
结构化开发方法用系统的思想和系统工程的方法,按照用户至上的原则结构化、模块化,自顶向下对系统进行分析与设计结构化方法按软件生命周期划分,有结构化分析(SA),结构化设计(SD),结构化实现(SP)。
3.需求分析有何重要性?简述获取需求的过程。
需求分析就是分析软件用户的需求是什么.如果投入大量的人力,物力,财力,时间,开发出的软件却没人要,那所有的投入都是徒劳. 需求分析之所以重要,就因为他具有决策性,方向性,策略性的作用,他在软件开发的过程中具有举足轻重的地位.需求获取:收集各类表格、报表,阅读业务规程,掌握业务术语实地考察企业业务流程,分析用户的工作内容和工作方式与用户进行面谈,获取信息并验证已知信息的正确性听取业务专题报告:针对比较复杂的业务需求通过构建系统原型更好地理解需求和获得用户的潜在需求4.分布式系统架构的常用模型有哪些?分别有何特点。
OMG的CORBASun的J2EEMicrosoft DNA 20005.CMM有何用途?描述其5个成熟度等级。
是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。
成熟度等级1):初始级(Initial)。
处于这个最低级的组织,基本上没有健全的软件工程管理制度。
成熟度等级2):可重复级(Repeatable)。
在这一级,有些基本的软件项目的管理行为、设计和管理技术是基于相似产品中的经验,故称为“可重复”。
成熟度等级3):已定义级(Defined)。
在第3级,已为软件生产的过程编制了完整的文档。
成熟度等级4):已管理级(Managed)。
一个处于第4级的公司对每个项目都设定质量和生产目标。
成熟度等级5):优化级(Optimizing)。
—个第5级组织的目标是连续地改进软件过程。
6.数据流图的作用是什么?它有哪些要素并简要说明?数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
→:数据流。
数据流是数据在系统内传播的路径,因此由一组成分固定的数据组成。
如订票单由旅客姓名、年龄、单位、身份证号、日期、目的地等数据项组成。
由于数据流是流动中的数据,所以必须有流向,除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名。
□:数据源(终点)。
代表系统之外的实体,可以是人、物或其他软件系统。
○:对数据的加工(处理)。
加工是对数据进行处理的单元,它接收一定的数据输入,对其进行处理,并产生输出。
〓:数据存储。
表示信息的静态存储,可以代表文件、文件的一部分、数据库的元素等。
7.简述UML视图中类图和对象图的联系与区别?类图(Class Diagram)是描述类、接口、协作以及它们之间关系的图,用来显示系统中各个类的静态结构,对象图(Object Diagram)描述的是参与交互的各个对象在交互过程中某一时刻的状态类图对象图类具有3个分栏:名称、属性和操作对象只有两个分栏:名称和属性在类的名称分栏中只有类名对象的名称形式为“对象名:类名”,匿名对象的名称形式为“:类名”类的属性分栏定义了所有属性的特征对象则只定义了属性的当前值,以便用于测试用例或例子中类中列出了操作对象图中不包括操作,因为对于同属于同一个类的对象而言,其操作是相同的类使用关联连接,关联使用名称、角色、多重性以及约束等特征定义。
类代表的是对对象的分类所以必须说明可以参与关联的对象的数目对象使用链连接、链拥有名称、角色,但是没有多重性。
对象代表的是单独的实体,所有的链都是一对一的,因此不涉及到多重性。
8.什么是可行性分析?为什么要进行可行性分析?可行性分析是通过对项目的主要内容和配套条件从技术、经济、工程等方面进行调查研究和分析比较,并对项目建成以后可能取得的财务、经济效益及社会环境影响进行预测,从而提出该项目是否值得投资和如何进行建设的咨询意见,为项目决策提供依据的一种综合性的系统分析方法。
为了避免盲目投资,减少不必要的损失,即以最小的代价在最短的时间内确定该项目是否可能开发是否值得投资9.软件危机有哪些表现?软件开发费用和进度失控,软件的可靠性差,生产出来的软件难以维护。
软件成本在计算机系统总成本中所占的比例居高不下,且逐年上升软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的需要,软件产品供不应求的状况使得人类不能充分利用现代计算机硬件所能提供的巨大潜力。
10.软件测试的基本过程。
1.拟定测试计划:测试的内容、进度安排、测试所需的环境和条件、测试培训安排2.编制测试大纲:详细规定了针对系统的每一项功能或特性所必须完成的基本测试项目和测试完成的标准3.设计和生成测试用例:根据测试大纲进行设计内容有:被测项目、输入数据、测试过程、预期输出结果等4.实施测试5.生成测试报告:对测试进行概要说明,列出测试结论,指出缺陷和错误单元测试、集成测试、确认测试、系统测试、验收测试11.优秀的需求的特征,如何获取有效的软件需求。
12.请介绍可视化开发的特点及应用。
可视化开发使我们把注意力集中在业务逻辑和业务流程上,用户界面可以用可视化工具方便的构成。