软件工程

2020-02-23

◇◆丶佛笑我妖孽 提交于 2020-02-23 19:23:18
通过一个星期的阅读我已经看完了邹欣的《构建之法:现代软件工程》这本书,我对软件工程也有了更多的认识,对我来说,软件工程包含了软件的整个生命周期,包括需求分析,软件设计,测试和维护等,软件工程与许多的学科密且相关,而软件有很多种类,比如游戏娱乐软件,系统软件,和应用软件等。软件工程的主要内容有:软件工程的目标、软件的测试、个人成长、代码规范、MSF、软件的需求分析、对项目的正确计划、软件的设计和实现主要的设计方法、满足用户体验、质量保障、it行业的创新、软件工程师的职业道德等,这些内容完善了软件工程方面的知识。 以下是我的个人理解,我理解的软件工程是: 1.如果要开发一个软件,首先你需要一个团队,个人的能力固然重要,但是团队的功能也不可或缺,一个好的,分工明确的团队是优质软件开发基础,结队编程是软件开发的前提。 2.在有一个团队之后,开发软件前要进行软件的需求分析,只有正确把握住用户对于软件的需求,才能更好地进行开发。 3.在开发中,代码编写完成后需要对软件进行测试,一个好的代码,需要进行多次测试,在测试中发现代码中存在的问题,以避免造成更大的损失。代码复审是对于代码质量的一个把控,复审会暴露代码中所隐含的问题,使代码质量得到提升。 4.满足用户的体验,对于软件的开发来说,软件工程师就像商家,而用户就是消费者,满足用户的体验至关重要,用户的体验也间接反映了软件的质量。5.it行业

二、软件工程第一章作业题——编写一个计算器

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-22 19:42:55
课程地址:https://next.xuetangx.com/learn/THU08091000367/THU08091000367/1516221/exercise/138588 一、题目描述   请用 Python3 编写一个计算器的控制台程序,支持加减乘除、乘方、括号、小数点,运算符优先级为括号>乘方>乘除>加减,同级别运算按照从左向右的顺序计算。 二、输入描述 数字包括"0123456789",小数点为".",运算符包括:加("+")、减("-")、乘("*")、除("/")、乘方("^",注:不是**!)、括号("()") 需要从命令行参数读入输入,例如提交文件为main.py,可以用 python3 main.py "1+2-3+4"的方式进行调用,Java程序也是类似的,如果你的程序需要通过键盘输入,那么是 不符合要求 的,例如python使用input()来等待用户输入,这会因为自动评测时不会有用户输入所以不会有任何结果。 输入需要支持空格,即 python3 main.py "1 + 2 - 3 + 4" 也需要程序能够正确给出结果,Java程序也是类似的 所有测试用例中参与运算的 非零 运算数的绝对值范围保证在 10^9-10^(-10) 之内, 应该输出运算结果时非零运算结果绝对值也保证在该范围内 三、输出描述 数字需要支持小数点,输出结果取10位有效数字

第一周感想

风格不统一 提交于 2020-02-22 09:14:51
第一周博客 作业链接: https://www.cnblogs.com/xinz/p/9660404.html 个人介绍 ​ 我是一名西南石油大学的学生,今年大三,平时没什么爱好。未来的方向还是比较迷茫。 现状 ​ 我在大一上时学习了C语言,大一下学习了数据结构与算法,也参加了一些算法的比赛,大二期间了解了一些面向对象的语言,但是都谈不上喜欢,个人更喜欢一些底层的东西,大二也学了一些Linux系统的运用,最近在看UNIX环境编程以及Linux的内核实现。 ​ 软件工程学科的内容感觉上是很欠缺,一方面是技术不行,另一方面可能也和课程有一些关系,学校通常的的作业都是给个人布置的,很少会有团队的项目,而且也基本没有用过软件工程这门学科的知识,大多数就只是各自做自己的工作,很难合作。所以是很欠缺的。 ​ 技能调查表 技能 自我评估明前水平 课程结束后水平 提高手段和方法 语言 掌握C、Java,其他语言略懂 阅读更多书籍,多写多练 需求分析 知道需要做什么 多做项目 软件实现 东拼西凑,基本没有结构 研究他人源码,阅读相关书籍 项目管理 管理能力几乎没有 学习管理相关的技能,总结经验 理论素养 软件工程方面知识欠缺 多读书,将理论与现实结合 相关问题的解答 我为什么来上这门课 ​ 这门课的上课方式我很喜欢,学中做,做中学。对于一些软件工程的开发方式,我也迫不及待的想进行尝试

