【软件项目管理】第一章·软件项目管理的基础概念

🌈 个人主页:十二月的猫-CSDN博客
🔥 系列专栏: 🏀软件测试与软件项目管理_十二月的猫的博客-CSDN博客

💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 

目录

1. 前言

2. 软件项目管理基本概念

2.1 项目与软件项目

2.1.1 项目

2.1.2 项目的特征

2.1.3 项目与日常工作的区别

2.1.4 项目的分类

2.1.5 项目的层次分解

2.1.6 项目目标实现的制约因素

2.1.7 软件项目中的要素组成

2.2 项目管理

2.2.1 定义

2.2.2 项目干系人

2.2.3 项目管理中涉及的内容

2.2.4 项目管理的内容

2.2.5 项目管理的特征

2.3 项目管理知识体系(PMBOK)

2.3.1 项目管理的十个知识领域

2.3.2 项目管理的五个标准化过程组

2.3.3 项目管理的49个模块

2.4 软件项目管理知识体系

2.4.1 软件过程

2.5 敏捷项目管理

3. 总结


1. 前言

        从今天开始,猫猫来带大家学习一下软件项目管理。也许有的人会很奇怪说,“猫猫你不是读人工智能的研究生嘛,为什么要研究软件项目管理呀”。这里猫猫想说:1、猫猫并没有深入研究软件项目管理(学习和研究是有很大的区别的);2、谁说研究深度学习,我们就接触不到软件项目管理的知识了。总之,猫猫认为这是我们计算机从业者必备的基础知识!!!未来不论从事哪一个计算机领域,甚至跨出了计算机领域,项目管理都是我们必须要学习的技能呀🥰🥰

2. 软件项目管理基本概念

2.1 项目与软件项目

2.1.1 项目

  • 是为了创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努力
  • 是以一套独特而相互联系的任务为前提,有效利用资源,在一定时间内满足一系列特定目标的多项相关工作的总称。

是什么——临时性努力

怎么做——利用资源且在一定时间内完成

为了什么——创造产品或提供服务(完成多个相互联系的任务)

2.1.2 项目的特征

根据项目的定义,我们不难归纳出项目有一下基本特征:

  • 目标性:项目要完成哪些工作。
  • 相关性:项目的子任务之间是相互关联的。
  • 临时性:项目存在时限,是一次性的。
  • 资源约束性:范围、成本、质量等
  • 不确定性:项目开发中存在变更。变更是软件项目中常见现象,需求,设计,技术,社会。
  • 独特性:独特性是项目的目标。独特性和临时性决定了项目开发是渐进明细的。

特征:用来描述对象的角度。可以说通过对特征的描述,我们就能够区分出不同的对象。特征和对象本身有关,因此对象本身的定义就能够限制特征

当然还有其他特殊特征:

  • 抽象性:软件是逻辑实体,并不是实际存在的。
  • 复杂性:软件规模越来越大因此就越来越复杂。

举个例子:

2.1.3 项目与日常工作的区别

  • 时限:项目是一次性的,日常运作是重复进行的
  • 目的:项目是以结束项目为导向的,日常运作是为了维持运营
  • 负责人和组织:项目是通过与项目经理及其团队工作完成的,而日常运作是职能式的线性管理
  • 目标:项目存在大量的变更管理,而日常运作基本保持持续的连贯性的

目标:是努力的方向。项目追求独特性的创新,运营追求稳定的重复性。

目的:是这个东西最终的去向。项目存在的目的就是结束,运营存在的目的就是持续赚钱。

2.1.4 项目的分类

  1.  封闭性项目和开放式项目
  2. 业务项目和自我开发项目
  3. 企业项目、政府项目和非盈利机构的项目
  4. 盈利性项目和非盈利性项目 

2.1.5 项目的层次分解

  • 项目组合->项目集->项目->子项目(->任务->活动)

2.1.6 项目目标实现的制约因素

四因素:项目范围、成本、进度计划、客户满意度

制约因素:就是影响项目目标实现最重要的几个方面。可以认为就这几个因素影响了项目是否实现目标,因此我们衡量项目是否实现目标就看这几个因素。

衡量项目是否成功,应该看该项目是否在工程允许范围内按照成本预算和进度计划,生产出客户满意的产品

