软件工程

软件工程第二次作业

邮差的信 提交于 2019-11-30 23:09:36
一、软件开发流程 第一步:需求分析 1.相关系统分析员向用户初步了解需求,然后用相关的工具软件列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。 2.系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档。这次的文档会清楚列出系统大致的大功能模块,大功能模块有哪些小功能模块,并且还列出相关的界面和界面功能。 3.系统分析员向用户再次确认需求。 第二步:概要设计 首先,开发者需要对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。 第三步:详细设计 在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证软件的需求完全分配给整个软件。详细设计应当足够详细,能够根据详细设计报告进行编码。 第四步:编码 在软件编码阶段,开发者根据《软件系统详细设计报告》中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作

软件工程第二次作业

馋奶兔 提交于 2019-11-30 22:58:43
一、 调研阶段 1、相关系统分析员向用户初步了解需求,然后用word列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面 2、系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档。这次的文档会清楚利用系统大致的大功能模块,大功能模块有哪些小功能模块,并且还列出相关的界面和界面功能 3、系统分析员向用户再次确认需求 概要设计 1、 开发者需要对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、 运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础 详细设计 1、 在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证软件的需求完全分配给整个软件。 编程阶段 1、 在软件编程阶段,开发者根据《软件系统详细设计报告》中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。 测试阶段

软件工程第二次作业

♀尐吖头ヾ 提交于 2019-11-30 22:42:01
一、软件开发流程:   1、问题的定义及规划   明确需求和其他相关因素,指明时间成本和依赖关系;此阶段是软件开发与需求放共同讨论,主要确定软件的开发目标及其可行性。   2、需求分析   在确定软件开发可行性的情况下,对软件需要实现的各个功能进行详细需求分析。需求分析阶段是一个很重要的阶段,这一阶段做的好,将为整个软件项目的开发打下良好的基础。“唯一不变的是变化本身”,同样软件需求也是在软件爱你开发过程中不断变化和深入的,因此,必须定制需求变更计划来应付这种变化,以保护整个项目的正常进行。 3、生成设计文档 4、设计复审(和同事审核设计文档) 5、代码规范(为目前的开发制定合适的规范)  6、软件设计   此阶段中偶要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计、数据库设计等。软件设计一般分为总体设计和详细设计。还的软件设计将为软件程序编写打下良好的基础。   7、程序编码   此阶段是将软件设计的结果转化为计算机可运行的程序代码。在程序编码中必定要制定统一、符合标准的编写规范。以保证程序的可读性、易维护性。提高程序的运行效率。 8、代码复审   9、软件测试   在软件设计完成之后要进行严密的测试,一发现软件在整个软件设计过程中存在的问题并加以纠正。整个测试阶段分为单元测试、组装测试、系统测试三个阶段进行。测试方法主要有白盒测试和黑盒测试。 二

浅谈软件工程个人规划

拜拜、爱过 提交于 2019-11-30 21:18:20
一、 (1)选择软件工程的理由:第一点IT领域具有很好的发展前景,是一个朝气蓬勃的行业,前20多年互联网带动了世界各个行业的发展,近几年人工智能、大数据等更是在火热发展中,当然还将会有更好的发展前景,第二点是IT行业对程序开发者的思维能力有较高的要求,通过算法的编写与阅读可以锻炼自己的思维能力,让自己的大脑得到充分的锻炼,第三点就说的接地气点吧,IT行业的薪资是比较高的,对于大多数人来说当然是选择薪资待遇高的行业了。对于我个人条件而言,自我感觉应该是没问题吧,总之一句话,多学点东西多敲点代码多思考一下还是可以学到技术的,技术是需要的是积累的,不断积累总会有成为大牛的那一天。 (2)当认识到这个行业,对这个行业有一定的了解以后,渐渐喜欢上这个领域,软件工程是我喜欢的领域。而目前是正处于学习阶段擅不擅长自己很难确定,但个人感觉自己对新技术的接受是不存在太大问题的。 (3)对于软件工程专业算是我比较热爱的专业吧,因为这个专业(行业)是一个让一个人永远保持学习姿态的专业(行业) 二、 (1)对于目前的大学生活没有什么可以吐槽的,在我看来在大学里是一个人主动去改变、成长而不是被动去改变,自己的人生观、世界观、价值观是自己主动地去培养的,个人的技术需要自己去学习、探索以及积累的,尤其在IT行业一个IT人的自我素养、学习能力、敏捷的思维能力等都是需要自己主动地去培养的,如果想要改变

