当前位置:文档之家› 软件工程理论知识

软件工程理论知识

软件工程理论知识
软件工程理论知识

软件工程

第一部分传统软件开发方法

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

2、软件危机有哪些主要表现?

⑴软件开发成本和进度的估计很不准确。

⑵用户对开发的软件系统常常不满意。

⑶软件产品的质量往往靠不住。

⑷软件没有适当的文档资料,软件不可维护。

⑸软件开发成本逐年上升,软件开发生产率跟不上计算机应用。

3、软件危机包含下述两方面的问题:①如何开发软件,以满足对软件日益增长的需求;②

如何维护数量不断膨胀的已有软件。

4、软件生命周期

一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为软件生命周期。

5、消除软件危机的途径

(1)彻底消除“软件就是程序”的错误观念。

(2)必须充分认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。

6、软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术

和方法来开发与维护软件,把正确的管理技术和最好的技术方法结合起来,以经济地开发出高质量的软件并有效地进行维护,这就是软件工程。

7﹑软件工程目标和内容是什么?

软件工程的目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发

的软件可靠性高。

软件工程的内容:研究内容包括开发技术和开发管理两个方面。开发技术主要研究:软件开发方法,开发过程,开发工具和环境。开发管理主要研究:软件管理学,

软件经济学,软件心理学。

8、软件工程具有下述本质特性

⑴软件工程关注于大型程序的构造

⑵软件工程的中心课题是控制复杂性

⑶软件经常变化

⑷开发软件的效率非常重要

⑸和谐地合作是开发软件的关键

⑹软件必须有效地支持它的用户

⑺软件工程师的领域知识影响其创造产品

9、软件工程的7条基本原理

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

(2)坚持进行阶段评审

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

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

(5)结果应能清楚地审查

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

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

10、面向对象方法学具有下述4个要点。

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

(2)把所有对象都划分成类(class)。

(3)按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。

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

11、软件生命周期由哪些时期组成?各个时期划分成哪些阶段?

软件生命周期(各阶段)软件生命周期由软件定义、软件开发和运行维护三个时期组成。

1. 软件定义时期划分为三个阶段:问题定义、可行性研究和需求分析

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

3. 维护时期:主要任务是使软件持久地满足用户的需要。

12、什么是软件过程?

软件过程是为了开发出高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

软件过程定义了运用技术方法的顺序、应该交付的文档资料、为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。

13、(1)瀑布模型的特点:

·阶段间具有顺序性和依赖性

·推迟实现的观点

·质量保证的观点

(2)瀑布模型优点:

·可强迫开发人员采用规范的方法(如结构化技术);

·严格地规定了每个阶段必须提交的文档;

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

(3)瀑布模型缺点:

·最主要的是“瀑布模型是由文档驱动的”,在文档方面花费了在量的人力与物力。14.可行性研究的任务是什么?

(1) 进一步分析和澄清问题的定义,在澄清问题的基础上,导出系统的逻辑模型;

(2) 从系统逻辑模型中,选择问题的若干种主要解法,研究每一种解法的可行性,为以后

的行动提出建议;

(3) 如果问题没有可行的解,建议停止系统开发;如果问题有可行的解,应该推荐一个较

好的解决方案,并为工程制定一个初步的计划。

15.可行性研究包括哪几方面的内容?

⑴技术可行性,使用现有的技术能实现这个系统吗?

⑵经济可行性,这个系统的经济效益能超过它的开发成本吗?

⑶操作可行性,系统的操作方式在用户组织内行得通吗?

⑷法律可行性,开发系统是否违反国家法律,是否侵犯他人利益。

(5)社会效益可行性,开发的系统能为用户带来怎样的社会经济效益。

16、数据流图是一种图形化技术,它对系统的逻辑功能进行描绘,图中没有任何具体的物理

元素,只是描绘数据在软件中流动和被处理的逻辑过程。

17、数据字典是关于数据的信息的集合,是对数据流图中包含的所有元素的定义的集合。

数据字典由下列4类元素组成:(1) 数据流(2) 数据项(即数据元素):组成数据流和数据存储的最小元素。(3) 数据存储(4) 处理

18、在需求分析时,结构化分析方法应遵守哪些准则?

(1) 必须理解并描述问题的信息域,建立数据模型。

(2) 必须定义软件应完成的功能,建立功能模型。

(3) 必须描述作为外部事件结果的软件行为,建立行为模型。

(4) 必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。

19、什么是需求分析?需求分析阶段的基本任务是什么?

需求分析:软件分析员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。

基本任务:

⑴问题识别,软件分析员和用户确定对问题的综合需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求。

⑵分析与综合,导出软件的逻辑模型。

⑶编写文档,包括编写"需求规格说明书","初步用户使用手册","确认测试计划","修改完善软件开发计划" 。

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

(1)一致性:所有需求必须是一致的,不能互相矛盾。

(2)完整性:需求必须是完整的,规格说明书应包括用户需求的每个功能或性能。(3)现实性:用户需求应该是用现有的硬件技术和软件技术来实现的。

(4)有效性:需求是正确有效的,确实能解决用户面对的问题。

21、有哪些验证软件需求的方法?

(1)验证需求的一致性:审查软件需求规格说明书是否丰在冗余、遗漏、不一致等问题。(2)验证需求的现实性:分析利用现有的软、硬件技术实现目标系统的可能性。

(3)验证需求的完整性和有效性:审查软件需求规格说明书是否完整、准确地描述目标系统的需求。

22、总体设计目的是什么?总体设计的任务是什么?

总体设计目的就是回答“系统应该如何实现?”。这个阶段有两个任务:

①划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等;

②设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块

相互间的关系。

23、模块是数据说明,可执行语句等程序对象的集合,它是构成程序的基本构件。

模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把若干模块构成一个整体,完成用户需求。

模块化的目的是使一个复杂的大型软件简单化。

24、什么是模块独立性?写出模块独立性重要的理由。

模块独立性是指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单。

模块独立性重要的理由主要有两条:

第一,有效的模块化(即具有独立的模块)的软件比较容易开发出来。

第二,独立的模块比较容易测试和维护。

25、耦合是对一个软件结构内不同模块之间互连程度的度量。

内聚指模块功能强度的度量,即一个模块内部各个元素彼此结合的紧密程序的度量。

数据耦合:指两模块之间有调用关系,传递的是简单的数据值。

功能内聚:指模块内所有元素共同完成一个功能,缺一不可。

26、在开发软件过程中总结出了哪些启发规则?

⑴改进软件结构提高模块独立性

⑵模块规模应该适中

⑶深度、宽度、扇出和扇入都应适当

