软件工程——个人总结
软件工程——个人总结
一、回想开学初对于软件工程这门课的期望,总结本课程对你带来的提升:
1.学习和使用的新软件
墨刀、Axure、Dreamweaver软件
2.学习和使用的新工具
php编译工具
My sql 数据库管理系统
3.学习和掌握的新语言、新平台
新语言:HTML、PHP
新平台:新浪云、sql
4. 统计一下,你在这软件工程实践中,完成了多少行的代码
在这软件工程实践中,完成了相对较少的代码
5.学习和掌握的新方法
数据库设计,原型界面设计,网页制作,软件测试方法等。
二、总结与展望
1.记录自己在软件工程课程上的经验总结
这次的大作业完成后学会了团队工作中跟团员如何进行沟通,以及如何团队一起合作,在遇到问题时知道怎么样去沟通解决。本学期所学习的软件工程这门科目让我从理论上掌握软件工程,还有从不同的实例,让理论和实践得到了很好的结合。这学期总的来说还是学到了很多东西的,软件工程成为了一个综合的一个能够解决问题的思想集合。
2.对于下一届的学弟学妹你有什么建议和告知。
经过这次大作业让我意识到对于软件开发,团队合作是很重要的,这就要求开发人员有很强的团队合作精神。所以我建议下一届的学弟学妹们在接下来的开发中能合理安排人员分工和时间,提前进行相关学习的话会有更好的效果。
3.分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》团队合作的阶段,你们团队经历过么?最后到达了哪一阶段?
《构建之法》团队合作的阶段,我们团队经历了萌芽阶段,磨合阶段,规范阶段,最后达到了创造阶段。我们的团队总体能力偏弱,但队员间的团队协作能力和交流能力很好,所以大家的相互讨论和分享经验完成了这次项目。
4.个性发挥
团队像人一样,应不断进步成长,是一个生命体。
三、通过本学期的学习,对第一次作业中的5个问题重新回答
我看了一段(很多时候用户并不知道自己确切的需求,或者不愿意表达完整的需求,软件团队需要设身处地,替用户着想,引导出需求。)因为有时候,我觉得用户其实对自己软件的需求很模糊,引导他们也不一定能够全部说出需求,所以有时候是按照客户要求的做的,但客户也不一定满意。是否需要程序员自己的想象呢?
答:程序员需要试着知道客户的爱好,最主要的是能理解客户的当时情绪和和心思,这样才能让客户满意。
问题2.怎么用单元测试和回归测试吗?(第2章个人技术和流程)
书上提及到的单元测试还有回归测试,虽然书本有介绍它们的含义还有作用,也有写到用VSTS来写单元测试,并且有列出单元测试的代码,但是不知道是不是由于没有用软件来编写执行,给我的感觉是很概念模糊,没办法理解到他们的实际操作,可能要在课外里扩展知识,单元测试和回归测试让我觉得挺重要的,对以后做程序来说可以让自己的程序更好的了解到不足和退步。个人开发流程这边让我想到的是我们的作业,我们自己的流程相对比较简单,大多数时间都在具体代码的编写,虽然在计划分析也占据一部分时间,但相对起来少。对比其他的程序员的开发流程,报告,测试这一方面明显比我们学生多。那么对于这一情况,如果有意要从事这一方面的同学,是不是应该从学生这一时刻开始重视报告和测试这一块?对于2.1的内容,那么我们该怎么去着手学习单元测试,回归测试呢?是不是可以从我们平时写的小程序里实践一下学习怎么写怎么用单元测试和回归测试吗?
答:好的单元测试的标准:单元测试应该在最基本的功能、参数上验证程序的正确性。单元测试必须由最熟悉代码的人来写。测试过后,机器转太保值不变。单元测试要快。单元测试应该产生可重复,一致的结果。独立性。单元测试应该覆盖所有代码的路径。应该集成到自动测试的框架中。单元测试必须和产品代码一起保存和维护。回顾测试做的目的是:1.验证新的代码的确改正了缺陷。2.同时要验证新的代码有没有破坏模块的现有功能,Regression.
问题3.瀑布模型的用意是什么?(第5章团队流程)
本书中例出了瀑布模型的文档图,但是个人并没有看得很懂它的用意。搜索一些关于瀑布模型的解释后看到了这样一句话:”瀑布模型的本质是一次通过,它是一种文档驱动模型,在可运行产品交付之前,客户只能通过文档来了解最终的产品会是什么样子。“
答:瀑布模型(Waterfall Model)是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好“返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。包括软件工程开发、企业项目开发、产品生产以及市场销售等构造瀑布模型。
问题4.敏捷流程是什么?(第6章敏捷的流程)
我在书上看了一段文字(在软件工程的语境里,“敏捷流程”是一系列价值观和方法论的集合。从2001年开始,一些软件简介的专家开始倡导“敏捷”的价值观和流程,它们肯定了流行做法的价值,但是强调敏捷的做法更能带来价值。)百度上查的资料:敏捷开发有如下特征1. 工作在小的团队中2. 团队是跨功能的-包括测试人员,开发人员,文档开发人员等等3.短迭代-利用短迭代方法来交付软件4. 相较于文档,敏捷开发更注重面对面的交流5. 敏捷不是一个过程,而是一个软件开发的形式或者方法6. 敏捷可以与软件过程如CMMI等一起实施。百度上搜出来的就这个,还是没弄懂敏捷流程是什么?这方面遇到的困难比较大。
答:敏捷软件开发是一个概念意义上的框架,用来取代软件工程项目的概念;它强调在项目的整个生命周期中,拥抱并促进由于软件进化式的发展所带来的变化。敏建流程就是敏建价值观的流程。是一系列价值观和方法论的集合。
问题5.软件工程和程序哪个更重要?软件工程的区别又是什么?(第1章概论)
书上说软件=软件工程+程序,软件工程和程序哪个更重要?我百度上查了一些资料软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。程序是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。为实现预期目的而进行操作的一系列语句和指令。一般分为系统程序和应用程序两大类。计算机中的程序在港澳台地区称为程式。程序就是为使电子计算机执行一个或多个操作,或执行某一任务,按序设计的计算机指令的集合。虽然看了但是还是不懂哪个重要?
答:软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。为实现预期目的而进行操作的一系列语句和指令。