软件工程第二次作业

只愿长相守 提交于 2019-11-30 21:09:31
1、采访工业界的软件团队(通过邮件,微博,微信,阅读博客等方式),询问他们的软件开发流程 2、分组讨论, (1)投票选出你们小组成员最喜欢的两个团队类型 (2)辩论你们在这门课程中最应该采取哪种类型 (3)列出优劣 (4)课堂发言,或发表博客 一、软件开发流程 1、首先制定项目计划,最初计划是里程碑性质的。可以先按瀑布模型设置,里程碑点主要为需求评审、设计评审、经过代码开发和单元测试后进行集成测试、部署上线是一个很重要的里程碑,一般用户会期望系统何时能使用进入试运行期(也可以称为用户测试阶段) 2、需求开发阶段:怎么样写好需求很关键,做软件致电一伍扒一一三三泗柒四四。如何学会进行需求开发可以去看下经典的《需求工程》这个翻译的书,不是很厚,但需要能理解为什么那样做更好,这个需要实践经验锻炼自己。如果有项目成员,可以一起做需求,这个阶段对于业务理解、分析、如何开展调研以及文字表述、业务流程图描述还有文档编辑能力都有不少要求。一般分为《用户需求说明书》和《需求规格说明书》,小项目可以写一个《需求分析报告》,《用户需求说明书》是用用户的语言进行描述,让用户和开发团队对于需求的达成一致的理解,《需求规格说明书》,则是对用户需求的分析,形成系统要具有的功能,这个是真正提供用户可交互操作的文档,也就是后期设计和代码开发的重要基线。另外,作为了解需求

【转】【测试分级】软件测试分级理论

夙愿已清 提交于 2019-11-30 20:56:53
本文链接:https://blog.csdn.net/zjuxsl/article/details/79364811 软件测试是软件工程当中不可或缺的一个过程。在软件工程中,测试者充当“虚拟用户”对软件产品进行检验。只有经过严格测试的软件产品,才能发布给用户使用。 只要有软件的地方,就有软件测试。 软件测试是一个包罗万象的话题。这种“包罗万象”的具体表现之一就是软件测试的分类:多样化的观察角度,多样化的衡量标准,造就多样化的分类方法。软件测试的分类可谓是“百花齐放,百家争鸣”。 例如,根据测试手段,软件测试既可以分为手动测试和自动化测试,也可以分为静态测试和动态测试,还可以分为白盒测试、黑盒测试和灰盒测试。 例如,根据测试目标,软件测试可以分为功能测试和非功能测试。功能测试可以根据业务类型做二次分类;非功能测试可以分为性能测试、安全测试、可用性测试、稳定性测试等。 例如,在软件生产的不同阶段,有单元测试、集成测试、系统测试、冒烟测试、alpha测试、beta测试等。 例如,根据测试执行频率,软件测试可以分为回归测试和非回归测试。 例如,根据测试自由度,软件测试可以分为预定义测试和探索性测试。 ..... 面对如此纷繁多样的测试分类,有没有一个主线方法能够让我们拨云见日,理清思绪呢? 笔者认为,基于测试分级的分类方法,可以回答这个问题。 那么,什么是测试分级?

软件工程之学习总结

落爺英雄遲暮 提交于 2019-11-30 19:28:16
经历1个多月的时间,软件工程视频和相关文档学习已近尾声,每个人都有不同程度的收获吧,来看看我的感受如何: 通过对软工视频的学习,已了解软工视频大致是在为写文档做预习,一个软件工程必不可少的一部分就是文档的编辑,文档亦难亦不难。不难在我们都能理解每一份文档,并且知道每份文档主要内容有什么,而难亦在怎么将文档的主要内容写出来,用什么表示主要内容,可以让读者更清晰的了解你需要表达什么内容。 通过一次文档的验收,暴露了我们很多问题,即使写的再详细,由于我们缺少经验,总是或多或少的存在某些问题。 比如,对于可行性研究报告主要给要看这份文档的人指出项目开发的实际效益,主要从技术与经济方面,而我的文档中掺杂着一些详细到具体功能的描述,这个是需求或者详细设计文档中的内容,从而使可行性研究报告过于赘余,其他文档也都存在这样的一些问题。 下面我来好好的总结下每份文档中都主要该有什么内容吧。 1.对于可行性研究报告 简单说来就是个老板看的,要让老板看到有利益,才会同意开发这个项目,说白了就是别人投资需要让人看到未来。所以,要对与能创造利益有关的一切因素谈起。这需要从 经济 、 技术 、 生产 、 供销 直到 社会 各种 环境 、 法律 等各种因素进行具体 调查 、 研究 、 分析 ,确定 有利 和 不利 的 因素 、项目是否可行,估计成功率大小、经济效益和社会效果程度

