软件工程

软件工程中的图

China☆狼群 提交于 2019-12-16 23:57:45
我们通常都是对图形化的东西情有独钟,我们小时候的启蒙教育基本上也都是从图形化开始的,我们曾经看过的连环画、漫画、看图识字等等。因为图形能将一个抽象的东西具体化、形象化,图形化的表述能将一个用文字语言无法表达清楚或很难表达的观点、事物、科学概念等清晰的呈现出来。这就是为什么我们相比晦涩难懂文字更喜欢形象生动的图形的原因。   软件工程导论作为软件工程中非常重要的一门课程,通常因为其偏文科性、理论性、概念性而得不到人们的重视,但幸运的是在软件工程导论中有我们非常易于接受、理解的东西——图,否则我们自己会把自己害得很惨(软件工程导论真的很重要哦!)。   软件工程导论中一般把软件的开发分为八个阶段:1.问题定义 2.可行性研究 3.需求分析 4.总体设计(概要设计) 5.详细设计 6.编码和单元测试 7.综合测试 8.软件维护。下面我们就说说各个阶段中与图的难解难分。   1. 问题定义   问题定义阶段主要是根据用户的需求来定义用户需要解决的问题,用户要实现哪些功能。   2. 可行性研究   可行性研究阶段就是看是否有一种使其在最小的代价,尽可能短的时间内,利益最大化的情况下解决问题的方案。这个阶段的分析主要涉及以下几个图形工具。   2.1 系统流程图   系统流程图是描述系统物理模型的一种传统工具。它是表达数据在系统各部件之间流动的情况,而不是对数据加工处理的控制过程

Web browse

江枫思渺然 提交于 2019-12-16 19:37:42
一,学习收获。 (a)书写代码。 说道代码,印象最深的还是第二次作业了,很多同学都为代码发愁,但是也激起了我们的求知欲,忙了好几天,才有一个交代。 总共是112行,相对那些和代码打交道的前辈们连零头都算不上吧,就学习而言,我们写和理解要相结合,现在只是“认识”,离“设计”还有很长一段距离,但是在自己的努力下,终将实现。 b)熟悉(了解)了哪几个软件工具? 关于软件,我还记得第一次作业,老师让我们自己调查一些软件的发展史,我当了一次百度侠。结果闹出了乌龙 百度不能解决一切,对软件的了解终归还是要自己去体验。 既然谈到百度了。就拿百度说吧,这软件被很多人依赖,但是还是有很多缺陷,就像我要查今最新的 Web browse ,它给了我过去的答案。全面性不够。答案也不标准。 还是要相应的检索方式或者检索软件才可以完全实现查询全面性。 c)这学期你学到的对软件工程相关知识有哪些? 软件工程,对我来说我还是一个接受知识的阶段,奈何自己兴趣不大,有些“混”,但是看了这么多次输书,还是有一些了解的, 软件=程序+软件工程。一道程序满足一个功能,但是我们生活的需求是很多个方面的,做一个软件工程不是那么简单,现在的 我们只能“实现代码”,如果能做出一个应用软件,就很不得了了。软件工程即将工程化应用于软件,我们不仅要实现一些功能, 还要开发新的功能和软件维护,才能满足这个社会的需要。 d

软件工程结课作业

笑着哭i 提交于 2019-12-16 18:04:44
学习软件工程这门课程已经有一个学期了,在我看来,软件工程与其说是一门课程,不如说是一门思想,是一个如何去分析和处理问题的过程,它能够加强人的整体思维能力,提高人的综合素质,培养良好的分析规划和团队意识。软件工程课程虽已结束,但我对于软件工程的学习才刚刚开始。它让我学会了如何系统的思考,以及养成良好的编码习惯,想学好软件工程,就必须知道软件工程的目标、过程和原则。我相信我以后也还是会继续学习这门课程。 来源: https://www.cnblogs.com/-vampire-/p/11956468.html

软件工程师的工作经验总结

狂风中的少年 提交于 2019-12-16 07:55:29
前言 这是在网上看到的一篇文章,写的是一个从事软件工程开发的大牛对从业七年的一些经验总结。感觉挺不错,转来与大家分享了,下面是正文。 分享 1、分享第一条经验:“学历代表过去,能力代表现在,学习力代表未来。” 其实这是一个来自国外教育领域的一个研究结果。相信工作过几年、十几年的朋友对这个道理有些体会吧。但我相信这一点也很重要:“重要的道理明白太晚将抱憾终生!”所以放在每一条,让刚刚毕业的朋友们早点看到哈! 2、一定要确定自己的发展方向,并为此目的制定可行的计划。 不要说什么,“我刚毕业,还不知道将来可能做什么?”,“跟着感觉走,先做做看”。因为,这样的观点会通过 你的潜意识去暗示你的行为无所事事、碌碌无为。一直做技术,将来成为专家级人物?向管理方向走,成为职业经理人?先熟悉行业和领域,将来自立门户?还是先 在行业里面混混,过几年转行做点别的?这很重要,它将决定你近几年、十年内“做什么事情才是在做正确的事情!”。 3、软件开发团队中,技术不是万能的,但没有技术是万万不能的! 在技术型团队中,技术与人品同等重要,当然长相也比较重要哈,尤其在MM比较多的团队中。在软件项目团队中,技术水平是受人重视和尊重的重要砝码。无论你是做管理、系统分析、设计、编码,还是产品管理、测试、文档、实施、维护,多少你都要有技术基础。算我孤陋寡闻

