项目管理:软件工程相关知识笔记

 

             

1、软件工程概念介绍

软件工程是指应用计算机科学、数学、管理科学等原理,以工程化的原则和方法来解决软件问题的工程,其主要目的是提高软件生产率、提高软件质量、降低软件成本。

2、软件工程学的组成

软件开发技术:软件开发方法学、软件工具、软件工程环境

软件工程管理:软件工程学、软件经济学

3、软件工程基本原理

美国著名工程专家B.W.Boehm在1993年提出了软件工程的7条基本原理,作为确保软件产品质量和开发效率的原理最小集合。

3.1 采用分阶段的生命周期计划严格管理项目

大量统计数据表明,超过半数以上的失败项目都是因为项目计划不周全造成的。在软件开发与维护的各个阶段,需要完成许多不同任务。所以需要针对软件生命周期各个阶段制定切实可行的计划。

然后严格按照计划对软件的开发与维护进行管理。

软件生命周期的计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划。

3.2 检查进行阶段的评审

统计结果表明,大部分错误是在编码之前造成。设计错误占软件错误的63%,编码错误仅占37%。并且错误发现改正越晚,成本代价就会越高。所以每个阶段的严格评审是非常重要的环节。

3.3、实现产品的严格控制

在软件开发过程中不应该随意改变需求,需求修改一般都需要付出较高的代价。但是项目是可客户用的,该需求是不可避免的事情。当涉及需求修改时必须要严格按照规程进行评审,特别是涉及到基准配置修改更加要慎重,必须获得批准后才能实施修改。

3.4、采用现代程序设计技术

编程语言日新月异,人们已经充分认识到方法大于力气。采用先进的技术可以提高软件的开发效率也可以降低软件的维护成本。当然要做好技术选型的调研,这样可以规避一些技术风险。

3.5、结果应能清楚地审查

软件开发人员的工作可见性差,难于评价和管理。为了更好地进行项目管理,应根据软件开发的总目标设定完成期限和项目的责任、产品标准,从而能更好的进行控制项目的进度。

3.6、开发小组人员应该少而精

开发人员的素质和数量是影响软件质量和开发效率的重要因素,应该少而精。原因有两点:

1、高素质的开发人员效率比低素质开发人员效率高几十倍、开发中犯的错误也会少很多。

2、随着小组成员增多,通信开销会大大增加。

比如开发小组为N人,可能的通信信道为:N(N-1)/2

3.7、承认不断改进软件工程实践的必要性

软件开发是一个十分复杂的过程,不断改进才能更好的提升产品质量和节约成本。

 

IT技术分享社区

个人博客网站:https://programmerblog.xyz

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271200.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android开发java环境_搭建Android开发环境 - Android - mobile - JavaEye论坛

Android的开发现在是如火如荼,逞现在不是很忙了,学习了下,这里记录下了在windows在如何搭建Android开发环境,对自己是个记录,对新入门的兄弟姐妹们可以参考一下!(1)安装JDK,省略。(2)下载Androi…

updatebyprimarykeyselective的where条件是全部字段_ArcGIS 字段计算器

使用键盘输入值并不是编辑表中值的唯一方式。在某些情况下,为了设置字段值,可能要对单条记录甚至是所有记录执行数学计算。您可以对所有记录或选中记录执行简单计算和高级计算。此外,还可以在属性表中的字段上计算面积、长度、周长和其他几何…

jQuery自定义选择器

jQuery 1.8版本后&#xff0c; 可以通过$ 的createPseudo()方法自定义选择器&#xff0c;满足不同的需求&#xff0c;本文来自<jquery in action> <ul class"levels"><li data-level"1" data-points"1" data-technologies"j…

项目管理基础:软件生命周期概念介绍

1、软件生命周期定义软件产品或软件系统要经历孕育、诞生、成长、成熟、衰亡等阶段称为软件的生命周期。2、软件生命周期阶段组成软件的生命周期由可行性分析与项目开发计划、需求分析、总体设计、详细设计、编码、单元测试、综合测试、维护阶段。2.1 可行性分析与项目开发计划…

jvm栈和寄存器

jvm栈和寄存器 总结

python模型_python 模型的释义

CharField#字符串字段, 用于较短的字符串.#CharField 要求必须有一个参数 maxlength, 用于从数据库层和Django校验层限制该字段所允许的最大字符数.IntegerField用于保存一个整数.FloatField# 一个浮点数. 必须 提供两个参数:## 参数 描述# max_digits 总位数(不包括小数点和符…

java 布尔表达式_java - 布尔值,条件运算符和自动装箱

