软件工程

构建可“复用”的软件测试环境

邮差的信 提交于 2020-01-24 15:26:30
软件测试环境是进行软件测试所必需的工作平台和前提条件,包括硬件环境和软件环境,硬件环境指进行测试所必需的服务器、客户端、网络连接设备,以及打印机/扫描仪等辅助硬件设备所构成的环境;软件环境则指被测软件运行时的操作系统、数据库及其他应用软件等构成的环境。本文主要阐述在构建测试的软件环境中所用到的一些“复用”技术。   软件测试环境就象是一个舞台,可让所有的被测软件在这个舞台上各显其能,尽情“表演”,而我们的测试工程师们就像是一个个评委,对每个被测软件的“表演”打分、评判。因而,软件测试环境构建的是否合理、稳定和具有代表性,将直接影响到软件测试结果的真实性、可靠性和正确性,所以千万不可小窥了软件测试环境的搭建工作,它是测试实施的一个重要阶段和环节,其重要性是不言而喻的;另一方面,不同(版本)的操作系统、不同(版本)的数据库,不同(版本)的网络服务器、应用服务器,再加上不同的系统架构等的组合,使得要构建的软件测试环境多种多样、不胜枚举;而且现在随着软件运行环境的多样性、配置各种相关参数的“浩大工程”和测试软件的兼容性等方面的需要,使得构建软件测试环境的工作变得较为复杂和频繁,如果我们再按照以前那种按部就班地来搭建测试环境的方法,可真有点落伍了,不仅效率低下,而且灵活性、可复用性也较差。那么出路何在呢?   在软件的开发过程中,创建可复用的软件构件库的技术

软件工程第一次作业

血红的双手。 提交于 2020-01-24 12:25:32
---恢复内容开始--- 一 计算机专业术语 第1章 概论 软件=程序+软件工程 程序=数据结构+算法 软件企业=软件+商业模式 软件工程 Software Engineering 软件架构 Software Architecture 软件设计与实现 Software Design,Implementation and Debug 源代码管理 Source Code Control 配置管理 Software Configuration Management 质量保障 Quality Assurance 软件测试 Test 需求分析 Requirement Analysis 程序理解 Program Comprehension 软件维护 Software Maintenance 服务运营 Service Operation 软件的生命周期 Software Life Cycle,SLC 软件项目的管理 Project Management 用户体验 User Experience 国际化和本地化 Globalization & Localization 软件开发的不同阶段   玩具阶段   业余爱好阶段   探索阶段   成熟的产业阶段 软件的特殊性   复杂性 Complexity   不可见性 Invisibliity   易变性 Changeability   服从性

通读《构建之法》有感

巧了我就是萌 提交于 2020-01-24 10:40:49
四天的时间大致读了一遍《构建之法》后发现,之前可能只有一个疑惑——什么是软件工程?读完全书后发现满脑子都是问号。 虽然疑惑增多但是于我而言还是有些收获的,通读全书了解了软件开发的整体流程,认识到在软件开发的过程中,由于软件的复杂性、不可见性、易变性、服从性及非连续性等会引发一系列难题,从而刷新了对软件工程的认知。软件工程绝非是简单的编程,而是一门与人的行为和现实需求相关联的科学,包含众多不同的领域。 因为之前没有接触过软件工程,所以这次粗略的阅读后出现了大量的不能理解的问题,好些基础的知识点也通过网络查询等方法弄懂了,但是还是有一些问题不是能想得明白。简单的列了几个问题如下: 1、结对编程对我来说是一种没有接触过得编程方式,如何在这一过程中做到队员工作的合理分配? 2、在团队合作中,如果队员能力存在差异,怎样能在编程过程中真正的做到“拥有平等的决策权力”? 3、在具体的作业项要目中不能体会到完整的项目流程,客户的需求在整个开发过程中至关重要,那么具体 要怎样分析客户需求,从而了解客户到底想要什么样的软件呢? 4、对于一个比较复杂的工程,程序代码都有相互的关联 , 那么如何做到准确将其细化成几个各个小模块,并将其链接成相对较大的模块呢? 5、对于产品创新这一问题,如果产品本身已经很成熟,再对其进行进一步创新是否有现实的应用意义? 读过书后感觉,学习软件工程不仅是学习软件的设计思想

《软件工程》 团队项目展示

