首页 > 编程知识 正文

项目管理软件排行榜,达内教育学费价目表

时间:2023-05-05 00:30:42 阅读:57980 作者:2783

项目管理项目经理高级——清华大学《软件工程》课程学习与共享1 .课程相关信息1.1课程简介1.2教师团队1.3课程编程语言1.4课程参考教材2 .组织过程资产录入2.1编程的学习与实践2.2 PMP项目管理工程3.1软件生命周期模型3.2软件需求3.3软件设计3.4软件设计3.4软件构建3.5软件测试3.6软件维护3.7软件开发管理4 .参考

博主在研究生时代主要使用Fortran进行数值计算的相关算法研究,现在使用Python进行数值计算软件的二次开发和自动化的应用。 博主向往转型软件相关的项目管理人员,但意识到自己在软件工程方面的知识还很欠缺,所以一直在学习和积累相关领域,这次很容易就完成了自己以前学习的清华大学《软件工程》的视频课程

当然自己写这个fkdz一方面是为了做学习记录,另一方面上课的故事确实很好。 目前的视频课堂学习平台很多,除了发夹前辈、清华学堂外,还有基站和其他视频网站,在课程资源丰富、种类繁多的情况下,很可能难以吸引眼球进行选择。 另外,有的课程上课水平不同,说话流利,通俗易懂,募集博彩,有些课程可能有点照本宣科,但还是需要筛选。 我比较过关于软件工程课程的公开课,发现清华大学这么《软件工程》门课程是个好故事。 所以,我想为同样有兴趣学习软件工程的伙伴们提供参考。

1 .课程相关信息1.1课程概述本课程从软件生命周期的角度介绍软件工程的基本概念、基本原理和基本方法。 内容涉及开发管理、需求建模、设计实现和测试维护等四个基本知识,强调软件工程的根本持久原则,如可测试性、软件体系结构、模块化和可复用性等,软件系统复杂性的重视问题的分析和解决能力和软件工程实践训练经过本课程的学习,学生掌握了软件工程的基础知识,从工程角度认识了软件在大型复杂系统中的设计和应用,作为软件工程师

本课程将于2019-10-30上线,成为新编课程,课程内容也在一定程度上与当前软件工程新发展和应用相结合,课程共分为15个章节,共83堂课,总的来说有课的学堂在线网站如下。

33559 www.xuetangx.com/course/thu 0809 1000367/5883555

1.2教师队伍以下为官方网站发布的教师队伍:

这门课的主讲人是日立数据库老师,随着自己在课堂学习中的发现,在课堂上《第4章 软件开发过程》可以向前微软Azure工程团队首席研发经理、现任CSDN副总裁zrdbb介绍微软的开发流程

课程中《第12章 软件交互设计》推出了清爽的未来,自己对着ckdhm人的美声上着甜美的课,很有趣。 我还查了老师的资料。

清爽的未来,清华大学计算机系“长江学者”特聘教授、人机互动媒体整合研究所所长、清华大学全球创新学院(GIX )院长。 她的主要研究方向是人机交互、普适计算、多媒体、网络教育技术等,主办国家十三五重点专项等国家研发计划项目。 其科研成果近年来连续获得国际人机交互领域顶级会议最高论文奖,并两次获得国家科技进步奖。 清爽的未来将兼任中国计算机学会常务理事、人机交互专业委员会副主任。

1.3课程编程语言本课程中相关软件工程的知识介绍,主要用编程语言Python进行介绍,使用的Python IDE (集成开发环境)为Pycharm。 相关的代码分析工具是Pylint,单元测试工具使用的是PyUnit。

对博客人来说,这是一种熟悉的Python编程语言,常用的Python IDE是Pycharm,也使用相关工具Pylint/PyUnit,博客博客《机器学习实战之路》就是基于这一开发环境因此,这门课程所要求的知识基础面比较一致:博主。