《你说对就队》第九次团队作业:Beta冲刺与验收准备

核能气质少年 提交于 2020-02-22 08:11:59
《你说对就队》第九次团队作业:Beta冲刺与验收准备 项目 内容 这个作业属于哪个课程 【 教师博客主页链接 】 这个作业的要求在哪里 【 作业链接地址 】 团队名称 《你说对就队》 作业学习目标 1.掌握软件黑盒测试技术; 2.学会编制软件项目总结PPT、项目验收报告; 3.掌握软件项目验收内容,验收流程。 团队项目github仓库地址链接 【 GitHub仓库链接 】 Scrum meeting导航 查看【Beta】Scrum meeting 1 点击此链接 查看【Beta】Scrum meeting 2 点击此链接 查看【Beta】Scrum meeting 3 点击此链接 任务分配 姓名 具体分工 工作量比例 完成实际时间(h) 张旭辉 开发总结文档、系统验收及运行检查 20% 6 达选奇 需求文档、功能检查及测试数据准备 20% 6 丁家辉 设计文档、团队博客编写及发布 20% 6 金生芳 过程文档、团队项目总结陈述PPT编制 20% 6 温永琴 测试文档、实施文档 20% 6 参考附录见GitHub 各成员心得总结 达选奇 通过这段时间的软件工程项目的实战演练,我对软件工程的工作原理有了深刻的认识,对于团队之间如何协作作业也有了进一步的认识,在关于考勤管理系统的工程项目中,我负责需求分析阶段的原型设计和需求规格说明书的编写

个人学期总结

99封情书 提交于 2020-02-22 04:34:43
个人学期总结 一、对第一次实验拟定的五个问题的回答如下: 1、软件工程是什么? 在为学习软件工程之前,对于软件工程的理解是对定义的理解,不能对他深层含义的理解。现在,经过一学期的学习,软件工程是对软件开发的一个学习过程,它是具有生命周期的,软件的开发是一个不断迭代的过程,根据要求不断完善的过程,是一个动态的过程。 2、软件工作能做什么,有什么特点? 软件工程,学习和了解开发软件的一门课程,是软件开发的基础课程,软件工程他可以明白软件开发的流程,软件整个开发过程需要做哪些相关的工作,对于开发好的软件如何去维护,去测试它的功能等等。如果真正地要要用软件工程做什么,我们需要更多的学习。 特点:复杂性、不可见性、易变性、服从性、非连续性 3、如何去做,需要掌握那些相关学科的知识? 我们需要不断地学习,需要掌握编码技术,数据库设计技术,软件开发的相关知识,软件测试技术,软件验收技术,文档编写技术等等相关学科知识。 4、IT是什么? IT是信息技术技术行业的统称,IT实际上有三个层次:第一层是硬件,主要指数据存储、处理和传输的主机和网络通信设备;第二层是指软件,包括可用来搜集、存储、检索、分析、应用、评估信息的各种软件,它包括我们通常所指的ERP(企业资源计划)、CRM(客户关系管理)、SCM(供应链管理)等商用管理软件,也包括用来加强流程管理的WF(工作流)管理软件、辅助分析的DW/DM

软件工程课建议

