软件工程-个人总结

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

1.学习和使用的新软件

Adobe Dreamweaver 

 

介绍:是一款集网页制作和管理网站于一身的所见即所得网页编辑器,Dreamweaver 是第一套针对专业网页设计师特别发展的视觉化网页开发工具,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制的充满动感的网页。Dreamweaver也可以使用本经验中共享的破解补丁进行破解。它将可视布局工具、应用程序开发功能和代码编辑支持组合在一起,其功能强大,使得各个层次的开发人员和设计人员都能够快速创建界面吸引人的基于标准的网站和应用程序。

功能:Dreamweaver可以用最快速的方式将Fireworks,Photoshop等档案移至网页上。使用多个查看、诊断和比较工具预览动态网页和本地内容可以跨 Web 浏览器和操作系统快速、准确地测试 Web 内容。全面的 CSS 支持借助功能强大的CSS工具设计和开发网站。
特点:无需另外提供实用程序就能以可视方式显示 CSS 框模型,即使在外部样式表中,也可以减少手动编辑 CSS 代码的需求。也可以制作充满动感的网页。

2.学习和使用的新工具

•Mockplus

 

 

介绍:是更快更简单的原型设计工具。交互快、设计快、演示快、上手快。主旨在于解决团队项目原型设计中的沟通和协作的问题。一般的方式中,产品人员需要把原型设计通过Emai、 QQ、 U盘等方式发送给其他团队成员查看,其他人查看后发送回意见,然后产品人员再修改,再提供新的版本。

举例:例子就是通过QQ截图、批注、修正、再截图、在批注、再修正。你可以使用 Mockplus 的强大设计功能快速完成原型设计。下图是一个简单的 App 登录页面制作,只需要几步就可以完成了。当然,如果你愿意做复杂的原型,Mockplus还有许多特征值得你发掘。

•Git

 

介绍:是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

博客园

介绍:是一个面向开发者的知识分享社区。在这个平台我们可以通过互联网分享自己的知识,经验,心得及自己的见解。我们可以专注的打造一个纯技术交流社区,认识许多优秀的老师,同学和朋友。有不懂的问题还可以与老师和同学之间交流,使我们得到进步与提升。很开心能接触认识这个软件。

3.学习和掌握的新语言、新平台

•ASP

 

介绍:ASP是动态服务器页面(Active Server Page)的英文缩写。 是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。利用ASP可以实现突破静态网页的一些功能限制,实现动态网页技术;ASP文件是包含在HTML代码所组成的文件中的,易于修改和测试;服务器上的ASP解释程序会在服务器端执行ASP程序,并将结果以HTML格式传送到客户端浏览器上,因此使用各种浏览器都可以正常浏览ASP所产生的网页。

功能:ASP可以使用服务器端ActiveX组件来执行各种各样的任务。

举例:例如存取数据库、发送Email或访问文件系统等;方便连接ACCESS与SQL数据库;

•coding

介绍:是一个面向开发者的云端开发平台,提供 git/svn代码托管,代码质量分析,在线 WebIDE,项目管理,开发协作,冒泡社区,提供个人和企业公有云及企业私有云的服务。

优点:我们可以在coding上学习代码,提交代码。为我们提供了新服务,也节省了我们部分的时间。

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

•编写了大概1000行代码,在编写代码的同时也学习了几种新语言,同时也发现还有很多东西需要学习,希望在以后的学习中能有所提高。

5.学习和掌握的新方法

学习了本地连接云数据库端,学会用git创建仓库上传代码和画用例图,也学会了用力建模等。

总结与展望

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

 •与其他课程不同,软件工程教我们的更多的是一种思想。从整体分析了软件开放过程和模式、软件项目管理、计算机工程、需求分析、结构化分析建模以及基于UML面向对象分析建模等。软件其实不仅仅是程序、软件开发也不只是编写程序、软件是思想在硬件上的载体和体现,处理的是逻辑和信息。需要队员之间有一定的默契,不然就会变成一盘散沙。队员间缺少交流也会导致出现一系列的问题所以需要队员间经常进行一些小活动来提高默契。

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