但是,与自己的博客专栏《机器学习实战之路》的论述不同,机器学习专栏往往被定位于开发技术人员的共享学习,对很多程序员开发同胞来说,Python和Pycharm等概念是不言而喻的。 但是,《软件工程》本课程的定位是一个全面的系统介绍软件工程,相当于专业导论课。 因此,fkdz在此简要介绍Python和Pycharm等概念。Python:由荷兰数学与计算机科学研究学会的Guido van Rossum于20世纪90年代初设计,称为Aaarm的Python提供了高效的高级数据结构,面向对象编程也很简单Python语法、动态类型和解释器语言的本质已经成为许多平台上编写脚本和快速开发APP应用程序的编程语言,并且随着版本的更新和语言新功能的增加,将用于开发独立的大型项目凭借Python的诸多优势,Python已经广泛应用于人工智能、机器学习、深度学习、大数据、网站开发、搜索引擎、云计算、科学计算等领域。 33558 www.Sina.com/:来自jetbrains公司的全功能python开发环境。 在涉及人工智能和机器学习的情况下,它被认为是最好的Pyt

hon IDE。最重要的是,Pycharm 合并了多个库(如 Matplotlib 和 NumPy),帮助开发者探索更多可用选项。PyCharm支持很多的第三方web开发框架,比如Django、 Pyramid、web2py、google app engine 和 Flask,这些也使得它成为了一个完整的快速应用集成开发环境。这也是本课程《软件工程》使用PyCharm做为Python IDE的原因之一。
Pylint:是一个 Python 代码分析工具,它分析 Python 代码中的错误,查找不符合代码风格标准(Pylint 默认使用的代码风格是 PEP 8)和有潜在问题的代码。
PyUnit(unittest): 是 Python 自带的单元测试框架,用于编写和运行可重复的测试。PyUnit 是 xUnit 体系的一个成员,xUnit 是众多测试框架的总称,PyUnit 主要用于进行白盒测试和回归测试。通过 PyUnit 可以让测试具有持久性,测试与开发同步进行,测试代码与开发代码一同发布。

1.4 课程参考教材

虽然本课程中没有给出对应学习的教材,且主讲老师也在回复学生的评论中说没有对应教材,不过自己买了本Ian Sommerville的《软件工程》作为主要参考书,基本上对应与覆盖视频课程的知识点。

除此之外,还有结合《SWEBOK(Software Engineering Body of Knowledge)指南》一起学习。2014年2月20日,IEEE计算机协会发布了软件工程知识体系 SWEBOK(Software Engineering Body of Knowledge)指南第3版。SWEBOK指南的目的是为软件工程学科的边界提供一致确认的特征,为支持该学科的主体知识提供指导。SWEBOK 指南把软件工程学科的主体知识分为10个知识领域,各种重要概念之间的区别在每个知识领域描述中阐述,便于读者迅速查找所感兴趣的主题。SWEBOK 的宗旨是在众多知识中圈定“属于”软件工程学科领域的知识,规定软件工程教育和培训方面的要求和制订出评价原则,并且在世界范围内求得公认。它还试图为从事软件实践的工程师和负责制定有关职业指导原则的政策的官员提供指南。

2. 组织过程资产输入 2.1 编程的学习与实践

前面也已简要叙述了,博主在研究生时期主要用Fortran做数值计算方面的算法研究,工作上会用到Python做一些数值计算软件二次开发及自动化的应用。还有自己在机器学习方面的学习及实战,都是可以作为此次学习的基础编程知识输入的。

2.2 PMP项目管理经验

在软件工程中,软件项目管理也是十分重要的。关于项目管理方面的专业知识储备,博主在上一篇《项目管理&项目经理进阶——PMP 5A高分通过备考经验分享》已经进行过分享论述,PMP认证在IT行业广泛受到认可,博主当时备考PMP的那一批小伙伴中,大部分就是来自IT互联网相关的行业,所以PMP项目管理的知识在软件项目管理中是同样适用的。关于PMP项目管理相关备考知识的展开,有兴趣的可以查看博主的备考fkdz。博主在敏捷开发方面的知识也做过一些研习,部分参考书如下:

3. 软件工程

