软件工程

软件工程——编码阶段

主宰稳场 提交于 2019-12-06 12:20:45
【前言】 编码阶段就是到了总被吐槽的程序员的工作了,按照设计要求用代码实现功能。当然没有那么简单就完成了,合适的语言、好的注释、规范的代码与必不可少的文档等都是决定编码阶段质量的因素。 程序设计语言 语言的发展: 从语言的内在特征看高级语言可分为: ①系统实现语言 ②静态高级语言 ③块结构高级语言 ④动态高级语言 语言的选择原则: ①最少的工作量 ②最少技巧性 ③最少错误 ④最少维护 ⑤减少记忆 结构化程序设计 原则: ①使用语言中的顺序、选择、重复等有限的基本控制结构控制表示程序逻辑。 ②选用的控制结构只准许有一个入口和一个出口。 ③复杂结构应该用基本控制结构进行组合嵌套来实现。 程序设计风格 程序设计风格旨在让程序可读性更好,更易于理解,用规范化的代码和简明的注释,合理的结构,总是就是让读者看着更舒服,这个目的就达到了。 质量评价 【总结】 编码阶段是我们开始的必经之路,所以养成一个好的习惯,写一手好的、让他人看着舒服的有条理的代码,让自己更加规范,同时不断的提高自己,未来的路会越来越远。 来源: CSDN 作者: 不专业得Cook 链接: https://blog.csdn.net/R_s_x/article/details/53455277

软件工程阶段性总结(四)——测试和维护

非 Y 不嫁゛ 提交于 2019-12-06 12:20:27
在经过了软件的定义和开发阶段,接下来要进入测试和维护阶段了。大家可能都觉得软件的开发是核心,但比软件开发更重要的是测试和维护。从长远来看,在软件开发的后期以及软件正常投入使用以后,一直到软件生命周期的完结,维护都占了很大一部分比重,大约70%。 测试 测试包括两方面:软件测试和程序测试。软件测试是对软件计划、软件设计、软件编码进行查错和纠错的活动;程序测试是对编码阶段的语法错、语义错、运行错进行查找的编码执行活动。 首先对这章的知识点做一个宏观的把控: 我认为测试阶段的主要内容包括三个方面,弄清这三部分,就可以了解它的整个过程: 一、测试与软件开发阶段的关系: 测试过程是依相反顺序安排的自底向上,逐步集成的过程。也就是说测试的过程和软件开发各个阶段的过程刚好是相反的,下图可以很好的反应他们之间的关系: 二、用例设计 用例的设计和编制是软件测试阶段的核心,测试用例是测试工作的指导,是软件测试的必须遵守的准则。更是软件测试质量稳定的根本保障。所以说好的用例设计能够更好的发现软件系统的缺陷,保证软件的优良品质,减少测试的成本和时间。用例的设计包括黑盒测试和白盒测试。 黑盒测试: 着重测试软件的功能,对系统的各个模块进行的功能测试,可以说是从宏观上来把握的。常用的测试技术包括等价类划分、边界值分析、错误推测法、因果图。 白盒测试: 主要对模块内部的数据结构进行测试,就好像一个透明的盒子一样

软件工程-程序编码

痞子三分冷 提交于 2019-12-06 12:20:18
引言 程序编码是将“详细设计”结果转换为某一种程序设计语言编写的程序的过程。有许多因素制约和影响着软件的质量和可维护性。 语言的选择 1、应用领域的不同决定选择的语言 2、系统用户的要求决定,用户使用他们熟悉的语言 3、可以使用的编译程序 4、程序员的经验和知识 5、软件可移植性要求 6、当工程规模很大时,二又没有完全合适的语言,可编一个专用的语言 7、算法与计算复杂性、软件的可靠性 8、数据结构的复杂性,软件的可维护性 9、效率的考虑 10、了解语言的发展前景 总之,最少的工作量,最少的技巧性最少错误,最少维护,最少记忆。 好程序 据统计,一个典型的程序的50%的执行时间被3%的语句说占用,故这部分代码的效率很重要。 结构化程序设计的主要原则 1、使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑。 2、选用的控制结构只准许有一个入口和一个出口。 3、复杂结构应该用基本控制结构进行组合嵌套来实现。 语句结构 语句构造力求简单,直接,不能为了片面追求效率而使语句复杂化。 程序设计质量评价 一、正确性 1. 程序中没有语法错误 2. 程序运行时没有发现明确的运行错误 3. 程序中没有不适当的语句 4. 用有效的测试数据,得到程序的正确结果 5. 用无效的测试数据,得到程序的正确结果 6. 用任何可能的数据,使程序在运行时得到正确的结果 二、结构清晰性 1

