软件工程总结 具体

时间:2024.4.20

第一章

1.什么是软件危机?它有哪些典型表现?为什么会产生软件危机?

软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

这些问题表现在以下几个方面:

   (1)用户对开发出的软件很难满意。

   (2)软件产品的质量往往靠不住。

   (3)一般软件很难维护。

   (4)软件生产效率很低。

   (5)软件开发成本越来越大。

   (6)软件成本与开发进度难以估计。

   (7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。

产生软件危机的原因

  (1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。

  (2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。

  (3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。

2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清楚他呢?”应该怎样反驳他?

   反驳:发生在编码时期的故障极有可能是需求分析阶段由于操作不当产生的,所以必须及时消除错误,否则,到了后期软件运行和维护阶段再回过头来修改,将会付出更大的代价。

3.什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?

  软件工程是指导计算机软件开发和维护的工程学科。

   (1) 它采用工程的概念、原理、技术和方法来开发和维护软件;

   (2) 它将管理技术与当前经过时间考验的而证明是正确的技术方法结合起来;

   (3) 它强调使用生存周期方法学和结构分析和结构技术;

   (4) 经过人们长期的努力和探索,围绕着实现软件优质高产这个目标,从技术到管理两个方面做了大量的努力,逐渐形成了"软件工程学"这一新的学科。

消除软件危机的措施:

(1)对计算机软件有一个正确的认识(软件≠程序)

(2)必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。

(3)推广使用在实践中总结出来的开发软件的成功技术和方法。

(4)开发和使用更好的软件工具

& 1. 技术措施

              推广和使用在实践中总结出的好的软件开发技术和方法,并不断探索和研究更有效的技术。

              开发和使用更好的软件工具,包括采用好的开发工具,系统分析和辅助设计工具等,以提高工作效率。

& 2. 管理措施

     吸收和借鉴人类长期以来从事各类工程项目所积累的行之有效的原理、概念、技术和方法

4. 软件生命周期的定义:

   一个软件从定义、开发、使用和维护,直到最终被废弃为止的整个过程

   软件生命周期的构成:

5. 软件生命周期的各个阶段和任务:

   定义时期:问题定义   可行性研究  需求分析

开发时期:总体设计   详细设计    编码和单元测试   综合测试

维护时期:综合测试

(1)问题定义:通过对系统实际用户和使用部门负责人的访问调查,明确要解决问题性质、工程目标和规模。

(2) 可行性研究:导出系统的高层逻辑模型(数据流图),并在此基础上更准确、更具体的确定工程的规模和目标;更准确的估计系统的成本和效益。

(3) 需求分析:和用户密切配合,充分交流信息,以得到用户确认的系统逻辑模型(数据流图、数据字典及简要的算法表示的系统逻辑模型)。

(4) 总体设计:

       1)提出几种可能的解决方案,权衡各种方案的利弊,并推荐出最佳方案;

       2)设计软件的结构,确定软件的模块构成及模块之间的关系。

(5) 详细设计:把解决问题的方案具体化,设计出程序的详细规格说明,并包含必要的细节信息。

(6) 编码和单元测试:将详细设计的结果翻译成高级程序设计语言的源程序,并仔细测试编写的每一个模块。

(7)综合测试:通过各类型的严格测试与调试,使软件达到预定的要求。        1)集成测试:各模块装配后测试;

       2)验收测试:按规格说明书。

(8) 软件维护:通过必要的维护工作使得系统持久的满足用户的需要:

           1)改正性维护;2)适应性维护;

           3)完善性维护;4)预防性维护

6.软件工程的定义:

   采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的技术方法结合起来,来指导软件的开发与维护

7.软件工程的基本原理:

(1) 用分阶段的生命周期计划严格管理

        项目概要计划,里程碑计划,项目控制计划,产品控制计划,验证计划,运行维护计划。

(2)坚持进行阶段评审(评审过程)

         每个阶段都进行严格的评审,以便尽早发现错误。

(3)实行严格的产品控制

        实行基准配置(经过阶段评审后的软件配置成份,包括文档和程序代码)对软件的修改进行严格管理。

(4)采用现代的程序设计技术

        结构化分析(SA)与设计(SD) ;面向对象的分析(OOA)与设计 (OOD)。

(5) 结果能清楚的审查

         规定开发组织的责任和产品标准。

(6) 开发小组的人员应该少而精

           成员素质要好,人数不宜过多。

