软件工程

软件工程第0次个人作业

本秂侑毒 提交于 2019-12-18 07:18:32
内容说明   这篇博客来自 北航2019春季软件工程 ,这次作业的 要求 是阅读推荐博客,结合个人经历谈谈自己的感想。下面是我在这个课程的目标。 了解和掌握软件工程的基本概念、原理和方法,以及软件开发的一般过程,树立工程化开发软件的概念。 培养通过常用用户调查方法进行需求获取以及需求分析的能力,软件创新思维,和基本的软件计划能力。 掌握软件需求规格说明、软件设计说明书的撰写,培养基本的软件系统分析设计能力。 培养通过代码规范、代码复审和单元测试等方法来保障软件质量的能力。 掌握项目开发计划的撰写,培养运用软件开发过程管理、源代码版本管理、bug管理等现代化软件工程支持工具进行项目管理的能力。 培养获取和理解新技术、算法和开源代码,并将其应用于软件开发的能力。 培养根据规格说明书和实现代码设计测试用例的能力,掌握测试大纲、充电计划、测试总结的撰写,并能够对软件进行功能测试、场景测试、性能测试、压力测试等。 掌握在团队内进行沟通和协作的方法,获得团队协作软件开发的实践经验,培养在协作中提升和改进个人软件开发技能和团队软件开发能力的能力。 了解当前软件工程技术和方法的发展趋势和应用情况,认识软件工程的热点问题,培养可持续发展的能力。   这次作业帮助我了解了软件工程的基本概念。 第一部分:结缘计算机 1. 你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?(必答) 2.

软件工程简史

房东的猫 提交于 2019-12-18 05:21:48
从《WCF服务编程》一书中抄下来的,感觉对面向对象、面向组件和面向服务进行了很好的解释,但是对于我而言,需要反复看才能理解。 20世纪40-50年代,第一台通用的计算机才真正问世,它主要用于国防。这个时期的计算机可以运行代码并处理某些问题,而不仅仅是单个的预定义的任务。其缺点是计算机执行的代码与机器的硬件是紧密耦合的。实际上,当初计算机的软件与硬件之间并没有明显的区别(软件一词是在1958年才提出的)。起初,这个缺点并未引起大家的关注,因为世界上还没有手提电脑,都是超大型计算机。随着计算机产品大量生产,问题出现了。在20世纪60年代早期,汇编语言的出现才真正把机器与代码解耦开来,代码可以执行在不同的机器上。但是,代码与计算机的架构关联,即编写在8位机上的程序不能运行在16位机上,因为计算机的寄存器、可用内存和内存分布都不一样。因此,维护程序的成本逐渐增加。随着计算机的广泛应用,民众和政府部门为满足有限的资源与预算,提供了更好的解决方案。 20世纪60年代,更高级别的语言,如COBOL和FORTRAN,引入了编译器的概念。开发人员可以编写更加抽象的程序,编译器可以将其转化为实际的汇编代码。编译器第一次把代码从硬件和计算机架构解耦开来。第一代语言存在的问题是代码会导致非结构化的编程,这些代码通过使用jump或者go to语句依赖于它自身的结构

2019暑期北航培训小结

ε祈祈猫儿з 提交于 2019-12-18 02:40:45
好多年没有上过软件工程课程了,下学期需要承担软件工程课程, 刚好朋友圈里有人发北航计算机学院的举办的“2019年暑期软件工程基础课程教学培训班”,我立即报名参加培训,希望对软件工程课程教学有所启发。 软件工程这门课程不好上, 传统的软件工程教学教材是把软件工程过程的主要部分分成章节来介绍, 概念多,理论性强,比较抽象。 工程实践对于学习软件工程非常重要, 但是在平常的教学工作中, 如果选择难度适当、工作量适当的项目, 如果开展团队合作,借助什么有效的适合在学校使用的软件工具呢? 这次培训使用了《墨刀》原型设计工具。通过原型设计工具,可以快速进行原型设计,将需求分析的结果可视化,也是给后期的软件开发设立一个目标。《墨刀》公司的技术支持人员也来到培训教室辅导我们使用软件, 以后在教学中还可以让学生免费试用墨刀软件.把学生培养成墨刀软件的潜在客户。 传统的考核方式是以期末闭卷考试为主,这种方式重点考核学生的记忆性知识, 不利于学生的动手能力培养. 通过这次培训, 了解到如何开展过程性考核,将教学反馈点增多并提前,让学生实时跟进自己的评分过程和分数。过程性考核会增加老师很多工作量,因此最好有助教团队支持,如何培育助教团队是我下一步教学中要重点考虑的。 通过参加这次培训, 我感悟到,要上好一门课, 需要提前介入, 从课前、课中、课后, 老师、助教和学生都需要投入一定的精力

