软件工程

17074194 李伦艳 第一次作业

五迷三道 提交于 2020-02-17 15:27:55
遇到的困难 对博客的使用不是特别熟悉 对Markdown的一些操作不够熟练 Markdown的认识与看法 Markdown的定义 Markdown是一种 纯文本格式的标记语言 。通过简单的标记语法,它可以使普通文本内容具有一定的格式。 认识与看法 Markdown相对于Word等文本编辑器操作简单,特定的操作只有几个,可以减少对鼠标的依赖。 Markdown操作简单的同时是需要记忆一些语法 一些平台不支持Markdown 支持Markdown的地方能获得一样的效果 第一章的读后感 软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。 软件工程 是软件的开发、运营、维护的过程。软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成,每一个时期又进一步划分为若干个阶段,包括软件需求分析、软件设计、软件构建、软件测试、软件维护。软件工程与众多学科相关,故而运用广泛。 广泛意义上的软件工程: 软件= 程序+软件工程 软件企业 = 软件 + 商业模式 bug 的英文定义是“缺陷”,我之前对bug的定义一直是错误,本文对bug的定义是软件的行为和用户的期望值不一样的话, 就叫bug. 例如, 某聊天软件启动的时候就崩溃了, 用户期望这个聊天软件不能崩溃.

《大道至简——软件工程实践者的思想》 读后感

落爺英雄遲暮 提交于 2020-02-17 04:03:24
用本周的一些时间读完了《大道至简——软件工程实践者的思想》这一本小书,篇幅不长只有一百来页,不会使人读起来像其他软件工程那种大书一样痛苦,书中详细的写明了作者对于软件工程这一工作的详细看法与其非常独到的见解,虽然书中许多的专业术语对于我来说有些不明白,但其中的创作思想非常值得我学习。 开篇第一章便是对于愚公和李冰二人移山方法的评价,愚公有愚者之见,子子孙孙,无穷匮也;李冰则在凿石开山的过程中发现了以火击之,遇水尤甚。由此可见,李冰必定是一个闲人,一个懒人,能够闲到用火去烧石头,但皇帝的命令在当时想必也没人敢去违抗,所以李冰必定不敢偷懒,但是为了更快的完成任务,李冰想出来积薪烧之,为了能“偷懒”李冰创造出来方法,或许此时在山北之塞愚公依旧在“碎石击壤” 。 人的精力都是有限的,哪怕愚公节省自己吃饭睡觉的时间,可以多加点班,但是终归不能突破人体的极限,哪怕有“吾今胜昨倍许,明胜今倍许,而山不加增,何苦而不快 ”但是子子孙孙仍然需要三百五百年。李冰没有愚公勤奋,但他拥有懒人的智慧,这种懒人,不是在身体上,而是懒在精神上,他不喜欢天天挖石头,便想出来更快解决问题的办法,能够用更短的时间,去完成同样的事情,何乐而不为呢。 应用到现在我们对于软件工程的学习上,成天的埋头去研究成百上千行的代码,整天的忙碌于寻找代码中的 bug,没日没夜的愚公式学习,何时才能让我们做到 0 error 、 0

2020荐书:软件设计的哲学

社会主义新天地 提交于 2020-02-15 07:48:46
2020年必读书籍推荐:软件设计的哲学(A Philosophy of Software Design),本书190多页,豆瓣的点评分在9分以上,目前只有英文版本,中文版还未上市,英文好的同学建议去直接阅读原版。 内容简介 书中讨论了软件设计的主题:如何将复杂的软件系统分解成可以相对独立实现的模块(如类和方法)。这本书首先介绍了软件设计的基本问题,即管理复杂性。然后讨论了如何处理软件设计过程的哲学问题,并提出了在软件设计过程中应用的一系列设计原则。该书还介绍了一系列标识设计问题的危险提示。你可以应用本书中的思想来最小化大型软件系统的复杂性,这样你就可以更快地编写软件。 作者简介 John Ousterhout是斯坦福大学计算机科学教授。他目前的研究重点是新的软件堆栈层,以允许数据中心应用程序利用具有微秒级延迟的通信和存储技术。Ousterhout之前曾在工业界工作过14年,他在那里创建了两家公司(Scriptics和Electric Cloud),之前在加州大学伯克利分校(uc Berkeley)担任了14年的计算机科学教授。他是Tcl脚本语言的创建者,并以在分布式操作系统和存储系统中的工作而闻名。Ousterhout获得了耶鲁大学物理学学士学位和卡内基梅隆大学计算机科学博士学位。他是美国国家工程院院士,曾获多个奖项,包括ACM软件系统奖、ACM Grace Murray

UML介绍

