软件工程

如何评测软件工程知识技能水平?

Deadly 提交于 2020-01-07 00:11:54
一、何为软件工程&何为软件工程师 软件工程 是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。 在现代社会中,软件应用于多个方面。典型的软件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,也提高了工作效率和生活效率 。 软件工程师 英文是Software Engineer,是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。软件工程师是从事软件开发相关工作的人员的统称。 它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位,工作内容都与软件开发生产相关。软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)等,还有诸多如JAVASCRIPT、AJAX、HIBERNATE、SPRING等前沿技术。此外,关于网络工程和软件测试的其他技术也要有所涉猎。 其工作内容: 1、 指导程序员的工作; 2、 参与软件工程系统的设计、开发、测试等过程; 3 、协助工程管理人保证项目的质量; 4 、负责工程中主要功能的代码实现; 5

软件工程第五次作业(第四组)

本小妞迷上赌 提交于 2020-01-07 00:01:49
小组成员:郭立同,柳洋,孙晨旺,孙世鑫,刘玲玲,陈忠林 团队应该如何做好软件质量保证(QA) 软件质量是贯穿软件生存期的一个极为重要的问题,是软件开发过程中所使用的各种开发技术和验证方法的最终体现。因此在软件生存期中要特别重视质量的保证,以生产出高质量的软件产品。 软件质量保证的目标是开发出可接受的软件产品。这里所谓的“可接受”应是用户理解意义上的可接受,或者说应达到用户提出的质量要求。所以软件质量保证的任务自然就是保证软件质量。 软件质量保证是提高预防、检查与改进来保证软件质量,是软件生存周期的管理以及验证软件是否满足规定的质量和用户的需求。 软件质量保证是由各项任务构成,这些任务的参与者有两种人。软件开发人员和软件质量保证人员。前者负责技术工作,后者负责质量保证的计划、监督、记录、分析及报告工作。 软件开发人员通过采用可靠的技术方法和措施,进行正式的技术评审,执行计划周密的软件测试来保证软件产品的质量。软件质量保证人员则辅助软件开发组得到质量的最终产品。所以软件开发人员和软件质量保证人员都是保证软件质量的重要组成部分。 如果将一个软件生产类比于一个工厂的生产。那么生产线就是过程,产品按照生产线的规定过程进行生产。软件质量保证体系(SOA)的职责就是保证过程的执行,也就是保证生产线的正常执行。 所以我们可以总结出软件质量保证体系(SQA)的主要职责有以下三点: (1

如何评测软件工程知识技能水平?

偶尔善良 提交于 2020-01-06 22:11:56
您认为一个软件工程师的软件工程知识技能水平高低主要体现在哪些方面,请您简要总结一下 1.扎实的计算机基础知识 2.对软件设计流程的深刻理解 3.代码实现的鲁棒性与兼容性 4.对于软件工程相关的开发工具与开发思想的熟练应用 一、选择题 1. 软件工程的出现主要是由于 ( C )。 A 、程序设计方法学的影响 B 、其它工程科学的影响 C、软件危机的出现 D 、计算机的发展 解析:软件危机是指在计算机软件开发和维护的过程中所遇到的一系列严重问题,为了软件危机,出现了软件工程。 2.“软件危机”是指 A 计算机病毒 的出现 B 利用计算机进行经济犯罪 C 软件开发和维护中出现的一系列问题 D 人们过分迷恋计算机系统 参考答案:C 解析:软件危机指的是随着软件规模不断扩大而产生的一系列开发与维护的难题 3 软件设计中模块划分应遵循的准则是 A.低内聚低耦合 B.高耦合高内聚 C.高内聚低耦合 D.以上说法均错误 参考答案:C 参考解析:根据软件设计原理提出如下优化准则:①划分模块时,尽量做到高内聚、低耦合,保持模块相对独立性,并以此原则优化初始的软件结构。②一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近。③软件结构的深度、宽度、扇入、扇出应适当。④模块的大小要适中。C正确。 4. 软件开发的结构化生命周期方法将软件生命周期划分成 A 、计划阶段

软件工程学习笔记(三):需求工程

大憨熊 提交于 2020-01-06 20:48:36
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1 概述 需求工程是应用已证实有效的技术与方法开展需求分析,确定客户需求,帮助分析人员理解问题,评估可行性,协商合理的解决方案,无歧义地规约方案,确认规约以及将规约转换到可运行系统时的需求管理.需求工程是一个不断反复的需求定义,文档记录,需求演进的过程,并最终在验证的基础上冻结需求.需求工程可以分为六个阶段:需求获取,需求分析与协商,系统建模,需求规约,需求验证,需求管理. 2 需求获取 需求获取阶段分析人员通过与用户的交流,对现有系统的观察以及对任务进行分析,确定系统或产品范围的限制性描述,与系统或产品有关的人员及特征列表,系统的技术环境的描述,系统功能列表及应用于每个需求的领域限制,描述不同运行条件下系统或产品使用状况的应用场景等,为需求分析打下基础. 2.1 软件需求 软件需求是指用户对目标软件系统在功能,行为,性能,设计约束等方面的期望,包括: 2.1.1 功能需求 考虑系统要做什么,在何时做,在何时及如何修改或升级等. 2.1.2 性能需求 考虑软件开发的技术性指标,例如,存储容量限制,执行速度,响应时间以及吞吐量. 2.1.3 用户或人的因素 考虑用户的类型,例如用户对使用计算机的熟练程度,需要接受的训练,用户理解,使用系统的难度,用户错误操纵系统的可能性等. 2.1.4 环境需求

如何评测软件工程知识技能水平

♀尐吖头ヾ 提交于 2020-01-06 20:14:24
根据本课程的学习以及自身的知识和经验,您认为一个软件工程师的软件工程知识技能水平高低主要体现在哪些方面,请您简要总结一下:   1.具有优秀的学习能力,IT技术更新很快,软件工程师应具备的技能里很重要的一点就是学习能力。只有具备了学习能力,才能很快适应市场与业务的需要,有时候工作的需求不是你在学校就已经学过的,只能靠着之前积累的经验与快速学习熟悉新的知识,升华自己的能力,为以后成为架构师后者其他职位打下基础。   2.具有扎实的计算机专业知识,吃透高等数学、离散数学、算法等课程。(1)基础编程语言,编程语言是软件工程师必备的技能,不同方向的开发需要使用到不同的编程语言通常来说,软件工程师往往需要掌握多门编程语言。(2)算法。算法是软件工程师的重点知识技能,算法的掌握情况往往能够决定软件工程师的成长高度。(3)数据库。信息是以数据为中心的,因此与数据库的交互在所有软件中都是必不可少的,了解数据库操作和编程是软件工程师需要具备的基本素质之一。目前常用的数据库软件有Oracle数据库和SQL Server等。   3.具有对这个行业的热爱,才有能坚持与继续学习的动力。   4.具有良好的交流与沟通能力,现在的软件开发永远不是一个人的游戏,需要与团队成员协调沟通,分配好工作的任务与进度,才能够开发出高质量的软件。 一、选择题 1、软件工程的出现主要是由于( ) A.程序设计方法学的影响  

如何评测软件工程知识技能水平

随声附和 提交于 2020-01-06 19:38:18
第一部分: 如何评测软件工程知识技能水平: 我认为评价一个合格的软件工程师,应该从以下几个方面来评价: 1、基本功 程序员是一个终身学习的职业,优秀的工程师,需要有强大的兴趣驱动力,有充足的勇气跳出自己的“舒适圈”,积极主动了解技术最前沿。而基本功恰恰是最主要的,只有有了足够好的基本功,才有能力支撑自己的兴趣和爱好。 2、基本的全栈能力 对全栈工程师,每个人都有不一样的定义,不一样的衡量标准。要求高的,认为全栈=全能,需求分析、产品设计、UI设计、移动开发、前端开发、后端开发、运维等,全部都熟悉。要求低的,认为只要既懂前端开发也会后端开发即可,比如,熟悉H5前端开发和Node.js后端开发,就可以称得上全栈工程师了。在我看来,其实都没有错,工程师也有分初级、高级、资深、专家,全栈工程师也一样有等级划分。一个优秀的工程师在能够数值自己的领域外也能较好的掌握其他岗位的知识。 3.清晰的开发思路 3.1、确定需求和构思整个网站系统(初步设想需要实现什么) 3.2、根据需求和需求文档制作UI图 3.3、根据UI图制作前端静态页面 3.4 根据前端静态页面(主要)和需求文档(次要)架构整个 系统(设计网站大的框架和制表) 3.5、后台程序员根据框架、静态页、数据表、需求文档等实现功能 在上面的基础上能够较好地领导整个项目团队,能够独立开发带领团队较好的完成项目。 4、团队管理

软件工程作业4

纵然是瞬间 提交于 2020-01-06 17:47:44
小组成员:王中飞、刘瑞、许保保、邹冬梅、陈志伟 Discuss your test plan 我们项目基于Android开发所写成的一款简单的密码管理APP。我们选择这个项目的原因是,现在手机软件越来越多,每种软件都需要注册账户和密码,而密码如果都设置相同的话就会不太安全,但是设置不同的密码会大大增加我们的记忆量,而且长时间过后很有可能会忘记,所以就有了这款软件的必要性。这款软件主要用的语言还是Java语言,Java是现在流行的开发语言,也是我们学习的一种语言,所以运用Java语言。 Do we need to test until our software is PERFECT? 需要,测试是为了尽可能多的发现缺陷,比如功能的错误,性能低下,用户体验。 可以进行白盒测试:看得见的程序内部结构,测试源程序的逻辑结构和实现细节。白盒测试必须由开发人员独立执行 黑盒测试:看不见的程序内部结构,按照规格来测试程序是否符合要求。黑盒测试必须由独立测试小组执行,因为开发人员难以做到客观公正。 主要发现以下问题:是否有不正确或遗漏了的功能;在接口上,能否正确的接收输入,能否输出正确的结果; ·是否有数据结构错误或外部信息访问错误;性能上是 否能够满足要求;是否有初始化或终止性错误; 黑盒测试需要在所有可能的输入条件和输出条件中确定测试数据,以检查程序是否都能产生正确的输出;有时测试数 据量太大

如何评测软件工程知识技能水平?

混江龙づ霸主 提交于 2020-01-06 16:46:45
一. 软件工程师的软件工程知识技能水平高低主要体现在哪些方面 1 、软件工程师 软件工程师 主要是指从事软件开发相关工作的人员,不仅包括通常意义上的软件设计人员,还包括软件架构人员、软件工程管理人员、程序员等其他与软件开发相关的工作人员。软件工程师需要掌握较为全面的计算机技术,除了基础的编程语言、数据库技术等,工程师还要掌握诸多如JAVASCRIPT、AJAX、HIBERNATE、SPRING 等前沿技术。 软件工程师 是强调实际的技术水平和解决问题的职业,他们除了重点关注项目的经验和学习知识的能力之外,还要学会利用软件工程专业知识来解决问题。根据工程师在公司岗位的不同,他们的职业要求也有所不同 2. 软件工程师的知识技能包含三大类基础知识,计算机基础、数学基础和工程基础:所以软件工程师的软件工程知识技能水平的高低可以体现在这几个方面。 第一:具有扎实的计算机专业知识: 此外精通高等数学、离散数学、电子学、编程语言、数据结构等课程。 1)基础编程语言,编程语言是软件工程师必备的技能,不同方向的开发需要使用到不同的编程语言,比如Web开发熟练掌握ASP,NET等编程语言,而大数据可能会使用Scala等语言,而物联网开发可能会使用到C、C++等编程语言。通常来说,软件工程师往往需要掌握多门编程语言。 2)算法。算法是软件工程师的重点知识技能