(7)承认不断改进软件工程实践必要性

8.软件工程方法学定义:

  通常把在软件生命周期全过程中使用的一整套技术方法的集合成为…(亦为范型)

9.软件工程方法学的三要素:方法、工具、过程

10. 软件工程方法学的包括:

  简述结构化范型和面向对象范型的要点,并分析它们的优缺点

    传统方法学(生命周期方法学/结构化范型)

(1)仍然是使用十分广泛的软件工程方法学。

(2)采用结构化技术来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。

(3)从上而下,顺序地完成软件开发的各阶段任务

面向对象的方法学

(1)出发点和基本原则是尽量模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识实践解决问题的方法与过程,从而使描述问题的问题空间与实现解法的解空间在结构上尽可能一致

(2)把对象作为融合了数据及在数据上的操作行为的统一软件构件;

(3)把所有对象都划分成类;

(4)按照父类与子类的关系,把若干个相关类组成一个层次结构的系统;

(5)对象彼此间仅能通过发送消息互相联系

11. 什么是软件生命周期模型? 模型分类?

   软件开发过程模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。 

   亦称为: 软件开发模型  软件生存期模型

   分类(1)瀑布模型 (2)快速原型模型 (3)增量模型 (4)螺旋模型(5)喷泉模型

12.试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围?

瀑布模型:

【适用领域】:用户需求清楚的表达

优点:1.可强迫开发员采用规范的方法 2.严格地规定了每个阶段必须提交的文件

3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。

缺点:传统的瀑布模型过于理想化,是由文档驱动的。

快速原型模型:

(1)  一般用于最终系统的早期用户评价,开发工期短,质量有保证

(2)软件产品的开发基本是线性顺序进行的,加速软件开发,节省软件开发成本

【适用领域】:事先不能完整定义需求的领域

增量模型:

【适用领域】:用户逐步需求提交产品

  (1)先完成一个系统子集的开发,再按同样的开发步骤增加功能 (系统子集),如此递增下去直至满足全部系统需求。

(2)系统的总体设计在初始子集设计阶段就应作出设想

13.软件开发方法:软件开发过程所遵循的方法和步骤

开发过程一般包括:需求、设计、实现、确认等活动

主要针对需求和设计的典型方法: 结构化方法 (SASD)

                              面向数据结构方法(OSD)

                              面向对象方法(OO)

第二章

1.在软件开发的早期阶段为什么要进行可行性研究?

z     可行性研究的目的:就是用最小的代价在尽可能短的时间内确定问题是否能够解决。

2. 可行性研究的任务?应该从哪方面研究目标系统的可行性?

可行性研究的任务:

1.进一步分析和澄清问题;

2.导出系统的逻辑模型;

3.从逻辑模型出发,提出若干种系统实现方案

4.研究每种实现方案的可行性:

z       技术上的可行性 ——使用现有的技术能实现这个系统吗?

z       经济上的可行性 —这个系统的经济效益能超过它的开发成本吗(投资与效益)

z       操作可行性 ——系统的操作方式在这个用户组织内行得通吗?

z       社会、政策允许的可行性

5.为每个可行的解决方案制定一个粗略的实现进度

6.对以后的行动方针提出建议

3.数据词典(DD)的定义、组成、用途、例子:

   (1)定义:描述数据流图中数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。它对数据流图上每一个成分:数据项、文件(数据结构)、数据流、数据存储、加工和外部项等给以定义和说明;

(2)组成:由数据流、数据流分量(即数据元素)、数据储存、处理四部分组成。对用户来讲,数据字典为他们提供了数据的明确定义;对系统分析员来讲,数据字典帮助他们比较容易修改已建立的系统逻辑模型

  (3)用途:

a.作为分析阶段的工具,与数据流图共同来完整的描述一个系统。数据流图只描述了系统的逻辑模型,但是没有给出数据及各个加工处理过程的具体含义;而数据字典则是其有益的补充。

b.数据字典中包含的每个数据元素的控制信息是很有价值的。

c.开发数据库的基础。

(4)例子:

         

4.可行性研究报告的主要内容/步骤?

可行性分析的结果是可行性研究报告,内容包括:

(1) 系统概述:说明开发的系统名称,提出单位和开发单位。

 (2) 可行性研究的前提:系统目标;要求;约束和限制;可行性研究的基本准则等。