java - 布尔值&#xff0c;条件运算符和自动装箱为什么抛出falsepublic static void main(String[] args) throws Exception {Boolean b true ? returnsNull() : false; // NPE on this line.System.out.println(b);}public static Boolean returnsNull() {return null;}虽然…

安装你自己的perl modules

来源&#xff1a; http://www.cnblogs.com/itech/archive/2012/12/17/2822044.html 安装你自己的perl modules。当没有root权限的时候&#xff0c;需要安装perl modules到自己的home目录下。 来自&#xff1a;http://servers.digitaldaze.com/extensions/perl/modules.html Ins…

项目管理基础:项目的生存周期模型

1、概念介绍软件生命周期模型是一个包含软件产品开发、运行和维护中有关过程、活动和任务的框架&#xff0c;它覆盖了系统从需求定义到系统使用的结束阶段。特点&#xff1a;描述了开发的主要阶段定义了每个阶段需要完成的任务和过程规范了每个阶段的输入输出提供了一个标准框架…

jps显示当前所有java进程pid

很多Java命令都在jdk的JAVA_HOME/bin/目录下面&#xff0c;jps也不例外&#xff0c;他就在bin目录下&#xff0c;所以&#xff0c;他是java自带的一个命令。 jps(Java Virtual Machine Process Status Tool) 是java提供的一个显示当前所有java进程pid的命令&#xff0c;适合在…

jvm内存结构_浅谈JVM内存结构

JVM 可以分为 5 个部分&#xff0c;分别是&#xff1a;类加载器&#xff08;Class Loader&#xff09;&#xff1a;加载字节码文件到内存。运行时数据区&#xff08;Runtime Data Area&#xff09;&#xff1a;JVM 核心内存空间结构模型。执行引擎&#xff08;Execution Engine…

java annotation应用_java Annotation的应用

一、Annotation 示例Override Annotation1 Override2 public void onCreate(Bundle savedInstanceState);二、Annotation 概念及作用1 概念An annotation is a form of metadata, that can be added to Java source code. Classes, methods, variables, parameters and package…

鸿蒙和安卓,到底有什么区别?

对于开发者来说两个最关键的点值得关注&#xff1a;一个是 Beta 版的开发工具&#xff0c;一个是开源网站。开源网站在开发者大会上宣布将 HarmonyOS源代码捐赠给中国开放原子开源基金会&#xff0c;并在大会上公布了鸿蒙系统的开源路线。OpenHarmony 官方源码地址&#xff1a;…

错题集03

(选择一项) 3A: B: C: D: 正确答案是 B解析:LinkedList是实现List,Collection接口,是链表方式进行构建的,根据开发要求不同,可以使用LinkedList实现栈(先进先出)和堆(先进后出)这样的数据结构。(选择一项) 4A: B: C: D: 正确答案是 C解析&#xff1a;由于Hashtable是线程…

从零开始学python人工智能课程_从零开始如何学习人工智能?

想要学习人工智能&#xff1f;这里有一条完整路径资源在本文中&#xff0c;《Analytics India》杂志给出了学习AI的最佳途径。...科技领域的天平正在向人工智能倾斜&#xff0c;IT领域的技术人员正在将AI应用到现有产品中。但是对于企业来说&#xff0c; AI人才才是关键。企业培…

项目管理基础:软件开发的方法介绍

软件开发方法主要有结构化方法、原型化方法、面向对象开发方法、敏捷方法。1、结构化方法结构化方法由结构化分析、结构化设计、结构化程序设计组成&#xff0c;它是一种面向数据流的开发方法。结构化分析&#xff1a;依据分解与抽象的原则&#xff0c;按照系统中数据处理的流程…

类加载器子系统的作用

类加载器子系统的作用

Magento Block设计分析(深入分析)

Magento中Block是一个很重要的组件&#xff0c;它在Block中充当非常重要的角色&#xff0c;下面我们来分析一下Magento中Block是怎样设计的&#xff0c;我们应该怎样使用这个重要的角色。1、Magento Block类图: 图1: 继承Varien_Object的对象都有一个_data类变量&#xff0c;用…

JAVA输出x和y和z_JAVA实例:输入三个整数x,y,z,请把这三个数由小到大输出-吾爱编程网...

今天为大家分享一个java经典实例输入三个整数x,y,z,请把这三个数由小到大输出&#xff0c;相信很多初学者都会学到这道题目&#xff0c;接下来吾爱编程为大家介绍一下程序的相关写法&#xff0c;有需要的小伙伴可以参考一下:1、题目&#xff1a;输入三个整数x,y,z&#xff0c;请…