第一次作业

软件工程基础第一次作业

这个作业属于哪个课程 2018级软件工程基础
这个作业的要求在哪里 第一次作业:阅读与准备
参考文献 目前流行的的原程序管理文件及优缺点
这个作业在哪个具体方面帮助我实现目标 学习一些有关软件工程的基础知识

#
1.自我介绍
“我就是我”
  我是计科三班的蒲涛,来自四川泸州。成长环境使我偏内向一些。外向活泼的人广受欢迎,内向的人也没有错,适合自己就好。内向的人可能普遍更专注一些。我喜欢听音乐,也喜欢运动锻炼,喜欢骑车,喜欢和朋友出去玩,也喜欢一个人宅着。不闪光点是懒和拖延,上大学后认识了很多很优秀很厉害的人,受他们的影响,我也正在努力向前。
#
2.阅读与思考
**问题问答** **(1)回想一下你初入大学时对你所在专业的畅想**   原专业是土木,并不是我的第一志愿,第一志愿是计算机,后来成功转入计科,实现了当时的愿望。当初选择这个专业是觉得计科专业就业前景比较好,很热门。中学的时候接触到电脑游戏,萌发了对计算机的兴趣,想当一个编游戏的高手。 **你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?**   比较符合自己的期待,原本对计科专业其实不算很了解,通过老师的讲解,我对计科专业有了进一步的了解,在逐步摸索自己的目标。第一学期学习了C语言,它是很多语言的基础,学好了它对今后的学习很有帮助,当时老师教我们写了一个比较简单的游戏,对当时的我来说有些难度,从最开始发现问题,然后自己上网查资料,请教同学,到最后解决问题、做出成品,我的学习能力得到了提高,并且成就感十足。第二学期学习了数据结构,程序=数据结构+算法,它的重要性可见一斑,而且难度更大,更得努力学习才能掌握。 **你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?**   我觉得本专业算是我喜欢的领域,因为它比较符合我的性格特点,能坐在电脑面前静静的敲代码我觉得挺好。可惜它并不是我的擅长专业,一方面是因为我对本专业确实不太了解,在上大学以前可以说对它的了解基本为零,另一方面是由于个人经历了一段迷茫期,当时对这个专业失去了热情,上课和考试也仅仅像是完成任务,失去了主动性,本来对这方面就了解甚少,平时也没主动去了解,所以并不擅长。后来见识到很多厉害的人,现在我也有了自己的目标,课后也在努力了解和学习本专业的相关知识,希望把之前浪费的时间补回来,缩减和别人的差距。相信以后能做得更好。 **将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因**   会从事专业相关的工作,想留在成都,公司还得看今后的个人能力,想做前端。 **(2)对照前人们走过的路和描述未来发展,现在的你自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业。**   具备的专业知识有C语言,数据结构等,能力方面正在培养自学能力,心理承受能力,动手操作能力等。 写过的代码量偏少只有几百行,最复杂的作业到目前为止是程序设计综合实践课的贪吃蛇小游戏。 **离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?**   离一个合格的本科生还差得很远,感觉自己就是个大龄的高中生,还存有很多学生思维。在专业知识上还差很多到目前也就学了C语言和数据结构并且只能算初步掌握也算不上精通,操作系统,汇编语言,数字逻辑等专业知识都还没有学习。能力方面还很不足,人际交往能力,组织管理能力,应变能力,创造能力等等。 **(3)目前是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。** **对照以上你阅读的前人们的经历,你的选择是什么?**   我选择工作或者考研。 **在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?**   我认为选择工作的优点是,在学校更多的是理论知识,而出去工作更多是是实际操作,本科毕业能培养实际操作能力,带团队,搭构造,搭框架,分布式布局,能积累更多工作经验。更能了解公司的运作流程。从待遇方面来看,本科毕业工作三年甚至高于应届研究生。如果本科毕业能力就很强,那应该会直接工作,因为在公司三年的成长会比学校大。   缺点是如果毕业后能力一般,本科毕业的学生多数是编程,敲代码,开发软件,本科阶段涉及到的领域偏浅,没有读研后的选择面广,平台也大多低些。 如果选择考研,考研是个跳板,是能力的提升,学历的提升。学习的专业知识更加深入,毕业后选择面更广,平台更高。对于计科专业如果毕业后直接工作或许与软工等专业无太大差别,在研究生阶段的学习和跟导师做项目实践,可以大大提升个人在计算机相关方向的理论和技术实力。读研后计科学生能从事与硬件相关的领域还有前沿性的东西像机器学习,大数据,图像处理,模式识别,云计算,数据挖掘等等。如果不清楚自己的定位,选择考研的话让自己有一段缓冲区,能充分考虑清楚自己将来究竟应该干嘛。   缺点是花时间刚毕业时待遇可能比不过同级的本科生,工作经验也会缺乏一些。 **针对你的选择,你给自己的大三设定的规划安排是什么?**   努力学习专业知识,打好基础,如果有能力就直接工作。若实力不够则准备考研。 **你对于实现自己的梦想已经做了或者计划做什么样的准备?**   学好专业知识,培养能力。
##
3.提有质量的问题
####1.软件工程与计算机科学与技术的关系(第一章第一节) 我看了这段文字 >计算机理论的进展会帮助软件工程(例如对程序正确性的分析);软件工程的进展(更好的工作,更多的应用领域)会帮助计算机科学家更有效地进行实验和探索。(P12) 正如专家所言: 科学家的宗旨是:我发现,故我在。 工程师的宗旨是:我构建,故我在。(P12) >   有这个问题, 文中提到了软件工程和计算机科学的关系与区别,那么究竟是软件催促着硬件的更新还是硬件的更新导致了软件的更新。文中说软件的重点在于构架,硬件上也有架构这一说,那么这两个之间有没有关系呢,是不是新的软件构架侧生了新的硬件架构。