(3) 对现有系统的分析:处理流程,图示说明现有系统的处理流程和数据流程;现有系统存在的问题。

(4) 系统需求:主要功能;主要性能及其要求;操作要求;信息要求;限制性要求。

(5) 建议系统:系统目标;处理流程;系统结构,功能,性能;系统技术可行性;投资和效益分析;操作可行性;法律可行性。

(6) 其它可选方案:与国内外同类型方案的比较;提出一两个可行性方案供论证和探讨。

(7) 制定下一阶段的预算。

 (8) 结论性意见:由用户方、设计方和投资方共同签署意见。

5.可行性研究过程的步骤/怎样进行可行性研究?

   (1)复查系统规模和目标

  (2)研究目前正在使用的系统

  (3)导出新系统的高层逻辑模型

(4)进一步定义问题

(5)导出和评价供选择的解法

(6)推荐行动方针

(7)草拟开发计划

(8)书写文档提交审查

6.系统流程图:

    基本符号                               系统符号

 

7.数据流图(DFD):是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换

   

8. 数据流图的用途:

  (1)作为交流信息的工具

(2)作为分析和设计的工具

9.计算机储蓄系统。储户填写的存款单或者取款单由业务员输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。

写出问题定义并分析此系统的可行性。

10.机票预订系统。旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统校对无误即印出机票给旅客。

写出问题定义并分析此系统的可行性。

11.成本/效益分析:

第三章

1.需求分析的基本任务是什么?

准确定义未来系统的目标,确定为了满足用户的需要系统必须做什么

需求分析的8大任务:

  (1)功能需求 (2)性能需求 (3)可靠性和可用性需求 (4)出错处理需求

(5)接口需求 (6)约束 (7)逆向需求 (8)将来可能提出的要求

2.导出系统的逻辑模型,通常用:数据流图、实体联系图、状态转换图、数据字典、和主要的算法描述这个逻辑模型。

3.与用户沟通获取需求的方法:

(1)访谈、分发调查表、情景分析技术

(2)面向数据流自顶下下求精

(3)简易的应用规格说明书

(4)快速建立软件原型

4.访谈分类:正式的访谈、非正式的访谈

5.情景分析技术的用处主要体现在以下两个方面:

  (1)它能在某种程度上演示目标系统的行为,从而便于用户解释,而且还可以进一步揭示出一些分析员目前还不知道的需求。

(2)由于情景分析较易为用户所理解,使用这种技术能保证用户在需求分析的过程中始终扮演一个积极主动的角色。

6.(1)结构化分析方法:就是面向数据流自顶向下逐步求精进行需求分析的方法。

(2)结构化分析实质上是一种创建模型的活动。

(3)根据结构化分析准则,需求分析过程应该建立3种模型:

数据模型、功能模型、行为模型

(4)实体-联系图(ERD)描绘数据对象及数据对象之间的关系,用于建立数据模型的图形。

(5)数据流图描绘数据在软件中移动时被变换的逻辑过程,指明系统具有的变换数据的功能,数据流图是建立功能模型的基础。

(6)状态转换图(状态图STD)指明作为外部事件结果的系统行为。状态转换图描绘系统的各种行为模式和在不同状态间转换的方式。状态转换图是行为建模的基础。

7.从哪些方面验证软件需求的正确性?

  一致性、完整性、现实性、有效性

8. 验证软件需求的的方法:

  (1)验证需求的一致性:软件工具

(2)验证需求的现实性:仿真或性能模拟技术

(3)验证需求的完整性和有效性:只有在用户的密切合作下才能完成

9.需求分析的描述工具有哪些?

  有数据流图、数据字典、判定表、判定树、结构化自然语言、层次方框图、Warnier图、IPO图和需求描述语言等

第五章、总体设计(系统设计+概念设计)

1.总体设计的组成:系统设计阶段——确定系统的具体实现方案

                   具体实现方案:结构设计阶段——确定软件结构

设计的目的/标:在于形成软件的一种层次的可对底层结点交叉引用的模块化结构

2.总体设计过程9个步骤:

  (1)设想供选择的方案

(2)选取合理的方案

(3)推荐最佳方案

(4)功能分解

(5)设计软件结构

(6)设计数据库

(7)知道测试计划

(8)书写文档

(9)审查和复审