【UML】UML的九种建模图总结

烂漫一生 提交于 2019-11-30 19:24:57
UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。下面将对UML的九种图+包图的基本概念进行介绍以及在软工文档的各个阶段都需要什么UML图。文档中图的出现往往就会减少冗余的文字,所以图是软件工程文档中必不可少的核心内容,UML图就像是软件工程师的“建筑蓝图”,是我们“入行”的必不可少的一课。 一、基本概念 如上图所示,我按照4+1视图用例视图,设计视图,进程视图,实现视图,拓扑视图 将⑨种图分开。还可以分为静态图和动态图两类。静态图分为:用例图,类图,对象图,包图,构件图,部署图。动态图分为:状态图,活动图,协作图,序列图。 1、用例图(UseCase Diagrams): 用例图主要回答了两个问题:1、是谁用软件。2、软件的功能。从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。 2、类图(Class Diagrams): 用户根据用例图,通过抽象得到类,包括类的内部结构和类之间的关系,是一种静态结构图。 3、对象图(Object Diagrams): 对象图是类图的一个实例,描述了系统在具体时间点上包含的对象以及各个对象之间的关系。描述的是交互的静态部分。 4、状态图(Statechart Diagrams): 是一种由状态、变迁

软件工程的设计意义

对着背影说爱祢 提交于 2019-11-30 19:24:37
良好的软件工程设计具有不可比拟的意义,它胜于执行软件需求、软件编码、软件维护等任何一个环节,这就是设计的优越性。秉承设计优先这一原则,会让软件开发变得简单而高效,可以尽量避免掉因设计失误而导致的缺陷。一个健壮的程序必然有良好的设计,软件工程设计是构建复杂软件中必不可少的重要环节。 1、明确软件工程的目标 在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。 (1) 适用性 :软件在不同的系统约束条件下,使用户需求得到满足的难易程度。 (2) 有效性 :软件系统能最有效的利用计算机的时间和空间资源。各种软件无不把系统的时/空开销作为衡量软件质量的一项重要技术指标。很多场合,在追求时间有效性和空间有效性时会发生矛盾,这时不得不牺牲时间有效性换取空间有效性或牺牲空间有效性换取时间有效性。时/空折衷是经常采用的技巧。 (3) 可修改性 :允许对系统进行修改而不增加原系统的复杂性。它支持软件的调试和维护,是一个难以达到的目标。 (4) 可靠性 :能防止因概念、设计和结构等方面的不完善造成的软件系统失效,具有挽回因操作不当造成软件系统失效的能力。 (5) 可理解性 :系统具有清晰的结构,能直接反映问题的需求

软件测试需要会哪些

℡╲_俬逩灬. 提交于 2019-11-30 19:04:55
第一步,测试基础: 测试基础是 软件测试 最最最重要的部分,只要你是做测试,不管是什么测试,测试的基础、理论知识都是必须学会的。大概就包括:测试计划编写、设计测试用例、编写测试报告、编写BUG报告单、跟踪BUG修复情况、还需要良好的沟通能力、以及各种测试阶段所使用的测试方法、 单元测试 、功能测试、集成测试、 系统测试 等。 第二步:学习 脚本语言 如:python语言,当然python 是一门相对简单的计算机语言,考虑长远发展,需要了解C语言或者java。都说C语言最难,但是用得确实也多。 第三步:学习 软件测试 工具 学习 软件测试 工具并不难,只是需要我们去系统的学习。比如性能测试工具loadrunner,自动化测试工具selenium、Appium,接口测试Jmeter、Postman等。虽然说工具不是万能的但是工具能为我们提高工作效率,所以必须得会熟练的使用。最关键的一点,是要结合项目具体去操作,实践出真知,理论知识在实际项目中才能得到巩固。 第四步:计算机硬件知识 做过性能测试的都知道在性能测试过程中硬件性能也是一个非常重要的指标、CPU、内存、IO、带宽等等、如果你是做硬件测试的。那么就更不用说了。交换机、路由器、防火墙这些设备都需要有所了解。 第五步:数据库测试 MySQL数据库 MySQL简介、命令行工具以及数据管理、MySQL数据查询(条件、分组、聚合函数、排序