Adaptive maintenance适应性维护:为使软件产品在新的环境下仍能使用而进行的维护,称为适应性维护。
Data flow diagram数据流图:描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出的加工过程。
baseline基线:它提供一个正式标准,随后的工作基于此标准,并且只有经过授权后才能变更这个标准。
建立一个初始基线后,以后每次对其进行的变更都将记录为一个差值,直到建成下一个基线。
Big-bang testing一次性组装测试:也叫集成测试,是单元测试的扩展,最简单的形式是两个已经测试过的单元组成一个整体,并且测试他们的接口。
Black box黑盒:是对一个项目组建造的软件的修改标识,组织和控制的技术,其目标是通过最大限度的减少错误,来最大限度提高生产率。
白盒测试:也称结构测试或透明盒测试,测试应用程序的内部结构或运作,而不是测试应用程序的功能。
Software configuration item软件配置项:软件生存周期各个阶段活动的产物经审批后即可称之为软件配置项。
为了配置管理而作为单独实体处理的一个工作产品或软件。
Configuration management配置管理,配置管理是对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。
Corrective maintenance 改正性维护:在软件交付运行以后,由于开发阶段测试工作的不彻底,不完全,一些隐藏的软件错误在系统运行的过程中逐步暴露出来,通常把发现和改正这类错误的过程叫做改正性维护。
Coupling 耦合:何亮不同模块之间接口的相对独立性。
Integration testing集成测试:在单元测试的基础上,将所有模块按照概要设计组装成为子系统或系统进行测试cohesion内聚:衡量一个模块内部各个元素彼此结合的紧密程度。
Detailed design详细设计:是对概要设计的一个细化,就是详细设计每个模块实现算法所需的局部结构。
Test case测试用例:是一组条件或变量,测试者根据它来确定应用软件系统是否正确工作。
Program design language 过程设计语言:它是用正文现实表示数据和处理过程的设计工具。
模块化:把软件按照规定原则,划分为一个个较小的相对独立的但又相对关联的部件prototyping原型:目标系统软件的一个可操作的模型,它实现了目标软件系统的某些重要方面的功能。
Information hiding信息隐蔽:模块应该设计设计的使共所信息(过程和数据)对于哪些不需要这些信息的模块来说是隐蔽的,每个模块只完成一个相对独立的特定功能,模块这件仅仅叫唤哪些为完成系统功能而必须交换信息。
requirement软件需求:用户对目标软件系统在功能,性能,介为,设计约束等方面的期望Requirement analysis需求分析:通过对应用问题及其环境的分析与理解,采用一系列的分析方法和技术,将用户的需求逐步精确化,完全化,一致化,最终形成需求规格说明文档的过程。
software软件:软件=程序+数据+文档Software life cycle软件生命周期:软件产品从形成概念开始,经过定义,开发,使用和维护知道最后退役的过程Stepwise refinement逐步求精:随着软件开发过程的进展,在软件结构每一层中的模块,表示了对软件抽象层次的一次精化。
Structured program结构化编程:一种编程典范,采用子程序、for循环以及while循环等结构,来取代传统的goto。
testing软件测试:使用人工或自助手段来运行或测定某个系统的过程Walk-through代码走查:是一个开发人员与构架师讨论代码的过程Waterfall model瀑布模型:将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水。
Regression testing回归测试,在发生修改之后重新测试前的测试保证修改的正确性Unit testing单元测试:是开发者编写的一小段代码,用于检测被测代码的一个很小的很明确的功能是否正确。
//指对软件中的最小可测试单元进行检查和验证。
1、软件的特点:P31软件是一种逻辑实体,具有抽象性2软件的生产与硬件的生产存在某些相同点,但二者有根本上的不同。
3软件的维护更为复杂,成本更高。
4软件在运行和使用期间,没有硬件的机械磨损,老化问题,但软件存在退化问题5大多数软件是根据客户实际需求制定的,而不是通过已有构件组装而成的。
2、计算机软件的发展阶段,各有何特点?P2第一阶段:编写程序只有低级语言,不存在什么系统化的方法,程序的质量完全依赖于程序员个人的技巧。
第二阶段:高级程序设计语言出现,开始用工程化的方法解决软件危机问题。
第三阶段:分布式系统出现,硬件的发展使软件危机加剧。
开始研究软件工程学的科学理论、方法等一系列问题。
第四阶段:面向对象的技术的出现,多媒体技术快速发展。
//3、什么是软件危机?其产生的原因是什么?P5软件危机是指由于落后的软件生产力方式无法满足迅速增长的计算机软件应用需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
原因:1和软件本身的特点有关2和软件开发与维护的方法不正确有关//4、什么是软件工程,其目标和内容是什么?P6软件工程,将系统化的,规范的,可度量的方法应用于软件的开发,运行和维护的过程。
目标:在给定的成本和进度前提下,开发出具有可修改性,可理解性,可维护性,有效性,可靠性,可适应性,可移植性,可跟踪性和互化性并且满足用户需求的软件产品内容5、什么是软件生存周期模型?它有哪些主要模型?软件周期模型:即软件的开发模型,清晰直观的反映了软件开发的全部过程、所涉及的活动和任务结构框架,并指出了开发各阶段的关系、开发活动的衔接情况。
模型:瀑布模型,原型模型,螺旋模型,增量模型,喷泉模型,迭代模型。
6、什么是软件生命周期?包括哪些阶段?各阶段有哪些活动?P10我们把软件产品从形成概念开始,经过定义、开发、使用、维护直到退役的全过程称为软件生命周期。
软件定义:问题定义、系统的可行性研究、需求分析软件开发:概要设计、详细设计、编码、软件测试软件使用维护:软件发布与实施、软件维护退役:版本更新或退役7、瀑布模型和原型模型的特点:P12瀑布模型特点:阶段间具有顺序性和依赖性关系、推迟实现、质量保证缺点:逆转性差,错误的传递会采取发散扩大的方式。
原型模型的特点:1适合需求不确定的情况2使用软件重用技术3缩短了开发周期,降低成本8、什么是软件开发方法?软件开发有哪些主要方法?定义:软件开发过程所遵循的办法和步骤。
主要方法:1结构化方法2面向对象的方法//9、讲述软件需求,需求分析,需求建模概念,含义与区别:p26,p38软件需求:指用户对目标软禁系统在功能,性能,行为,设计约束等方面的期望,这种期望可能是原始的,笼统的,也可能是抽象的太细节化的需求分析:通过对应用问题及环境的分析与理解,采用一系列的分析方法和技术,将用户的需求逐步精确换,完全化,一直化,最终形成需求规格说明文档的过程需求建模:为了理解事物所做出的一种抽象,用符号语言对事物屋歧义的书面描述。
//10、可行性研究的目标及主要内容是什么?目标:用最小的代价在尽可能短的时间内确定该软件项目是否能够开发是否值得去开发内容:1经济可行性2技术可行性3方案可行性4社会环境和人的可行性//11、成本效益分析可用哪些指标进行度量?//12、需求分析各阶段的基本任务是什么?P281明确所开发的软件必须具备什么样的功能,获得当前系统的物理模型2抽象出当前系统的逻辑模型建立目标系统的逻辑模型3为了对目标系统做完整的描述,还需要对得到的逻辑模型做一些补充4编写文档5需求验证13、常见的初步软件需求获取的方法有哪些?为什么用这些方法进行需求获取?P331访谈与会议2观察用户工作流程3建立联合小组4快速原型法5基于本体的需要获取方法。
为了准确、全面的获取软件需求的信息。
14、简述需求分析阶段的过程P36问题识别、分析与综合、编制需求分析阶段的文档、需求验证。
//15、可行性研究的具体步骤1确定项目规模和目标2研究正在运行的系统3建立新系统的高层逻辑模型4导出和评价各种方案5推荐可行的方案6编写可行性研究报告//16、在软件需求分析时,应首先建立当前系统的物理模型,再根据物理模型建立当前系统的逻辑模型,试问,什么是当前系统的物理模型?当前系统的物理模型与逻辑模型有什么区别?P28物理模型:确定待开发软件系统的系统元素,并将功能和数据结构分配到这些系统元素中,它是软件的基础。
与物理模型不同,逻辑模型很是实现机制与细节,只描述系统要完成的功能和要处理的数据。
//17、什么是软件的概要设计?该阶段的基本任务是什么?软件的概要设计:设计出软件的总体结构框架基本任务:1设计软件系统结构(软件结构)2数据结构及数据库设计3编写概要设计文档4评审//18、详细设计的基本任务是什么?有哪几种描述方法?基本任务:1为每个模块进行详细的算法设计2为每个模块内的数据结构进行设计3对数据库进行设计4其他设计5编写详细设计说明书6评审描述方法:程序流程图2PAD图3过程设计软件//19、软件设计的基本原理包括哪些?P511抽象与逐步求精2模块化3信息屏蔽4模块独立20、衡量模块独立性的两个标准是什么?个表示什么含义?P571内聚,衡量一个模块内部各个元素彼此结合的紧密程度2耦合,衡量不同模块之间的相对独立性21、模块的内聚有哪几种?各表示什么含义?P611巧合内聚2逻辑内聚3时间内聚,4过程内聚5通信内聚6信息内聚7功能内聚22、模块的耦合有几种?各表示什么含义?P571非直接耦合2数据耦合3标记耦合4控制耦合5外部耦合6公共耦合7内容耦合23、结构化程序设计的基本要点是什么?P76任何程序逻辑都可以用顺序,选择,循环三种基本控制结构,并且每个代码块只有一个入口和一个出口,逐步求精,则称这个程序是结构化的。
结构化设计方法的主要思想是进行逐层分解和模块化。
//25、什么是结构分析方法?该方法使用什么描述工具?机构化分析方法:一种利用自顶向下逐层分解,由粗到细,有复杂到简单技术的求解方法描述工具1数据流图2实体关系图3数据字典4描述基本加工的小说明//26、什么是数据流图?作用是什么?其中个符号表示什么含义?P87数据流图是描述熟路流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,一级把逻辑输入转换逻辑输出所需的加工处理。
//27什么是数据字典?作用是什么?有哪些条目?P94数据字典是软件分析工程中对数据的描述,是数据流程图的必不可少的辅助资料。