仔细阅读书本后你会发现,这门课的理论知识不多,掌握起来也不是那么容易,所以一定要做好课前的预习。老师布置的大量作业都需要自己亲自动手去做,经常自己动手不断地去动手实践才能真正的掌握和理解那些较为枯燥的理论知识。不要局限于书本知识要经常参考其他的书来拓展思维,开阔视野。

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

 我们的团队是Starry*sky

•萌芽阶段:项目起初,大家意见不同,有一些对项目安排的争议与意见。

•磨合阶段:项目开始,我们逐渐了解与熟悉,逐渐开始沟通,数据库的设计与连接,定了题目,开始个人的编程。

•规范阶段:项目之中,通过磨合阶段,我们确立了自己的发展方向,各自开始自己擅长的部分,通过合理分工开始规范每个人的任务缺点。

•创造阶段:最后我们团队每个人都有自己明确的分工,大家逐步进入正轨,然后个人完成分配的项目,包括数据库设计,网页设计等。

4.个性发挥,图文

 

个人总结补充:

•如何精确的获取用户需求,分而治之?

我看了第八章需求分析第三小节 (软件开发的过程就是用户最需要的东西在链条中传送、转换、实现、扭曲或丢失的过程)有了这个问题,我查了资料有这些说法(“市场营销,就是“通过改变影响用户产品购买决策的各种因素,实现争夺用户或激发用户消费的目'',对产品运营人员来说,无非是解决“吸引新用户、掠夺竞品用户、留住现有用户、促使用户购买、促使用户购买更多”等实际问题,产品运营人员需要去不断了解用户需求,改善市场策略,而市场调研是了解用户需求最常用的方法。用户认为折扣、品质、服务、口碑在其选择时最重要,实际选择时网站知名度、用户口碑作用更加突显,这其实反映了:团购市场发展初期,用户对市场缺乏信心、对商家信誉缺乏信心;对用户来说,网站知名度大、用户口碑好意味着产品、服务有保障,本质上还是用户对品质、服务的需求;而折扣、促销则显然反映了用户对团购优惠实惠的本质需求。'')根据我的实践,我得到这些经验(产品运营人员需要去不断了解用户需求,改善市场策略。)我有一些观点是是(对于获取市场需求可以改善市场策略和市场调研,从各方各面去了解用户的需求;而这里的分而治之是指为了解决一个大的问题,可以:把它分成两个或多个更小的问题; 分别解决每个小问题;把各小问题的解答组合起来,即可得到原问题的解答。小问题通常与原问题相似,可以递归地使用分而治之策略来解决。)

典型的软件团队模式和开发流程都有那些?

 我看了第五章团队流程有了这个问题,我查了资料有这些说法(''软件团队的模式:a、主治医师模式b、明星模式c、社区模式d、业余剧团模式e、秘密团队f、特工团队g、交响乐团模式 h、爵士乐模式i、功能团队模式j、官僚模式等。开发流程是指一群人在一起做软件开发,总是要有一些方式方法。我们在开发、运营、维护软件的工程中有很多技术、做法、习惯和思想。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”,软件开发流程的目的是为了提高软件开发、运营和维护的效果,以及提升用户满意度、软件的可靠性和可维护性。 a、写了再改模式b、瀑布模式c、瀑布模型的各种变形d、Rational统一流程e、老板驱动的流程f、渐进交付的流程。'')根据我的实践,我得到这些经验(''团队合作指的是一群有能力,有信念的人在特定的团队中,为了一个共同的目标相互支持合作奋斗的过程。它可以调动团队成员的所有资源和才智,并且会自动地驱除所有不和谐和不公正现象,同时会给予那些诚心、大公无私的奉献者适当的回报。如果团队合作是出于自觉自愿时,它必将会产生一股强大而且持久的力量。'')但我还是不太懂(如果是非团队的情况下怎么办以及软件的可维护性),我有一些观点是(我了解到软件开发流程主要是为了提高软件开发、运营和维护的效果,以及提升用户满意度、软件的可靠性和可维护性。团队模式以及开发流程我已经在文中提到)