查阅的资料:

硬件架构指的是计算机硬件的程序执行处理结构,软件程序的运行是建立在硬件架构的基础上的,比如我们熟悉的intel系列处理器,就是属于x86架构,升级换代产品的部分仅仅是扩展了可用的部件的性能和字长(如从8位到16位再到32位到64位)可以兼容以前编写的程序(486也可以运行xp但是很慢),这个架构属于复杂指令集架构(CISC),还有一类属于精简指令集架构RISC ,是把复杂的指令分拆成多个可执行的跟小的元素程序来执行的,例如Apple(主要使用RISC的IBM生产的powerpc芯片,现在也有部分产品(Mac mini/MacBook Pro\Air)使用INTEL的CPU),IBM的powerpc,无论是哪种架构,都是软件程序运行时候的硬件的处理单元的组合。3.中间连接不同寄存器的通道和寄存器及这个运转机制组成硬件架构。所以最开始的人工语言---汇编语言的程序书写就是与某种特定架构处理器的寄存器位一一对应的,这样效率理论上是最高,而且实时控制能力很强,直至目前,许多工控机仍然是采用汇编语言。但是由于硬件架构针对性强,导致这类汇编语言编写的操作系统(英国有人开发了使用汇编开发的类似win窗口界面的操作系统,仅仅几M)无法顺利地工作到其他硬件架构的cpu上,这样造成耗费了大量人力成本编写的操作系统无法移植和运行在不同架构的硬件上(例如Amd公司后来开发的cpu增强指令集的功能与intel的有所不同)。于是人们开发了c语言,这个语言是具备硬件无关性的,可以工作在不同架构的计算机上(只要这个架构的计算机有c语言的编译器---这种特定硬件架构的c语言编译器就是针对这种计算机的硬件架构来完成最终c语言代码的编译运行的“中间翻译软件”,不需要改动源代码就可以生成(编译出)适合此种计算机硬件架构的最终执行程序。)

2.计算机科学与软件工程的不同侧重点是什么(第一章第一节)

计算机科学 软件工程
发现和研究长期的、客观的真理 短期的实际结果
理想化的 对各种因素的折衷
确定性,完美,通用性 对不确定性和风险的管理,足够好,具体的应用
理论的统一 百花齐放的实践方法
形式化,追求简明的公式 在实践中建立起来的灵感和直觉
正确性 可靠性