3.书写文档时通常有以下几种?

   (1)系统说明:主要内容包括系统流程图描绘的系统构成方案,组成系统物理元素清单,成本/效益分析;对最佳方案的概括描述,精化的数据流图,用层次图或结构图描绘的软件结构,用IPO图或其他工具简要描述的各个模块的算法,模块间的接口关系,以及需求、功能、模块三者之间的交叉参照关系等

(2)用户手册  根据总体设计阶段的结果,修改更正正在需求分析阶段产生的初步的用户手册

(3)测试计划 包括测试策略,测试方案,预期的测试结果,测试进度计划

(4)详细的实现计划

(5)数据库设计结果

4.(1)设计原理:

       模块化、抽象、逐步求精、信息隐藏和局部化、模块独立

(2)  抽象(Abstraction):解决问题时只考虑与问题有关的方面,不考虑与问题无关的方面。即抽出事物的本质特性而不考虑细节

(3)逐步求精定义:

为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。人类解决复杂问题时采用的基本方法,也是许多软件工程技术(例如,规格说明技术,设计和实现技术)的基础

作用:

帮助软件工程师把精力集中在与当前开发阶段最相关的那些方面上忽略那些对整体解决方案来说虽然是必要的,然而目前还不需要考虑的细节,这些细节将留到以后再考虑

(4)信息隐蔽的含义:

     有效的模块化可以通过定义一组独立模块来实现,这些模块相互之间只交流软件功能必需的信息。

目的: 提高模块的独立性,减少修改或维护时的影响面。

(5)信息局部化:把关系密切的软件元素物理地放得彼此靠近。

优点:可维护性好、可靠性好、可理解性好

5.模块化(Modularity) ?模块设计的准则?

是按规定的原则将一个大型软件划分为一个个较小的、相对独立但又相关的模块。

准则:

(1) 改进软件结构, 提高模块独立性:在对初步模块进行合并、分解和移动的分析、精化过程中力求提高模块的内聚,降低藕合。

(2) 模块大小要适中:大约50行语句的代码,过大的模块应分解以提高理解性和可维护性;过小的模块,合并到上级模块中。

(3) 软件结构图的深度、宽度、扇入和扇出要适当。一般模块的调用个数不要超过5个。

(4) 尽量降低模块接口的复杂程度;

(5) 设计单入口、单出口的模块。

  (6) 模块的作用域应在控制域之内:

6.模块?特征?总体设计主要考虑什么特征?

(1)模块是数据说明、可执行语句等程序对象的集合,可以单独命名且可通过名字来访问。

(2)模块具有输入和输出(参数传递)、功能、内部数据结构(局部变量)和程序代码四个特性。

(3)概要设计主要考虑输入、输出(参数传递)和功能两个特性

7.模块独立:的概念是模块化、抽象、信息隐藏、局部化概念的直接结果

特点:具有特定子功能、接口简单

 衡量标准:

1. 耦合:亦称块间联系,衡量不同模块间相互依赖的紧密程度,为独立性的直接衡量。

2. 内聚:亦称块内联系,模块内各部分(语句或段落)之间结合的紧密程度。

耦合性是模块间相互依赖程度的度量,耦合的强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。(耦合性越高,模块独立性越弱)

耦合强度依赖的因素:  一模块对另一模块的引用

一模块向另一模块传递的数据量

一模块施加到另一模块的控制的数量

模块间接口的复杂程度

去除模块间控制耦合的方法:

(1)将被调用模块内的判定上移到调用模块中进行

(2)被调用模块分解成若干单一功能模块

如何降低模块间耦合度:

(1)如模块必须存在耦合,选择适当的耦合类型原则:

尽量使用数据耦合   少用控制耦合

  限制公共耦合的范围   坚决避免使用内容耦合

(2) 降低模块间接口的复杂性   

内聚性:   一个模块内部各成分之间相互关联的强度

 

耦合、内聚与模块独立性关系

     耦合与内聚都是模块独立性的定性标准,都反映模块独立性的良好程度。但耦合是直接的主导因素,内聚则辅助耦合共同对模块独立性进行衡量。

8.启发规则:

(1)改进软件结构提高模块独立性

(2)模块规模应该适中

(3)宽度、深度、扇出、扇入都应适当

(4)模块的作用域应该在控制域之内

(5)力争降低模块接口的复杂程度

(6)设计单入口单出口的模块

(7)模块功能应该可以预测

名称解释:

(1)  深度:表示软件结构中控制的层数,粗略的标志了一个系统的大小和复杂程度