⑷模块的作用域应该在控制域之内

⑸力争降低模块接口的复杂程度

⑹设计单入口单出口的模块

⑺模块功能应该可以预测

27.详细设计的任务是什么?

⑴为每个模块确定采用的算法;

⑵确定每一模块使用的数据结构;

⑶确定模块接口的细节;

⑷编写过程设计说明书;

⑸设计每一模块的测试用例。

28、结构程序设计有哪些好处?

⑴开发出的程序结构层次清晰;

⑵不使用GOTO语句,程序的静态和动态结构情况比较一致;

⑶控制结构有确定的逻辑模式;

⑷可重用的代码量大;

⑸程序的逻辑结构清晰,有利于程序正确性证明。

29、程序流程图的主要优点是:对控制流程的描绘很直观,便于初学者掌握。

程序流程图的主要缺点如下:

⑴程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流

程,而不去考虑程序的全局结构。

⑵程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程

序设计的精神,随意转移控制。

⑶程序流程图不易表示数据结构。

30、N-S图的特点:

⑴功能域(即控制结构)明确,可以从盒图上一眼就看出来。

⑵不可能任意转移控制。

⑶很容易确定局部和全程数据的作用域。

⑷很容易表现嵌套关系,也可以表示模块的层次结构。

31、PAD图的主要优点如下:

⑴使用PAD图设计出来的程序必然是结构化程序。

⑵ PAD图所描绘的程序结构十分清晰。

⑶用PAD图表现程序逻辑,易读、易懂、易记。

⑷容易将PAD图转换成高级语言源程序。

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

32、Jackson图有哪些结构?它又有哪些优点?

Jackson图有三种结构:顺序结构、选择结构和重复结构。

它有下面优点:

⑴便于表示层次结构,而且是对结构进行自顶向下分解的有力工具;

⑵形象直观可读性好;

⑶既能表示数据结构也能表示程序结构。

33、定量度量程序复杂程度的方法有哪三方面价值?

⑴把程序的复杂程度乘以适当常数即可估算出软件中错误的数量,以及软件开发需要的

工作量。

⑵定量度量的结果可以用来比较两个不同的设计或两个不同算法的优劣;

⑶程序的定量的复杂程度可以作为模块规模的精确限度。

34、G.Myers给出的关于测试的一些规则:

(1)测试是为了发现程序中的错误而执行程序的过程;

(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;

(3)成功的测试是发现了至今为止尚未发现的错误的测试。

35、软件测试准则有几条?

(1)所有测试都应该能追溯到用户需求。

(2)应该远在测试开始之前就制定出测试计划。

(3)把Pareto原理应用到软件测试中。

(4)应该从“小规模”测试开始,并逐步进行“大规模”测试。

(5)穷举测试是不可能的。

(6)为了达到最佳的测试效果,应该由独立的第三方从事测试工作。

36、软件测试是软件测试人员设计出一系列测试方案,竭力发现程序中存在的错误的过程。

测试阶段的根本目标是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。

软件测试方法有两种:黑盒测试和白盒测试。

(1)黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规

定正常工作。黑盒测试又称为功能测试。

(2) 白盒测试法是按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能

按预定要求正确工作。白盒测试又称为结构测试。

37、单元测试着重从哪几个方面对模块进行测试?

⑴模块接口

⑵局部数据结构

⑶重要的执行通路

⑷出错处理通路

⑸边界条件

38、软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。

软件可用性是程序在给定的时间点,按照规格说明书的规定,成功地运行的概率。39、软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。软件维护可有四项活动:

⑴改正性维护:诊断和改正使用期间程序中存在的错误的过程,称改正性维护。

⑵适应性维护:为了和变化了的环境适当地配合而进行的修改软件的活动,称适应性维

护。

⑶完善性维护:为完善软件而增加功能或改进已有的功能的活动,称完善性维护。

⑷预防性维护:为了改进未来的可维护性或可靠性,或为了给未来的改进奠定更好的基

础而修改软件活动,称预防性维护。

40、决定软件可维护性的因素主要有几个?

⑴可理解性:理解软件的结构、接口、功能和内部过程的难易程度。

⑵可测试性:诊断和测试的难易程度。

⑶可修改性:软件修改的难易程度。

⑷可移植性:把程序从一种计算环境转移到另一种计算环境的难易程度。

⑸可重用性:软件构件可重用的难易程度。

第二部分面向对象软件开发方法

1、对象的定义主要有下面几种形式:

⑴定义1:对象是具有相同状态的一组操作的集合。

⑵定义2:对象是对属性值和操作的封装。

⑶定义3:对∷=<ID,MS,DS,MI>

其中,ID是对象的标识或名字

MS是对象中的操作集合

DS是对象的数据结构

MI是对象受理的消息名集合(对外接口)

2、对象的特点

(1)以数据为中心

(2)对象是主动的

(3)实现了数据封装

(4)本质上具有并行性

(5)模块独立性好

3、类就是对具有相同数据和相同操作的一组相似对象的定义。也就是说,类是对具有相同

属性和行为的一个或多个对象的描述。

4、实例就是由某个特定的类所描述的一个具体的对象。

5、消息就是某个对象执行在定义它的那个类中所定义的某个操作的规格说明。通常,一个

消息由下述3部分组成:

·接收消息的对象;

·消息选择符(也称为消息名);

·零个或多个变元。

6、方法就是对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执行操作的

算法,响应消息的方法。

7、属性就是类中所定义的数据,它是对客观实体所具有的性质的抽象。

8、面向对象方法开发软件通常需要建立三种形式的模型:

对象模型:描述系统数据结构的模型;

动态模型:描述系统控制结构的模型;

功能模型:描述系统功能的模型。

9、什么是用例?用例具有哪些特征?

用例是系统完成的一系列动作,这些动作除了完成系统内部功能外,还包括与行为者的通信。用例具有下述特征:

(1)代表某些用户可见的功能,实现一个具体的用户目标;

(2)总是被行为者启动,并向行为者提供可识别的值;

(3)必须是完整的。

10、行为者是指与系统交互的人或其他系统,它代表外部实体。

11、建立对象模型的工作步骤是:

1)确定对象类和关联;

2)对大型复杂问题还要进行一步划分出若干个主题;

3)给类和关联增添属性,并对它们进一步描述;

4)利用适当的继承关系进一步合并和组织类;

5)对类中的操作则需等到建立了动态模型和功能模型之后才能确定。

12、建立动态模型的步骤有:

⑴编写典型交互行为的脚本;

⑵从脚本中提取出事件,确定触发每个事件的动作对象以及接受事件的目标对象;