软件工程中五种常用的软件开发模型整理

笑着哭i 提交于 2019-12-11 00:56:11
软件工程期末考试复习资料整理,顺便码了个博客,emmm~ 下面都是我对各位博主文章种我认为写的比较好的内容的截取 引言 软件将要经历一个定义、开发、运行维护,直至被淘汰这样的生命周期。 为了使软件生命周期中的各项任务能够有序地按照规程进行,需要一定的工作模型对各项任务给予规程约束,这样的工作模型被称为软件过程模型。 1.瀑布模型 瀑布模型是将软件生存周期中的各个活动规定为依线性顺序连接的若干阶段的模型,包括需求分析、设计、编码、测试、运行和维护。它规定了由前至后、相互衔接的固定次序,如同瀑布流水逐级下落 下面两张图摘自博客:https://blog.csdn.net/m18330808841/article/details/78452747 特点 1.阶段间具有顺序性和依赖性 具体指的是必须等前一阶段的工作完成才能开始后一阶段的工作, 前一阶段的输出文档就是后一阶段的输入文档,因此只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果 2.推迟实现的观点 瀑布模型的编码之前设置了系统分析和系统设计的各个阶段,分析与设计阶段的基本任务规定,这两个阶段主要考虑目标系统的路基模型,不涉及软件的物理实现,清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现 3.质量保证的观点 每个阶段必须完成规定的文档;每个阶段结束前都要对所完成的文档进行评审 实际中的瀑布模型带有反馈

软件工程的图之数据流图,盒图

我的未来我决定 提交于 2019-12-10 20:17:28
软件工程图图图 今天刚考完软件工程,趁脑子还热会,赶紧来总结一下,之前复习软件工程的图的时候让我太痛苦了… 数据流图 先简单了解一下他的概念:数据流图是描绘 信息流 和 数据 从 输入 移动到 输出 的过程中所经受的变换 在数据流图中有四要素: 源点终点 , 数据流 , 数据存储 , 处理 (图形表达不唯一,以下只介绍我一般用的) 以例子来说明:自学考试报名过程中有个“记录报名单”的加工。该加工主要是根据报名表(姓名、 性别、身份证号、课程名)和开考课程(课程名、开考时间)、经校核,编号、填写、输出准考证给报 名者, 同时记录到考生名册中(准考证号、姓名、课程)。绘制DFD图 首先,明确源点和终点都是报名者,关于源点的判断只要看数据最先从哪个实体那里流出,终点就看最终这个数据到了哪个实体手中。知道了这个,那么我们就可以画顶层流图了! 是不是很简单? 如果你已经是老手了,顶层图可以省略直接进入下一步~ 我们现在要对顶层图进行扩充: 首先校核,是根据报名表和开考课程的,这里开考课程是一个早已存在数据库里的信息,即数据存储。之后将合格的报名表送去编准考证号之后blabla,之后应该就不用我叙述了,总之这就是系统的内部的数据流向,及用到了哪些其他数据复制的问题 最后,只要把源头和终点加上去数据流图就完成了,是不是其实很简单,只要动手去画,就没问题 盒图 盒图之前也真是困扰了我一会…

软件工程大作业——社团管理系统个人项目总结

僤鯓⒐⒋嵵緔 提交于 2019-12-10 12:56:54
软件工程大作业——社团管理系统个人项目总结 项目概述 ​ github链接: https://github.com/yonginggg/StudentClubManagementSoftware ​ 设计并实现一个社团管理系统,完成成员、部门、活动、公告等管理。 个人主要工作 ​ 前期在墨刀上完成了一部分的原型设计,给前端实现提供了一点参考。在这个过程,需要考虑用户的使用习惯,使用的逻辑,页面的美观度,前端的易实现性等等。 ​ 完成了项目的一部分时序图,对于项目的内在运行流程有了更深的理解。 ​ 后期主要负责后端的部分实现,即社团、社团成员的更删改查,根据前端的具体需求,给出相应的返回结果。 ​ 我们使用了spring boot和vue相结合的前后端实现框架。在后端部分,使用springboot+JPA+Mysql的组合。springboot提供基于Javabeans的控制反转容器,而JPA是一种Java持久化规范,提供了对象关联工具,类似于hibernate,使得开发者能脱离DAO层的操作。 ​ 在后端的实现中,我学会了上述工具/框架/规范的使用,在理解各层代码的基础上,写了社团和社团成员的部分数据处理代码,并将数据以alibaba.fastjson.JSONObject的格式返回给前端。 ​ 使用postman对所写api进行了测试。 项目总结 ​ 在这个项目中