软件工程阶段性心得总结随笔

a 夏天 提交于 2019-12-06 12:20:05
心得总结随笔 其实现在干了这么久,觉得所有的互联网公司及工程项目,无非就是处理流和查询流,也就是说,要么是花式的数据处理,要么是花式的数据查询。在为了实现这些需求的时候,有很多时候会采取一些辅助性的手段,比如消息队列、分布式、相应的数据库等。 话又说回来,有时候会在想,要是去做游戏,又会有什么不同的呢?本来以为会有所不同的,其实仔细想想,游戏主要是人机交互,无非还是有一整套的数据处理流,再就是非常独立的一系列的计算处理功能的有序结合。 感觉无论是互联网公司还是游戏公司,其实做出来的产品都是实现了一定的功能,能给使用者带来一定的帮助或功效。 而作为开发者,就是为了更好地实现这些功能。作为产品分析人员,就是要更好地挖掘用户的需求,设计出更符合用户需求的产品、功能。 作为一个java开发的角度,最常见的就是查询流,因为java确实能非常快速地构建一套web应用体系。其次就是处理流,对进来的数据进行处理,然后再输出出去。 不过话又说回来,这不就是计算机能做的事情嘛,输入、运算、输出。所谓的编码,其实顾名思义就是对代码的编排,而被编排的每一条代码都完成了对应粒度的原子性的功能。基于这个观点,汇编语言的每一条代码都是cpu指令粒度的代码编排,C/C++应该就是C语义对应的汇编指令组的粒度的代码编排,JAVA应该就是java虚拟机指令集粒度的代码编排。 那既然是对指令代码的编排

软件工程之程序编码

流过昼夜 提交于 2019-12-06 12:19:43
when 系统实现阶段 what 程序设计编码就是把软件设计阶段的成果(主要是详细设计规格说明书)使用某种计算机程序编程语言转换成计算机能够理解的形式――程序代码的过程 why 翻译过程所使用的计算机程序设计语言及程序员的编程风格对程序的可靠性、可读性、可测试性、可维护性等方面都将产生很大的影响从而最终影响到计算机软件系统的质量。 how 程序复杂性度量 代码行度量法 McCabe度量法 总结:程序编码阶段是一个非常重要的阶段,这个阶段决定着我们程序的安全性,以及后期的操作维护,所以在我们进行程序编码的时候要注意代码的规范性。 来源: CSDN 作者: 肖雅峰-Amos 链接: https://blog.csdn.net/xyf13920745534/article/details/79405380

软件测试介绍

倖福魔咒の 提交于 2019-12-06 10:27:51
一、定义   软件测试(英语: Software Testing ),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较 过程 。软件测试的经典定义是:在规定的条件下对程序进行 操作 ,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。 二、概述   软件测试是伴随着软件的产生而产生的。早期的软件开发过程中软件规模都很小、复杂程度低,软件开发的过程混乱无序、相当随意,测试的含义比较狭窄,开发人员将测试等同于“调试”,目的是纠正软件中已经知道的故障,常常由开发人员自己完成这部分的工作。对测试的投入极少,测试介入也晚,常常是等到形成代码,产品已经基本完成时才进行测试。到了上世纪80年代初期,软件和IT行业进入了大发展,软件趋向大型化、高复杂度,软件的质量越来越重要。这个时候,一些软件测试的基础理论和实用技术开始形成,并且人们开始为软件开发设计了各种流程和管理方法,软件开发的方式也逐渐由混乱无序的开发过程过渡到结构化的开发过程,以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征。人们还将“质量”的概念融入其中,软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且将测试作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容,Bill Hetzel在《软件测试完全指南》

