软件工程——个人总结

软件工程——个人总结

学号:1500802067 姓名:陕云鹏

回想开学初对于软件工程这门课的期望,总结本课程对你带来的提升:


学习和使用的新软件:

微信公众号:我们是基于微信公众号做的开发 所以开发时用到了这个;

ER:ER是一款用于画例图,类图等的软件;

Dreamweaver:以前简单的使用过的软件,通过做课程设计又重新学习了,主要用于前端设计;


学习和使用的新语言:

学习了PHP语言,主要是用来编写网页
学习了markdown的排版


学习和使用的新工具、新平台:

学习使用在coding上,存放代码,共享代码;
学习使用新浪云服务器,在后台开发,网页制作过程中的代码的编辑,网页的实现和数据库的实现;
学习使用Git仓库用以执行Git命令操作,Git的结构等。


统计一下,你在这软件工程实践中,完成了多少行的代码

平时的作业,期末大作业,以及平时的练习,大概约1500行代码


学习和掌握的新方法

(1)需求分析:在完成一个项目之前,要明白这个项目具体是要干什么,要进行详细的需求分析,需求分析的内容是针对待开发软件提供完整、清晰、具体的要求,确定软件必须实现哪些任务。具体分为功能性需求、非功能性需求与设计约束三个方面。功能性需求即软件必须完成哪些事,必须实现哪些功能,以及为了向其用户提供有用的功能所需执行的动作。功能性需求是软件需求的主体。开发人员需要亲自与用户进行交流,核实用户需求,从软件帮助用户完成事务的角度上充分描述外部行为,形成软件需求规格说明书。作为对功能性需求的补充,软件需求分析的内容中还应该包括一些非功能需求。主要包括软件使用时对性能方面的要求、运行环境要求。软件设计必须遵循的相关标准、规范、用户界面设计的具体细节、未来可能的扩充方案等。一般也称做设计限制条件,通常是对一些设汁或实现方案的约束说明。例如,要求待开发软件必须使用Oracle数据库系统完成数据管理功能,运行时必须基于Linux环境等。

(2)软件测试方法:黑盒测试,黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下, 在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。白盒测试,白盒测试 又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。


个人总结

1.课程收获:

本学期所学习的软件工程这门科目让我从理论上掌握软件工程,还有从不同的实例,让理论和实践得到了很好的结合。整一个学期下来,总的来说还是学到了很多东西的,有很多地方是值得肯定 的,其实在我看来,软件工程与其说是一门课程,不如说是一门思想。是一个如何去分析和处理问题的过程,应该说其范畴已经远远不止局限于该门课程,成为了一个综合的一个能够解决问题的思想集合。


2.课本带给我们的:

《构建之法》这本书的内容逻辑很清晰明了,第一章是从整体分析软件工程这门学科的发展和所处的社会环境,接着后面的几章深入分析了软件开 放过程和模式、软件项目管理、计算机工程、需求分析、结构化分析建模以及基于UML面向对象分析建模等。


3.本课程的不同之处吸引着我:

这个课程老师不仅仅用理论授课方法帮我们了解软件工程的相关概念,同时老师使用了很多其他的方式让学生去了解这门课程,比如用例纸牌游戏,看图说话,作业的娱乐式点评竞争,让我在学习这门课时充满了兴趣。


4.课程中学到了

软件工程,就是这样一套用于软件的团队开发,以提高软件质量和程序员工作效率为目的的规范。其核心就是,对于软件开发的5个重要组成部分:需求分析,设计,编码,调试,维护,如何组织这5个部分的工作,以及如何完成每一个工作。简单来说,就是对于总体的组织和对于局部的实现。


5.课程总结与展望:

这门课程的内容十分的概念化,所学到的都是前人的经验与教训的总结,涉及到的理论知识太多了。现在开发经验很少的我,还不能彻底的理解软件工程所带来的帮助,仅仅开括了自己的知识面,至少在之后的个人开发或者团队开发中不再迷茫,不知道如何下手了,我想这也是这本书最基础的目的吧,对于书中提到的专业的测试人员,开发人员以及团队的PM,相信只有足够多的开发经验之后才能有所理解和想法。不过也学到了一些实质性的东西,比如VS工具中的测试方式,帮助对软件进行优化与DEBUG。

对于课程展望,希望自己在日后的编程中注重个人的编码素养,理论之外将实践用于之后的学习中,理论是实践的根本,同时也要学好理论知识,将


记录自己在软件工程课程上的经验总结