软件设计之——“高内聚低耦合”

*爱你&永不变心* 提交于 2019-12-10 04:51:50
耦合度 一、什么是耦合度 软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分摸块的一个准则就是高内聚低耦合。 耦合度 (Coupling)是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。 模 块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越 差。降低模块间的耦合度能减少模块间的影响,防止对某一模块修改所引起的“牵一发动全身”的水波效应,保证系统设计顺利进行。 内 聚和耦合密切相关,同其它模块存在强耦合关系的模块常意味这弱内聚,强内聚常意味着弱耦合。 耦合度就是某模块(类)与其它模块(类)之间的关联、感知和依赖的程度,是衡量代码独立性的一个指标,也是软件工程设计 及编码质量评价的一个标准。耦合的强度依赖于以下几个因素: (1)一个模块对另一个模块的调用; (2)一个模块向另一个模块传递的数据量; (3)一个模块施加到另一个模块的控制的多少; (4)模块之间接口的复杂程度。 耦合按从强到弱的顺序可分为以下几种类型: a)非直接耦合:两模块间没有直接关系,之间的联系完全是通过主模块的控制和调用来实现的    b)数据耦合:一个模块访问另一模块,彼此间通过简单数据参数来交换输入、输出信息。这里的简单数据参数不同于控制参数、公共数据结构或外部变量。  

软件工程大作业(学生会管理系统)Web端个人总结报告

感情迁移 提交于 2019-12-09 23:20:19
软件工程大作业(学生会管理系统)Web端个人总结报告 一、小组信息 1、所在小组:第二组 2、小组选题:学生会管理系统 3、项目源代码链接: Web端源代码: code 小程序端源代码: code APP端源代码: code 后端源代码: code 4、项目各类文档链接 项目相关文档管理(会议记录,需求文档,API文档): doc 墨刀原型: model 相关博客文章 需求文档: doc 各类图: doc 原型展示: doc 二、项目中本人工作介绍 本次课程团体大作业,本人具体工作主要有一下三项: 1、Web端的设计与开发 1.1 Web设计阶段划分 本人在进行Web端的设计与开发时,将我的工作分为以下四个阶段: 阶段一:理解和整理各项需求,确定好将Web端分为多少个功能模块,各功能模块又包含多少子功能模块,并确认好各功能模块之间是否存在联系以及存在什么样的联系,定下Web端的设计方向; 阶段二:根据阶段一确定下的设计方向,进行原型的设计开发,大致完成静态页面的总体设计; 阶段三:进行前后对接,完成各个功能模块; 阶段四:设计测试数据,并对Web进行各项测试。 1.2 Web端各功能模块划分 本人将Web端划分为以下几个主要功能模块,并完成对它们的全部设计和实现工作,不同权限的用户对应不同的功能模块,用户的权限功能划分明确,是本项目的一大亮点: 登陆注册模块 人事管理模块

mooc软件工程(北大)

眉间皱痕 提交于 2019-12-09 19:43:51
11.1软件开发工具及环境的定义 1.关于CASE的定义,说法错误的是__ D ____ A.是一组工具和方法的集合 B.在开发/维护中,提供计算机的辅助支持 C.在开发/维护中,引入工程化方法 D.支持软件开发的软件工具 2.Alfonso Fuggetta将CASE工具分为了几类,其中,我们较为熟悉的软件开发集成环境(IDE)属于哪一类? C A.工具 B.工作台 C.环境2.00/2.00 D.以上都不是 3.关于CASE工作台,以下说法错误的是____ C ___ A.CASE工作台是一组工具,支持分析、设计或测试等特定阶段 B.工作台将一组工具组装,并使这组工具可以协同工作 C.包括了编译器、编辑器和文件比较器等 D.分为开放式工作台和封闭式工作台 4.判断题:软件开发环境主要由软件工具构成,包括软件开发的相关过程、活动和任务。 B A.√ B.× 5.判断题:软件工程环境是指以软件工程为依据,支持大型软件生成的系统。 A A.√ B.× 11.2工具集成模型 1.数据集成采用的是以下哪种方式? D A.共享文件 B.共享数据仓库 C.共享数据结构 D.以上都是 2.关于Wasserman五级模型,说法错误的是____ C __ A.平台集成是指工具运行在相同的硬件/操作系统平台上 B.数据集成是指工具共享数据结构,工具之间可以交换数据 C