我们两清 提交于 2020-02-21 11:15:37
课程结束了,老师要求我们每人写一篇关于软件工程课建议的博客,现在,我就这学期软件工程课程浅谈一下自己的感受: 1、软件工程课程对于我们来说是一个必备的课程,这一整个学期,我们都是以小团队的形式完成课程的学习,我觉得这是一个很好的教学方法,让我们更深入地体会整个软件工程的理念; 2、上面提到小团队,那就是要将班上同学分组,这学期我们的分组很直接,按学号来,这样也让平时交流不多的同学有机会一起学习和探讨问题,但是这样分组对我们的学习是否就没有坏处呢?其实不然,个人认为,学校里学习的主要目的就是要让同学进步,那就得依情况而定,应该让能力强的同学和能力相对较弱的同学分到一组,产生互补,因为可能一个人编程能强,但不代表他的其他方面也很强。所以合理分组是还需要深入探讨的问题; 3、我们老师是一个非常认真的年轻教师,会认真看我们的需求文档,详细设计,甚至会花整块时间来看我们的博客,也会之后向我们的项目提出很好的建议和希望,但是我觉得老师应该更自信一点,因为毕竟也是比我们学习的东西都多,要相信自己有些决定是正确的; 4、就课堂氛围而言,因为软件工程课比较偏理论,相对比较枯燥,也很容易让学生提不起兴趣,所以老师不应该只是讲讲义上的知识点,要增加与同学的互动,适时地出一些小游戏,讲一些有趣的事来活跃课堂气氛; 5、我觉得整个学期最成功是头脑风暴主题活动的开展,在那次课上

软件工程课程建议

一曲冷凌霜 提交于 2020-02-21 11:08:20
  时间过得好快,不知不觉14周已经过去了,虽然感觉这学期的课程作业有点多,有时候会发一些牢骚,但是感觉收获还是很多的,夸奖的话就不说了。下面是我对这学期的软件工程课提出的几点意见,希望软件工程课能够越来越好。 (1) 老师上课时的热情真心可以感染每一个同学,感觉听课的时候特别的轻松,可以从一堆堆的小故事中找到一些知识,感觉挺好的。课堂作业我感觉有的时候有点难,时间有时不太充足,课堂练习课堂讨论完了应该命令一下同学,立马编写自己的程序,而且老师应该多多的让学生上讲台发表自己对课堂练习题的想法。 (2) 课下读物,感觉本数有点多,主要是平时的时候我不是太喜欢读书,所以这学期强迫自己读书,感觉有时候好有压力啊,其实我感觉一个学期细读一本书应该会比草草的读三本书更好一点吧。 (3) 要是这门课在大二开课就好了,感觉现在开课有点晚,因为这学期专业课实在是太多了,而且还有考研的同学,所以有的同学就不会向大二的时候那么单纯的去做一件事情,有时做项目开发的时候会比较浮躁,还有对总结不是太到位。 (4) 大作业最后的给分让用户来决定一个组的成绩,感觉对有的组可能不太公平,可能他们不会拉到太多的人,这个大作业的好坏,应该看一下这个组最后做出的结果如何再评分。 (5) 老师让我们每个组的小组成员互评,感觉好残忍啊。。。 来源: https://www.cnblogs.com/zgsxh/p

软件工程课程建议

六眼飞鱼酱① 提交于 2020-02-21 11:08:01
这个学期上了软件工程这门课,对于这个课程也有许多的认识: 1.老师采用的教学方式是比较开放式的,我们应该是初次接触到这样的教学模式,上课的时候十分轻 松,状态挺好的,老师经常询问我们的进度,这让我们感觉十分亲切。 2.老师为了让我们体会到整个软件开发的流程,所以整个学期都是以一个自主决定的项目做基础进行 软件开发,从构思、设计到实施等,让我们大概清楚地了解到了软件开发的具体步骤。 3.在项目开发中,老师让我们自觉地进行开发,按时提交文档,这样让我们感觉到了一个正真的项目 开发所需的环节和时间,让我们对项目开发的理解加深了。 4.老师在每个实验后都会让我们写博文,我还是第一次接触到,这个习惯是挺好的,及时的记录下自 己的学习状态和心得,有助于自己以后的再次回顾,也有助于大家互相分享资料。 5.上课的时候,课堂氛围还是有一定的欠缺,大家不是很积极,同学缺乏参与性、不够活跃。老师在 讲解重要知识点的时候,可以多多的通过实例来和同学互动,中间可以让同学以小组进行讨论,但是 要严格控制讨论时间,也可以让同学多多的发表自己的见解,这样大家都可以了解到更多的想法。 通过这一学期的学习,我学到了许多,对软件开发的整个流程有了一定的了解,知道该如何有条不絮 地开发项目,在哪些环节上应该多多的注意,团队成员之间一定要定期的交流和汇报各自的进度,重 视文档的编写。 来源: https://www