•如何在软件开发和测试中做风险管理?

我看了第十一章软件设计与实现、第十三章软件测试有了这个问题,我查了资料(风险是在项目中发生的一系列事件或不利结果的可能性。软件开发是一项高风险的活动,在项目开发过程的任何一个阶段都可能存在风险。采取积极的风险管理方式,可以使项目进程更加平稳,可以获得很高的跟踪和控制项目的能力,可以规避、转移风险,或缓解风险带来的不利影响。所以要采取预防措施提供一个协作开发环境,让用户参与开发过程。如果条件不允许,至少应该在每次迭代的需求分析和系统测试阶段,让客户能够参与开发。在选择参与开发过程的用户时,一方面,要尽可能争取精通业务或计算机技术的用户参与。另一方面,如果开发的产品要在不同规模、不同类型的企业应用,应该选择具有代表性的用户参与。也可采取迭代开发。)根据我的实践,我得到这些经验(每次迭代,都要充分接收用户的评审意见,以便为自我纠正。渐近式的功能交付,有利于降低开发人员的压力,增加用户的满意度,有利于增强项目的可见性,是最好的进展。)但我的困惑是(技术审评和持续集成及如何加入新技术)。我有一些观点是(在任何软件开发和测试中都存在风险管理,我们可以积极的采取风险管理方式,规避和转移风险。也可以适当的让客户参与系统测试阶段。其他方面我在文中提到了)

•软件的开发模式分别指那些?

 我看了第十一章软件设计与实现有了这个问题,我查了资料(快速原型模型:需要迅速造一个可以运行的软件原型,以便理解和澄清问题)快速原型模型允许在需求分析阶段对软件的需求进行初步的非完全的分析和定义,快速设计开发出软件系统的原型展示待开发软件的全部或部分功能和性能。过程:用户对该原型进行测试评定,给出具体改善的意见以及丰富的细化软件需求,开发人员进行修改完善。增量模型:采用随着日程时间的进展而交错的线性序列,每一个线性产生软件的一个可发布的“增量”,第一个增量往往就是核心的产品。与其他模型共同之处:它与原型实现模型和其他演化方法一样,本质都是迭代。)根据我的实践,我得到这些经验(快速原型模型的优点是克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,增量模型的优点是人员分配灵活,一开始不需要投入大量人力资源,增量能够有计划的管理技术风险)但我的困惑是(如果增量包之间存在相交的情况且未很好处理该如何解决)。我有一些观点是(软件的开发模式分别有快速原型模型和增量模型,快速原型模式可以解决瀑布模型的一些问题,而增量模型可以灵活的分配人员)。

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

 我看了第十三章软件测试和第十四章质量保障有了这个问题,我查了资料(测试不是在所有的开发工作完成之后才进行,而是与开发几乎同步进行的。一个软件项目的各个功能都可以有自己的测试计划,它们可以在不同的阶段发挥作用。但是针对整个项目的总测试计划(又叫测试总纲)要在计划阶段大致定下来,并指导所有测试工作的进行。测试需要这些用户类型不变、屏幕分辨率、 操作系统的语言、网络速度、浏览器的版本。这并不是网站内容的语言,而是操作系统的默认语言。)根据我的实践,我得到了一些经验(各类人员都有文档要写,但是在敏捷模式中,我们要坚决避免为了写文档而写文档。要写真正有用的、重要的文档,如下所示:在计划阶段,我们就要制定测试计划,特别是测试总纲。然后还要写测试设计规格说明书(TDS)、测试用例、程序错误报告和测试报告。)但我的困惑是(我们的系统需要支持多少种操作系统、浏览器,以及其他影响功能的变量?)。我有一些观点是(各个功能都有自己的测试计划,他们可以在不同的阶段发挥不同的作用,测试人员验证修复有可能会导致其他问题,所以测试前的工作就显得很重要了,我们可以在测试前制定一定的测试计划,编写测试总纲等)。

 

posted @ 2017-06-25 19:55  MJRR  阅读(300)  评论(4编辑  收藏  举报