⑶排列事件发生次序,确定每个对象可能的状态及状态间的转换,并用状态图描绘它

们。

13、重用也叫再用或复用,是指同一软件元素不作修改或稍改动就可多次重复使用。广义地

说,软件重用可分为以下3个层次:

⑴知识重用(如:软件工程知识的重用)。

⑵方法和标准的重用(如:面向对象方法或国家制定的软件开发规范的重用)。

⑶软件成分的重用。

14、继承是子类自动地共享基类中定义的数据和方法的机制。

15、多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可

以发送给子类对象。

16、在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成,则该聚集称为

共享聚集。

部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也会随之消失,则该聚集称为组合聚集。

17、什么是封装?写出对象具有封装性的条件。

封装就是把数据和实现操作的代码集中起来放在对象内部。

对象具有封装性的条件如下:

(1)有一个清晰的边界

(2)有确定的接口(即协议)

(3)受保护的内部实现

18、类图描述类与类之间的静态关系。类图是一种静态模型,它是创建其他UML图的基础。

19、用面向对象方法学开发软件过程有哪些启发规则?

⑴设计结果应该清晰易懂

⑵一般-特殊结构的深度应适当

⑶设计简单的类

⑷使用简单的协议

⑸使用简单的服务

⑹把设计变动减至最小

20、提高可重用性的主要准则:

⑴提高方法的内聚;

⑵减小方法的规模;

⑶保持方法的一致性;

⑷把策略与实现分开;

⑸全面覆盖各种条件组合,写出所有组合方法;

⑹尽量不使用全局信息;

⑺利用继承机制。

21、面向对象设计有哪些准则?

⑴模块化;⑵抽象;⑶信息隐藏;⑷弱耦合;⑸强内聚;⑹可重用

软件工程专业认识实习报告 - 副本

软件工程专业 软件项目实践(认识实习)报告 教学单位软件学院 班级软件13-3班 学生姓名 学号 132001031 实习时间 2015.6.29-2015.7.10 指导教师 辽宁工程技术大学教务处制

目录 1 实习时间 (1) 2 实习目的 (1) 3 实习项目及内容 (1) 3.1 校内实习内容总结 (1) 3.2 校外实习内容总结........................... .. (11) 4 存在的问题 ........................... (20) 5 总结与展望 .............................. (21)

人能力有问题。这也是领导最不想听到的话,不要轻易说不。我们不会,完全可以借这个机会去学习,去查资料,但我们不能说不。 第五,不要把工作的活拖到明天,那样会越来越多,也不要在工作期间老是打酱油,否则经理一怒之下,临下班的时候,给你发过来一个任务,让你务必今天完成,那你就悲剧了,还是木有加班费的加班。 第六,没有任务了,就主动去问经理还有没有任务了,和经理处好关系很重要,以后有什么好事都会想到你的,倘若实在是没事了,那就多测测自己的项目。 第七,多学学英语还是有点好处的。 第二次报告: 主要关于Linux的有关知识和如何去学好它: 1.掌握至少50个以上的常用命令。 2.熟悉Gnome/KDE等X-windows桌面环境操作。 3.掌握.tgz、.rpm等软件包的常用安装方法 4.学习添加外设,安装设备驱动程序(比如网卡) 5.熟悉Grub/Lilo引导器及简单的修复操作。 6.熟悉Linux文件系统和目录结构。 7.掌握vi,gcc,gdb等常用编辑器,编译器,调试器。 8.理解shell别名、管道、I/O重定向、输入和输出以及shell脚本编程。 9.学习Linux环境下的组网。 第三次报告: Oracle数据库 ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。 Oracle数据库最新版本为Oracle Database 12c。Oracle数据库12c 引入了

软件工程知识点总结

软件工程(简要知识点) 一、. 软件过程五个模型对比(瀑布模型、快速原型、增量、螺旋、喷泉模型) 二、可行性研究: 1、任务:用最小的代价在尽可能短的时间内确定问题是否能够解决。 2、四个方面:技术、经济、操作可行性、法律 3、数据流图四种成分:1、源点/终点2、处理3、数据存储 4、数据流 三、需求分析: 1、任务:确定系统必须完成哪些工作,对目标系统提出完整、清晰、具体的要求。 2、结构化方法就是面向数据流自顶向下逐步求精进行需求分析的方法。 3、实体联系图:1、数据对象2、属性3、联系(1:1、1:N、M:N) 四、总体设计: 1.任务:回答“概括的说,系统应该如何实现”,用比较抽象概括的方式确定系统如何完成预定的任务,也就是说应该确定系统的物理配置方案,并且进而确定组成系统的每个程序结构。 2.系统设计阶段(确定系统具体实施方案)、结构设计阶段(确定软件结构) 3.模块独立:内聚和耦合 4. 耦合表示一个软件结构内各个模块之间的互连程度,应尽量选用松散耦合的系统

5. 内聚(Cohesion): 一个模块内各元素结合的紧密程度 6.面向数据流的设计方法:变换流和事务流 五、详细设计: 1.任务:确定应该怎样具体的实现所要求的系统,也就是说经过这个阶段的设计工作应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。 2.过程设计的工具(程序流程图、盒图、PAD图、判定表、判定树) 七、测试: 1、单元测试:又称模块测试。每个程序模块完成一个相对独立的子功能,所以可以对该模块进行单独的测试。由于每个模块都有清晰定义的功能,所以通常比较容易设计相应的测试方案,以检验每个模块的正确性。 2、集成测试: 在单元测试完成后,要考虑将模块集成为系统的过程中可能出现的问题,例如,模块之间的通信和协调问题,所以在单元测试结束之后还要进行集成测试。这个步骤着重测试模块间的接口,子功能的组合是否达到了预期要求的功能,全程数据结构是否有问题等。 3、白盒测试技术(逻辑覆盖、基本路经测试)

计算机公共基础