妖精的绣舞 提交于 2020-01-24 10:38:28
软件工程课好歹结束了。 特别感谢邹老师,曾助教的大力协助。 感谢同学们的配合,完成了那么多作业。 另外谢谢同学们的厚爱,让杜老师在“学生评价分”极低之囧下进行人生反思。 综合各小组的展示,总休上我们的软件离“有用”、“真实的用户”、“帮助别人解决问题”这些目标还有不小的距离,大部分团队的瓶颈在于技术有限,很多时间用于学习如何写代码而无暇顾及其他。 总之相信大家都挺有收获的,接下来查漏补缺,并把我们更新博客的好习惯传承下去,再期待下学期的软件工程课程设计大家交上更好的作品。 来源: https://www.cnblogs.com/MissDu/p/4612534.html

软件工程第三次作业

牧云@^-^@ 提交于 2020-01-24 10:37:34
1. 题目要求 题目(1):最大连续子数组和(最大子段和) 背景 问题: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n 例如,当(a[1],a[2],a[3],a[4],a[5],a[6])=(-2,11,-4,13,-5,-2)时,最大子段和为20。 -- 引用自《 百度百科 》 2. 具体要求 (1) 请从上述两个题目中根据个人实力任选一题,要求写出可运行的完整代码提交至GitHub或者Coding.net系统中,并将代码地址附到博客内 (2) 请从 语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖 五个覆盖标准中(条件组合覆盖难度较大,鼓励尝试,但请谨慎选择),任选一个标准设计测试用例 (3) 请利用自动测试工具对程序进行测试 (4) 请将程序运行结果和自动测试分析结果截图附到博客中 3.代码实现 package zuoye3; public class zuoye3 { public static void main(String[] args) { // TODO Auto-generated method stub int[]

第三次软件工程作业

半城伤御伤魂 提交于 2020-01-24 10:37:15
软件工程作业-3 代码地址github 作业要求 最大连续子数组和(最大子段和): 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n 例如,当(a[1],a[2],a[3],a[4],a[5],a[6])=(-2,11,-4,13,-5,-2)时,最大子段和为20。 (1) 写出可运行的完整代码提交至GitHub或者Coding.net系统中,并将代码地址附到博客内 (2) 请从语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖五个覆盖标准中(条件组合覆盖难度较大,鼓励尝试,但请谨慎选择),任选一个标准设计测试用例 (3) 请利用自动测试工具对程序进行测试 (4) 请将程序运行结果和自动测试分析结果截图附到博客中 题目分析 给定一个数组,求最大子数组和.这个子数组从数组的任意位置开始,任意位置结束.采用for循环遍历数组,用变量sum来存储累加和,当然,sum值小于等于0的时候,被累加的这一段数组便被抛弃,从新的数组元素开始累加.每累加一次,便和存储最大值的max变量比较,如果比max大,就让max等于sum,防止sum在累加完后变小

构建之法阅读笔记01

流过昼夜 提交于 2020-01-24 09:16:15
构建之法阅读笔记 01 我过去对于软件是什么不是很清楚。结合书中所讲的内容对于软件有了更深的了解。 软件 = 程序 + 软件工程。这句话让我对软件有了一个初步的理解,软件的商业模式和职业道德规范与软件开发活动 (构件管理、源代码管理、软件设计、软件测试、项目管理)相关的内容,是软件工程的核心部分。程序(算法、数据 结构)是基本功,但是在算法和数据结构之上,软件工程决定了软件的质量;商业模式决定了一个软件企业的成败。软 件从业人员和软件企业的道德操守会极大的影响软件用户的利益。 软件开发的不同阶段作者用航空产业作比较。我觉得安全性能很重要,程序在运行的时候可能会发生异常,我们应该 做到让程序按照我们的套路运行,并安然退出,使数据不被破坏。 软件工程是什么呢?软件工程把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。软件大致 分为两种:系统软件和应用软件。原来操作系统也是软件啊!软件开发过程中的复杂性、不可见性、易变性、服从性、非 连续性。软件的这些本质特性让 “做好一个软件”变得很难,同时也让软件工程有它独特的挑战和魅力。 软件工程的目标是创造“足够好”的软件。有实际用处而又完美的软件,世界上是不存在的。我们生活中常见的一种 现象,软件的不断更新。其实软件更新更多的是添加了一些功能,使我们用户的需求不断被满足。 以后不能仅以写出程序运行代码作为软件学习的目标

构建之法阅读笔记01

倾然丶 夕夏残阳落幕 提交于 2020-01-24 09:09:27
软件是什么? 1.(我过去的所做所想) 大学已经马上接近尾声,学了将近三年的计算机,但是当别人问起我这个问题时,仍然不知道该如何回答,或者也是因为不知道如何回答这个问题是正确的。如果真的要让我给出一个答案,我想我会给出一个最简单直白的回答,软件就是一堆程序。这是我最初开始学习软件的真实想法,也是我为软件做的自我注释。在学校读书的这个过程中,没有真正地做过工程项目,学习一门语言课程或者其他课程,或者遇到小学期老师让组队做个小程序的时候,仍然没有树立起工程的思想和概念,第一个原因是我们写的程序都比较小,最多的也就是几百行,实现的功能也比较简单,程序模块之间的显性关联与隐形关联比较少,第二个原因是组队流于形式,不是说我们不可以一起写程序,而是指我们的组队不过是一块拼凑代码数量,对于程序要实现的功能以及各个模块之间的组合从来没有过细致耐心的讨论,更不用说需求分析了。软件就是一堆程序的思想源于这样的实际情况,但是学习了《软件工程》以后,我才发现,这种思想极具片面性,从工程的角度讲,软件就是一堆程序这样的说法就是错误的。 2.(这种思想的误区) 《构建之法》第一章的绪论中就给出了软件的定义,软件=程序+软件工程。对于软件而言,程序是必不可少的,程序对于软件而言,就如同血液、肉体、骨头对人而言,程序的排列组合构建起来的一个可用的整体就是一个软件。但是仅仅包括程序的软件不是一个真正意义上的软件

《构建之法》第一次读书笔记

对着背影说爱祢 提交于 2020-01-24 09:08:58
1551428 黄维 第一章 概论 首先了解:程序=数据结构+算法 程序是指源代码,它们是建立在数据结构的一些算法。它们需要对数据进行操作(包括静态和动态数据)。软件构建的过程还要有各种文件和数据来描述各个程序文件 之间的依赖关系、编译参数、链接参数等等。 软件团队会面对源代码管理问题,同时需要用一系列的工具、流程和文档来保证程序的正确性,这是质量保障,具体的验证过程就是软件测试。 软件团队要从需求分析开始,把合适的需求梳理出来,然后逐步展开后续工作,如设计软件架构,实现数据结构和算法,测试,最后发布软件。 软件工程的核心内容是构建管理,源代码管理,软件设计,软件测试,项目管理。同时,广义上的软件工程也包括用户体验,用户界面设计。故得出结论: 软件=程序+软件工程 推论:软件企业=软件+商业模式 软件工程是什么 软件:软件是可以运行在计算机及电子设备中的指令和数据的有序结合。 软件开发中面临着:复杂性、不可见性、易变性、服从性、非连续性让做好一个好软件很难。 软件工程的目标:研发出符合用户需求的软件,通过一定的软件流程,在预计时间内发布足够好的软件,能证明所开发的软件是可以维护和继续发展的。 软件工程是什么:软件工程是把系统的、有序的、可量化的方法应用到软件的开发运营维护上的过程 包括软件需求分析、软件设计、软件构建、软件测试和软件维护. 来源: https://www

个人作业——软件工程实践总结作业

冷暖自知 提交于 2020-01-24 07:24:16
一、请回望暑假时的第一次作业,你对于软件工程课程的想象 1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么? 一开始我的目标是希望在这门课上能够学习到更多的知识,能够自己开发出一款让自己满意的软件,学到实质性的东西。对比目前的所学所练所得,学习到了很多新的知识,实质性的东西,但是开发出来的软件还没有令自己满意,开发过程中每个功能点都要学习然后研究,经常会出现各种卡壳,能力和时间的不足,最后出来的产品并没有达到最初预想的效果。 2)总结这门课程的实践总结和给你带来的提升,包括以下内容: 1、统计一下,你在这门软件工程实践中,完成了多少行的代码; 差不多1500左右 2、软工实践的各次作业分别花了多少时间?(做一个列表) 作业 时间 第一次个人作业——准备篇 3h 第二次个人作业——数独 32h 团队作业——团队展示 2h 第一次结对作业——原型设计 12h 团队作业——选题报告 7h 第二次结对作业——匹配算法 20h 团队作业——需求报告 10h 团队作业——同学录 5h 团队作业——Alpha冲刺 15天 团队作业——事后诸葛亮 4h 第三次个人作业——华为云软件评测 10h 团队作业——beta冲刺 7天 第四次个人作业——软件工程实践总结 2h 3