孤者浪人 提交于 2020-02-14 03:44:48
UML是什么 Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。 面向对象的分析与设计(OOA&D,OOAD)方法的发展在80年代末至90年代中出现了一个高潮,UML是这个高潮的产物。它不仅统一了Booch、Rumbaugh和Jacobson的表示方法,而且对其作了进一步的发展,并最终统一为大众所接受的标准建模语言。 UML有什么 UML 2.4.1 发展了已经获得成功的 UML 2.0规范 ,并迅速成为建立软件系统可视化、规范、文档的标准。统一建模语言(UML) 也被用于非软件系统的建模,并在很多领域,诸如金融,军事,工程方面应用广泛。 UML 2 定义了13种基本的图,它们被分成两大类: 1. 结构建模图 结构图定义了一个模型的静态架构。它们通常被用来对那些构成模型的‘要素'建模,诸如:类,对象,接口和物理组件。另外,它们也被用来对元素间关联和依赖关系进行建模。 2. 行为建模图 行为图用来记录在一个模型内部,随时间的变化,模型执行的交互变化和瞬间的状态;并跟踪系统在真实环境下如何表现,以及观察系统对一个操作或事件的反应,以及它的结果。 UML可以用来做什么 嵌入式软件分析设计

软件工程第三周

喜夏-厌秋 提交于 2020-02-13 05:31:42
第二周在软件工程概论上花费了10个小时。 本周我大约写了四百五十行代码。 在博客园共发表了一篇博客。 本周我学到的知识: 1、在java web的制作过程中,学习到了一些javascript特效,如:照片自动切换、在网页上显示当前的系统时间、文本自动滚屏等。 2、利用form和submit提交表单,连接jsp文件,实现与数据库的连接,检验输入的数字或字母是否匹配。 3、java web中的session存储值的语句和用法。 4、java中String.format("%-6s","序号")可以实现排版输出,在c++中则是利用cout<<setw(10)<<"序号"<<endl;语句实现这功能。 来源: https://www.cnblogs.com/lizhaoxuan/p/6536541.html

软件工程第五周

假如想象 提交于 2020-02-13 04:29:27
第二周在软件工程概论上花费了8个小时。 本周我大约写了四百行代码。 在博客园共发表了一篇博客。 本周我学到的知识: 1、网页中跳转的response语句,实现页面之间的跳转,以及session语句的存值和取值。 2、再利用session语句的时候,注意传值的类型,以免出现乱码,在出错时可以添加<%request.setCharacterEncoding("UTF-8"); %>的语句。 3、在jsp页面中调用<%=talking %>可以输出变量的值。 第二周在软件工程概论上花费了8个小时。 本周我大约写了四百行代码。 在博客园共发表了一篇博客。 本周我学到的知识: 1、网页中跳转的response语句,实现页面之间的跳转,以及session语句的存值和取值。 2、再利用session语句的时候,注意传值的类型,以免出现乱码,在出错时可以添加<%request.setCharacterEncoding("UTF-8"); %>的语句。 3、在jsp页面中调用<%=talking %>可以输出变量的值。 第二周在软件工程概论上花费了8个小时。 本周我大约写了四百行代码。 在博客园共发表了一篇博客。 本周我学到的知识: 1、网页中跳转的response语句,实现页面之间的跳转,以及session语句的存值和取值。 来源: https://www.cnblogs.com

软件工程与UML笔记

对着背影说爱祢 提交于 2020-02-10 17:26:18
软件工程与UML笔记 第一章 面向对象软件工程概论 要求学习的内容: 软件危机 软件工程的由来 软件工程的定义 软件工程的范畴 软件工程实践的目标 软件开发包含的活动 软件维护的成本 修复bug的代价 一.软件危机 软件定义: 软件是程序以及开发、使用和维护程序所需要的所有文档。 软件危机定义: 软件开发和维护过程中遇到的一系列严重问题 表现: 对软件开发成本和进度的估计不准确; 软件产品质量很不可靠; 可维护性差,软件的文档资料不完整和不合格; 软件成本逐年上升; 软件开发生产率不高,不能满足客观需要。 软件危机原因: (1)人们对于软件概念与范畴的理解。 早期软件工程师崇尚个人英雄主义,整个软件开发通常处于一种无序的状态。他们大多认为编写程序就是软件开发的全部。这种观念会导致随着软件规模的增大,程序员对于文档的忽略与不重视,使得软件开发产品的不健全与维护困难。 (2)软件的规模日益增长、设计日益复杂。 Visual Studio/Office等(M->G) (3)软件开发组织发生变化。 在上述因素发生变化的同时,软件开发组织也在发生着变化。早期开发一款小型软件,可能1-2个开发人员就可以完成。然而随着软件规模的飞速增长,软件开发组织也在同比例增长,由单打独斗的状态改变为一个团队若干开发人员共同研发一款产品。人员由一个变成团队协同开发,这种组织形式的转变

【零基础开始学习软件测试】测试的定义是什么、测试目的是什么、测试对象是哪些?什么是软件测试?