现在的任何电子化产品离不开程序,而所有的程序离不开团队,软件工程课程不仅仅给我提供制作程序的思想模式,更是让我们认识到一个团队的重要性,团队的能力,团队的分工,团队的风格直接影响着程序的结果等级。


对于下一届的学弟学妹你有什么建议和告知呢?

在着手做作业时,先去把markdown看一下,不难,这样每次做作业的时候就会轻松很多。

做大作业前,根据每个人的能力来分配工作,提前进行相关的学习。


分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》团队合作的阶段,你们团队经历过么?最后到达了哪一阶段?

自己所在的团队,总体能力偏弱,作为一个团队的负责者,没有充分发挥自己在团队协作中的作用,团队的人数偏多,工作总量有相对较少。在功能的实现时,由主要的几个人做了大量的工作,从一次团队协作中我也学会了许多,如果想让团队做出好的工作,首先要保证团队人员的素质,其次是人员的协调分工,一个负责人带不好头,则满盘皆输,虽然这次的团队合作不是很理想但我很感谢每一个队伍里的人,是你们的现象反映了我的错误,我会改的;

我们的团队经历了结对编程,到用例说明文档,绘制类图,再到整个的需求规格说明书,然后进行黑盒测试最后阶段,都较积极的完成各相关任务,协作氛围可嘉;


补充:

•阅读第八章 需求分析,获取用户需求中软件开发的过程中用户最需要的是什么?

软件开发的过程就是用户最需要的东西在链条中传送、转换、实现、扭曲或丢失的过程,“市场营销,就是“通过改变影响用户产品购买决策的各种因素,实现争夺用户或激发用户消费的目'',对产品运营人员来说,无非是解决“吸引新用户、掠夺竞品用户、留住现有用户、促使用户购买、促使用户购买更多”等实际问题,产品运营人员需要去不断了解用户需求,改善市场策略,而市场调研是了解用户需求最常用的方法。用户认为折扣、品质、服务、口碑在其选择时最重要,实际选择时网站知名度、用户口碑作用更加突显。

•根据第七章MSF团队模式中 典型的软件团队模式和开发流程都有那些?各有什么优缺点?

''软件团队的模式:a、主治医师模式b、明星模式c、社区模式d、业余剧团模式e、秘密团队f、特工团队g、交响乐团模式 h、爵士乐模式i、功能团队模式j、官僚模式等。开发流程是指一群人在一起做软件开发,总是要有一些方式方法。我们在开发、运营、维护软件的工程中有很多技术、做法、习惯和思想。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”,软件开发流程的目的是为了提高软件开发、运营和维护的效果,以及提升用户满意度、软件的可靠性和可维护性。 a、写了再改模式b、瀑布模式c、瀑布模型的各种变形d、Rational统一流程e、老板驱动的流程f、渐进交付的流程。''

阅读第八章在用户需求方面,除了我们对于用户的基本需求满足,我们也要对大众用户进行问卷调查或者是面对面的讨论软件的差异,在软件的需求方面,双方会有着一些歧义,但是又不想要失去任意一个潜在的用户,是否需要去考虑个别用户的特殊需求?

个别用户的需求可能是吸引部分潜在客户的关键因素,所以我们需要在发布之后进行用户的反馈进行软件的修改。

•由第五章 团队和流程中软件的开发模式分别指那些?

快速原型模型:需要迅速造一个可以运行的软件原型,以便理解和澄清问题)快速原型模型允许在需求分析阶段对软件的需求进行初步的非完全的分析和定义,快速设计开发出软件系统的原型展示待开发软件的全部或部分功能和性能。过程:用户对该原型进行测试评定,给出具体改善的意见以及丰富的细化软件需求,开发人员进行修改完善。

•当开发人员修复了一个缺陷并签入代码后,新的构建就会包含一个修复,测试人员验证修复会不会导致其他问题?

测试不是在所有的开发工作完成之后才进行,而是与开发几乎同步进行的。一个软件项目的各个功能都可以有自己的测试计划,它们可以在不同的阶段发挥作用。但是针对整个项目的总测试计划(又叫测试总纲)要在计划阶段大致定下来,并指导所有测试工作的进行。测试需要这些a. 用户类型不变。b. 屏幕分辨率降到两种,手机屏幕不要了,我们暂时不在手机上测试。c. 屏幕DPI不测试高级DPI(屏幕 | 属性 | 高级 | DPI 中可以设置DPI以提高显示效果。d. 操作系统只测试3种,二柱强烈支持Linux,同时考虑到一些高收入的网民可能会用Linux操作系统,保留Linux。

原文地址:https://www.cnblogs.com/shanyunpeng/p/7071379.html