软件工程课程建议

痴心易碎 提交于 2020-02-21 11:04:42
通过这一学期的软件工程学习,对于这个课程我从中学到很多关于软件工程知识,以下是我对这么课程的一些想法: 1.学这门课的第一节时老师就给我们事先分好了组,我觉的这很好,因为软件开发就是团队开发合作的,不过我觉得分组其实可以让同学自己自由组合,因为那样组成的团队,彼此之间比较熟悉,也有一定的默契,这对后期的项目开发会比较好。 2.学软件工程,要理论与实践相结合,这样才能更好的学好该工程。老师这一点就做的很好,他从一开始就让我们定好要做的项目,之后按着老师的步骤一步步往下进行软件开发,这就让我们可以深刻的了解体会软件开发的流程步骤。 3.老师在每次实验之后会让我们写一篇博文,刚开始时我还是觉得挺有意思的,因为以前我们都没写过博文。老师这个安排培养了我们写博文的习惯,我个人觉得还行。好记性不如烂笔头,在实验过后写一篇博文加深我们对实验的理解认识,而且之后如果忘了关于这方面的知识,翻翻我们自己写的博文还可以找到相关知识,并且快速的找到当初对这方面知识的感觉。写博文也有助于大家互相分享资料。 4.在上课过程中,课堂氛围还有一定的欠缺,大家不是很积极,不够活跃。我觉得老师在讲解重要知识点的时候,可以多多的通过实例来和同学互动,中间可以让同学以小组进行讨论,但是要严格控制讨论时间,也可以让同学多多的发表自己的见解,这样大家都可以了解到更多的想法。   以上就是我对软件工程课程的一些小建议。 来源:

软件工程要点 第一部分 软件过程

*爱你&永不变心* 提交于 2020-02-21 07:19:28
介绍软件工程之前我们得说明一个问题,什么是软件?软件就是应用程序?就是一堆代码?首先来看看软件三大特征: 软件是设计开发的,并不是生产制造的,他不是工厂流水线。 软件不会被消耗 软件是根据客户实际需求定制的 所以软件本质就是一个特定的指令的集合,来满足预期功能需求。 而软件则设计的领域有工程/科学软件,嵌入式软件,产品线软件,web应用软件,开放计算,人工智能,网络资源,开源软件等 还有些软件叫做遗留软件,就是开发时间距现很久的!!也就是旧软件,而这些软件一般都是性能差。所以这些软件要想在现在还有一定的生存空间,那么就要升级或者重构,甚至于重新开发。 Webapp的特性 W3不光只有html,java,asp,php都属于w3的,webapp是独特的软件类型,但是绝大多数的webapp逃不过以下属性 网络密集性 并发性 无法预知的负载量 性能 可用性 数据驱动 内容敏感性 持续演化 即时性 10.安全性 11.美观性 说完了软件,我们接谈谈软件工程,在21世纪得今天我们做一个软件产品,有如下几个事实: 软件已经融入我们生活 个人、企业和政府的信息技术需求日益复杂, 对特定的用感价值会增加软件的寿命 所以软件要工程化,那么软件工程到底是什么?软件工程的定义如下: 将系统化的、规范的、可量化的方法使用到软件的开发上。 软件工程是一种层次化的技术,层次如下: 那么“怎么做”是一个问题