软件工程——个人总结

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

1. 学习和使用的新软件

  • Dreamweaver主要用于前端设计
    Dreamweaver具有强大的站点管理功能,使用拆分模式,所见即所得的页面编辑方式;支持StylesSheet样式表单,创造丰富的页面效果;Dreamweaver会自动更新所有链接。使用支援文字、HTML码、HTML属性标签和一般语法的搜寻及置换功能使得复杂的网站更新变得迅速又简单。能够快速简单便捷的设计前端样式。
  • Enterprise Architect 8.0 主要用于需求分析,和模型创建
    它覆盖了系统开发的整个周期,除了开发类模型之外,还包括事务进程分析,使用案例需求,动态模型,组件和布局,系统管理,非功能需求,用户界面设计,测试和维护,Enterprise Architect是一个完全的UML分析和设计工具,它能完成从需求收集经步骤分析、模型设计到测试和维护的整个软件开发过程。它基于多用户Windows平台的图形工具可以帮助您设计健全可维护的软件。我们使用EA设计用例图和需求分析,从始至终在整个项目开发过程中。

2. 学习和使用的新工具

  • Mockplus主要是UI的设计
    Mockplus,一款简洁快速的原型图设计工具。适合软件团队、个人在软件开发的设计阶段使用。快速上手、功能够用。并能够很好地表达自己的设计。我们使用软件在最初原型设计中发挥了很大的作用。
  • MySQL用于存放用户数据
    MySQL是一个关系型数据库管理系统,MySQL 是最流行的关系型数据库管理系统之一,MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。.MySQL 对 PHP 有很好的支持,PHP是目前最流行的 Web 开发语言,我们团队使用PHP与MySQl建立联系,存储数据。
  • coding管理代码
    是一个面向开发者的云端开发平台,提供 git/svn 代码托管,代码质量分析,在线 WebIDE,项目管理,开发协作。Coding 基于云计算技术的软件开发平台,集项目管理、代码托管、运行空间、质量控制为一体。在云计算时代,Coding推动软件开发的云端化,使开发者能用一个浏览器完成开发的各个环节。
  • Git代码仓库
    git有以下功能:
    1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
    2、在自己的机器上根据不同的开发目的,创建分支,修改代码。3、在单机上自己创建的分支上提交代码。
    4、在单机上合并分支。
    5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
    6、生成补丁(patch),把补丁发送给主开发者。

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

  • PHP主要是后台与数据库的连接
    语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
  • HTML/css主要是前端网页设计
    超级文本标记语言(英文缩写:HTML)是为“网页创建和其它可在网页浏览器中看到的信息”设计的一种标记语言。超级文本标记语言文档制作不是很复杂,但功能强大,支持不同数据格式的文件镶入,这也是万维网(WWW)盛行的原因之一,我将HTML与PHP相结合,并用CSS优化样式。
  • 新浪云服务器主要用于代码存储,文件存储和数据库的设计
    SinaAppEngine(SAE)是新浪云推出国内最具影响力的应用托管平台,也是国内最早最大的PaaS服务平台,通过新浪云 建立自己的网站,它提供网站、存储、数据库、缓存、队列、安全等服务,开发者可以使用SAE开发托管应用,省去了很多麻烦,对于我们这样初步接触网站,网页的开发来说,是个很好的锻炼平台。
  • 博客园主要用于与老师同学的沟通
    很多IT技术精英,把这里当作自己的网上家园,每天在这里分享着精彩的原创内容,也许他们看重的不是华丽的外表、诱人的虚名,而是纯净、专注、对技术人员的理解。博客园是一个面向开发者的知识分享社区。自创建以来,博客园一直致力并专注于为开发者打造一个纯净的技术交流社区,推动并帮助开发者通过互联网分享知识,从而让更多热爱计算机科学技术的人得到进步,对我们计算机专业的学生真的是一块非常好的交流平台。

(以上部分内容出自百度百科)

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

  • 这次软件工程实践中,我完成了将近1000行的代码,对我来说是一次很好的体验,学习了几种新语言,同时也发现还有很多东西需要学习,现在的能力还比较差。