(2)  宽度:软件结构内同一个层次上的模块总数的最大值。一般来说,宽度越大系统越复杂。对宽度影响最大的因素是模块的扇出。

(3)  扇出:是一个模块直接控制(调用)的模块数模,扇出过大意味着模块过分复杂,需要控制盒协调过多的下级模块。

9.描绘软件结构的图形工具:

(1)层次图(Hierarchy图)和HIPO图(带编号)

(2)结构图(SC)

10.(1) IPO图——是输入、处理、输出图的简称,

它是美国IBM公司发展完善起来的一种图形工具,

能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。

(2)IPO图的基本形式是:

A.在左边的框中列出有关的输入数据,

B.在中间的框内列出主要的处理,

C.在右边的框内列出产生的输出数据。

11. 层次图和结构图小结

1、层次图和结构图并不严格表示模块的调用次序。多数人习惯于按调用次序从左到右画模块,但并没有这种规定,出于其他方面的考虑,例如为了减少交叉线,也完全可以不按这种次序画。

2、层次图和结构图并不指明什么时候调用下层模块。

3、层次图和结构图只表明一个模块调用那些模块,至于模块内还有没有其他成分则完全没有表示。

12.面向数据流的设计方法

  (1)面向数据流的设计方法是把信息流映射成软体结构,信息流的类型决定了映射的方法。

(2)信息流的两种类型:变换流   事务流

(3)事务流/事务中心完成的任务:接收输入数据

                              分析每个事务以确定它的类型

                              根据事务类型选取一条活动通路

(4)  面向数据流方法的设计过程:

(5)  设计步骤:

      1复查基本系统模型

      2复查并精华数据流图

      3确定数据流图具有变换特性还是事务特性

      4确定输入流和输出流的边界,从而孤立出变换中心

      5完成“第一级分解”

      6完成“第二级分解”

      7使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化

(6)设计步骤的目的:开发出软件的整体表示。即一旦确定了软件结构就可以把它作为一个整体来复查,从而能够评价和精化软件结构

(7)概要设计与详细设计的区别

——概要设计就是设计软件的结构,包括组成模块,模块的层次结构,模块的调用关系,每个模块的功能等等。同时,还要设计该项目的应用系统的总体数据结构和数据库结构,即应用系统要存储什么数据,这些数据是什么样的结构,它们之间有什么关系。 

——详细设计阶段就是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。

第六章、详细设计

1.程序(过程)设计工具

1. 程序流程图     2. 盒图(N-S图)     3. 问题分析图(PAD)

4. 过程设计语言(PDL)(伪码)     5. 判定表

2.详细设计工具:(1) 图形工具 (2) 表格工具  (3) 语言工具

3.结构程序设计?

(1)完成软件模块过程设计的一种重要技术

(2)所有程序都可以建立在一组已有的逻辑构成元素上,这一组逻辑构成元素强调了“对功能域的维护”。

(3)这些逻辑构成元素是结构化程序设计的基础。

4.程序流程图/程序框图

  缺点:(1)诱使程序员过早的考虑程序的控制流程,而不去考虑程序的全局结构

(2)在程序流程图中用箭头表示控制流,因此控制员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制

(3)程序流程图不易表示数据结构

5.盒图(N-S图)

  特点:(1)功能域明确,可以从盒图上一眼就能看出来

(2)不可能任意转移控制

(3)很容易确定局部和全程数据的作用域

(4)很容易表现嵌套关系,也可表示模块的层次结构

6.问题分析图(PAD图)

  优点:(1)使用表示结构化控制结构的PAD符号所设计出来的必然是结构化程序

       (2)PAD图所描绘的程序十分清晰

       (3)用PAD图变现程序逻辑,易读,易懂,易记

       (4)PAD图的符号支持自顶向下、逐步求精方法的使用

(5)容易将PAD图转换成高级语言源程序

(6)即可用于表示程序逻辑,也可用于描述数据结构

7. 过程设计语言(PDL)(伪码)

特点:

 (1)关键字的固定语法,它提供了结构化控制结构、数据说明和模块化的特点

 (2)自然语言的自由语法,它描述出来特点

 (3)数据说明的手段

 (4)模块定义和调用的技术,应该提供各种接口描述模式

作为设计工具的优点:

(1)  可以作为注释直接插在源程序中间