第一章数据结构与算法 1.1算法 算法:是指解题方案的准确而完整的描述。 算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。 算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。特征包括: (1)可行性; (2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性; (3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义; (4)拥有足够的情报。 算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。 指令系统:一个计算机系统能执行的所有指令的集合。 基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。 算法的控制结构:顺序结构、选择结构、循环结构。 算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。 算法复杂度:算法时间复杂度和算法空间复杂度。 算法时间复杂度是指执行算法所需要的计算工作量。 算法空间复杂度是指执行这个算法所需要的内存空间。 1.2数据结构的基本基本概念 数据结构研究的三个方面: (1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构; (2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构; (3)对各种数据结构进行的运算。 数据结构是指相互有关联的数据元素的集合。 数据的逻辑结构包含: (1)表示数据元素的信息; (2)表示各数据元素之间的前后件关系。 数据的存储结构有顺序、链接、索引等。 线性结构条件: (1)有且只有一个根结点; (2)每一个结点最多有一个前件,也最多有一个后件。 非线性结构:不满足线性结构条件的数据结构。 1.3线性表及其顺序存储结构 线性表由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。 在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。 非空线性表的结构特征: (1)且只有一个根结点a1,它无前件; (2)有且只有一个终端结点an,它无后件; (3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。结点个数n称为线性表的长度,当n=0时,称为空表。 线性表的顺序存储结构具有以下两个基本特点: (1)线性表中所有元素的所占的存储空间是连续的; (2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。 ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)k,,ADR(a1)为第一个元素的地址,k代表每个元素占的字节数。 顺序表的运算:插入、删除。(详见14--16页) 1.4栈和队列 栈是限定在一端进行插入与删除的线性表,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。 栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据,栈具有记忆作用。用top表示栈顶位置,用bottom表示栈底。 栈的基本运算:(1)插入元素称为入栈运算;(2)删除元素称为退栈运算;(3)读栈顶元素是将栈顶元素赋给一个指定的变量,此时指针无变化。 队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。Rear指针指向队尾,front 指针指向队头。 队列是“先进行出”(FIFO)或“后进后出”(LILO)的线性表。 队列运算包括(1)入队运算:从队尾插入一个元素;(2)退队运算:从队头删除一个元素。 循环队列:s=0表示队列空,s=1且front=rear表示队列满

软件工程专业认知

软件工程专业认知 计算机专业分方向我选择的是软件工程这个方向。软件工程是应用计算机 科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程 的原则、方法,以提高质量、降低成本。其中,计算机科学、数学用于构 建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及 确定权衡,管理科学用于计划、资源、质量、成本等管理。这个方向的学科基础选修课有:软件质量管理与测试、软件体系结构、软件项目管理以及软件复用技术。 软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移 植性、可追踪性和可互操作性并且满足用户需求的软件产品。追求这些目 标有助于提高软件产品的质量和开发效率,减少维护的困难。 软件质量管理与测试:质量管理在软件工程中是非常非常重要的一个环节,无论你有多么精妙的算法,或是使用了多么先进的技术,还是拥有了多少强的设计,在质量控制或质量管理面前,这些都可能什么都不是。这里,有一些质量管 理的法则,可以让软件的用户从中受益。如果对质量管理一言以蔽之:面对一个长期不断需要改善的软件,当其用户或是管理者们来说,他们对某个组织所提供的标准有一种完全和最基本的信任。软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。 软件体系结构:软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持。 软件项目管理:软件项目管理的对象是软件工程项目。它所涉及的范围覆盖了整个软件工程过程。为使软件项目开发获得成功,关键问题是必须对软件 项目的工作范围、可能风险、需要资源(人、硬件/软件)、要实现的任务、经历的里程碑、花费工作量(成本)、进度安排等做到心中有数。这种管理在技术工

软件工程知识点汇总

软件工程知识点汇总 1 软件工程、软件工程方法学:三要素 1.1 软件工程:○1应用系统化的、规范化的、可度量的方法来开发、运行和维护软件,即将工 程应用到软件;○2对○1的各种方法的研究 1.2 软件工程是一门研究用工程化方法构建和维护有效的实用的和高质量的软件的学科 1.3 软件工程三要素是:方法、工具、过程 软件工程的方法:是指完成软件开发各项任务的技术方法 软件工具:是指为软件工程方法的运用提供自动半自动的软件支撑环境 软件工程过程:是指将软件工程方法和工具综合起来以达到合理、及时地进行计算机软件开发这一目的 2 软件工程的原则包括:模块化原则、信息隐蔽原则、抽象化原则、模块独立原则(内聚、耦合)、 依赖倒转原则、开闭原则等 2.1 模块化原则:指解决一个复杂问题时自顶向下逐层把软件系统划分为若干模块的过程。模 块是程序中相对独立的成分,一个独立的编程单位,应有良好的编程接口,模块的大小要 适中,模块过大会使模块内部的复杂性增加不利于模块的理解和修改,模块过小会导致整 个系统表示过于复杂,不利于控制系统的复杂性。 2.2 信息隐蔽原则:采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单。 2.3 抽象化原则:抽取事物最基本的特性和行为,忽略非本质细节,采用分层次抽象,自顶向 下,逐层细化的办法控制软件开发过程的复杂性。 2.4 模块独立原则:是指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少 且接口简单。要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块间由松 散的偶合关系,模块内部有较强的内聚性,这有助于控制系统的复杂性。(即:高内聚低 耦合) 2.5 依赖倒转原则:抽象不应该依赖于细节,细节应该依赖于抽象。 2.6 开闭原则:软件实体应该是可扩展的,但是不可以修改。即对于扩展是开放的,对于更改 是封闭的。 3 软件开发模型:瀑布模型;快速原型;喷泉模型;各种模型的工作原理、阶段、每阶段任务、 特点、示意图; 软件开发模型(也称为软件过程模型):是从软件项目需求定义开始直至软件经使用后废弃为止,跨 越整个生命周期的系统开发、运行和维护所实施的全部过程、活动和任务的结构框架 3.1 瀑布模型(又称线性模型): 3.1.1工作原理:规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。 前一阶段的工作成果是后一阶段工作开始的基础.所以,每个阶段都必须交出合格的文档,必须对前阶段的工作进行评审,前一阶段的工作完成后才可以开始后一阶段的工作 3.1.2 阶段: 计划时期:问题定义、可行性研究 开发时期:需求分析、设计、编码、测试 运行时期:运行和维护 3.1.3 各阶段任务: 1.需求分析和定义 在软件项目进行过程中,需求分析是从软件定义到软件开发的关键步骤,是今后软件,开发的基本依据,同时也是用户对软件产品进行验收的基本依据。需求分析和定义是以用

软件工程复习知识要点

1 软件及软件工程概念 集合,程序只是软件的组成部分之一;在软件开发中,编程只是软件开发过程的一个阶段。 2.在结构化程序设计时代,程序最小的单位是函数及子程序,程序及数据是分离的。程序的最小单位是类。 3.软件的特性:形态特性、智能特性、开发特性、质量特性、生产特性、管理特性、环境特性、维护特性、废弃特性、应用特性。 4.软件的分类:系统软件;应用软件;支撑软件;可复用软件。 5.什么是软件工程?(课后题) 软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来 开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合 起来,以经济地开发出高质量的软件并有效地维护它。 6.可以用功能性、可靠性、易用性、效率、可维护性和可移植性六个特性衡量软件的质量。 功能性是指软件所实现的功能达到它的设计规范和满足用户需求的程度。 可移植性是指软件从某一环境转移到另一环境时所作努力得程度。 7.软件生存期由软件定义、软件开发和运行维护三个时期组成。 开发时期通常由概要设计、详细设计、编码和测试四个阶段组成。 开发过程中的典型文档包括:项目计划、软件测试计划、软件设计说明书、用户手册。 8.需求分析的基本任务? (1)建立分析模型,了解系统的各种需求细节。 (2)基于分析结果,编写出软件需求规格说明或系统功能规格说明,确认测试计划和初步的系统 用户手册,并提交管理机构进行分析评审。 2 软件工程方法及工具 1.面向对象方法的出发点和基本原则,是尽量模拟人类习惯的思维方式,使开发软件的方法和 过程尽可能接近人类认识问题和解决问题的方法及过程,从而使描述问题的问题空间及其解 空间在结构上尽可能一致。 2.形式化方法的主要特点是:(课后题)

对软件工程的认识

我对软件工程的认识 随着软件危机的存在才慢慢地产生了对软件工程的认识,在软件开发和维护的过程中存在着很多严重的问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关,逐渐地产生了软件工程。 软件危机的表现: i)软件开发成本难以控制、软件开发进度难以预测。 费用超支、进度拖延的情况屡屡发生。有时为了赶进度或压成本不得不采取一些权宜之计,这样又往往严重损害了软件产品的质量。 ii)软件的可靠性差,产品质量无法保证。 软件是逻辑产品,质量问题很难以统一的标准度量,因而造成质量控制困难。尽管耗费了大量的人力物力,而系统的正确性却越来越难以保证,出错率大大增加。 iii)生产出来的软件难以维护 很多程序缺乏相应的文档资料,程序中的错误难以定位,难以改正,有时改正了已有的错误又引入新的错误。随着软件的社会拥有量越来越大,维护占用了大量人力、物力和财力。 iiii)软件成本在计算机系统总成本中所占的比例居高不下,且逐年上升。 由于微电子学技术的进步和硬件生产自动化程度不断提高,硬件成本逐年下降,性能和产量迅速提高。然而软件开发需要大量的人力,软件成本随着软件规模和数量的剧增而持续上升。 iiiii)软件开发生产率提高的速度远远满足不了计算机应用迅速普及深入的需要。软件产品供不应求的状况使得人类不能充分利用现代计算机硬件所能提供的巨大潜力。 iiiiii)用户对产品功能难以满足。 开发人员和用户之间很难沟通、矛盾很难统一。往往是软件人员不能真正了解用户的需求,而用户又不了解计算机求解问题的模式和能力,双方无法用共同熟悉的语言进行交流和描述。