5. 学习和掌握的新方法

  • 用例分析和需求分析
  • 用例分析是从用例模型到分析模型的过程,是需求与设计之间的桥梁。用例分析把系统的行为分配给分析类,让分析类交互完成系统的行为。在分析中,焦点是创建系统的逻辑模型,该模型捕获系统为满足用户需求而必须提供的功能。设计的目的是说明如何才能完全实现这一功能,整合解域的技术解决方案以提供实际上可实现的设计模型。
  • 需求分析也称为软件需求分析、系统需求分析或需求分析工程,是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么的过程,是软件计划阶段的重要活动,也是软件生存周期中的一个重要环节,该阶段是分析系统在功能上需要“实现什么”,而不是考虑如何去“实现”。
    (1)需求分析的内容是针对待开发软件提供完整、清晰、具体的要求,确定软件必须实现哪些任务。具体分为功能性需求、非功能性需求与设计约束三个方面。
    (2)需求分析的目标是把用户对待开发软件提出的“要求”或“需要”进行分析与整理,确认后形成描述完整、清晰与规范的文档,确定软件需要实现哪些功能,完成哪些工作。
    (3)需求分析阶段的工作,可以分为四个方面:问题识别、分析与综合、制订规格说明、评审。

总结与展望####

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

  • 相比较于其他专业课程,软件工程课并没有教我们打代码,而是在教授我们一种思想,在我们软件开发过程中的一些团队合作思想,设计思想等 ,它的意义在于,当我们真正走向工作后,在工作中处理事情的方法,在最初的课程中,我觉得这门课并不重要,也没教什么新语言,但是在软件工程实践,在团队项目开发的时候,才真正发现软件工程课的作用所在,它的思想和方法贯穿整个阶段,让我们更加有条理的,快速地,高效的开发。在今后的日子,我也要经常阅读构建之法,理解它的方法和思想。

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

  • 一定要仔细阅读书本上的内容,在团队开发中,使用它的方法和思想,同时也要做好准备,项目开发要使用很多的专业知识,新的软件,新的语言,大量的准备工作,还有各种作业,开发过程中要将组员的优点都发挥出来,是一次很棒的机会,虽然有些困难,但是过程是值得享受的。

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

  • 我们的团队是Gali-gaygay开发团队,我作为组长有很大的责任,最初我们团队陷入迷茫,不知道如何分析项目,后来我们几次在一起商讨,最终定下目标,我让每个组员都发挥她们的长处,我觉得我们团队属于“主治医师模式”每个人各司其职,开发初始阶段,我们在图书馆开会,分析系统的大概构成,在接下来的日子逐渐将项目需求细化,工作量的多少是有区别的,根据情况而定,最后小组成员统一决定,非常和谐.
  • 萌芽阶段:在团队刚创立之初,每个人都没有这方面的经验,每个人都觉得有点无所适从,所以开始时我们讨论了软件定位,团队名称,需求分析等;
  • 磨合阶段:在这个阶段,每个人都对制作团队项目方面产生自己的想法,每个人都提出了有用的几个功能,我们一起对软件说明书进行了编写;
  • 规范阶段:经过商讨意见统一之后,团队作业逐渐开始,每个人都做着已被分配好的工作,并且最终在期限之内完成团队作业。
  • 总之这次软件工程我学到了很多,总结了一些经验教训,在以后的团队实践中继续锻炼自己。

4. 个性发挥,包括图文、照片和创意等

##梦想在路上##

##
##梦想在路上##

补充

  1. p80我对于结对编程具有一些疑问,一人编程,一人复审,两个人必然有矛盾和不同见解所在,结对成员一定要区分出强弱进行结对么?
    答:结对编程在有些方面可能会产生分歧,他有萌芽期,磨合期,衰退期,解散期。我觉得不必区分出强弱,而要相辅相成,当然结对编程有他的优点, 在一起时可以相互讨论,有效地避免了闭门造车,减少代码重新认识的时间成本。
  2. p89例举了很多种团队模式,也有几种模型,但是团队项目如何合理的分配成员的任务?才能够是每名成员都满意。
    答:目前还不知道怎么合理,尽量让每个成员都发挥她的优势。
  3. p104敏捷流程的开发原则,学完这本书我感觉需求分析和设计的重要性,敏捷流程则是速成,如果最初的需求分析有偏差,修改成本又很大,敏捷流程是不是就与软件工程思想不符了?
    答:敏捷流程在于“速成”,在最初的需求分析也许会不具体,每个流程都有他的生命周期,敏捷流程过程中可以根据需求的变化做出适当的修正。
  4. 14.1.4质量的成本,如果最后做性能分析的时候发现性能问题造成的原因是前期一个隐藏在很深地方的不妥当架构造成的,这个时候该如何取舍?如果成本很高呢?
    答:我觉得应该尽量修补,成本特别高的话可以考虑放弃。
  5. 15.1.4设计变更,如果用户需求和优化后的软件起冲突时,要按照用户的需求继续做还是优化的软件?
    答:一个软件设计最初应当按照用户的需求,当优化和需求产生冲突的时候,与用户进行沟通或者调查,向他们满意的方向优化,否则,我觉得应该继续按照用户的需求来做。
posted @ 2017-06-24 10:58  Gali-gaygay  阅读(335)  评论(3编辑  收藏  举报