(2)  可以使用普通的正文编辑程序或文字处理系统,很方便的完成PDL的书写和编辑工作

(3)  已经有自动处理PDL的程序存在,而且可以自动有PDL生产程序代码

缺点:不如图形工具形象直观,描述复杂的条件组合与动作之间的对应关系时,不如判断表清晰简单

8. 判定表

 组成:左上部列出所有条件、左下部是所有可能做的动作、右上部是表示各种条件组合的一个矩阵、右下部是和每种条件组合相对应的动作

9.判断树

优点:形式简单到不需任何说明,一眼就可以看出其含义,易于掌握和利用。

10. 结构程序设计方法

Jackson图

程序复杂程度的定量度量:McCabe方法

第七章

1.

2.

3.

4.

第八章

1.软件维护定义:就是在软件已经交付使用后,为了改正错误或满足新的需求而修改软件的过程

2.软件维护的类型:改正性维护、适应性维护、完善性维护、预防性维护

第九章

1.

2.

3.

4.

第十章

1.

2.

3.

4.

更多相关推荐:
软件工程总结

1.软件危机的定义:计算机软件的开发和维护过程中所遇到的一系列严重问题。出现的问题:a.如何开发软件,已满足对软件日益增长的需求b.如何维护数量不断膨胀的已有软件特征:软件具有长期性和症状不明显2.软件工程:指…

软件工程总结

1何谓科学,何谓工程?(第一章)科学是反映自然、社会、思维的发展与变化规律的知识体系。科学(研究)是以发现为核心的人类活动,探索事物的本质和运动规律,追求真理,认识世界,回答“为什么”,体现非物质形态财富。工程…

软件工程总结

一个软件从开始计划起,到废弃不用止,称为软件生命周期。一般来说,软年生命周期包括计划、开发、运行三个时期,每一个时期又可分为若干个更小的阶段:1.可行性研究。这个阶段主要是确定软件的开发目标及其可行性,给出其在…

软件工程总结

软件工程过程:是为获得软件产品,在软件工具的支持下由软件工程师完成的一系列软件工程活动。针对不同类型的软件产品,同一软件开发机构也可能采用多个不同的软件工程过程。是把输入转化为输出的一组彼此相关的资源和活动。从…

软件工程总结1

Personally,Ithinkthesoftwaredevelopmentprocesstoachievespecifictoeachstepoftheworktocompletewhatisveryfle…

软件工程总结

软件工程软件:计算机程序,方法,规则和相关文档资料及在计算机上运行所需的必要的数据。软件=程序+数据+文档资料软件的特点:1软件是一种逻辑产品2软件没有明显的制造过程3软件对硬件和环境的依耐性4软件不存在机械的…

软件工程总结

软件工程总结第一章:1.软件的定义:(1)在运行中提供所希望的功能和性能的指令集(即程序)(2)使程序能够正确运行的数据结构(3)描述程序研制过程和方法所使用的文档2.软件的特点:(1)软件是一种逻辑实体,而不…

软件工程实习总结

工程硕士实习总结实习单位名称山东山大华天软件有限公司实习时间20xx年9月20xx年12月实习地点山东省济南市高新区新泺大街20xx号银荷大厦E座三层一实习单位简介东山大华天软件有限公司简称华天软件是北京神舟航...

软件工程个人总结报告

目录目录011编写目的112项目简介1121项目名称1122产品标识113定义114参考资料12项目概述121工作内容122酒店管理系统的功能结构2221客房预订系统3222前台接待系统4223前台收银系统52...

软件工程实习报告

辽宁工程技术大学本科生实习报告书教学单位辽宁工程技术大学专业软件工程班级学生姓名学号实习时间20xx021720xx0328指导教师辽宁工程技术大学教务处制操作的过程中肯定会接连遇到各种问题我会尽量平心静气一点...

软件工程期末复习总结

第一章1.开发软件不等于编写程序2.软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。3.软件危机典型表现:●对软件开发成本和进度估计不准确。●用户对已完成的软件系统不满意甚至拒绝接受的现象经…

人大软件工程硕士考研复试内容总结

凯程考研集训营为学生引路为学员服务人大软件工程硕士考研复试内容总结凯程人大软件工程硕士考研老师指导下人大软件工程硕士考研复试同时文章也介绍了人大软件工程硕士考研就业人大软件工程硕士考研辅导人大软件工程硕士考研参...

软件工程总结(52篇)