如何评测软件工程知识技能水平?

梦想的初衷 提交于 2020-01-06 16:21:02
软件工程知识技能水平的测评试题 一 判断 1、文档是软件产品的一部分,没有文档的软件就不称其为软件。对 2、在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。错 3、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。错 4、建立用例模型的步骤包括确定角色、确定用例和绘制用例图。错 5、数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。错 6、软件配置管理是一组标识、组织和控制修改源程序的活动。错 7、UML是一种直观化、明确化、构建和文档化软件产物的通用语言。错 8、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。对 9、边界值分析方法是取输入/输出等价类的边界值作为测试用例。对 10、面向对象的分析是面向计算机系统建立软件系统的对象模型。错 二 选择 1、(D)是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。 A 软件过程 B 软件测试 C 软件生存周期 D 软件工程 2、ISO9000是由ISO/TC176制定的关于(B)和质量保证的国际标准。 A 质量控制 B 质量管理 C 质量策划 D 质量改进 3、CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。除第1级外,每个等级都包含了实现该成熟度等级目标的若干 (B)。 A

如何评测软件工程知识技能水平?

偶尔善良 提交于 2020-01-06 15:54:49
一、什么是软件开发工程师?      软件工程师是从事软件开发工作人员的统称,包括软件架构人员、软件工程管理人员、程序员等一系列岗位,工作内容都与软件开发生产相关。软件工程师的技术要求是相对较高的,除了最基础的编程语言、数据库技术等,还需要掌握一些前沿技术,对于网络工程和软件测试的其他技术也要有所了解。   软件工程师分级   软件工程师一般情况下分为4级:   1、软件技术员 2、助理软件工程师 3、软件工程师 4、高级软件工程师 二、 软件开发的主要步骤   软件开发一般分为下述四个步骤需求、设计、编程和测试      需求   不仅仅是用户需求,应该是开发中遇到的所有的需求。比如,你首先要知道做这个项目是为了解决什么问题;测试案例中应该输入什么数据......为了清楚地知道这些需求,你经常要和客户、项目经理等交流。   设计   编码前,肯定有个计划告诉你要做什么,结构是怎样等等。你一定要按照这个来做,否则可能会一团糟。   编程   如果在项目截止日,你的程序不能跑起来或达不到客户的要求,你就拿不到钱。   测试   目的是让你知道,什么时候算是完成了。如果你聪明,你就应该先写测试,这样可以及时知道你是否真地完成了。否则,你经常会不知道,到底有哪些功能是真正完成了,离预期目标还差多远。 三、 软件工程师应该掌握的技能   (1)具有扎实的计算机专业知识