第1章 软件开发策略
1.1 软件开发中的四维
任何软件项目,都有四个重要的维: people、process、product和technology。为使项目能顺利进行,软件经理必须充分发挥这四维的作用。下表是对这四维的总结。
表 1-1软件开发中的四维
维度 |
如何优化 |
People |
l 为团队挑选胜任称职的成员 l 选择合适的团队结构 l 使用恰当的人员激励措施 |
Process |
l 采用标准的软件工程实践,避免开发过程失控 l 做好风险管理 l 为项目选择合适的生命期模型 l 形成良好的质量保证机制 l 选择客户导向的开发方法,使开发的产品真正满足客户需求 |
Product |
l 较准确地估算product size(产品规模)和effort(工作量),以便制定出现实的进度安排 l 采取恰当措施防止软件开发过程中product size或product scope失控 l 为产品设定合理的product characteristic(如内存占用、稳定性、可靠性等)。 |
Technology |
l 选择恰当的、能确实提升生产率的工具(包括新的编程语言、新的开发实践、新的代码库等) |
许多软件经理倾向于只关注这四维中的某一维而忽视其它维度,而高水平的软件经理却努力做到同时优化项目的四个维度。
1.2 软件开发的总体策略
一个软件进行的软件项目应该遵循如下的4点策略:
1. Avoid classic mistakes. (避免典型错误)
2. Apply development fundamentals. (采用软件开发的基础性实践)
3. Manage risks to avoid catastrophic setbacks. (管理风险,以避免灾难性的结果)
4. Apply schedule-oriented practices. (采用面向进度的实践)
这4点策略可以用下图来形象地表示。
http://www.cnblogs.com/lijia821130/archive/2012/03/04/2379610.html
相关推荐
2. **C#语言**:作为VS.NET的主要开发语言之一,C#是一种面向对象的、现代的编程语言,具有简洁的语法和强大的类型系统。掌握C#的基础语法、面向对象特性、泛型、委托和事件、异步编程等,对于使用VS.NET开发至关...
C++是一种强大的、通用的编程语言,被广泛应用于系统软件、应用软件、游戏开发、设备驱动、嵌入式系统等领域。这份"C++学习笔记"涵盖了C++的基础到高级概念,旨在帮助初学者和有一定经验的程序员深入理解并掌握C++。...
TensorFlow,由Google Brain团队开发,是一款强大的开源软件库,主要用于数值计算和大规模机器学习。在"北大tensorflow学习笔记"中,我们可以深入探索这个广泛应用于学术研究和工业实践的平台。 一、TensorFlow基础...
首先,书中从Java的历史和发展背景出发,解释了为什么Java能够成为全球广泛应用的编程语言之一。接着,它引导读者安装Java开发环境,包括JDK(Java Development Kit)和集成开发环境(IDE),如Eclipse或IntelliJ ...
在《Groovy学习笔记》这本书中,你可能会学到如何快速入门Groovy,理解其基本语法,包括变量、控制流、类和对象的创建,以及如何利用Groovy的特性来提高开发效率。此外,书中可能还会涵盖Groovy在实际项目中的应用,...
### Live555 学习笔记 #### 编译Live555 Live555是一个开源媒体流软件库,广泛应用于实时视频流传输。为了更好地理解和应用Live555,掌握其编译方法至关重要。 - **使用MingW进行编译**: - 在Live555的根目录下...
【SpringBoot核心特性】 SpringBoot是Spring框架的一个扩展,它旨在简化Spring应用程序的开发过程,...这份学习笔记涵盖了SpringBoot的基础特性和SpringCloud的负载均衡实践,对于深入理解这两个技术有极大的帮助。
总之,STM32学习笔记(一)是一个很好的起点,结合STM32固件库的使用教程,可以帮助初学者快速进入STM32的世界。在学习过程中,不断探索和实践,结合各种资源,可以逐步成为一名熟练的STM32开发者。
JavaScript学习笔记是一本关于JavaScript编程语言的教材,该教材通过丰富的实例,系统地介绍了JavaScript的基础知识和实际应用技巧,帮助读者一步步掌握客户端编程技术。本书共分为九章,每一章都有其特定的主题,...
【Android程序开发学习笔记(手电筒软件设计)】 Android是一种开放源代码的移动操作系统,由Google领导的Open Handset Alliance开发,旨在提供一个统一且先进的移动设备平台。它的历史可以追溯到2008年,当时首款...
这份“Linux学习笔记”旨在帮助初学者快速掌握Linux的基础知识和操作技能,从而轻松入门。 一、Linux简介 Linux并非单一的操作系统,而是基于Linux内核的一系列发行版的统称,如Ubuntu、CentOS、Fedora等。它倡导...
### ORACLE经典学习笔记知识点概览 #### 第一章 ORACLE 命令 本章节主要介绍了Oracle数据库中常用的命令及其使用方法。 1. **查看参数文件**: `Desc v$parameter` - 这个命令用于查看Oracle的参数文件信息,通过...
以下是对Eclipse插件开发学习笔记1-8章的主要知识点的详细说明: 1. **Eclipse平台简介** (03第1章 Eclipse平台简介.pdf) - Eclipse平台是基于OSGi服务框架的,它提供了插件化的架构,使得开发者可以轻松地添加、...
《新手C++学习笔记》是一份专为编程初学者打造的资源,旨在帮助那些刚刚踏入C++编程领域的“菜鸟”快速成长。这份笔记包含了前辈们的实践经验总结,具有很高的学习价值。文档以.doc格式存储,方便读者使用常见的文字...
- **系统性**:软件开发是一个系统化的过程。 - **泛域性**:可以应用于多个领域。 - **依附性**:依赖于硬件环境。 - **非损性**:复制时不会损坏原版。 - **复制性**:容易被复制。 - **演化性**:随着需求...
【Android学习笔记之开发环境搭建(Eclipse和NetBeans)】 Android开发对于初学者来说,第一步通常是搭建开发环境。本文将详细介绍如何在Eclipse和NetBeans中设置Android开发环境,以便进行应用程序的编写和调试。 ...
这篇编程学习笔记旨在为初学者提供一个全面而基础的指引,尤其适合那些对编程一无所知的新手。它涵盖了多种编程语言和技术,旨在帮助你快速踏入编程世界的大门。 首先,我们从“01.System[windows,Linux]”开始,这...
Altium Designer 是一款广泛应用于电子设计领域的软件,它集成了电路原理图绘制、PCB 设计与仿真等功能于一体,是电子工程师进行硬件开发的重要工具之一。在实际工作中,经常会遇到各种各样的技术难题,例如 PCB ...