3.什么是MSF(第七章)

微软解决方案框架(Microsoft Solution Framework,MSF)。

MSF(微软解决方案框架结构)是一组建立、开发和实现分布式企业系统应用的工作模型、开发准则和应用指南。它帮助企业融合商业和技术的目标,降低采用新技术后系统整体的费用,以及成功的应用微软技术整合商业过程的方法。

4.什么是PM(第九章)

PM的M就是Manager,但是P有这几种:Product Manager(产品经理)、project manager(项目经理)、program manager(微软的职位名称),在不同的行业和公司,他们的作用各不相同。

5.什么是Spec,如何使用(第十章)

规格说明书(specification)简称Space,分为:
(1)软件功能说明书(Functional spec),主要用来说明软件的外部功能和用户的交互情况(把软件当作一个黑盒子)。
(2)软件技术说明书(technical spec),又叫设计文档(Design Doc),主要用来说明软件内部的设计规范(把软件当作一个透明的盒子)。


##
4.了解和调查源程序版本管理工具
####**(1)Microsoft TFS(Team Foundation Server):** 优点:   任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用集成了项目管理、版本控制、BUG 跟踪,能有效实现 SCRUM能与 VS 无缝接合 缺点:   搭建、维护tfs比较复杂,硬件要求也比较高。 ####**(2).GitHub:** 优点:   GitHub是一个非常万能的工具。对于任何大小的项目,他都是理想的工具;他也是伟大的web工作流工具。首 先,他可以作为一个版本控制系统和协作工具,用它来发布工作。   利用GitHub,你可以将项目存档,与其他人分享交流,并让其他开发者帮助你一起完成这个项目。优点在于 ,他支持多人共同完成一个项目,因此你们可以在同一页面对话交流。   创建自己的项目,并备份,代码不需要保存在本地或者服务器,GitHub做得非常理想。 学习Git也有很多好处。他被视为一个预先维护过程,你可以按自己的需要恢复、提交出现问题,或者您需要 恢复任何形式的代码,可以避免很多麻烦。Git最好的特性之一是能够跟踪错误,这让使用Github变得更加简 单。Bugs可以公开,你可以通过Github评论,提交错误。在GitHub页面,你可以直接开始,而不需要设置主机或者DNS。 缺点:   如果,你是Github使用新手,首先的挑战就是摆正心态——需要不断实践和时间。   他可能不是捕捉创意过程和记录创意点子的最佳工具。对于这种特殊功能模拟可以选择LayerVault 或其他相 似工具。之前,我们已经强调过Github非常适用代码跟踪,但是却不是最好的设计跟踪工具。将图片内容转 化为代码,或者将设计用于产品设置,看起来依旧不是那样顺利。   这是由设计者决定的,然而,一些人发现 GUI 有点混乱,选择CLI代替。一些开发人员学习主要使用Git命令 ,这样可以解释为什么他们不太喜欢GUI的原因了。稍加练习,命令的学习是不太困难的。然而,你喜欢天天 写命令吗?特别是跟踪项目历史或解决冲突的时候。所以就有了另外一群喜欢GUI的人们。将提交、修改、移 动文件等操作可视化,会有一个更好的体验。而这些,就如之前提到的,需要时间来适应。   如果,专门在GIthub上工作,版本控制存储库就值得拥有,也需要长期付出。 ####**(3).Trac:** 优点:   Trac做一个SCM配置管理平台,意味着它有良好的扩充性   Trac的权限体系是比较完备的设计   非常灵活,可以随心所欲的定制,可以和TortoiseSVN集成。 缺点:   不支持多项目,   需求和缺陷没有分离,   用 wiki 来替代 Word 等工具编写文档对于产品策划来说门槛太高了,   中文化不完整,美术人员接触起来困难重重,   不显示中文名,本地化做得很差,   核心功能很少,不安装插件基本上没法用。
posted @ 2019-09-12 22:30  tao4867  阅读(283)  评论(1编辑  收藏  举报