2.1.7 软件项目中的要素组成

  1. 软件开发的过程
  2. 软件开发的结果
  3. 软件开发赖以生存的资源
  4. 软件项目的特定委托人(客户):需求者、资金提供者

要素组成:软件项目管理中需要被管理的部分(过程、结果、资源、委托人),这些部分也就是衡量我们管理质量的重要因素。

2.2 项目管理

2.2.1 定义

        指在项目活动中运用专门的知识、技能、工具和方法,使项目能够实现或超过项目干系人(stakeholder)的需要和期望。

2.2.2 项目干系人

        指参与项目和受项目活动影响的人,包括项目发起人、项目组、协助人员、客户、使用者、供应商,甚至是项目的反对者。

2.2.3 项目管理中涉及的内容

        项目范围,进度,成本,质量,人力资源,沟通,风险,变更管理

2.2.4 项目管理的内容

项目管理包括:项目+管理

        从管理职能角度划分,项目管理包括项目计划、组织、人事安排、控制、协调等方面的内容。

        从项目获得的全过程划分,项目管理包括项目决策、项目规划与设计、项目的招投标、项目终结与后评价等。

        从项目投入资源要素划分,项目管理包括项目资金财务管理、项目人事劳动管理、项目材料设备管理、项目技术管理、项目信息管理、项目合同管理等方面的内容。

        从项目目标和约束角度划分,项目管理包括项目进度管理、项目成本管理、项目质量管理等方面内容。

2.2.5 项目管理的特征

  • 项目管理具有创造性:项目的一次性特点,决定每一个实施的项目都具有创新性。
  • 项目管理是一个复杂的工作,具有较强不确定性:项目管理一般由多个部分组成,工作跨越多个组织、多个学科、多个行业。
  • 项目管理需要专门的组织和团队:项目管理需要跨越部门界限,因此需要一个专门的组织/团队去负责。
  • 项目经理的作用非常重要

2.3 项目管理知识体系(PMBOK)

前面一大推概念,你说重要吗?也是重要的,但你说不重要自然也是不重要的。毕竟项目经理谁会去背诵项目管理的特点呢?创造性、复杂性、专业团队。。。。。巴拉巴拉

接下来说的才是重要的,我们学习这门课不就是为了以后能有机会成为一个项目经理嘛,总不能天天做下层员工的。

想要成为项目经理,我们就选哟掌握项目管理知识体系(PMBOK)

项目管理知识体系(PMBOK):10个知识领域、5个标准化过程组、49个模块

2.3.1 项目管理的十个知识领域

  • 首先确定项目的工作和管理范围:项目范围管理
  • 为了项目正常推进,需要对项目的时间、质量、成本进行管理:项目进度管理、项目质量管理、项目成本管理
  • 项目的推进需要投入人力物力:项目资源管理、项目采购管理
  • 为了团队成员之间的协调:项目沟通管理、项目干系人管理
  • 项目在实施过程中会遇到各种风险,所以要进行风险管理:项目风险管理
  • 项目管理一定要协调各个方面,不能只顾眼前利益:项目集成管理

2.3.2 项目管理的五个标准化过程组

按照项目管理生命周期,项目管理知识体系分为5个标准化过程组,也称为项目管理生命周期的5个阶段。

标准化过程组:一系列过程,一一完成即可说是完成项目管理。

  1. 项目启动
  2. 项目计划
  3. 项目执行
  4. 项目控制
  5. 项目收尾

2.3.3 项目管理的49个模块

2.4 软件项目管理知识体系

2.4.1 软件过程

过程:人们做事情的一种固有方式。对于做一件事,有相关经验的人对完成这件事的过程很了解,会知道完成这件事需要经历几个步骤,每个步骤都完成什么事,因而可以顺利地完成工作。

软件开发过程主要有:系统调研、需求分析、概要设计、详细设计、编码、测试、实施与维护等。

软件开发是否关注过程会是天差地别的,具体见如下:


不关注过程,仅仅关注产品,我们将永远不知道如何产生高质量的产品,只能凭借运气、时间来产生高质量产品;关注过程,意味着我们能够不断改进、改善和规范过程,从而提高产生高质量产品的概率,并能够将这一经验推广,成为企业内部可以被重用的共享资源

  • 从做过的项目中总结出的一些完善的过程,称为最佳实践
  • 软件过程管理就是对最佳实践进行有效积累,形成可重复的过程,使最佳实践可以被共享。

  • 项目管理用于保证项目的成功。
  • 过程管理用于管理最佳实践。
  • 这两项管理不是相互孤立的,而是有机紧密地结合的。可以说过程管理的成果也就是软件过程可以在项目管理中起到辅助作用

2.5 敏捷项目管理

背景:软件项目需要快速的开发过程,快速变换的环境要求快速的开发和快速的提交。

敏捷软件开发:是一个灵活的开发方法,用于在一个动态的环境中向干系人快速交付产品

主要特点:关注持续地交付价值,通过快速迭代和用户反馈管理应对变更。

敏捷开发的四个核心价值:

  1. 个体交互胜过过程和工具
  2. 可以工作的软件胜过面面俱到的文档
  3. 客户合作胜过合同谈判
  4. 响应变化胜过遵循计划

敏捷开发的十二个原则: 

3. 总结

本篇文章,我们主要是在入门软件项目管理的许多基础概念:项目和软件项目、项目管理和软件项目管理等,最后我们了解了敏捷开发。

本学期的【软件项目管理】本质上就是在学习项目管理以及针对软件项目的管理。而学习项目管理最好的学习脉络就是PMBOK(项目管理知识体系)。

如果想持续关注【软件测试】和【软件项目管理】系列文章,可以订阅:

如果想学习计算机其他方面的核心知识(都是猫猫的优质好文哦),可以订阅:

 如果觉得本文对你有帮助,友友们可以点个赞,收个藏呀~

《餐馆点餐管理系统——基于Java和MySQL的课程设计解析》 在信息技术日益发达的今天,餐饮行业的数字化管理已经成为一种趋势。本次课程设计的主题是“餐馆点餐管理系统”,它结合了编程语言Java和数据库管理系统MySQL,旨在帮助初学者理解如何构建一个实际的、具有基本功能的餐饮管理软件。下面,我们将深入探讨这个系统的实现细节及其所涉及的关键知识点。 我们要关注的是数据库设计。在“res_db.sql”文件中,我们可以看到数据库的结构,可能包括菜品表、订单表、顾客信息表等。在MySQL中,我们需要创建这些表格并定义相应的字段,如菜品ID、名称、价格、库存等。此外,还要设置主键、外键来保证数据的一致性和完整性。例如,菜品ID作为主键,确保每个菜品的唯一性;订单表中的顾客ID和菜品ID则作为外键,与顾客信息表和菜品表关联,形成数据间的联系。 接下来,我们来看Java部分。在这个系统中,Java主要负责前端界面的展示和后端逻辑的处理。使用Java Swing或JavaFX库可以创建用户友好的图形用户界面(GUI),让顾客能够方便地浏览菜单、下单。同时,Java还负责与MySQL数据库进行交互,通过JDBC(Java Database Connectivity)API实现数据的增删查改操作。在程序中,我们需要编写SQL语句,比如INSERT用于添加新的菜品信息,SELECT用于查询所有菜品,UPDATE用于更新菜品的价格,DELETE用于删除不再提供的菜品。 在系统设计中,我们还需要考虑一些关键功能的实现。例如,“新增菜品和价格”的功能,需要用户输入菜品信息,然后通过Java程序将这些信息存储到数据库中。在显示所有菜品的功能上,程序需要从数据库获取所有菜品数据,然后在界面上动态生成列表或者表格展示。同时,为了提高用户体验,可能还需要实现搜索和排序功能,允许用户根据菜品名称或价格进行筛选。 另外,安全性也是系统设计的重要一环。在连接数据库时,要避免SQL注入攻击,可以通过预编译的PreparedStatement对象来执行SQL命令。对于用户输入的数据,需要进行验证和过滤,防止非法字符和异常值。 这个“餐馆点餐管理系统”项目涵盖了Java编程、数据库设计与管理、用户界面设计等多个方面,是一个很好的学习实践平台。通过这个项目,初学者不仅可以提升编程技能,还能对数据库管理和软件工程有更深入的理解。在实际开发过程中,还会遇到调试、测试、优化等挑战,这些都是成长为专业开发者不可或缺的经验积累
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十二月的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值