浪子不回头ぞ 提交于 2020-02-09 18:10:12
说实话,这些概念性的文字在实际工作中并不能用到,工作了1年以上的同学也不需要了解这些东西,那么这些概念性文字有什么作用呢? 1.可以形成文档,比如新人入职、离职交接等。 2.培训,无论是公司内部、还是专职讲师,都需要了解这些概念的。 3.面试,笔试等。无论面试别人,还是被面试。 目录 1.软件测试的定义 2.软件测试的目的 3.软件测试的对象 4.软件质量 功能性 可靠性 易用性 效率 维护性 可移植性 5.初级测试工程师的主要工作 6.总结 1.软件测试的定义 什么是软件测试,软件测试的定义是什么。 软件测试,是通过手工、自动化等手段,来检测软件产品中的错误和缺陷的过程。 对于刚开始进入测试行业的同学们,基本上都是执行测试用例、发现Bug、提交Bug。 2.软件测试的目的 根据软件测试的定义,可以知道软件测试的目的: 寻找缺陷,寻找Bug。 工作中发现缺陷并提交,然后跟进Bug,直到被修改。 1) 以最少的人力、物力和时间,找出软件中潜在的各种错误和缺陷。 2) 通过修复各种错误和缺陷,确保软件质量。避免软件发布后,由于错误和缺陷而造成的影响。 3) 测试过程中的一些信息,要定期进行总结复盘,防止在后续项目开发和测试,重犯错误。 4) 采用更加科学高效的测试管理方法,提高软件测试效率和软件质量。 3.软件测试的对象 软件测试的对象不止是软件。 包括程序、数据和文档等等都是测试对象

构建之法读书笔记06

随声附和 提交于 2020-02-09 10:06:43
第十二章:用户体验 用户对产品的第一印象是非常重要的,所以要尽量让用户在第一次使用时,少花时间在对他没有价值的部分,并且尽量花最少的时间让用户了解软件的基本功能并学会使用。需要站在用户的角度考虑问题,要为用户考虑,思考用户的角度上使用软件他会希望这个软件的使用以及各功能之间连接,界面划分是怎样的。如果用户长期使用,这个软件时越来越让用户觉得便利还是麻烦。要一直记住用户的选择。不能让用户犯简单的错误。要注重用户体验和质量不能是你觉着这样对用户好,但是用户觉着很麻烦甚至是厌恶。所以一款软件要能真正的解决用户当前的困难给用户带来便利,使用界面要符合用户的习惯,如果用户使用有错误需要能够撤销刚才的操作或者是可以退出软件,在软件中对一个事物的描述要一致且标准,并且软件能够适合各种类型的用户而不是局限的适合一小批用户,需要设置一些帮助文档解决用户使用过程中常见的错误。 第十三章:软件测试 Bug 即软件的缺陷,可以分为三种:症状、程序错误、根本原因。找出 bug 则需使用测试,按测试设计的方法分类分为黑箱测试(即行为测试设计)和白箱(玻璃箱)测试(即使用软件的内部结构和知识来选择测试数据和具体的测试方法);按测试目的分为功能测试和非功能测试(即测试软件的服务质量);测试方法分为单元测试、代码覆盖率测试、构建验证测试、验收测试、“探索式”测试、回归测试、场景 / 集成 / 系统测试、伙伴测试

软件工程——个人总结

≯℡__Kan透↙ 提交于 2020-02-09 09:08:46
个人总结 一.回想开学初对于软件工程这门课的期望,总结本课程对你带来的提升 1.学习和使用的新软件 Mockplus原型设计软件 Dreamweaver软件 2.学习和使用的新工具 php编译工具 My sql 数据库管理系统 3.学习和掌握的新语言、新平台 学习的新语言: HTML、PHP 掌握的新平台: 微信公众平台、 新浪云 4.统计一下,你在这软件工程实践中,完成了多少行的代码 在本次软件工程的实践中,我完成了800行左右的代码 5.学习和掌握的新方法 在这次软件工程的时间中我掌握了原型界面的设计,使用PHP的后台数据库链接,使用PHP和HTML制作动态网页,软件开发方法及其测试方法。 总结与展望 1.记录自己在软件工程课程上的经验总结 通过这学期的软件工程实践,让我感触颇多。通过实践,我掌握了新的编程语言,新的平台,同时也发现了新浪云是一个很强大的平台。通过团队成员自己之间的相互配合,相互帮助,相互学习,最终我们的项目顺利地完成了,同时团队成员之间的友谊更加深厚了。 2.对于下一届的学弟学妹你有什么建议和告知呢? 学弟学妹们,我们这个项目还有许多需要改进的地方,希望你们能够进一步完善我们的这个项目。同时希望你们有更好的创意和想法来改进这个项目。 3.分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》团队合作的阶段,你们团队经历过么