构建之法

跟風遠走 提交于 2019-12-18 02:39:25
在绪论中说到软件工程包括下列领域:软件需求分析、软件设计、软件构建、软件测试和软件开发维护。软件开发活动(构建管理、源代码管理、软件设计、软件测试、项目管理)是软件工程的核心内容。综述了一个大纲,思路清晰。 构建之法从什么是软件工程介绍到职业道德,不仅仅讲技术还告诉我们团结的力量,不仅仅讲理论还让我们不断的实践,第一章写的是软件工程的发展史,从开始到应用,所经历的过各种变化;第二章编程代码要要懂得团体的力量,合作取得双赢;第三章提到了成为软件工程师所要具备的条件;第四章讲“这样走,之后的发展会怎样怎样,所以不行”,怎样做会对,怎样做会错——什么叫宏观视角?什么叫最佳实践?什么叫算无遗策?第五章为我们介绍了团队合作的几种模式,以及团队中的几种开发流程。第六章敏捷流程的问题和解法;第七章MSF简史,基本原则,团队模型,过程模型,敏捷开发模式,CMMI 开发模式等。 总而言之,构建之法总体来说还是不错,能全面系统的介绍软件工程所涉及到的内容。 来源: https://www.cnblogs.com/ZWQzwq/p/8558878.html

软件工程人才的社会需求现状与发展趋势分析

末鹿安然 提交于 2019-12-18 02:04:44
软件工程人才的社会需求现状与发展趋势分析 成员分工 文本编辑 周书轩 数据搜集 陈嘉明 陈钰涛 高旭东 聂帅 周书轩 耗时三天 在此感谢各位制作人员 社会需求现状 1.薪资待遇 2017届本科毕业生半年后月收入最高的职业类是“互联网开发及应用”(6082元),其次是“计算机与数据处理”(6042元)。 2017届本科毕业生半年后月收入最高的行业类为“媒体、信息及通信产业”(5634元),其次是“运输业”(5567元)。 来源:麦克思 2.数量需求 “媒体、信息及通信产业”(就业比例为10.3%)是2017届本科毕业生半年后就业第二多的行业类,且毕业生在这类行业就业的比例从2013届的8.7%上升到了2017届的10.3%。 2017届本科毕业生半年后就业率排前三位的专业是软件工程(96.7%)、能源与动力工程(95.8%)、电气工程及其自动化(95.6%)。 伴随着产业结构升级,制造业中信息技术相关岗位占比增加,其中本科增加了4.3个百分点,高职高专增加了2.2个百分点。 据中央网信办发布的报告,随着信息化建设的不断推进,预计到2020年,我国网络空间安全人才需求数量将超过140万。然而,实际情况是我国只有100多所大学开设了信息安全或网络安全专业,每年本硕博毕业生加起来不足2万人。 四川省高等院校计算机基础教育研究会理事长梅挺的说法也体现了中国软件行业人才缺乏的事实:“一直以来

阅读《构建之法》1-5章

流过昼夜 提交于 2019-12-18 00:33:00
软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。它涉及到 程序设计 语言、数据库、 软件开发工具 、系统平台、标准、 设计模式 等方面。 软件工程牵涉的范围很广, 同时也是一般院校的同学反映比较空洞乏味的课程。 但是软件工程的技术对于投身IT 产业的学生来说是非常重要的。 疑惑: 1.软件工程为为什么开始要用“工程”来形容?难道是因为做软件的艰巨性吗?出自:1.2 软件工程是什么; 2.个人开发流程中,软件工程师能不能在接到任务之后,做一个对普遍这种任务解决的系统来提高自身的开发能力?出自:2.3个人开发流程; 3.有些软件工程师的技能为什么得不到提高呢?原因很简单,惯性思考的方式,让他们变成不用经过大脑的自动操作,并没有真正去思考。出自:3.3技能的反 面; 4.为什么代码的规范性总是需要人为的去解决,为什么计算机不会根据用户输入的代码而自动匹配规范?出自:4.3代码的规范性; 5.如何才能把非团队和团队的优势相结合一起?出自:5.1非团队和团队; 好书不读真的是一种浪费!《构建之法》1-5章给我们简单明了的说明了: 1)何为软件工程; 2)软件工程的由来; 3)如何提高相应的技能; 4)如何去判断工程师的水平; 5)非团队与团队的区别; 6)软件的开发过程

什么是面向对象?