软件工程学科的定义有很多种,表述各有不同,但其蕴含的内容是基本相同的。在此引用其中的一种来进行介绍,《计算机科学技术百科全书》对该学科的定义是:应用计算机科学、数学、工程科学及管理科学等原理开发软件的工程。开发一个软件产品是构建一套符合逻辑的指令,通过发送信号来控制某个机器与其它机器、人与自然界的互动。软件项目较之普通的工程项目,其复杂程度高出很多倍。
软件开发的主要活动大致可以分为:软件需求,软件设计,软件构造,软件测试,软件维护,还有整个开发过程中的软件开发管理。

3.1 软件生命周期模型

软件生命周期是人们在研究软件生产时所发现的一种规律性的事实,软件生产有一个生产、使用和消亡的过程,称之为软件的生命周期,软件的生命周期从软件的功能确定、设计、开发完成、投入使用、并在使用中不断的修改、增补和完善,直至被新的需要所替代而停止该软件的使用为止的全过程。总体上分析,软件生命周期将包括分析、设计、实现和维护等一系列过程。而对于生命周期的不同划分方法就会形成不同的软件生命周期模型。
瀑布模型
在传统软件开发中,瀑布模型是最常用及最典型的软件生命周期模型。瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落,这也是瀑布开发名称的由来。从本质来讲,它是一个软件开发架构,开发过程是通过一系列阶段顺序展开的, 从系统需求分析开始直到产品发布和维护。其主要特点是:与一般系统工程一致,易于使用,不要求特别的技术与工具也能较好地进行软件开发;其缺点是:难于很好地表达和描述用户的需求。
敏捷开发——Scrum
敏捷开发是近些年兴起的一种软件开发与管理的思想, 以其灵活性, 易操作性得到软件行业的广泛关注。 敏捷开发方法是一组开发方法的统称,主要包括极限编程、Scrum、 精益开发和动态系统开发方法(DS-DM)、特征驱动开发(FDD)等 。它的基本原则有迭代式开发、增量交付、互动式开发、持续集成等。
Scrum 是目前应用最广泛和最受人欢迎的敏捷思想,它将软件开发团队比作橄榄球队,全队有明确的最高目标:发布产品的重要性高于一切。团队高度自治,wxdbl们熟悉开发过程中涉及到的各种技术,紧密合作,确保每个迭代都朝着最高目标推进。而且每隔2至6周,每个人都能看到能实际工作的软件,并且据此决定是发布这个版本还是继续开发以加强它的功能。对于功能需求可能经常发生变化的项目来说,Scrum是它们最为理想的选择之一。

Scrum团队:由一位产品负责人(Product Owner)、开发团队(Development Team)和dzddx三部分共同组成。Scrum团队是自组织和跨职能的。Scrum团队模型旨在优化灵活性、创造性及生产力。

产品负责人:负责从开发团队工作产品中最大化产品价值,且必须是一个人。
开发团队:由专业人员组成,负责每个冲刺结束时,交付潜在可发布的“已完成”的产品增量。
dzddx:负责推进和支持Scrum定义的工作事务,帮助团队中每个成员理解Scrum理论,实践,规则和价值观。

Scrum事件:Scrum中使用规定的事件来创建规则,并最小化对Scrum 中未定义的会议需求。Scrum 中定义了四个事件:冲刺计划、每日站立会、冲刺评审、冲刺回顾。
Scrum 工件:代表着团队工作或者价值,赋予审视和适应两大支柱一个透明的机会。工件包括产品任务列表 (Product Backlog)、冲刺任务列表 (Sprint Backlog)、产品增量 (Increment)。
冲刺(Sprint):是 Scrum 的核心,也是 Scrum 团队工作的一个工作时间盒,每次冲刺都应保持在 1 周到一个月之间。冲刺必须是连续的,一个接一个的,从而保证一个稳定的、固定的项目节奏。每次冲刺都以开发计划为起点,以评审已完成的工作和额外的评审团队协作的方式为终点。每次冲刺都由整个Scrum 团队共同完成整个产品或项目的一个或多个增量。每个完成的增量必须是潜在可释放的,也就是每一个增量必须是在冲刺结束后经过充分测试和充分认可的。以下为Scrum 团队单次冲刺过程示意:

下面我们进一步对软件开发的主要活动稍加论述,当然教材及很多材料对这些知识有详细的论述,我这里就简单汇总整理一下各阶段的知识点。