软件工程是将系统的、科学的和严密的方法应用于设计、开发、运行和维护软件,以及对这些方法本身的研究,也就是将工程应用于软件,它由方法、工具和过程三部分组成,而软件是计算机系统中程序、数据和文档的集合。程序是用程序设计语言描述的、适合计算机处理的语句序列,数据是使程序能够适当地处理信息的数据结构,文档是软件开发、使用和维护程序所需要的图文资料。软件具有个体化、规模庞大、维护复杂和长期性的特点。软件又分为应用软件和系统软件。应用软件是用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的应用程序的集合,分为应用软件包和用户程序。而系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合,主要功能是调度,监控和维护计算机系统;负责管理计算机系统中各种独立的硬件,使得他们可以协调工作。 软件工程的框架可以概括为:目标、过程和原则。 (1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜是指软件开发、运行的整个开销满足用户要求的程度。这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。 (2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。伴随以上过程,还有管理过程、支持过程、培训过程等。

软件工程基础知识点总结

软件工程基础部分知识点总结 知识点一软件工程的基本概念 1、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。 1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 2)数据是使程序能够正常操作信息的数据结构。 3)文档是与程序开发、维护和使用有关的图文资料。 国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。 2、软件特点: 1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分; 2)软件的生产与硬件不同,它没有明显的制作过程; 3)软件在运行、使用期间不存在磨损、老化问题; 4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题; 5)软件复杂性高,成本昂贵; 6)软件开发涉及诸多的社会因素 3、软件的分类: 按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件)

1)应用软件是为解决特定领域的应用而开发的软件。 2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。 4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面: ①软件开发的实际成本和进度估计不准确 ②开发出来的软件常常不能使用户满意 ③软件产品的质量不高,存在漏洞,需要经常打补丁 ④大量已有的软件难以维护 ⑤软件缺少有关的文档资料 ⑥开发和维护成本不断提高,直接威胁计算机应用的扩大 ⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长 5、软件工程:此概念的出现源自软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。 1)研究软件工程的主要目的就是在规定的时间、规定的开发费用内开发出满足用户需求的高质量的软件系统(高质量是指错误率低、好用、易用、可移植、易维护等)。 2)软件工程的三个要素:方法、工具和过程。 ①方法:完成软件工程项目的技术手段;

c语言公共基础课本

第1章数据结构与算法 1.1算法 1.算法的概念:是指解题方案的准确而完整的描述 2.算法的基本特征:可行性、确定性、有穷性(有限的时间)、拥有足够的情报 3.算法的复杂度:时间复杂度和空间复杂度(1)时间复杂度:算法所需要的计算工作量(算法所执行的基本运算次数) (2)空间复杂度:执行这个算法所需要的内存空间1.2数据结构的基本概念 1.数据结构研究的三个问题 (1)逻辑结构:指反应数据元素之间逻辑关系的数据结构 (2)存储结构(物理结构):数据的逻辑结构在计算机存储空间中的存放形式。

(3)对各种数据结构进行的运算 2.数据结构定义:是指带有结构的数据元素的集合。所谓结构就是指数据元素之间的前 后件关系。 在数据结构中,没有前件的结点称为根结点,没有后件的结点为终端结点(也叫叶子结点)。3.空的数据结构:一个元素都没有的数据结构。4.数据结构的种类:线性结构与非线性结构。 线性结构:有且只有一个根结点,每一个结点最多有一个前件,也最多有一个后件。 非线性结构:如果一个数据结构不是线性结构,则称之为非线性结构。 1.3线性表及其顺序存储 1.线性表是最简单、最常用的一种线性结构。2.非空线性表的结构特征: (1)有且只有一个根结点,无前件