<软件测试>软件测试

 ̄綄美尐妖づ 提交于 2019-12-06 07:03:02
1.软件测试基础 软件测试工程师:查找错误和缺陷,然后要求开发人员进行修改,保证软件质量。 漏洞(360安全漏洞):硬件,软件,协议的具体实现或系统安全策略存在缺陷,从而可以使攻击者在未授权的情况下破坏系统。 千年虫问题:年份存2年,超过百年会出现bug。1900→2000 开发和测试的比例:4:1→10:1 手工测试、功能自动化测试、性能自动化测试、白盒测试 1-3-5年规划:手工测试工程师,功能自动化测试工程师,性能测试工程师 需要的技术:计算机操作系统,软件开发技术、软件测试技术、自动化工具 1.1 Windows操作系统及网络基础   熟悉windows操作系统和计算机基础知识,能够搭建软件测试环境,熟悉网络协议。 什么是软件:软件=程序+文档 什么是软件缺陷: 软件未出现说明书要求的功能 软件出现了说明书指明不应该出现的错误  软件出现了说明书未提到的功能 软件未实现说明书虽未明确提及但应该实现的功能 软件难以理解,不易使用,运行缓慢或者从测试员角度看,最终用户会认为不好。  什么是软件测试:在现有软件中寻找缺陷的过程 软件测试的历史:defect(缺陷),bug(臭虫),debug(调试) 计算机层次:计算机硬件,操作系统,应用软件  裸机包含软件:BIOS(Basic input/output system 基本输入输出系统) 常见操作系统:Windows

个人作业——软件评测

狂风中的少年 提交于 2019-12-06 05:38:45
软件评测——腾讯音视频 本次作业属于 2019秋福大软件工程实践Z班 作业要求 作业目标:通过对腾讯音视频进行分析,评测,辩论,总结,在实践中体会软件工程的原则。 第一部分——调研,评测 评测 web demo 小程序 来源: https://www.cnblogs.com/sz1936/p/11964311.html

软件工程结课作业

无人久伴 提交于 2019-12-06 03:09:00
彭老师的"软件工程导论"真的让我获益良多,对于软件工程专业有了深刻的了解,对自己以后的道路的安排也有了深刻的认识。上课的日子总是很快,不知不觉中遍结了课,我感到如梦初醒,因为我们才敲开软件知识的大门,需要我去慢慢学习的还有很多,路漫漫其修远兮,吾将上下而求索。不经历风雨怎能见彩虹。我要时刻保持-颗清醒的头脑,随时为自己的目标而奋斗。 来源: https://www.cnblogs.com/CAPF-/p/11959712.html

软件工程结课作业

六月ゝ 毕业季﹏ 提交于 2019-12-06 03:06:08
软件工程的目标是:在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、 可移植性 、可追踪性、可 互操作性 和满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。 (1)适用性:软件在不同的系统约束条件下,使用户需求得到满足的难易程度。 (2)有效性:软件系统能最有效的利用计算机的时间和空间资源。各种软件无不把系统的时/空开销作为衡量软件质量的一项重要技术指标。很多场合,在追求时间有效性和空间有效性时会发生矛盾,这时不得不牺牲时间有效性换取空间有效性或牺牲空间有效性换取时间有效性。时/空折衷是经常采用的技巧。 软件的概念: 软件是计算机系统中与硬件相互依存的另一部份,是程序、数据、以及相关文件的完整集合。程序是事先设计的功能要求执行的序列。数据是使得程序能征程操作信息的数据结构。文档是程序开发,维护和利用的有关图文和材料。软件的表现形式分为有形和无形,软件的有形表现在软件的的文档、程序、代码、用户界面、输出表报、等。软件的无形部分表现在:软件的内部逻辑,是软件自身的设计思想。 软件危机:软甲危机是软甲开发和软件维护。具体产生的原因有对软件的成本和进度的估计不是准确,项目管理经验缺乏。用户对已完成的软件系统不是很满意,模糊的设计需求、闭门造车、盲与编程、交付日期没有保证。软件的产品质量靠不住