3.2 软件需求

通常来看,软件需求更多的被定义为“业务知识+问题列表+其他因素”。其中业务知识包括业务事件、业务实体和业务规则;问题列表就是用户在工作中遇到的困难和障碍,这也是软件开发需要解决的问题;其他因素包括了一些设计约束和非功能方面需求。从软件工程的角度看,决定软件项目成败与否最主要的因素是需求,需求开发和管理工作做得好,软件开发成功的几率就大。

3.3 软件设计

软件设计是从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的代码,形成软件的具体设计方案。从工程管理的角度,可以将软件设计分为概要设计和详细设计阶段。

3.4 软件构造

软件构造得到软件的源代码和可执行代码,使软件产品的设想变为现实,软件构造是软件工程体系中的重要一环。为了实现高质量的软件产品,不仅需要有编码工作,还必须遵守软件构造的各种原则,具有良好的软件设计,遵守一定的编码原则以及规范的编码过程,具有软件测试的过程等,以上这些都是软件构造需要关注的。

3.5 软件测试

在开发人员设计完成所有模块之后,测试人员应当对设计完成的软件展开全面测试。展开软件测试的关键目的,便是及时将存在的各种问题和bug 等找出来。然而需要注意的是,在将软件中 bug 找出来之后,测试人员不能对其展开直接修改,需要在其经过审核后,由开发人员对 bug 进行修改,待所有 bug 完成修改后,才可以使软件正常工作。在正式测试工作开始前,应当确保测试人员对相关功能、业务加以全面学习、掌握,随后才能确保其能够明确软件中的不足与缺陷。

3.6 软件维护

测试完成之后便进入了维护阶段。如今大部分科技产品均拥有各自维修站,这主要是由于在各类软件、产品的具体运用过程中,许多产品常常出现各不相同的故障、问题,而工作人员亟需将各类问题反馈上去,及时维修这些问题。这就需要工作人员在对软件进行使用的时候,及时记录各类问题,从而便于后续的修改以及维修工作,使相应工作人员能够在第一时间找到问题的原因。

3.7 软件开发管理

在进行软件开发时,不但要注重技术的应用,还应该加强人员和开发过程的管理力度,引入先进的管理体系,提高软件开发管理水平。软件开发中引入软件工程项目管理理念,改变传统的以个人为中心的管理模式,更注重团队协作。在现阶段的软件开发阶段,采用管理学的理念进行过程管理,合理的把控开发进度,同时确保软件的开发能够达到预期效果,此外,通过项目管理手段也能够实现软件领域的长远发展,避免软件开发风险造成的严重后果。关于项目管理相关知识的论述,可以参考博主前面写的fkdz《项目管理&项目经理进阶——PMP 5A高分通过备考经验分享》。
相比于普通的工程项目,软件工程的配置管理更为复杂,在此稍加展开论述。软件配置管理(Software configuration management,SCM)是指通过执行版本控制、变更控制的规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护。简单而言就是管理软件的变化,它应用于整个软件工程过程,通常由相应的工具、过程和方法学组成。
配置管理的目标是记录软件产品的演化过程,确保软件开发者在软件生命周期中各个阶段都能得到精确的产品配置。配置管理过程是对处于不断演化、完善过程中的软件产品的管理过程。其最终目标是实现软件产品的完整性、一致性、可控性,使产品极大程度地与用户需求相吻合。它通过控制、记录、追踪对软件地修改和每个修改生成的软件组成部件来实现对软件产品的管理功能。

4.参考学习的书目教材 清华大学《软件工程》视频课程《软件工程》Ian Sommerville 著 犹豫的灯泡 译《SWEBOK指南 第3版》《系统集成项目管理工程师教程 第2版》 mgdhn 主编《项目管理知识体系指南(PMBOK指南)》

=文档信息=
本学习笔记由博主整理编辑,仅供非商用学习交流使用
由于水平有限,错误和纰漏之处在所难免,欢迎大家交流指正
如本文涉及侵权,请随时留言博主,必妥善处置
版权声明:非商用自由转载-保持署名-注明出处
署名(BY) :zhudj
文章出处:https://zhudj.blog.csdn.net/

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。