(2)有且只有一个终端(叶子)结点,无后件 (3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。 在线性表中结点的个数n称为线性表的长度,当n=0时,称为空表。 3.线性表顺序存储结构的基本特点: (1)所有元素所占的存储空间是连续的 (2)各元素在存储空间中是按逻辑顺序依次存放的4.在长度为n的顺序存储的线性表中,当在任何位置上插入或删除一个元素概率都相等时, 插入或删除一个元素所需移动元素的平均 个数是为n/2。 1.4栈和队列 1.栈:限定在一端进行插入与删除的线性表。 2.栈的结构特点:先进后出或后进先出 3.栈的基本运算:入栈运算、退栈运算、读栈

我对软件工程专业的认识

班级:姓名:学号: 我对软件工程专业的认识 软件工程这个专业,当初并不了解,只是自认为对计算机比较感兴趣,于是选择了一些和计算机有关的专业,最后,在各种机缘巧合下,我来到了杭州电子科技大学的软件工程学院。 软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,如工业、农业、银行、航空、政府部门等。这些应用都促进了经济和社会的发展,也提高了工作和生活效率。 以上来源于百度百科软件工程。看这段话,也只是非常粗略地介绍了一下软件工程。而我对于软件工程,仍然是模糊一片。进入大学后,经过三四个月的学习以及学校开办的《软件工程专业学科导论》课程,我对软件工程有了新的认识。 在《计算机科学及时百科全书》中,对计算机软件做出如下定义:计算机软件指计算机系统中的程序及其文档。程序是计算任务的处理对象和处理规则的描述。任何以计算机为处理工具的任务都是计算任务,处理对象是数据(如数字、文字、图形、图像、声音等)或信息(数据及有关的含义)。处理规则一般指处理的动作和步骤。文档是为了便于了解程序所需的阐述性资料。 上面对于软件的描述强调抽象的逻辑定义,我们在使用计算机时用到的软件可以帮助我们更好地理解。例如Microsoft office 、腾讯QQ、Photoshop、迅雷等等,这些软件已经渗 入我们的生活,为我们提供不同的服务,包括办公、聊天、绘图、下载等等。随着计算机的普及程度越来越高,其所适用范围也越来越广,而我们对软件的需求也会越来越大,甚至依赖于软件。我相信,随着软件的更新发展,软件将能够满足人们的各种需求,所谓,软件工程,无所不能。 对于软件的大量需求,我们是否有足够的能力去研制和开放呢?著名软件工程专家 B.Boehm综合有关专家和学者的意见并总结了多年来开发软件的经验,于1983年在一篇 论文中提出了软件工程的七条基本原理。 (1)用分阶段的生存周期计划进行严格的管理。 (2)坚持进行阶段评审。 (3)实行严格的产品控制。 (4)采用现代程序设计技术。 (5)软件工程结果应能清楚地审查。 (6)开发小组的人员应该少而精。 (7)承认不断改进软件工程实践的必要性。 B.Boehm指出,遵循前六条基本原理,能够实现软件的工程化生产;根据第七条原理,不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验,才能开发一款好软件。现在市场上有非常多的软件企业,软件的数量也是不计其数,可当中适合人们需求,使用方便,易于掌握的软件又有多少呢?从目前的情况来看,企业研发软件的成本还是很高,研发周期仍需要比较长的时间,孕育出来的软件仍需要不断地修改完善。为了提高软件的研发效率,降低软件的研发成本,保证软件的质量,软件工程学科应运而生。人类5000年的文明历史,工程建设领域可谓硕果累累,这当中很重要的一点是工程建设领域的生产模式已经比较成熟,

软件工程期末复习知识点整理

复习整理 、绪论 1. 软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 是指导计算机软件开发和维护的一门工程学科;采用工程化的原理与方法对软件进行计划、开发和维护;把证明正 确的管理技术和最好技术综合运用到软件开发中;研究经济地开发岀高质量的软件方法和技术;研究有效维护软件 的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。 ⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1)过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构 +算法;着眼于程序的过程和基本控制结构,粒度最小 (2)面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对 象,粒度比较大 (3)基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合 整个领域的类对象,粒度最大 二、软件生存周期与软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动 定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期 目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段, 给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。 主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护( P19) 2、软件生命周期划分为哪几个阶段 软件生命周期分为三个时期八个阶段: 软件定义:问题定义、可行性研究; 软件开发:需求分析、概要设计、详细设计、编码、测试; 软件运行:软件维护

国家二级公共基础知识(程序设计基础、软件工程基础)-试卷1

国家二级公共基础知识(程序设计基础、软件工程基础)-试卷 1 (总分:72.00,做题时间:90分钟) 一、选择题(总题数:36,分数:72.00) 1.选择题下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。(分数: 2.00) __________________________________________________________________________________________ 解析: 2.下列叙述中正确的是( )。 (分数:2.00) A.程序执行的效率与数据的存储结构密切相关√ B.程序执行的效率只取决于程序的控制结构 C.程序执行的效率只取决于所处理的数据量 D.以上都不正确 解析:解析:影响程序执行效率的因素有很多,如数据的存储结构、程序处理的数据量、程序的算法等。顺序存储结构和链式存储结构在数据插入和删除操作上的效率就存在差别。其中,链式存储结构的效率要高一些。 3.下列描述中,不符合良好程序设计风格要求的是( )。 (分数:2.00) A.程序的效率第一,清晰第二√ B.程序的可读性好 C.程序中要有必要的注释 D.输入数据前要有提示信息 解析:解析:一般来讲,程序设计风格是指编写程序时所表现出的特点、习惯和逻辑思路。程序设计风格总体而言应该强调简单和清晰,程序必须是可以理解的。著名的“清晰第一,效率第二”的论点已成为当今主导的程序设计风格。 4.结构化程序所要求的基本结构不包括( )。 (分数:2.00) A.顺序结构 B.GOTO跳转√ C.选择(分支)结构 D.重复(循环)结构 解析:解析:结构化程序的基本结构有:顺序结构、选择结构和循环结构,没有GOTO跳转结构。 5.下列选项中不属于结构化程序设计原则的是( )。 (分数:2.00) A.可封装√ B.自顶向下 C.模块化 D.逐步求精 解析:解析:结构化设计方法的主要原则可以概括为自顶向下、逐步求精、模块化、限制使用goto语句。 6.结构化程序设计的基本原则不包括( )。 (分数:2.00) A.多元性√ B.自顶向下 C.模块化

软件工程认识实习报告