我的梦境 提交于 2019-12-17 10:50:42
面向对象(Object Oriented,简称OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD 技术 、人工智能等领域。 表面来看,面向对象这个术语的意思是,把软件组织成一系列离散的,合并了数据结构和行为的对象。这与以前软件开发方法中数据结构和行为只是松散关联是不同的。关于OO方法确切需要哪些特征学术界是有争议的,但大致上它们都包含四个方面:标识(identity),分类(classification) ,继承(inheritance),多态(polymorphism)。 标识:数据被量化成称为对象的离散的,可辨别的实体。每个对象都有它自己的内部标识。换言之,即使所有的属性都相同,两个对象也是有差别的。 分类:拥有相同数据结构(属性)和行为(操作)的对象被分组成为一个类。 继承:多个类基于一种分层关系,共享类间的属性和操作(合称为特征)。 多态:对于不同的类来说相同的操作会有不同的动作。 面向对象的基本概念: (1)对象。 对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。 (2)对象的状态和行为。 对象具有状态,一个对象用数据值来描述它的状态。

软件工程-第六组-设计图

二次信任 提交于 2019-12-17 07:40:14
目录 软件工程-第六组-设计图 相关链接 用例图 类图 时序图 分工 软件工程-第六组-设计图 相关链接 需求文档链接 第一次会议记录 demo进度 用例图 学生 社员社长 管理员 类图 类与表的对应 Student - 学生表 Association - 社团表 AssoManager - 社团人员表 Activity - 活动表 ActManager- 活动人员表 Place - 场地表 Announcement - 公告表 Admin 时序图 社长 学生 管理员 分工 姓名 学号 本次分工 罗灵洁 31701002 用例图 王秋鸿 31701004 时序图 郑诗雨 31701005 类图 郑珂亦 31701373 时序图 来源: https://www.cnblogs.com/z31701005/p/11878888.html

软件工程项目——个人总结

时光总嘲笑我的痴心妄想 提交于 2019-12-17 03:20:22
软件工程大作业——个人总结 项目进程文档 GitHub链接: https://github.com/SiriusZ-BOTTLE/MucMucMusic UML图及设计简介: https://www.cnblogs.com/Sirius-Z/p/11885955.html 原型设计: https://www.cnblogs.com/Sirius-Z/p/11973794.html 项目源代码 mucmuc数据库: https://www.cnblogs.com/Sirius-Z/p/11885955.html mucmuc前端代码: https://github.com/SiriusZ-BOTTLE/MucMucMusic/tree/master/Muc mucmuc后端代码: https://github.com/SiriusZ-BOTTLE/MucMucMusic/tree/master/MucMucServer 一.项目概述   整个项目,按照先写项目的需求分析,再画项目的UML图,然后进行了原型设计,最后编写整个项目的代码。因为整个项目需要前后端进行交互,我们后端使用了springboot框架,数据库使用mysql,部署在阿里云服务器上,并使用jdbc进行交互,前端进行了Android的app开发。 二.个人总结 2.1工作概述   我主要负责后端的代码编写。 2.1

软件工程(五)软件分析和软件设计

大憨熊 提交于 2019-12-17 02:09:17
软件分析 用户和开发者都会关心软件的需求,都希望通过需求分析弄清楚 “需要软件做什么”,但他们理解问题的角度却各不相同。一般来说,用户只注重软件的外在表现,即软件需求。开发者更加关注软件的内部逻辑,称为软件分析。前者从软件使用者角度出发,而后者则是从软件开发者的角度出发 这里首先介绍以下软件分析这一过程,具体采用什么方式实现这一过程,在之后的文章会给出答案 软件设计 软件设计的任务是将分析阶段建立的分析模型转变为软件设计模型。这一过程需要细化解决方案的可视化设计模型,确保设计模型最终能平滑过渡到程序代码。分析模型强调软件应该做什么,设计模型回答该怎么做的问题 特点 模块与构件 模块是一个拥有明确输入、输出和特性的程序实体。如果模块的所有输入都是实现功能必不可少的,所有输出都有动作产生,即成为定义明确的模块。对象也是一种模块,由于对象自我封闭的特点,因而更容易在软件设计中被重复使用,这种可重复使用的软件组件称为软件构件 抽象与细化 抽象是控制复杂性的基本策略之一。抽象是分层次的,在软件的抽象层次中,最高层抽象程度最高,若需要系统某部分细节,可移向较低层次的抽象 软件设计其实就是在不同抽象级别考虑和处理问题的过程。首先在最高级抽象级别上,概括问题解的形式;然后不断具体化,降低抽象级别;最后在最低的抽象级别上给出实现问题的解,即源代码。在由高级抽象到低级抽象转换的过程中