第一篇:软件开发相关文档简介
软件开发相关文档简介
2009-02-12 17:06
如今,软件开发越来越复杂,软件功能也越来越丰富。而几乎所有成熟的商业软件,都是靠一个开发团队齐心协力的血汗结晶。“罗马不是一天建成的!”,当我们震撼于Microsoft Windows的惊世巨著的同时,也道听途说了微软公司软件工程是如何的完善规范。的确,集数百名员工几年的共同努力之大成,软件项目管理的成败是控制开发成本的关键环节。这里面,少不了贯穿其中的重要步骤——软件文档。
软件文档可以分为开发文档和产品文档两大类。
开发文档包括:《功能要求》、《投标方案》、《需求分析》、技术分析》、《系统分析》、《数据库文档》、《功能函数文档》、《界面文档》、《编译手册》、《QA文档》、《项目总结》等。
产品文档包括:《产品简介》、《产品菔尽贰ⅰ兑晌式獯稹贰ⅰ豆δ芙樯堋贰?技术白皮书》、《评测报告》、《安装手册》、《使用手册》、《维护手册》、《用户报告》、《销售培训》等。
一、开发文档
1.《功能要求》--来源于客户要求和市场调查,是软件开发中最早期的一个环节。客户提出一个模糊的功能概念,或者要求解决一个实际问题,或者参照同类软件的一个功能。有软件经验的客户还会提供比较详细的技术规范书,把他们的要求全部列表书写在文档中,必要时加以图表解说。这份文档是需求分析的基础。
2.《投标方案》--根据用户的功能要求,经过与招标方沟通和确认,技术人员开始书写《投标方案》,方案书一般包括以下几个重要的章节:
前言--项目背景、公司背景和业务、技术人员结构、公司的成功案例介绍等。需求分析--项目要求、软件结构、功能列表、功能描述、注意事项等。
技术方案--总体要求和指导思想、技术解决方案、软件开发平台、网络结构体系等。
项目管理--描述公司的软件开发流程、工程实施服务、组织和人员分工、开发进度控制、软件质量保证、项目验收和人员培训、软件资料文档等。
技术支持--公司的技术支持和服务介绍、服务宗旨和目标、服务级别和响应时间、技术服务区域、技术服务期限、授权用户联系人等。
系统报价--软、硬件平台报价列表、软件开发费用、系统维护费用等。
项目进度--整个项目的进度计划,包括签署合同、项目启动、需求分析、系统分析、程序开发、测试维护、系统集成、用户验收、用户培训等步骤的时间规划。
3.《需求分析》--包括产品概述、主要概念、操作流程、功能列表和解说、注意事项、系统环境等。以《功能要求》为基础,进行详细的功能分析(包括客户提出的要求和根据开发经验建议的功能),列出本产品是什么,有什么特殊的概念,包括那些功能分类,需要具备什么功能,该功能的操作如何,实现的时候该注意什么细节,客户有什么要求,系统运行环境的要求等。这里的功能描述跟以后的使用手册是一致的。
4.技术分析》--包括技术选型、技术比较、开发人员、关键技术问题的解决、技术风险、技术升级方向、技术方案评价,竞争对手技术分析等。以《需求分析》为基础,进行详细的技术分析(产品的性能和实现方法),列出本项目需要使用什么技术方案,为什么,有哪些技术问题要解决,估计开发期间会碰到什么困难,技术方案以后如何升级,对本项目的技术有什么评价等。
5.《系统分析》--包括功能实现、模块组成、功能流程图、函数接口、数据字典、软件开发需要考虑的各种问题等。以《需求分析》为基础,进行详细的系统分析(产品的开发和实现方法),估计开发期间需要把什么问题说明白,程序员根据《系统分析》,开始在项目主管的带领下进行编码。
6.《数据库文档》--包括数据库名称、表名、字段名、字段类型、字段说明、备注、字段数值计算公式等。以《系统分析》为基础,进行详细的数据库设计。必要时可以用图表解说,特别是关系数据库。
7.《功能函数文档》--包括变量名、变量初植、功能,函数名,参数,如何调用、备注、注意事项等。以《系统分析》为基础,进行详细的说明,列出哪个功能涉及多少个函数,以便以后程序员修改、接手和扩展。
8.《界面文档》--包括软件外观、界面素材、编辑工具、文件名、菜单、按钮和其它界面部件的要求,这里与软件完成后的运行界面是一致的。
9.《编译手册》--包括服务器编译环境、操作系统、编译工具、GNU的C++编译器版本信息、目录说明、程序生成、源程序文件列表、Makefile配置及其相关程序的对应关系列表。客户端的编译过程、编译结果、编译示例、编译环境、操作系统、编译工具、源文件列表和制作安装程序的过程。
10.《QA文档》--包括产品简介、产品原理、产品功能列表、功能描述、功能流程、执行结果、数据库结构、测试要求等,提供给软件测试人员使用。
11.《项目总结》--包括项目简介、项目参与人员和开发时间、项目风险管理过程、项目功能列表、项目结构特点、技术特点、对项目的升级建议、对以后的项目的建议、人员素质情况等。
二、产品文档
1.《产品简介》--包括公司背景、产品概念、适用范围、产品功能、功能特点、运行要求和公司联系地址。
2.《产品演示》--包括公司简介、产品背景、产品描述、产品特点、产品作用、适用范围、使用分析、功能模块、解决问题、合作伙伴、成功案例等。一般用Power
point或者VCD录制软件实现。
3.《疑问解答》--列出用户关心的问题和处理方法。用于解答软件的操作功能和解决用户的疑难问题。
4.《功能介绍》--以《需求分析》为书写基础,包括软件介绍、软件结构、功能列表、功能描述和公司联系地址。
5.技术白皮书》--以技术分析》为书写基础,包括功能实现、技术选型、关键技术问题的解决、技术方案特点、技术升级方向等。
6.《评测报告》--第三方权威评测报告。包括评测目的、评测范围、评测环境、评测内容、实测数据、性能表现、结果分析和评测总结等。
7.《安装手册》--包括系统环境、运行平台、产品安装过程、初始环境设置、安装记录等。
8.《使用手册》--包括产品简介、功能列表、功能描述和解释、功能操作、客户服务和联系方式等。
9.《维护手册》--包括产品简介、系统须知、初始环境设置、系统配置、数据管理和备份、技术问题解答和联系方式等。
10.《用户报告》--包括产品简介、购买时间、使用目的、使用时间、使用地点、实施过程、出现问题和解决、产品总结和建议等。
11.《销售培训》--包括项目简介、产品功能、产品特点、商业优势、系统运行环境、适用范围、目标客户等。
第二篇:软件开发行业简介
软件开发行业简介
【软件开发行业的背景】
社会在不断的进步,也越来越信息化,同时广大客户对软件的信赖和要求也越来越高,现有的软件系统已不能满足客户的具体需求。因此,现今时代怎样才能提交高质量低成本的软件产品,且完全按客户需求来定制软件开发,已成为软件企业的核心竞争力,软件定制开发要致力于建设和完善数字化基础设施,创造新的时代生活环境,提交高性价比的产品,定制软件开发为客户创造更高的价值。
【定制软件开发的特色】
企业要采用全景智能化模式,向客户提供专业的企业全景信息化解决方案,将复杂管理简单化,轻松实现节约、高效、科学、明晰等管理方式,为客户提交高性价比的定制软件开发服务。软件开发的作品有:企业智能运行管理平台、企业生产可视化管理系统、集团营销中心解决方案、城市环境污染监控物联网集成系统、在线金融服务平台、实验室能力验证计划实施管理平台、车辆报废过程综合管理平台、应急指挥系统、后勤智能决策系统等。
从专家的角度,挖掘客户需求,遵循国际软件工程开发规范,辅助客户作出最佳选择,并为软件产品正常运行提供维护、升级、功能扩展等做好铺垫,让软件成为通向成功道路上的得力助手!
【定制软件开发的优势】
软件与服务结合,打造全新服务优势
要以定制软件开发技术为核心,通过软件与服务结合,技术与行业管理能力结合,形成以行业解决方案、产品工程解决方案为主导的业务模式。
构建专业技能体系,体现技术优势
软件开发创建具备一系列主流技术领域的专业技能,能够快速有效的识别客户的业务需求,并提供高质量的客户解决方案与服务。要秉承全角度的服务于客户需求,与客户共同发展的商业理念,不断提高服务质量和水平,以诚信、积极、务实、共赢和勇于创新的精神为行业的发展贡献力量。
第三篇:微软公司软件开发模式简介
微软公司软件开发模式简介
北京大学出版社96年底所出的《微软的秘密》一书是目前我所见到的对微软公司软件产品开发过程介绍的最专业、最深入的一本书。通过本书,我们可以看到微软公司是如何对科学地对软件产品开发进行有效地管理,我想这些经验对于中国的广大软件开发人员,尤其是关心中国软件产业发展的各位朋友是大有益处的。所以特将此书中涉及软件产品开发的部分内容摘录出来(第四章“产品定义与开发过程”),与大家共同分享。本文作为摘录,自然是挂一漏万,所以建议大家若有时间还是找来原书一读。在产品定义与开发过程中,微软件遵循着一种可称之为“靠改进特性与固定资源来激发创造力”的战略。该战略可分为五个原则:
一、将大项目分成若干里程碑式的重要阶段,各阶段之间有缓冲时间,但不进行单独的产品维护。
二、运用想象描述和对特性的概要说明指导项目。
三、根据用户行为和有关用户的资料确定产品特性及其优先顺序。
四、建立模块化的和水平式的设计结构,并使项目结构反映产品结构的特点。
五、靠个人负责和固定项目资源实施控制。
原则一:将大项目分成若干里程碑式的重要阶段,各阶段之间有缓冲时间,但不进行单独的产品维护。
项目进度安排与里程碑
微软通常采用“同步-稳定产品开发法”。典型项目的生命周期包括三个阶段:计划阶段完成功能的说明和进度表的最后制定,开发阶段写出完整的源代码,稳定化阶段完成产品,使之能够批量生产。这三个大阶段以及阶段间内在的循环方法与传统的“瀑布”式开发方式很不相同,后者是由需求、详尽设计、模块化的代码设计与测试、集成测试以及系统测试组成的。而微软的三个阶段更像是风险驱动的、渐进的“螺旋”式的生命周期模型。
计划阶段的产品是想象性描述与说明文件,用来解释项目将做什么和怎么做。在管理人员拟定进度表、开发员写出代码之前,这些东西都促进了人们对设计问题的思考与讨论。开发阶段围绕三次主要的内部产品发布来进行;称定化阶段集中于广泛的内部与外部测试。在整个产品生产周期中,微软都使用了缓冲时间的概念。缓冲时间使开发组能够对付意外的困难和影响到时间进度的变故,它也提供了一种手段,可以缓和及时发货与试图精确估计发货时间之间的矛盾。
在开发和稳定化阶段的所有时间中,一个项目通常会将2/3的时间用于开发,1/3的时间用于稳定化。(Office部门副总裁曾这样概述通常的进度:“一般说来,在总的进度表中,用一半的时间写出产品,留下另一半的时间调试或应付意外事故。这样,如果我有一个两年的项目,我会用一年来完成事先想好的东西……如果事情有点麻烦,我便去掉我认为不太重要的特性”)这种里程碑式的工作过程使微软的经理们可以清楚地了解产品开发过程进行到了哪一步,也使他们在开发阶段的后期有能力灵活地删去一些产品特性以满足发货时期的要求。
计划阶段
计划阶段是在一个项目的生命周期中,所有于开发前进行的计划所占用的时间。计划阶段产生出想象性描述、市场营销计划、设计目标、一份最初的产品说明、为集成其他组开发的构件而规定的接口标准、最初的测试计划、一个文档策划(印刷品和联机帮助形式的)以及一份可用性问题清单。计划阶段从想象性描述开始。想象性描述来自产品经理以及各产品单位的程序经理;它是对产品作业的市场营销设想,包括了对竞争对手产品的分析以及对示来版本的规划。想象性描述也可能讨论在前一次版本中发现须解决的问题以及应添加的生要功能。所有这些都基于对顾客和市场的分析以及 1
从产品支持服务组处得到的资料。
说明文件从一个大纲开始,然后定义出新的或增加的产品特性,并对其赋以不同的优先级。说明文件只是产品特性的一个预备性概览;从开始开发到项目完成它要增加或变化20%8个开发员,34个顺序的子项目,每个产生一个里程碑式的产品发送,来完成特性的开发。程序经理协调开发过程。
开发员设计、编码、调试。测试员与开发员配对,不断进行测试。
*子项目Ⅰ 前1/3的特性:最重要的特性与共享的构件。
*子项目Ⅱ 中间1/3的特性。
*子项目Ⅲ 最后1/3的特性:最不重要的特性。
稳定化阶段
全面的内外部测试,最后的产品稳定化以及发货。
程序经理协调OEM与ISV,监督从顾客得到的信息反馈。开发员进行最后的调试与代码稳定化。测试员发现并清除错误。
*内部测试 公司内部对整个产品做详尽的测试。
*外部测试 公司外在的“β”测试点,象OEM,ISV以及最终用户处对整个产品做详尽的测试。
*发货准备 为批量生产准备发布最后的“金盘”与文档。
第四篇:BlackBerry软件开发环境配置安装简介
BlackBerry应用程序开发环境配置简介
(一)题记:
黑莓应用程序开发环境方法有很多,大概可以规划为三类:
1、直接用黑莓官方发布的Blackberry JDE来开发;(PS:界面简单)
2、Blackberry JDE与bb-ant-tools搭配组建更为便捷的开发环境;(PS:配置过程过于复杂)
3、用Eclipse+黑莓官方提供的 Blackberry JDE Plugin for Eclipse;
本次主要介绍用Eclipse+黑莓官方提供的 Blackberry JDE Plugin for Eclipse下的软件开发环境搭建。
(二)前期准备
所需软件:
1、JDK,开发Java程序当然需要Java运行环境了,这个可以在Java官方网站下载。我们这里用到的是JDK 1.6。
2、Eclipse,这个也很好下载,需要注意的是Blackberry JDE Plugin要求只能用3.4版。
3、BlackBerry_JDE_PluginFull_1.0.0.67。
(三)开始安装
1、安装JDK1.6 双击安装JDK,如图:
2、配置环境变量 JDK环境变量配置:
如果你的JDK安装在C盘里,如:C:Program FilesJavajdk1.6.0_10,那么就在系统变量里(当然也可以在用户变量里)点新建:
变量名:JAVA_HOME
变量值:C:Program FilesJavajdk1.6.0_10
再次点新建:
变量名:classpath
变量值:.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar
并在path里(不要删除原来的那些)加入;C:Program FilesJavajdk1.6.0_10bin
然后在命令提示符下执行javac命令测试配置是否成功。
3、安装eclipse 解压eclipse至C:Program Files,如图:
4、安装BlackBerry_JDE_PluginFull_1.0.0.67至Eclipse目录下,步骤如下图:(1)双击安装BlackBerry_JDE_PluginFull_1.0.0.67
(2)进度结束后弹出界面
Next:
选择:I accept…Next
选择eclipse路径:c:program fileseclipse然后Next
选择:Install
之后会提示安装成功
(四)Eclipse配置
1、顺利安装完成后,打开Eclipse后,你会发现里多了一个菜单项:Blackberry。如下图:
2、接下来我们可以对JDE进行一些设置。通过菜单里的Window->Preference->Blackberry JDE进入进行相应设置。如图:
C:Program FilesEclipsepluginsnet.rim.eide.componentpack4.5.0_4.5.0.16componentsMDS
(五)实例测试
1、项目创建: 点File->New->Project...,创建一个项目,如下图:
选择blackberry project->Next
填写项目名称Test然后点击Finish
2、程序文件建立:File->New->Class
填写Name:Test1然后Finish
3、测试代码HelloWorld!
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.component.RichTextField;
public class Test1 extends UiApplication {
public static void main(String[] args)
{
Test1 theApp = new Test1();
theApp.enterEventDispatcher();
}
public Test1()
{
pushScreen(new HelloWorldScreen());
}
}
final class HelloWorldScreen extends MainScreen {
public HelloWorldScreen()
{
LabelField title = new LabelField(“Hello World Demo” , LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
setTitle(title);
add(new RichTextField(“Hello World!” ,Field.NON_FOCUSABLE));
}
public void close()
{
Dialog.alert(“Goodbye!”);
System.exit(0);
super.close();
}
} 运行:单击项目Test右键1BlackBerry Simulator如图:
自动生成图形用户界面,如图:
选择Applications后,会出现项目名称Test,如图:
进入后显示HelloWorld!如图:
这样一个BlackBerry下的小应用程序就完成了。
(六)备注:让你的BlackBerry识别中文
在黑莓Eclispe目录下找到黑莓的机型配置文件:
Eclipsepluginsnet.rim.ejde.componentpack5.0.0_5.0.0.25componentssimulator
选择相应的模拟器的配置文件:例如 8900模拟器对应的配置文件为8900.xml 9550模拟器对应的配置文件为9550.xml
在配置文件中加入以下行:
第五篇:软件开发推荐书籍
软件开发推荐书籍
软件开发就像一场持久的战役。模糊、频繁变更的需求,项目的讨论、争议,进度的紧迫和延迟,琐碎的事情,突然出现的变故,各种因素都在尽全力阻挠人们按计划的实现预期目的。如果不够重视,它就会无情地偷取你的时间、精力乃至一切。所以,在即将进入这个战场之前,或者准备纵深之前,你准备好自己的武器和技能了么? 如果贸然上阵,恐怕会一上战场就深陷其中。
在《计算机专业推荐书籍》一文中,我推荐了一些自己读过的觉得很不错的计算机书籍,这些书籍都偏重于打好计算机编程的基础功底。不过,仅有基础还不行,在真实软件开发环境中,还得有真枪实弹的技能才能应对自如。所以,这篇文章会根据自己的学习进程,推荐一些有助于软件开发的书籍。
一、思想类:
1.《Linux/Unix 设计思想》(Linux and The unix philosophy): Mike Gancarz 著。在开始之前,学一些如何做好编程这件事的准则是很重要的。这本书简练地介绍了 Linux 工具与程序设计的重要思想和准则,值得不定期重温一下。
2.《计算机程序的构造与解释》(SICP):提炼出程序设计的核心要素和重要思想,理论与实践结合,值得深读细读!
二、实用技术类
1.《Shell 脚本学习指南》:这本书的特色在于,它从一开始就专注于脚本编写的重要元素和常用技巧(而不是照本宣科地介绍各种脚本元素和教学示例),涵盖最常用的Unix标准工具,其示例用法都是比较容易弄懂的,而且非常具有实用性。这本书很适合于那些有初步的Shell 认识,希望能够系统学习的读者。
2.《SQL 语言艺术》:现代软件应用几乎不可能避免与数据库打交道,能够编写高效的SQL 语句,是从事应用程序开发的必备技能。这本书的书名有点学究味,但内容上却是很具有实战性的,同时也很好地兼顾了理论,值得细读。
3.《Java虚拟机并发编程》:讲解并发编程的几种主要设计思想及方法技巧,理论与实用性都很强,值得细读。
4.《Java并发编程》: 并发编程的优秀技术书籍,详细阐述了编写正确、高效并发程序的基础知识、注意事项,以及许多实用的方法、模式和并发实践示例,是 Java 并发编程的必读书籍,使用其它语言的开发人员亦可从中受益良多。
5.《Spring技术内幕》 :钻研 Spring 源代码的引导书籍,学习Spring 的软件设计方法。根据项目所用到的部分来阅读,或每次读一个部分。
6.《Javascript: The good Parts》: 了解 Javascript 的核心元素的优秀读物,也可以学到一个重要思想: 使用语言或技术的良好子集来构建应用而不是致力于掌握全部。
7.《JavaScript异步编程:设计快速响应的网络应用》:简洁的篇幅,精炼地介绍了异步编程的常见模式和方法。
8.《实用Common Lisp教程》:Common Lisp 编程的推荐教程,详尽得当,内容丰富。
三、软件设计类
1.《架构之美》:对于不同类型的系统,用一个或多个实例来说明其架构、思路及设计考量,开阔程序开发的思路,文笔自然生动,引人思考,非常值得细读。
2.《软件架构设计: 从程序员向架构师转型必备》: 这本书系统详细地阐述了作为一名架构师必须具备的基础知识’技能和方法,使架构设计这件看上去很抽象神秘的事情变成具体而实际可操作的,值得赞一个。不足之处,在于技术味道太浓,作文掺了一点培训的味道,缺乏一种架构的灵动之美。与 《架构之美》配合着看。
3.《大型网站技术架构:核心原理与案例分析》:关于大型网站技术架构的全面介绍和索引书,遇到问题后可以查阅对策,当然,具体技术还需要另外深入学习。
4.《恰如其分的软件架构——风险驱动的设计方法》: 对软件架构知识和经验的很好总结。
5.《软件架构师的12项修炼》: 程序员软技能的全面的实用的指南,必读。
6.《软件框架设计的艺术》: API 设计的实用指南,强烈推荐。
四、开发方法类
1.《敏捷技能修炼:敏捷软件开发与设计的最佳实践》:本书讲解了一些敏捷开发所用到的重要理念和方法,掌握好的开发方法、过程,养成良好的开发习惯和技能,受益匪浅。与 《程序员修炼之道:从小工到专家》 配合着看。
五、设计类
1.《CSS 禅意花园》:知名Web设计之书,以优秀的示例阐述优秀WEB设计方法与理念;
2.《源于自然的设计—— 源于自然的设计原理与形式》: 从生动的自然中汲取设计启发,图文并茂,值得阅读;
3.《设计师要懂心理学》: 讲述了人是如何感知、注意、记忆、思考、动机、决策等多个方面的认知学常识,值得参考;
六、项目管理与产品开发
1.《项目管理修炼之道》:Johanna Rothman 著。厚实详尽,值得信赖。
2.《未来产品的设计》:阐述未来智能产品的设计问题,值得思考。
七、社科人文类
1.《乔布斯传》:感受一下天使与魔鬼的化身,乔布斯有两点做到了极致:对产品设计的极致完美的追求和大胆不受社会条框限制的极致。同时,也能学习到很多创业中所遇到的问题、解决方法以及商业社会中的规则。
2.《改变未来的九大算法》:通俗易懂地讲解了九个非常重要而实用的算法(搜索引擎、公钥加密、纠错码、图形识别、数据压缩、数据库一致性、数字签名、可计算理论),感受是: 一个伟大的算法 = 一个基本的思路 + 一个精密的数学原理 + 广泛的应用。不得不说,算法永远是计算世界里最迷人的领域。
3.《精简: 大数据时代的商业制胜法则》:阅读此书不会让你立即拥有“化繁为简”的神奇能力,但是,通过大量的真实案例,作者有信服力地阐述了很多用于“化繁为简” 的方法和技术,内容丰富,有启发性,值得一读。
4.《乔布斯的魔力演讲》(卡迈恩.加洛著): 除了开发设计程序和应用,还要善于展示自己、团队乃至公司的工作成果。学会演讲是一门很重要的非技术性技能,这本书比较深入地讲述了演讲的基本技能和方法,以及乔布斯所采用的一些“魔法”,值得一读。
5.《亿万富翁的非常思考术》(埃利布罗德): 由一篇篇简短的文集组成,讲述了作者在事业中所遇到的问题、思考以及解决思路和方法。简短,有力,富有启发。
6.《赤裸裸的统计学》: 以通俗易懂的例子生动地揭示了概率论和统计学在现实生活中的应用和含义,值得一读。
[未完待续]