软件工程认识实习报告 专业班级:csdn-java 学生姓名:曹炳旭 随着软件工程学习的深入,除了对基本专业知识的掌握外,对软件工程总体的把握显得越来越重要,因此这次认识实习学到的知识对于我们认识软件工程和规划今后道路来说非常重要,通过这次认识实习,了解了软件工程的定义、目的历史、热点问题等,掌握了软件开发的流程,编程语言和行业现状。并对今后的学习和职业道路有了自己的规划,明确了自己的方向。 软件工程认识实习 一、认识软件工程 1、软件工程定义与目的 (1)软件工程定义软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。 (2)软件工程的目的软件工程的目标是明确的,就是研制开发与生产出具有良好的软件质量和费用合算的产品。费用合算是指软件开发运行的整个开销能满足用户要求的程度。软件质量是指该软件能满足明确的和隐含的需求能力的有关特征和特性的总和。 2、软件工程的内容 (1)软件工程研究内容软件工程学主要研究软件结构、软件设计方法

论、软件工具、软件工程标准和规范,以及与软件工程有关的理论等。 (2)软件工程学习的内容从软件的生产管理技术来分:软件的需求定义和分析技术;软件设计技术和设计审查技术;软件设计表现技术;软件测试技术;软件可靠性的理论及其评价方法;软件扩充和维护;软件成本估算等。从内容上可分为理论、结构、方法、工具等部分。其中理论与结构是方法论与工具的基础及前提。在方法论与工具方面存在着这样的关系:为了找出行之有效的方法就应该具备合适的工具;反之,为了制造、改进软件工具,也应先有合适的方法3、软件工程的发展历史 (1)、早期软件的出现计算机出现之前,就已经有很多数学家为计算机软件的出现打下了坚实的数学理论基础,比如著名的数学家“阿兰.图灵”和他的导师一起努力,在20世纪三、四十年代年代就创建立了“图灵机”理论,从理论上解决了计算机软件和核心——“计算复杂性”以及“算法表示”问题。(2)、现代计算机软件的问世1946年,伴随着第一台电子计算机的问世诞生了。以写软件为职业的人也开始出现,他们多是经过训练的数学家和电子工程师,硬件通常用来执行一个单一的程序,而这个程序又是为一个特定的目的而编制的。1954年,“约翰.巴科斯”建立了高级语言的思想,并设计出了世界上第一个真正意义上(至今广泛应用)的高级语言,第一个完全脱离机器硬件的高级语言—Fortran问世1961年第一个数据库管理系统—IDS由通用电气(GE)公司的Charles Bachman开发出。 (3)软件危机的出现 60年代中期软件开始作为一种产品被广泛使用,出现了“软件作坊”专职应别人的需求写软件。“软件危机”就这样开始了!1968年北大西洋公约组织的

软件工程知识点总结

软件工程知识点总结 软件工程专业是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。接下来是为大家收集的软件工程知识点总结,以供大家学习! 知识点一软件工程的基本概念 1、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。 1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 2)数据是使程序能够正常操作信息的数据结构。 3)文档是与程序开发、维护和使用有关的图文资料。 国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。 2、软件特点: 1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分; 2)软件的生产与硬件不同,它没有明显的制作过程; 3)软件在运行、使用期间不存在磨损、老化问题; 4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题; 5)软件复杂性高,成本昂贵; 6)软件开发涉及诸多的社会因素

3、软件的分类: 按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件) 1)应用软件是为解决特定领域的应用而开发的软件。 2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。 4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面: ①软件开发的实际成本和进度估计不准确 ②开发出来的软件常常不能使用户满意 ③软件产品的质量不高,存在漏洞,需要经常打补丁 ④大量已有的软件难以维护 ⑤软件缺少有关的文档资料 ⑥开发和维护成本不断提高,直接威胁计算机应用的扩大 ⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长 5、软件工程:此概念的出现源自软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。

二级考试公共基础知识单元软件工程

二级考试公共基础知识单元:软件工程 A005:构成计算机软件的是() A、程序和文档 B、程序和数据 C、程序、数据及相关文档 D、源代码 参考答案:C A006:软件生命周期可分为定义阶段、开发阶段和维护阶段,下面不属于开发阶段任务的是()A、可行性研究B、测试C、设计D、实现 参考答案:A A007:下面不能作为结构化方法软件需求分析工具的是() A、数据字典(DD) B、判定表 C、数据流程图(DFD图) D、系统结构图 参考答案:D A052(图):软件详细设计产生的图如下: 该图是() A、E-R图 B、PAD图 C、程序流程图 D、N-S图 参考答案:C A056:软件设计中划分模块的一个准则是() A、低内聚低耦合 B、高内聚高耦合 C、低内聚高耦合 D、高内聚低耦合 参考答案:D A057:下列选项中不属于结构化程序设计原则的是() A、模块化 B、可封装 C、逐步求精 D、自顶向下 参考答案:B A097:下列不属于软件开发阶段任务的是() A、实现 B、设计 C、可行性研究 D、测试 参考答案:C A148:面向对象方法中,继承是指() A、各对象之间的共同性质 B、类之间共享属性和操作的机制 C、一个对象具有另一个对象的性质 D、一组对象所具有的相似性质 参考答案:B A149:软件生命周期是指()

A、软件的开发过程 B、软件的运行维护过程 C、软件产品从提出、实现、使用维护到停止使用退役的过程 D、软件从需求分析、设计、实现到测试完成的过程 参考答案:C A150:软件测试的目的是() A、评估软件可靠性 B、改正程序中的错误 C、发现程序中的错误 D、发现并改正程序中的错误参考答案:C A189:下列属于系统软件的是() A、财务管理系统 B、数据库管理系统 C、杀毒软件 D、编辑软件word 参考答案:B A190:程序测试的目的是() A、执行测试用例 B、诊断和改正程序中错误 C、发现并改正程序中错误 D、发现程序中的错误 参考答案:D A228:下面对软件特点描述正确的是() A、软件在使用中存在磨损,老化问题 B、软件是一种逻辑实体,具有抽象性 C、软件复制不涉及知识产权 D、软件具有明显的制作过程 参考答案:B A229:下面属于良好程序设计风格的是() A、随意使用无条件转移语句 B、程序效率第一 C、程序输入输出的随意性 D、源程序文档化 参考答案:D A230:下面对软件测试和软件调试叙述错误的是() A、正确的执行测试用例 B、严格执行测试计划,排除测试的随意性 C、软件测试不需考虑测试成本 D、软件调试的目的是改正软件错误 参考答案:C A268:下面属于软件设计阶段产生的文档是() A、详细设计规格说明书 B、数据流程图和数据字典 C、软件需求规格说明书 D、软件确认测试计划 参考答案:A A269:软件工程包括的要素是() A、算法和工具 B、技术和管理 C、算法和过程 D、方法、工具和过程 参考答案:D A308(图):某系统结构图如下图所示,该系统结构图中最大扇出数是()。

软件工程专业认识实习

