1,什么是软件,软件的性质软件是完成某类问题求解的程序和数据以及为维护程序必须提供的一系列文档组成的集合。软件=程序+数据+文档。软件的内在性质是:软件具有高度的抽象性和严密的逻辑性。软件的外在性质是:软件是一种逻辑信息产品,是用文字、符号表达的智力产物。2,什么是工程化工程化的软件开发方法与早期的程序设计方法的不同点在哪里?将成熟工程领域的方法应用于软件开发。工程化的方法包括如下四个方面:⑴.具有相应的理论与技术⑵.具备实现工程化的工具和环境⑶.具备统一的工程规范⑷.管理和控制3,软件工程研究的内容软件项目的管理软件工程的知识体系包括如下内容过程:软件开发的步骤。方法:软件开发各步骤所用到的技术。管理:控制软件开发按照过程和方法顺利完成的技术和措施。工具:辅助人们贯彻过程和方法,并实施管理1,可行性分析包含哪些内容,它们的含义是什么?答:⑴.经济上可行性:论证系统有没有经济效益或社会效益?多长时间能回收成本?⑵.技术上可行性:实现新系统需要哪些技术,现有技术能否解决,难点?建议采用的技术先进程度怎样?新技术的应用是否存在风险?是否能够找到胜任该系统的熟练的技术人员?等等⑶.操作上可行性:系统的操作方式在用户所在的组织内是否可行,特别是对原有系统扩展会不会引起矛盾。⑷.法律上可行性:会不会引起侵权、会不会引起其他的社会问题。2,下列哪些工作中需要估算软件成本?I)软件可行性研究II)软件计划III)软件需求分析IV)软件运行和维护三1,结构化分析方法的三种描述手段数据流图,掌握数据流图中的基本符号,大题要求给出一个需求能够画出多层数据流图数据字典加工说明的三种描述工具是:结构化语言、判定树和判定表来表示2,结构化方法的特点:自顶向下,逐层分解,抽象和分解3,用户需求:•某学校需要开发一套基于Web的研究生招生管理系统,用户需求如下:–考生可以登录系统提交报名信息,报名信息经过格式确认存入数据库;信息提交成功后能够网上在线支付报名费并记录交费信息;交费成功的考生可以打印报名表。–各院系教务员能够查看和审核考生提交的报名信息,确定信息是否准确有效,最后给出审核是否通过的标志。教务员还能够打印报名考生清单。–招生办公室管理员能够查询有效的报名考生信息和打印统计报表;能够生成报名考生数据文件上报到上级单位(教育部)。题目要求:•请用SA方法对它进行分析,画出分层数据流图。(只要求数据流图,不要求数据字典和研究生招生管理系统0考生教务员报名信息,交费信息报名信息、考生清单教务员审核信息考生管理员考生信息,统计表报名表报名信息库报名信息加工说明)•顶层数据流图••••四1,面向数据流的软件设计方法,一般将数据流图分成两种类型,一种称为________,另一种称为________。变换型,事务型-----大题,变换型转换成软件结构图2,简述结构设计的任务?•答:–制定规范–软件结构的设计–数据结构的设计及接口设计–系统性能设计–软件质量的设计–设计文档的编写–设计的审查和复审3,什么叫做耦合,耦合有哪几种类型,几种类型间的耦合强弱关系?4,什么叫做内聚,内聚有哪几种类型,类型间的内聚强弱关系?5,耦合、内聚与模块独立性的关系?(1)内聚是指模块内部各软件元素之间结合的紧密程度(2)耦合是度量一个软件结构中模块与模块之间联系程度强弱的一个指标(3)内聚程度越高模块独立性越强,耦合程度越低模块独立性越强。六1,继承的概念,理解泛化关系与聚集关系的概念2,UML统一建模语言,用例图什么是UML?•答:UML是UnifiedModelingLanguage统一建模语言的缩写,统一建模语言是软件系统建模的表示工具。•本题考核UML基本概念。UML和C语言、Java语言等不同,它不是程序设计语言,而是用面向对象方法对系统进行分析设计的表示工具,类似与数据流图和软件结构图。--3,简答题:什么是对象?什么是面向对象?•答:•对象是各种客观实体的抽象,是由一组属性和对这组属性进行操作的一组服务结合在一起所构成的独立实体。•面向对象就是运用对象、类、继承、封装、消息、结构与连接等面向对象的概念对问题进行分析、求解的系统开发技术,七1,详细设计的任务•详细设计工具(程序流程图与盒图【的转换】(简答题),PAD图之间的转化)•了解程序复杂性度量的McCabe方法,了解环域复杂性的概念大题综合题:求一组数的最大数的算法。请为上述算法画程序流程图,并分别转换成NS图,最后计算算法的环域复杂度。2,简答题:详细设计的任务包括哪些?3,简答题:程序复杂性度量的方法有哪些?那种方法是利用环域复杂度计算程序复杂性的。语句行度量方法McCabe方法Halsead方法八1,程序设计语言的三个特性分别是________,________,________。•答:工程特性,技术特性,心理特性。理解每种特性的含义,尤其是心理特性。2,选择程序设计语言的最关键因素是软件项目的应用领域。九--1,白盒测试技术的基本原理是什么?构造白盒测试的测试用例有哪几种方法?•答:允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。•构造测试用例有逻辑覆盖法和基本路径测试法。2,黑盒测试黑盒测试技术,不考虑软件内部结构,而是以软件需求规格说明书为根据来设计测试用例的测试技术。2.1……2.2黑盒测试等价分类法构造测试用例•有一信用卡,其密码号为五位,首位规定A或B,其他4位规定为数字位,请列出二个有效等价密码和四个无效等价密码作为一组测试用例,以便测试密码识别程序。有效测试用例:①________________,②________________。无效测试用例:每个无效等价类选一个①________________,②________________,③________________,④________________。•有效等价类–首位为A或B,A1234–2-5位为数字,B8888•无效等价类–首位非字母,12345–首位字母不是A或B,C5700–2-5位有非数字,A23F4–密码长度不等于5位,B123453,简答题:软件测试的步骤有哪些?其中哪一步是和系统其它元素联合测试,哪一步需要用户参与?•答:单元测试,集成测试,确认测试,系统测试,验收测试•系统测试,验收测试4,黑盒测试技术的基本原理是什么?构造黑盒测试的测试用例有哪几种方法?--5,白盒测试技术属于静态测试还是动态测试?黑盒测试技术属于静态测试还是动态测试?6,软件测试的对象是什么?软件及软件文档配置项7,什么样的测试是一次成功的测试?能找出错误的测试才是成功的测试十1,软件维护的4种类型,理解4种类型的概念2,软件维护的内容非常广泛,可以分为________,________,________和________。•答:改正性维护,适应性维护,完善性维护,预防性维护•理解每种维护工作需要完成的内容。3,什么叫做完善性维护?4,因计算机硬件和软件环境的变化而做出的修改软件的过程称为________维护?十四1,了解软件过程模型–传统过程模型(瀑布模型、螺旋模型、增量模型)–统一过程模型(RUP)–敏捷过程模型(极限编程)十五1,简答题:什么是软件项目管理,软件项目管理需要完成什么工作。•答:软件项目管理的定义:为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。软件项目管理完成的主要工作是:风险分析和管理,时间管理(项目进度安排),成本管理,软件项目计划,软件配置管理等。2,什么是软件配置管理?3,什么是软件度量?软件度量在软件开发中起什么作用?4,项目管理的9大知识领域包括哪些?2.软件工程正确答案:软件工程是研究如何将完善的科学与工程原理,先进高效的管理技术以及完整规范的设计方法应用于经济地开发即可靠,又能在实际计算机上有效运行的软件的一门工程学科。3.软件生命周期正确答案:软件生命周期是一个软件系统从目标提出、定义、开发、使用和维护,直到最后丢弃的整个过程。4.模块独立性正确答案:所谓模块独立性是指模块完成它自身规定的功能而与系统中其它的模块保持一定的相对独立。6.什么是软件危机?危机的主要表现是什么?正确答案:(1)软件危机是指在软件开发和维护中遇到了一系列严重的问题。(2)表现:a)对软件开发的成本和进度难于估计。b)软件质量不高,潜在差错的危害。c)缺乏完整、正确的文档,维护极困难,难于移植以至于不得不重复开发类似的软件。d)传统手工生产方式使软件生产率低,难以满足社会对软件日益增长的需要。7.什么是软件开发的工程化?工程化的软件开发方法与早期的程序设计方法的不同点在哪里?正确答案:软件工程学的核心思想是:用工程化的规范方法指导软件的开发、运行及维护工作。工程化需要包括如下四个方面:⑴.具有相应的理论与技术⑵.具备实现工程化的工具和环境⑶.具备统一的工程规范⑷.管理和控制早期的程序开发方法没有统一的指导原则,随意编写程序,强调程序执行效率。工程化的软件开发方法具有统一的指导原则,规范化的开发软件,强调软件的可理解性,可维护性和可复用性。8.瀑布模型的主要缺点是什么?原型开发方法有什么好处?正确答案:(1)瀑布模型给出了固定的开发顺序,它的突出缺点是缺乏灵活性。软件需求往往无法一下子彻底弄清,因此瀑布模型可能导致开发出的不是用户真正需要的软件,或者由于需求不能确定而造成项目后续工作无法开始。(2)瀑布模型很难适应需求的动态变更,特别是用户对需求处于模糊认识时更为困难。后期更改需求将付出高昂的代价。(3)原型方法的好处包括:增进了软件开发人员和用户对系统需求的理解,使比较含糊的软件需求明确化;提供了一种有力的学习手段。9.需求与设计的主要任务是什么?正确答案:(1)需求的任务:a)对问题的识别和理解——需求获取b)对需求信息的分析和综合——需求规约c)编制“需求规格说明书”d)需求分析的复审(2)设计的任务:a)制定规范。b)软件结构的设计c)数据结构的设计及接口设计:d)系统性能设计e)软件质量的设计f)设计文档的编写g)设计的审查和复审11.什么是对象,什么是类,对象和类的关系是什么?正确答案:(1)对象是各种客观实体的抽象,是由一组属性和对这组属性进行操作的一组服务结合在一起所构成的独立实体。它构成了系统概念模型的基本单元。(2)类是一组具有相同数据结构和相同操作的对象的集合。类的定义包括一组数据属性和在数据上的一组合法操作。(3)类中的每个对象都称为该类的一个实例。12.什么是白盒测试,什么是黑盒测试?正确答案:白盒测试技术是从程序内部结构入手来设计测试用例的测试技术;黑盒测试技术则相反,不考虑软件内部结构,而是以软件需求规格说明书为根据来设计测试用例的测试技术。