××学院 学生实习报告 实习名称认识实习 实习时间2017.10.23~2017.10.29 实习地点 专业班级 学生学号 学生姓名 指导教师 教学单位(盖章) 二O一七年十月二十九日

实习报告正文内容及格式要求: 1.题目……………………………黑体,小三号,居中 2.实习时间………………………黑体,五号,左对齐…(正文:宋体,五号) 3.实习目的………………………黑体,五号,左对齐…(正文:宋体,五号) 4.实习单位综合概述……………黑体,五号,左对齐…(正文:宋体, 五号) 5.实习内容及进度………………黑体,五号,左对齐…(正文:宋体, 五号) 6.实习体验与心得………………. 黑体,五号,左对齐…(正文:宋体,五号) 7.结论……………………………. 黑体,五号,左对齐…(正文:宋体,五号) 实习报告撰写要求: 1、文字通顺,语言流畅。 2、图表整洁,布局合理,须按国家规定的绘图标准绘制。 3、毕业实习报告字数不少于3千字。 4、使用德州学院学生实习报告统一用纸(A4纸)打印或书写,其他默认。 注:1、各专业可根据不同的实习类型适当调整报告内容。 2、实习报告交所在系存档,其中评选出5%的优秀实习报告复制后交教务处存档。

认识实习报告 实习时间 2017年10月23日至2017年10月29日。 实习目的 (1)了解计算机等的IT行业,并且能够参与到IT行业; (2)了解计算机技术和信息处理技术的应用现状、前景以及对IT人才的需求; (3)了解本专业的知识体系结构,向学生介绍大学四年的基本课程体系结构; (4)了解本专业知识在社会的应用领域及重要性,从而加强学生对专业的感性认识,培养学生的专业学习兴趣,提高学生的专业基本素质,为以后的专业学习和未来的人生职业规划奠定良好的基础。实习单位综合概述 1、QST青软实训创建于2006年,是从事专业化职业培训(教育)和企业人力资源服务的机构。总部设于青岛软件园培训中心,并设有QST青岛高新区基地、QST大连软件园基地、QST如皋软件园基地(江苏省省级高新技术开发区),是国内早批通过ISO9001:2000的大学生IT实训机构。成立以来,已与全国上百所高校进行合作,开展了实训、短训、课程置换、N+1、合办软件工程专业、共建二级学院等业务,成功向社会输送了万余名专业的IT人才。 根据IT企业对人才资源的需求趋势,提供成本可控的定时、定量、定制的IT人力资源服务--RTO 锐聘,为不同需求IT企业提供从招聘外包、定制培养到人才租赁的整体解决方案,帮助企业招到人、培训好人、使用好人。 总部位于青岛,是通过ISO9001:2000的大学生IT实训机构。经过多年的发展,QST青软实训已经成为专业化大学生实训和企业IT人力资源解决方案提供商。 2、北京恩源科技有限公司 北京恩源科技有限公司1999年起步于青岛,是国内较早从事互联网信息服务的公司,是国内专业的区域互联网+服务提供商及系统集成商,截至2015年底,公司在全国范围内设立近100个管理中心,体系内员工达3千余人。恩源长期坚持自主创新,致力于用信息技术推动商业文明和社会进步。 公司产品和解决方案涵盖云计算、物联网、电子商务、服务外包、移动互联网、电信增值技术的研发与应用领域;同十几个国家级高新技术产业园区、上百家地区电信运营商达成战略合作,为企业、个人客户提供电子商务咨询、采购、商旅、产品销售、人才培训等方面的解决方案和服务,业务范围遍布全国28个省(自治区、直辖市),电子商务服务会员近1000万人。目前,恩源的核心业务领域主要包括电子商务平台搭建、城市产业规划、产业招商、产业运营、会员服务。 业务规模:北京恩源科技有限公司自1999年创业以来,公司在全国范围内设立近100个管理中心,

软件工程复习知识点

1.软件危机的概念,内容,原因及消除的途径;软件危机的概念: 软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。概括地说,软件危机包含两方面问题: 如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。软件危机产生的原因: 软件本身的复杂性、难衡量的特点; 2. 软件开发与维护的方法不正确。消除软件危机的途径: (1)对计算机软件应当有一个正确的认识; (2)应当有组织、有计划、通过严格的管理手段进行软件的开发; (3)及时总结软件开发的成功技术和方法并加以推广; (4)开发和使用更好的软件工具; 总之,为了解决软件危机,既要有技术措施,又要有必要的组织管理措施。 2.软件工程的定义,基本原理;定义:软件工程是指导计算机软件开发和维护的一门工程学科。基本原理:软件工程的7 条基本原理: (1)用分阶段的生命周期计划严格管理 (2)坚持进行阶段评审 (3)实行严格的产品控制 (4)采用现代程序设计技术 (5)结果应能清楚地审查 6)开发小组的人员应该少而精 7) 承认不断改进软件工程实践的必要性 3.软件工程方法学的基本概念、内容;基本概念:把在软件生命周期全过程中使用的一

整套开发和管理技术方法的集合成为软件工程方法学,也称为范型。软件工程方法学包含3 个要素:方法、工具和过程。 内容:目前使用得最广泛地软件工程方法学,分别是传统方法学和面向对象方法学。传统方法学也称为生命周期方法学或结构化范型。 4.软件生命周期的具体内容,每一个阶段的任务是什么?结合具体的工程例子来理解做 软件项目主要分那几个个阶段。 ①问题定义:确定要求解决的问题是什么 ②可行性研究:决定该问题是否存在一个可行的解决办法 ③需求分析:深入了解用户的要求,在要幵发的目标系统必须做什么问题和用户取得完全一致的看法。 ④概要设计:概括回答怎样实现目标系统。概要设计又叫逻辑设计、总体设计、高层设计。 ⑤详细设计:把解法具体化,设计出程序的详细规格说明。详细设计也叫模块设计、底层设计。 ⑥编码和单元测试:编写程序的工作量只占软件幵发全部工作量的10沧20%。 ⑦综合测试:软件测试的工作量通常占软件幵发全部工作量的40沧50%。 ⑧软件维护:软件维护的费用通常占软件总费用的55 %-70% ①②③为软件定义时期,④⑤⑥⑦为软件幵发阶段。④⑤为系统设计,⑥⑦为系统实现。 5.理解几个典型软件过程的内容及其优点与缺点:瀑布模型、增量模型、快速原型模型、 螺旋模型、喷泉模型等;瀑布模型内容:瀑布模型是带“反馈环”的。优点:(1)可强迫开发人员采用的规范的方法(结构化技术)。 (2)严格地规定了每个阶段必须提交的文档。

相关主题
文本预览
相关文档 最新文档