S3C2440上SD卡驱动实例开发讲解

S3C2440上SD卡驱动实例开发讲解
S3C2440上SD卡驱动实例开发讲解

嵌入式Linux之我行——S3C2440上MMC/SD卡驱动实例开

发讲解(一)

嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤。一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便。如有错误之处,谢请指正。

?共享资源,欢迎转载:https://www.360docs.net/doc/dd1366329.html,

一、开发环境

?主 机:VMWare--Fedora 9

?开发板:Mini2440--64MB Nand, Kernel:2.6.30.4

?编译器:arm-linux-gcc-4.3.2

二、MMC/SD介绍及SDI主机控制器

首先我们来理清几个概念:

1.MMC:(Multi Media Card)由西门子公司和首推CF的SanDisk于1997年推出的多媒

体记忆卡标准。

2.SD:(Secure Digital Memory Card)由日本松下、东芝及美国SanDisk公司于1999

年8月共同开发研制的新一代记忆卡标准,已完全兼容MMC标准。

3.SDIO:(Secure Digital Input and Output Card)安全数字输入输出卡。SDIO是在

SD标准上定义了一种外设接口,通过SD的I/O接脚来连接外围设备,并且通过SD

上的 I/O数据接位与这些外围设备进行数据传输。是目前较热门的技术,如下图中的

一些设备:GPS、相机、Wi-Fi、调频广播、条形码读卡器、蓝牙等。

4.工作模式:工作模式是针对主机控制器来说的。也就是说,S3C2440中的SDI控制器

可以在符合MMC的标准下工作,或者可以在符合SD的标准下工作,或者可以在符合

SDIO的标准下工作。故就分别简称为:MMC模式、SD模式和SDIO模式。

5.传输模式:传输模式也是针对主机控制器来说的,指控制器与卡之间数据的传输模式,

或者说是总线类型。S3C2440中的SDI控制器可支持SPI、1位和4位的三种传输模式

(总线类型)。那么什么又是SPI呢?请参考这里:SPI协议简介;至于1位和4位又

是什么意思呢?他们是指传输数据总线的线宽,具体参考数据手册。

下面使用表格列出了MMC、SD、SDIO的电气特性及性能和不同工作模式下支持的传输模式情况:

那么,我们现在怎样让主机控制器在我们所要求的工作模式和传输模式上工作呢?很简单,就是对主机控制器的各个寄存器进行相应的配置即可。下面来简单介绍一下SDI主机控制器的结构和各寄存器的用途。

S3C2440内的SDI主机控制器结构图如下:

如上图所示,SDI主机控制器是使用1个串行时钟线与5条数据线同步进行信息移位和采样。传输频率通过设定SDIPRE寄存器的相应位的设定来控制,可以修改频率来调节波特率数据寄存器的值。

各主要寄存器介绍,对于具体的寄存器位的设置就参考数据手册:

1.SDICON:控制寄存器,完成SD卡基础配置,包括大小端,中断允许,模式选择,时

钟使能等。

2.SDIPRE:波特率预定标器寄存器,对SDCLK的配置。

3.SDICmdArg:指令参数寄存器,指令的参数存放在这里。

4.SDICCON:控制指令形式的寄存器,配置SPI还是SDI指令,指令的反馈长度,是否等

待反馈,是否运行指令,指令的索引等。

5.SDICmdSta:指令状态寄存器,指令是否超时,传送,结束,CRC是否正确等。

6.SDIRSP0-3:反映SD的状态。

7.SDIDTimer:设置超时时间。

8.SDIBSize:模块大小寄存器。

9.SDIDatCon:数据控制寄存器,配置是几线传输,数据发送方向,数据传送方式等。

10.SDIDatSta:数据状态寄存器,数据是否发送完,CRC效验,超时等。

11.SDIFSTA:FIFO状态寄存器,DMA传输是否判断FIFO。

12.SDIIntMsk:中断屏蔽寄存器。

13.SDIDAT:SDI数据寄存器。

SDI主机控制器在SD/MMC工作模式下的设置步骤:(注意:因为SD模式兼容MMC模式,所以我们只需了解SD模式的即可,而SDIO的工作模式则是针对SDIO设备的,所以这里就不讨论了)

1.设置SDICON寄存器来配置适当的时钟及中断使能;

2.设置SDIPRE寄存器适当的值;

3.等待74个SDCLK时钟以初始化卡;

4.命令操作步骤:

a. 写命令参数32位到SDICmdArg寄存器;

b. 设置命令类型并通过设置SDICCON寄存器开始命令传输;

c. 当SDICSTA寄存器的特殊标志被置位,确认命令操作完成;

d. 如果命令类型相应,标志是RspFin,否则标志是CmdSend;

e. 通过对相应位写1,清除SDICmdSta的标志。

5.数据操作步骤:

a. 写数据超时时间到SDIDTimer寄存器;

b. 写模块大小到SDIBSize寄存器(通常是0x80字节);

c. 确定模块模式、总线线宽、DMA等且通过设置SDIDatCon寄存器开始数据传输;

d. 发送数据->写数据到SDIDAT寄存器,当发送FIFO有效(TFDET置位),或一

半(TFHalf置位),或空(TFEmpty置位);

e. 接收数据->从数据寄存器SDIDAT读数据,当接收FIFO有效(RFDET置位),

或满(RFFull置位),或一半(RFHalf置位),或准备最后数据(RFLast置位);

f. 当SDIDatSta寄存器的DatFin标志置位,确认数据操作完成;

g. 通过对相应位写1,清除SDIDatSta的标志。

三、MMC/SD协议

这里我并不是要讨论MMC/SD的整个通信协议(详细的协议请看MMC/SD规范),而是遵循MMC/SD 协议了解一下MMC/SD在被驱动的过程中卡所处的各种阶段和状态。根据协议,MMC/SD卡的驱动被分为:卡识别阶段和数据传输阶段。在卡识别阶段通过命令使MMC/SD处于:空闲(idle)、准备(ready)、识别(ident)、等待(stby)、不活动(ina)几种不同的状态;而在数据传输阶段通过命令使MMC/SD处于:

发送(data)、传输(tran)、接收(rcv)、程序(prg)、断开连接(dis)几种不同的状态。所以可以总结MMC/SD 在工作的整个过程中分为两个阶段和十种状态。下面使用图形来描述一下在两个阶段中这十种状态之间的转换关系。

卡识别阶段,如下图:

数据传输阶段,如下图:

四、MMC/SD设备驱动在Linux中的结构层次

我们翻开MMC/SD设备驱动代码在Linux源码中的位置/linux-2.6.30.4/drivers/mmc/,乍一看,分别有card、core和host三个文件夹,那哪一个文件才是我们要找的驱动代码文件啊?答案是他们都是。不是吧,听起来有些可怕,三个文件夹下有多少代码啊。呵呵,还是先放下对庞大而又神秘代码的恐惧感吧,因为在实际驱动开发中,其实只需要在host文件夹下实现你具体的MMC/SD设备驱动部分代码,现在你的心情是不是要好点了。具体的MMC/SD设备是什么意思呢?他包括RAM芯片中的SDI控制器(支持对MMC/SD 卡的控制,俗称MMC/SD主机控制器)和SDI控制器与MMC/SD卡的硬件接口电路。

那为什么刚才又说card、core和host都是MMC/SD设备的驱动呢?这就好比我们建房子,建房子首先要的是什么,地皮对吧, 有了地皮然后要到政府部门备案,备案后才能开始建,是这样的吧。在Linux中MMC/SD卡的记忆体都当作块设备。那么,我们这里的card层就是要把操作的数据以块设备的处理方式写到记忆体上或从记忆体上读取,就好比是在地皮上填沙石、挖地基等;core层则是将数据以何种格式,何种方式在MMC/SD主机控制器与MMC/SD卡的记忆体(即块设备)之间进行传递,这种格式、方式被称之为规范或协议,就好比到政府部门备案,备案就会要求你的房子应该按照怎样的行业标准进行建造;最后只剩下host层了,上面也讲到了,host 层下的代码就是你要动手实现的具体MMC/SD设备驱动了,就好比现在地皮买好挖好了,建房的标准也定好了,剩下的就需要人开始动工了。

那么,card 、core 和host 这三层的关系,我们用一幅图来进行描述,图如下:

从这幅图中的关系可以看出,整个MMC/SD 模块中最重要的部分是Core 核心层,他提供了一系列的接口函数,对上提供了将主机驱动注册到系统,给应用程序提供设备访问接口,对下提供了对主机控制器控制的方法及块设备请求的支持。对于主机控制器的操作就是对相关寄存器进行读写,而对于MMC/SD 设备的请求处理则比较复杂。那么在主机驱动层中的一个请求处理是怎么通过核心层提交到块设备请求层的呢?

在网上找在网上找到一副图来说明他们之间的关联和处理流程到一副图来说明他们之间的关联和处理流程到一副图来说明他们之间的关联和处理流程,,如下图如下图::

命令命令、、数据发送流程如下图数据发送流程如下图::

其中,黑色粗线部分为命令发送或者数据发送都要经过的流程,橙色方框部分判断所有类型的请求是否完成。

下面我们就来具体实例分析一个MMC/SD卡设备驱动程序。

五、实例分析MMC/SD卡设备驱动程序

1.Mini2440开发板的MMC/SD硬件接口电路原路图如下:

从电路原理图上可以看出,SD分别使用S3C2440的复用IO端口GPE7-10作为4根数据信号线、使用GPE6作命令信号线、使用GPE5作时钟信号线,使用复用端口GPG8的外部中断功能来作SD卡的插拔检测,使用GPH8端口来判断SD卡是否写有保护。

2.MMC/SD卡驱动程序的重要数据结构,该结果位于Core核心层,主要用于核心层与主

机驱动层的数据交换处理。定义在/include/linux/mmc/host.h中:

struct mmc_host

{

struct device *parent;

struct device class_dev;

int index;

const struct mmc_host_ops *ops;

unsigned int f_min;

unsigned int f_max;

u32 ocr_avail;

#define MMC_VDD_165_195 0x00000080 /* VDD voltage 1.65 - 1.95 */

#define MMC_VDD_20_21 0x00000100 /* VDD voltage 2.0 ~ 2.1 */

#define MMC_VDD_21_22 0x00000200 /* VDD voltage 2.1 ~ 2.2 */

#define MMC_VDD_22_23 0x00000400 /* VDD voltage 2.2 ~ 2.3 */

#define MMC_VDD_23_24 0x00000800 /* VDD voltage 2.3 ~ 2.4 */

#define MMC_VDD_24_25 0x00001000 /* VDD voltage 2.4 ~ 2.5 */

#define MMC_VDD_25_26 0x00002000 /* VDD voltage 2.5 ~ 2.6 */

#define MMC_VDD_26_27 0x00004000 /* VDD voltage 2.6 ~ 2.7 */

#define MMC_VDD_27_28 0x00008000 /* VDD voltage 2.7 ~ 2.8 */

#define MMC_VDD_28_29 0x00010000 /* VDD voltage 2.8 ~ 2.9 */

#define MMC_VDD_29_30 0x00020000 /* VDD voltage 2.9 ~ 3.0 */

#define MMC_VDD_30_31 0x00040000 /* VDD voltage 3.0 ~ 3.1 */

#define MMC_VDD_31_32 0x00080000 /* VDD voltage 3.1 ~ 3.2 */

#define MMC_VDD_32_33 0x00100000 /* VDD voltage 3.2 ~ 3.3 */

#define MMC_VDD_33_34 0x00200000 /* VDD voltage 3.3 ~ 3.4 */

#define MMC_VDD_34_35 0x00400000 /* VDD voltage 3.4 ~ 3.5 */

#define MMC_VDD_35_36 0x00800000 /* VDD voltage 3.5 ~ 3.6 */ unsigned long caps;/* Host capabilities */

#define MMC_CAP_4_BIT_DATA (1 << 0)/* Can the host do 4 bit transfers */

#define MMC_CAP_MMC_HIGHSPEED (1 << 1)/* Can do MMC high-speed timing */

#define MMC_CAP_SD_HIGHSPEED (1 << 2)/* Can do SD high-speed timing */

#define MMC_CAP_SDIO_IRQ (1 << 3)/* Can signal pending SDIO IRQs */

#define MMC_CAP_SPI (1 << 4)/* Talks only SPI protocols */

#define MMC_CAP_NEEDS_POLL (1 << 5)/* Needs polling for

card-detection */

#define MMC_CAP_8_BIT_DATA (1 << 6)/* Can the host do 8 bit transfers */

/* host specific block data */

unsigned int max_seg_size;/* see blk_queue_max_segment_size */ unsigned short max_hw_segs;/* see blk_queue_max_hw_segments */ unsigned short max_phys_segs;/* see blk_queue_max_phys_segments */ unsigned short unused;

unsigned int max_req_size;/* maximum number of bytes in one req */ unsigned int max_blk_size;/* maximum size of one mmc block */ unsigned int max_blk_count;/* maximum number of blocks in one req */

/* private data */

spinlock_t lock;/* lock for claim and bus ops */

struct mmc_ios ios;/* current io bus settings */

u32 ocr;/* the current OCR setting */

/* group bitfields together to minimize padding */

unsigned int use_spi_crc:1;

unsigned int claimed:1;/* host exclusively claimed */

unsigned int bus_dead:1;/* bus has been released */

#ifdef CONFIG_MMC_DEBUG

unsigned int removed:1;/* host is being removed */

#endif

struct mmc_card *card;/* device attached to this host */

wait_queue_head_t wq;

struct delayed_work detect;

const struct mmc_bus_ops *bus_ops;/* current bus driver */

unsigned int bus_refs;/* reference counter */

unsigned int sdio_irqs;

struct task_struct *sdio_irq_thread;

atomic_t sdio_irq_thread_abort;

#ifdef CONFIG_LEDS_TRIGGERS

struct led_trigger *led;/* activity led */

#endif

struct dentry *debugfs_root;

unsigned long private[0] ____cacheline_aligned;

};

3.

4.MMC/SD卡驱动程序的头文件中一些变量的定义,这些变量在驱动中都会用到。先不用

看这些变量将用做什么,等驱动中用到时自然就明白了。代码如下:

#define S3CMCI_DMA 0

enum s3cmci_waitfor

{

COMPLETION_NONE,

COMPLETION_FINALIZE,

COMPLETION_CMDSENT,

COMPLETION_RSPFIN,

COMPLETION_XFERFINISH,

COMPLETION_XFERFINISH_RSPFIN, };

struct s3cmci_host

{

struct platform_device *pdev;

struct s3c24xx_mci_pdata*pdata; struct mmc_host *mmc;

struct resource *mem;

struct clk *clk;

void __iomem *base;

int irq;

int irq_cd;

int dma;

unsigned long clk_rate; unsigned long clk_div; unsigned long real_rate;

u8 prescaler;

unsigned sdiimsk;

unsigned sdidata;

int dodma;

int dmatogo;

struct mmc_request *mrq;

int cmd_is_stop;

spinlock_t complete_lock; enum s3cmci_waitfor complete_what;

int dma_complete;

u32 pio_sgptr;

u32 pio_bytes;

u32 pio_count;

u32 *pio_ptr;

#define XFER_NONE 0

#define XFER_READ 1

#define XFER_WRITE 2

u32 pio_active;

int bus_width;

char dbgmsg_cmd[301]; char dbgmsg_dat[301]; char*status;

unsigned int ccnt, dcnt;

struct tasklet_struct pio_tasklet;

#ifdef CONFIG_CPU_FREQ

struct notifier_block freq_transition;

#endif

};

5.

6.MMC/SD卡驱动程序的加载与卸载部分:

在Linux中,MMC/SD设备是被作为平台设备添加到系统的。可以查看内核代码:/arch/arm/plat-s3c24xx/devs.c中为MMC/SD主机控制器SDI定义了平台设备和平台设备资源,然后在/arch/arm/mach-s3c2440/mach-smdk2440.c中的系统初始化的时候添加到系统中。如下:

//平台设备资源

static struct resource s3c_sdi_resource[]={

[0]={

.start = S3C24XX_PA_SDI,

.end = S3C24XX_PA_SDI + S3C24XX_SZ_SDI - 1,

.flags = IORESOURCE_MEM,

},

[1]={

.start = IRQ_SDI,

.end = IRQ_SDI,

.flags = IORESOURCE_IRQ,

}

};

//定义SDI平台设备

struct platform_device s3c_device_sdi ={

.name ="s3c2410-sdi",

.id =-1,

.num_resources = ARRAY_SIZE(s3c_sdi_resource),

.resource = s3c_sdi_resource,

};

EXPORT_SYMBOL(s3c_device_sdi);

//添加SDI平台设备到平台设备列表

static struct platform_device *smdk2440_devices[] __initdata ={

&s3c_device_usb,

&s3c_device_sdi,

&s3c_device_lcd,

&s3c_device_wdt,

&s3c_device_rtc,

&s3c_device_dm9000,

.

.

.

};

//平台设备添加到系统

static void __init smdk2440_machine_init(void)

{

.

.

.

platform_add_devices(smdk2440_devices, ARRAY_SIZE(smdk2440_devices));

smdk_machine_init();

}

7.

所以,MMC/SD设备驱动程序的加载和卸载部分很简单,就是注册和注销平台设备,代码如下:

//加载

static int __init s3cmci_init(void)

{

platform_driver_register(&s3cmci_driver);

return 0;

}

//卸载

static void __exit s3cmci_exit(void)

{

platform_driver_unregister(&s3cmci_driver);

}

//平台设备操作结构体

static struct platform_driver s3cmci_driver ={

https://www.360docs.net/doc/dd1366329.html, ="s3c2410-sdi",//名称和平台设备定义中的对应

.driver.owner = THIS_MODULE,

.probe = s3cmci_probe,//平台设备探测接口函数

.remove= __devexit_p(s3cmci_remove),//__devexit_p的作用以前将过

.shutdown= s3cmci_shutdown,

.suspend = s3cmci_suspend,

.resume = s3cmci_resume,

};

8.

9.平台探测函数s3cmci_probe的讲解:

static int __devinit s3cmci_probe(struct platform_device *pdev)

{

//该结构体定义在头文件中,现在实例一个名为host的结构体指针为结构体中的成员赋值做准备

struct s3cmci_host *host;

//实例一个名为mmc的结构体指针,用于与Core核心层中的mmc_host 结构体指针相关联

struct mmc_host *mmc;

int ret;

//初始化一个名为complete_lock的自旋锁以备后用,该自旋锁的定义在s3cmci_host结构体中

spin_lock_init(&host->complete_lock);

//初始化一个名为pio_tasklet的tasklet,用于实现中断的底半部机制,底半部服务函数为pio_tasklet,

//将host结构体变量作为服务函数的参数。注意:这里tasklet的变量名与服务函数名称同名了(这是可以的)。

tasklet_init(&host->pio_tasklet, pio_tasklet,(unsigned long) host);

//分配mmc_host结构体指针的内存空间大小,该函数在host.c中实现,这里要注意一点,为什么参数

//是s3cmci_host结构体的大小,到host.c中看,实际这里分配的是mmc_host加s3cmci_host的大小。

mmc = mmc_alloc_host(sizeof(struct s3cmci_host),&pdev->dev);

if(!mmc)

{

ret =-ENOMEM;

goto probe_out;

}

//调用mmc_priv函数将mmc_host和s3cmci_host结构体的对象关联起来,mmc_priv定义在host.h中

host = mmc_priv(mmc);

//下面就开始初始化s3cmci_host结构体的各成员

host->mmc = mmc;

host->pdev = pdev;

host->pdata= pdev->dev.platform_data;

//SDI主机控制器的中断屏蔽寄存器和数据寄存器,他们定义在

mach-s3c2410/include/mach/regs-sdi.h中

host->sdiimsk = S3C2440_SDIIMSK;

host->sdidata = S3C2440_SDIDATA;

//complete_what定义在s3cmci_host结构体中,用来记录请求处理所处的当前状态,这里初始化为

//COMPLETION_NONE即无状态,定义在头文件的s3cmci_waitfor中,里面枚举了6种状态。

host->complete_what = COMPLETION_NONE;

//pio_active定义在s3cmci_host结构体中,用来标记请求处理数据在FIFO 方式下的数据方向是读还是写

host->pio_active = XFER_NONE;

//dodma和dma方便用于标记是否要使用DMA数据传输方式和DMA通道资源,0表示不使用DMA功能

host->dodma = 0;

host->dma = S3CMCI_DMA;

//从SDI平台设备资源中获取SDI的IO端口资源,该资源在

plat-s3c24xx/devs.c的s3c_sdi_resource中指定的

host->mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);

if(!host->mem)

{

dev_err(&pdev->dev,"failed to get io memory region resouce.\n");

ret =-ENOENT;

goto probe_free_host;

}

//申请SDI的IO端口资源所占用的IO空间(要注意理解IO空间和内存空间的区别)

host->mem = request_mem_region(host->mem->start,

RESSIZE(host->mem), pdev->name);

if(!host->mem)

{

dev_err(&pdev->dev,"failed to request io memory region.\n");

ret =-ENOENT;

goto probe_free_host;

}

//将SDI的IO端口占用的这段IO空间映射到内存的虚拟地址,ioremap 定义在io.h中。

//注意:IO空间要映射后才能使用,以后对虚拟地址的操作就是对IO空间的操作。

host->base = ioremap(host->mem->start, RESSIZE(host->mem));

if(!host->base){

dev_err(&pdev->dev,"failed to ioremap() io memory region.\n");

ret =-EINVAL;

goto probe_free_mem_region;

软件开发流程

快视信息软件开发流程规范: 用户需求:软件项目首先由客户经理(CM,Custom Management)接洽客户的较大的需求。这时的需求叫市场需求(或叫用户需求),客户经理会进行各个项目的安排,即对项目的启动时间和发布时间进行规划和设置。 项目经理(PM,Project Management)对客户经理负责。项目经理的需求是根据客户经理给的,项目经理不和用户(客户)直接接触(通过客户经理接触),负责和用户进行需求洽谈和沟通的是客户经理。一个项目的需求在一般情况下是不准变更的,如果有需求理解方面的不清楚可以进行沟通,但是需求是不变更的。如果用户有新的需求,一般规划在下一个版本中。因为需求变更了,这个目的时间就要进行调整,就不能按计划进行和完成。客户经理提交给项目经理的是需求规格说明书。 一、项目开工会 在项目经理领到客户经理分配给的需求后,做项目计划,具体做项目人员的确定、需求的分解(需求分解到每个人)、代码量的估计,项目各个阶段时间的划分和工作量的计划、质量指标的设定。这时项目经理需要输出的文档是项目需求分解任务书、项目计划PPT、及做好整个项目需要填写的一系列表格。然后组织项目组成员和客户经理CM、QA(质量审计经理)进行项目开工会。这时这个项目就算真正启动,计算工作量时,即计算这个项目总共花了多少个工时,工时是项目经理做计划的时间也算在内,再加上项目开工会和后续各个阶段总共花的总工时数,还有各个阶段开会所花的时间。在项目开工会上,各个成员就明确了这个项目是属于增强型项目,还是其他项目的项目性质,增强型项目的意思是说在原来上一版本的基础上又根据新的需求进行增强型开发。还有要明确项目最后开发出的新增代码量有多少,最后要明确每个人的需求任务,接下来着手进行SRS的写作。 二、SRS阶段:System/Software Requirment Specification 软件需求规格说明 在项目开工会后,项目组就开始按照在项目开工会上项目经理的需求任务分解的任务开始进行SRS的写作。 一般项目经理给你的一个子需求任务,你这时需要分解为更小的需求。一般一个需求的写作是按这样进行的。先简单介绍这个需求,然后把这个需求设计成黑盒的形式,即输入,处理过程、输出。这些都需要写详细,任何一个需求都写成这种形式,输入是什么,处理过程是什么,输出结果是什么。处理过程需要用Visio或者PPT画出处理流程图,流程图要很详细。每一步的各种情况都要表示和考虑到。对异常情况也要考虑和进行处理。还有要说明在原来的基础上怎么改动,具体方法要进行说明。设计的数据库表结构,要给出脚本,SQL语句,表结构需说明每个字段,哪些是主键,你在这个需求处理过程中哪里使用了哪些表,需要进行哪些操作,都需要说明。这里需要设计和编制《数据库设计说明书》文档。该文档中描述该系统中设计出的所有的数据库表结构和各字段类型。还有多个操作对象要画序列图表示出按时序的处理过程。这个SRS文档就相当于我们平时毕业设计或者一个题目的详细设计阶段达到的水平,甚至比它更详细。每个项目组成员都把自己的需求的SRS文档写出来之后放到配置库中,然后每个人对项目组其他成员的(非自己的)SRS文档进行Review(评审),对每个SRS文档在每页发现或者纠正的错误数不能低于一定的数目,而且要保留批注记录,经过Review的(保留批注的)文档要放到配置库的Review文件夹下,这是进行项目质量指标收集的重要依据,是QA 进行调阅和审计的资料。项目经理要对SRS文档、SRS Review文档进行汇总。在汇总后组织项目组全体成员进行SRS阶段会议,对每个人写的SRS进行评审会议(讨论和提意见),对别人给你提的修改意见你要一一进行说明,说明为什么不改,怎么改的,是什么问题,问题严重程度属于什么级别,而且都要填表,也是QA进行审计的内容。开完会后如果每个人完成的都差不多,然后安排半天或者一天的时间进行返工,主要是进行修改文档,按在会上讨论的结果和别人给你的Review 文档结果(评审结果)进行准一修改和完善。然后再进行SRS阶段开会,如果都做的比较到位和具体、符合要求,即关闭SRS阶段。这时SRS阶段的花费的工时数和一些质量活动指标就出来了,比如你这个SRS文档写了几页,每页的错误数是多少,返工修改用了多少时间,然后这些这个比率也会自动计算出来。进而可以判断这个阶段的质量。每个项目组成员在每天工作完毕后都要进行Time Sheet 的填写,必须具体到半个小时,这是统计和分析的需要。填写必须真实。 三、UTP、STP阶段(UTP、STP写作) UTP Unit Test Plan 单元测试计划 STP System Test Plan

成都市房地产开发项目报建流程

成都市房地产开发项目报规,报建流程 目录 第一部分:立项、前期规划报建手续 1、立项 2、设计条件、用地许可证 3、方案图审查规划许可证 第二部分:前期施工报建手续 1、项目卡 2、报建费 3、机构施工图审核 4、建筑工程设计审查、备案及施工许可证并联审查 5、预售面积预测 6、预售面积审查 7、商品房预售许可证 第三部分:竣工验收阶段 1、城建档案馆备案 2、成勘院竣工测量 3、竣工并联审查 4、大产权办理

第一部分:立项、前期规划报建手续(4个步骤) 一、立项 收件部门:市政务中心发展改革窗口 审批行政部门;成都市发展和改革委员会、成都市防震减灾局 收费标准:不收费 申请材料企业投资项目核准公司需准备资料: 1、项目申请报告; 2、当年年检的营业执照或单位法人证、组织机构代码证; 3、规划局出具的项目规划意见(用地许可证=设计条件、国土出让合同); 4、国土局出具的项目用地意见; 5、20-35%银行开具资金证明(资金证明一般一个月期限), 6、窗口领取表格其他部门需准备资料;无 二、设计条件、用地许可证 审批行政部门;成都市规划管理局 审批时间:1个工作日 收费标准:不收费 ⑴申请材料: A、公司需准备资料: 1、《设计条件、用地许可》申请表; 2、1:500红线图; 3、土地权属文件;

4、测绘单位出具的用地界址测绘成果1套; B、技术部需准备资料: 1、叠加用地界址信息和规划控制信息的红线图1:500(或1:1000)5份。注意事项: 1、建设单位应在1年内,向规划部门报送建筑设计方案及有关文件、资料,否则规划设计条件自行失效; 2、建设单位取得《建设用地规划许可证》1年内,应向国土局申请办理土地使用批准文件。如因故超期又未申请延期的,《建设用地规划许可证》自行失效。需延期的建设项目,应持取得的审批文件在有效期内延期。三、方案图审查 审批单位:成都市规划管理局 审批时间:15个工作日 收费标准:不收费 ⑴申请材料: A、公司需准备资料: 1、建设工程设计方案送审单。 B、技术部需提供资料: 1、建设工程方案总平图5份; 2、建设工程设计方案2套; 3、日照分析综合计算图; 4、 A3幅面效果图2份 注意事项: 1、方案设计时必须一次设计到位,设计中对不确定的因素应事先与规

软件开发的完整步骤

软件开发的完整步骤目录 1 问题定义 (4) 1.1 用户调查 (4) 1.2 编写《系统目标与范围说明》 (4) 2 可行性研究 (4) 2.1 确定项目的规模和目标 (4) 2.2 研究正在运行的系统 (4) 2.3 建立新系统的高层逻辑模型 (5) 2.4 重新定义问题 (5) 2.5 导出和评价各种方案 (5) 2.6 推荐可行方案 (5) 2.7 编写《可行性研究报告》 (5) 2.8 提交审查 (5) 3 需求分析 (6) 3.1 制定需求分析计划 (6) 3.2 需求获取 (6) 3.3 分析和综合 (6) 3.4 协商与沟通 (6) 3.5 编写《需求规格说明书》 (6)

3.6 需求验证 (7) 3.7 修改完善开发计划 (7) 3.8 技术审查和管理复审 (7) 4 概要设计 (7) 4.1 制定规范 (7) 4.2 设想供选择的方案 (7) 4.3 推荐最佳方案 (8) 4.4 功能分解 (8) 4.5 软件结构设计 (8) 4.6 数据设计 (8) 4.7 制定测试计划 (8) 4.8 编写《概要设计规格说明书》 (8) 4.9 其他文档编写 (8) 4.10 技术审查和管理复审 (9) 5 详细设计 (9) 5.1 数据结构设计 (9) 5.2 物理设计 (9) 5.3 算法设计 (9) 5.4 界面设计 (9) 5.5 其他设计 (10) 5.6 编写《详细设计规格说明书》 (10) 5.7 技术审查和管理复审 (10)

6 编码 (10) 6.1 选择合适的程序设计语言 (10) 6.2 制定编码规范 (10) 6.3 建立数据库系统 (10) 6.4 程序编码 (11) 7 测试 (11) 7.1 测试用例设计 (11) 7.2 单元测试 (11) 7.3 集成测试 (11) 7.4 系统测试 (11) 7.5编写《测试分析报告》 (12)

房地产开发全流程及详细报建流程

房地产开发全流程及详细报 建流程 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

一项目开发流程及内容 (一)项目开发流程 (二)项目开发流程内容 1、土地获取 深圳目前已基本采用招拍挂卖的方式,此阶段主要是地块信息的收集、分析,对地块开发方向进行可行性研究分析。 2、立项筹备(项目方案设计阶段) (1)凭土地出让合同到规划局规划技术处申报,规划测绘队测绘后,取得建设项目规划红线图,进行放点确位,报项目名并注册。 (2)选定各类专业服务机构,首先选定其专业的策划代理公司,以市场需求出发,完成项目前期的策划工作,并协助完成项目规划设计的要点;然后选定规划设计单位。 3、报批报建 (1)提交可行性研究报告和立项申请,到计划发展委员会申请立项; (2)将总体规划方案报规划局规划管理处审批,通过后领取建设用地规划许可证(总体规划通过后如一次规划分批实施,将分期实施详细规划和相应单 体建筑设计报规划局规划管理处审批。) (3)在项目签订土地出让合同、取得立项批文和建设用地规划许可证后到当地民政局地名管理办公室申报地名。

(4)上述手续完毕,到规划局规划管理处申领建设工程规划许可证。 (5)在项目的总体规划设计审查通过以后,由规划设计单位对整个项目的所有专业管线(包括:供电、自来水、燃气、电信、有线电视、路灯,市政道路、雨污水管网)进行管线规划设计,设计方案送规划局的市政规划管理处审核,通过后,将管线规划图送上述各专业部门听取各部门意见,然后由建设单位会同规划局的有关人员召集各专业部门召开管线规划协调会,将所有专业部门的意见形成会议纪要,以防止各专业管线在具体实施中相互扯皮,管位相撞。 (6)到各规费收缴部门报审、缴费,具体手续办理如下: ?将报批的范围内所有建筑单体图纸报当地消防部门进行消防审查,取得建筑 工程消防意见书。 ?到当地建设局计划财务处缴纳建设规费。 ?到当地教育局计划财务处缴纳教育设施附加费。 ?到卫生防疫站进行工程卫生防疫审查,缴纳卫生防疫检测费。 ?与当地房管局白蚁防止所鉴定白蚁防止协议,缴纳白蚁防止费。 ?按整个建设项目规划的绿化率规定专门对项目进行绿化设计,将绿化报建 图,送园林管理局审批。 ?按当地的人防配套要求,做项目的人防规划,然后将所做的人防规划和人防 工程的立项申请报当地人防办部门审批通过。 ?到当地经济委员会缴纳新型墙体改造费和散装水泥费。 ?到当地城建档案馆签订建设工程档案移交协议书。 ?到当地建设局质监站签订建设工程质监协议,缴纳工程质监费。

软件开发的具体流程与管理制度详解之欧阳光明创编

软件开发管理制度 第一节 欧阳光明(2021.03.07) 第二节总则 第一条为规范自有软件研发以及外包软件的管理工作,特制定本制度。本制度适用于公司总公司软件研发与管理,分 公司参照执行。 第二条本制度中软件开发指新系统开发和现有系统重大改造。第三条本制度中自行开发是指主要依赖公司自身的管理、业务和技术力量进行系统设计、软件开发、集成和相关的技 术支持工作,一般仅向外购置有关的硬件设备和支撑软 件平台;合作开发是公司与专业IT公司(合作商)共同 协作完成IT应用的项目实施和技术支持工作,一般形式 是公司负责提供业务框架,合作商提供技术框架,双方 组成开发团队进行项目实施,IT系统的日常支持由研发 部和合作商共同承担,研发负责内部支持,合作商负责 外部支持;外包开发是指将IT应用项目的设计、开发、 集成、培训等任务承包给某家专业公司(可以是专业的 IT公司或咨询公司等),由该公司(承包商)负责应用 项目的实施。 第四条软件开发遵循项目管理和软件工程的基本原则。项目管理涉及立项管理、项目计划和监控、配置管理、合作开 发管理和结项管理。软件工程涉及需求管理、系统设 计、系统实现、系统测试、用户接受测试、试运行、系 统验收、系统上线和数据迁移。

第五条除特别指定,本制度中项目组包括业务组(营销部、运维部)、IT组(研发部和合作开发商)。 第二节立项管理 第六条提出开发需求的营销部、运维部等业务部门参与公司层面立项,研发部进行立项的技术可行性分析,共同编写 《立项分析报告》(附件一),开展前期筹备工作。 《立项分析报告》应明确项目的范围和边界。 第七条应用系统主要使用部门将《立项分析报告》上交公司进行立项审批,以保证系统项目与公司整体策略相一致。第八条《立项分析报告》得到批准后,成立项目组(如果是外包开发,则成立外包商项目组;如果是合作开发,则与 外包商共同成立合作开发项目组,以下统称“项目 组”),项目组应包括业务组(由公司相关业务部门组 成)和IT组(自行开发为研发部;外包开发为外包商成 员;合作开发为研发部和外包商成员)。公司委派一名 员工负责监督项目的进度,进行项目管理工作,确保开 发能及时完成并能满足业务需要。项目组人员的选择应 满足项目对业务及技术要求,项目组人员应有足够的业 务和IT技术方面的专业知识来胜任项目各方面的工作。 第三节需求分析 第九条立项后业务组对用户需求进行汇总整理,出具《业务需求说明书》(附件二),并确保《业务需求说明书》中 包含了所有的业务需求。《业务需求说明书》经系统使 用单位(用户)确认,作为业务需求基线。 第十条IT组在获得《业务需求说明书》后,提出技术需求和解决方案,并对系统进行定义,出具《系统需求规格说明

地产新版开发报建流程及细则完整版

地产新版开发报建流程 及细则 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

开发报建流 程 及 细 则 目录

第一章开发中心职能概 述..................................................................... (2) 第二章规划建设工程类 (3) 第一节规划建设项目的主要内容概 述 (4) 第二节规划报建工作程序及流程 (6) 第三节规划建设项目的工作要点及注意事项 (55) 第四节绩效考核标准 (59) 第三章用地类 (60) 第一节阶段性程序简 述..................................................................... (60) 第二节工作重点事项 (63) 第三节相关工作办理程序 (67) 第四章配套类 (93) 第一节阶段性程序简述 (93) 第二节工作重点事项 (95) 第三节相关业务办理程序 (98)

第一章开发中心职能概述 一、开发中心在办理开发报建业务过程中涉及的政府职能部门较多,包括有市(区)规 划局、市建委(区建设局)、市(区)国土房管局、市(区)质监站、市(区)安监站、市劳保办、建设工程交易中心、区余泥所、市自来水公司(区供水所)、市 (区)供电局、市政园林局、环卫局、电信局、邮政局、环保局、区公安分局、公安消防局、卫生防疫站、人防办、地名办等政府职能部门。 二、根据主要涉及的政府部门划分,开发中心开发报建体系划分为三大类: (一)规划建设工程类: 主要负责房地产开发项目各项建设工程的报建验收工作,规划报建主要包括:建设项目预审选址、申请规划设计要点、申领总平面及修建性详细规划的批复、办理综合管线规划和单体方案送审工作、取得环保、人防、消防、卫生学等专业审批意见、申领《建设工程规划许可证》。 规划报建阶段完成后,办理建设工程施工手续,主要包括:申领建设工程施工监理邀请招标核准书、办理施工监理招标工作、缴交劳保金、申领余泥排放证、对施工图进行审查并办理节能备案及施工图审查备案、办理建设工程质量及安全的监督手续,最后申领《建筑工程施工许可证》,完成建设工程的施工手续。同时办理商品房预售等手续 建设工程竣工后,要进行各项验收手续,包括规划验收,取得《建设工程规划验收合格证》,办理环保、人防、消防、卫生学等各专业验收,收集建设工程各项验收资料报请竣工验收备案。最后办理商品房的确权。

软件开发文档说明书(完整流程)

. 在软件行业有一句话:一个软件能否顺利的完成并且功能是否完善,重要是看这个软件有多少文档,软件开发文档是一个软件的支柱,如果你的开发文档漏洞百出,那么你所开发出来的软件也不可能会好;开发文档的好坏可以直接影响到所开发出来软件的成功与否。 一、软件开发设计文档:软件开发文档包括软件需求说明书、数据要求说有书、概要设计说明书、详细设计说明书。 1、软件需求说明书:也称为软件规格说明。该说明书对所开发软件的功能、性能、用户界面及运行环境等做出详细的说明。它是用户与开发人员双方对软件需求取得共同理解基础上达成的协议,也是实施开发工作的基础。软件需求说明书的编制目的的就是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解、并使之面成为整个开发工作的基础。 其格式要求如下: 1 引言 1.1 编写目的。 1.2 背景 1.3 定义 2 任务概述 2.1 目标 2.2 用户的特点

. 2.3 假定和约束 3 需求规定 3.1 对功能的规定 3.2 对性能的规定 3.2.1 精度 3.2.2 时间特性的需求 3.2.3 灵活性 3.3 输入输出要求 3.4 数据管理能力要求 3.5 故障处理要求 3.6 其他专门要求 4 运行环境规定 4.1 设备 4.2 支持软件 4.3 接口 4.4 控制

. 2、概要设计说明书:又称系统设计说明书,这里所说的系统是指程序系统。编制的目的是说明对程序系统的设计考虑,包括程序系统的基本处理。流程、程序系统的组织结构、模块划分、功能分配、接口设计。运河行设计、数据结构设计和出错处理设计等,为程序的详细设计提供基础。 其格式要求如下: 1 引言 1.1 编写目的 1.2 背景 1.3 定义 1.4 参考资料 2 总体设计 2.1 需求规定 2.2 运行环境 2.3 基本设计概念和处理流程 2.4 结构 2.5 功能需求与程序的关系

一个完整的软件开发流程

一个完整的软件开发流程 一、开发流程图 二、过程产物及要求 本表主要列出开发阶段需要输出的过程产物,包括产物名称、成果描述、负责人及备注,即谁、在什么时间、应该提供什么内容、提供内容的基本方向和形式是什么。 三、过程说明 (一)项目启动 1、产品经理和项目干系人确定项目方向,产品型项目的干系人包括公司领导、产品总监、技术总监等,项目的话则包括客户方领导、主要执行人等。

2、公司领导确认项目组团队组成,包括产品经理、研发项目经理、研发工程师、测试团队等。 3、明确项目管理制度,每个阶段的成果产物需要进行相应的评审,评审有相应的《会议纪要》;从项目启动起,研发项目经理每周提供《项目研发周报》;测试阶段,测试工程师每周提供《项目测试周报》。 4、产品经理进行需求调研,输出《需求调研》文档。需求调研的方式主要有背景资料调查和访谈。 5、产品经理完成《业务梳理》。首先,明确每个项目的目标;其次,梳理项目涉及的角色;再来,每个角色要进行的事项;最后,再梳理整个系统分哪些端口,要有哪些业务模块,每个模块再包含哪些功能。 (二)需求阶段 1、进入可视化产物的输出阶段,产品经理提供最简单也最接近成品的《产品原型》,线框图形式即可。在这个过程中还可能产生的包括业务流程图和页面跳转流程图。业务流程图侧重在不同节点不同角色所进行的操作,页面跳转流程图主要指不同界面间的跳转关系。项目管理者联盟 2、产品经理面向整个团队,进行需求的讲解。 3、研发项目经理根据需求及项目要求,明确《项目里程碑》。根据项目里程表,完成《产品开发计划》,明确详细阶段的时间点,最后根据开发计划,进行《项目任务分解》,完成项目的分工。 4、研发工程师按照各自的分工,进入概要需求阶段。《概要需求》旨在让研发工程师初步理解业务,评估技术可行性。 (三)设计阶段 1、UI设计师根据产品的原型,输出《界面效果图》,并提供界面的标注,最后根据主要的界面,提供一套《UI设计规范》。UI设计规范主要是明确常用界面形式尺寸等,方便研发快速开发。UI设计常涵盖交互的内容。 2、研发工程师在界面效果图,输出《需求规格》,需求规格应包含最终要实现的内容的一切要素。 3、研发工程师完成《概要设计》、《通讯协议》及《表结构设计》,及完成正式编码前的一系列研发设计工作。 (四)开发阶段项目经理博客 1、研发工程师正式进入编码阶段,这个过程虽然大部分时间用来写代码,但是可能还需要进行技术预研、进行需求确认。

开发报建流程及细则概论

开 发 报 建 流 程 及 细 则 二〇一二年 目录 第一章开发中心职能概

述..................................................................... (2) 第二章开发报建流程图… 第三章征地理性阶段 (3) 第四章规划建设报建阶段 第一节:办理建设用地规划许可证 第二节:办理土地征、建设工程规划许可证 第三节:办理建设工程施工许可证 第四节:办理预售许可证 第五章竣工验收阶段 第一章开发部职能概述 一、开发部的职责概况: 1、组织、协调、执行报批报建工作;

2、根据项目开发进度计划,编制《项目报批报建计划》; 3、负责前期征地阶段的报批报建; 4、负责建设阶段的报批报建; 5、负责工程施工过程和销售环节的报批报建工作; 二、开发部在办理开发报建业务过程中涉及的政府职能部门: 包括有市发改委(纺办招商局)、市(纺办)规划局、市(纺办)建 委、市(纺办)国土局、市房管局、市经房办、市政园林局、环保局、 区公安分局、市消防支队、人防办、气象局、文物局、市勘测院、地 名办等政府职能部门。 三、根据开发流程,开发部报建体系划分为三个主要阶段: (一)、征地、立项阶段; (二)、规划建设报建阶段; (三)、竣工验收阶段; 第二章开发报建流程图

第三章征地、立项阶段 一、征地前期土地调研 1、调研拟征地块内容:土地周边市政道路、高压线、小区用电距离、 市政配套设施、地块有无大型文物、地块下有无军用设施、地块周 围城市总体规划、以及有无拆迁。 2、了解拟征地块规划设计条件:与规划部门确认容积率、绿化率、建 筑密度、建筑物高度、退让红线要求、配套公建面积。 3、了解拟征土地价格及竞争情况:周边地块价格、评估中心对本地块 估价、了解竞争对手详细情况。 二、招拍挂资料准备 1、土地局:土地批文、土地评估报告、地质灾害评估、规划设计条 件、地形图、道路红线图、宗地测量成果、测量成果表(勘察 院)、挂牌公告、招拍挂文件 2、公司:营业执照、申请、初期可研报告 3、注意事项:招标文件的规定条件、申请文件中招拍挂申请人与签 订出让合同的主体约定 三、土地招拍挂 1、成交确认单、出让合同签订、出让金缴纳、契税缴纳 2、注意事项:地面附着物清理规定、地下公共管线设施改移时间、土 地移交时间。 四、委托设计院方案设计和项目立项备案 (一)设计院方案设计

地产新版开发报建流程及细则

开发报建流程及细则

目录 第一章开发中心职能概述 (2) 第二章规划建设工程类 (3) 第一节规划建设项目的主要内容概述 (4) 第二节规划报建工作程序及流程 (6) 第三节规划建设项目的工作要点及注意事项 (55) 第四节绩效考核标准 (59) 第三章用地类 (60) 第一节阶段性程序简述 (60) 第二节工作重点事项 (63) 第三节相关工作办理程序 (67) 第四章配套类 (93) 第一节阶段性程序简述 (93) 第二节工作重点事项 (95) 第三节相关业务办理程序 (98)

第一章开发中心职能概述 一、开发中心在办理开发报建业务过程中涉及的政府职能部门较多,包括有市(区)规 划局、市建委(区建设局)、市(区)国土房管局、市(区)质监站、市(区)安监站、市劳保办、建设工程交易中心、区余泥所、市自来水公司(区供水所)、市(区)供电局、市政园林局、环卫局、电信局、邮政局、环保局、区公安分局、公安消防局、卫生防疫站、人防办、地名办等政府职能部门。 二、根据主要涉及的政府部门划分,开发中心开发报建体系划分为三大类: (一)规划建设工程类: 主要负责房地产开发项目各项建设工程的报建验收工作,规划报建主要包括:建设项目预审选址、申请规划设计要点、申领总平面及修建性详细规划的批复、办理综合管线规划和单体方案送审工作、取得环保、人防、消防、卫生学等专业审批意见、申领《建设工程规划许可证》。 规划报建阶段完成后,办理建设工程施工手续,主要包括:申领建设工程施工监理邀请招标核准书、办理施工监理招标工作、缴交劳保金、申领余泥排放证、对施工图进行审查并办理节能备案及施工图审查备案、办理建设工程质量及安全的监督手续,最后申领《建筑工程施工许可证》,完成建设工程的施工手续。同时办理商品房预售等手续 建设工程竣工后,要进行各项验收手续,包括规划验收,取得《建设工程规划验收合格证》,办理环保、人防、消防、卫生学等各专业验收,收集建设工程各项验收资料报请竣工验收备案。最后办理商品房的确权。 (二)用地类: 主要负责办理房地产开发项目用地手续的办理,包括建设用地的预审、报批手续,建设用地的拆迁补偿、有偿使用等手续,取得《建设用地批准书》及《国有土地使用证》等有关证照。 (三)配套类: 主要负责办理房地产开发项目配套设施的报批工作,包括施工现场通水、通电、通路的报批,各期工程管线施工的报批和验收,小区命名和通邮的申报,公建配套用房的移交等。

软件开发流程规范-详细流程

软件开发流程规范 目录 目录 0 一、概述 (2) 二、开发流程规范 (3) 2.1系统软硬件开发环境 (3) 2.2系统架构(系统组成) (5) 2.3系统功能模块设计 (6) 2.4系统功能开发流程图 (7) 2.5开发修改记录 (8) 三、开发代码规范 (9) 3.1文件结构 (9) 3.1.1 文件信息声明 (10) 3.1.2头文件的结构 (12) 3.1.3定义文件的结构 (15) 3.1.4 头文件的作用 (17) 3.1.5 目录结构 (18) 3.2命名规则 (18) 3.2.1 共性原则 (19) 3.2.2 Windows变量命名规则 (21) 3.3程序风格 (24) 3.3.1 空行 (25) 3.3.2代码行 (26) 3.3.3代码行内的空格 (29) 3.3.4 对齐 (31) 3.3.5 长行拆分 (33) 3.3.6修饰符的位置 (35) 3.3.7 注释 (35) 3.4函数设计 (40) 3.4.1 参数的规则 (40) 3.4.2返回值的规则 (42) 3.4.3函数内部实现的规则 (47) 3.4.4其它建议 (50) 3.4.5使用断言 (50) 3.4.6 引用与指针的比较 (52) 3.5变量类型定义 (56)

四、软件测试规范 (56) 4.1单元测试 (57) 4.2 系统测试 (57) 4.6 业务测试 (59) 4.7 验收测试 (59) 4.8 用户现场测试 (59) 五、软件版本管理 (60) 4.1 版本管理的必要性 (60)

、概述 本文制定烟台开发区德联软件有限责任公司计算机软件开发规范文档。本规范的目的是使公司软件开发项目阶段清晰、要求明确、任务具体、编写的代码规范,使之规范化、系统化和工程化,向公司内从事软件开发的工程师和管理人员提出一系列规范和要求,从而有利于开发过程的控制和管理,提高所开发软件系统的质量,缩短开发时间,减少开发和维护费用,以保证项目高质量、顺利进行。 本规范包含:开发流程规范和开发代码规范等,开发流程规范需要技术开发人员编写相关内容,希望每个技术人员形成习惯,如有新的内容更新会及时通知大家,如有好的规范要求也可通知编制人员及时更新。 本规范为烟台开发区德联软件有限责任公司内部材料,严禁其他商业应用。

APP开发制作完整流程8

(一)团队建队.......................................................................................................................2/9 1、人员组成及要求.........................................................................................................2/9 2、岗位职责.....................................................................................................................3/9 (二)开发流程.......................................................................................................................5/9二、模板APP开发流程...................................................................................................................7/9

1、人员组成及要求 APP定制开发由于其复杂性,所以要需要一个完整的开发团队。先明确职责任务,分工合作才能更好的完成工作。 APP开发完整的团队人员包括:产品经理,程序开发人员,测试专员,运营团队,UI 设计。 团队人员要求: 产品经理:具有通信、计算机等相关专业知识,有独立的软件开发经验,能熟练使用网络测试工具,熟悉软件开发架构与流程;有良好的团队协作能力、沟通表达能力,有一定的项目管理经验;富有激情,有较强的执行能力和带队能力。 程序开发人员:计算机、软件工程等相关专业,熟悉开发框架,能够独立完成android 开发;精通Java、C/C++等编程语言,熟悉Http协议;有良好的编程思维和代码规范习惯,踏实好学,善于协作。

一个完整的软件开发流程精品范本

一个完整的软件开发流程一、开发流程图

二、过程产物及要求 本表主要列出开发阶段需要输出的过程产物,包括产物名称、成果描述、负责人及备注,即谁、在什么时间、应该提供什么内容、提供内容的基本方向和形式是什么。 三、过程说明 (一)项目启动 1、产品经理和项目干系人确定项目方向,产品型项目的干系人包括公司领导、产品总监、技术总监等,项目的话则包括客户方领导、主要执行人等。 2、公司领导确认项目组团队组成,包括产品经理、研发项目经理、研发工程师、测试团队等。

3、明确项目管理制度,每个阶段的成果产物需要进行相应的评审,评审有相应的《会议纪要》;从项目启动起,研发项目经理每周提供《项目研发周报》;测试阶段,测试工程师每周提供《项目测试周报》。 4、产品经理进行需求调研,输出《需求调研》文档。需求调研的方式主要有背景资料调查和访谈。 5、产品经理完成《业务梳理》。首先,明确每个项目的目标;其次,梳理项目涉及的角色;再来,每个角色要进行的事项;最后,再梳理整个系统分哪些端口,要有哪些业务模块,每个模块再包含哪些功能。 (二)需求阶段 1、进入可视化产物的输出阶段,产品经理提供最简单也最接近成品的《产品原型》,线框图形式即可。在这个过程中还可能产生的包括业务流程图和页面跳转流程图。业务流程图侧重在不同节点不同角色所进行的操作,页面跳转流程图主要指不同界面间的跳转关系。项目管理者联盟 2、产品经理面向整个团队,进行需求的讲解。 3、研发项目经理根据需求及项目要求,明确《项目里程碑》。根据项目里程表,完成《产品开发计划》,明确详细阶段的时间点,最后根据开发计划,进行《项目任务分解》,完成项目的分工。 4、研发工程师按照各自的分工,进入概要需求阶段。《概要需求》旨在让研发工程师初步理解业务,评估技术可行性。 (三)设计阶段 1、UI设计师根据产品的原型,输出《界面效果图》,并提供界面的标注,最后根据主要的界面,提供一套《UI设计规范》。UI设计规范主要是明确常用界面形式尺寸等,方便研发快速开发。UI设计常涵盖交互的内容。 2、研发工程师在界面效果图,输出《需求规格》,需求规格应包含最终要实现的内容的一切要素。 3、研发工程师完成《概要设计》、《通讯协议》及《表结构设计》,及完成正式编码前的一系列研发设计工作。 (四)开发阶段项目经理博客 1、研发工程师正式进入编码阶段,这个过程虽然大部分时间用来写代码,但是可能还需要进行技术预研、进行需求确认。 2、编码过程一般还需进行服务端和移动端的联调等。

软件委托开发流程及相关规范

软件外包流程及相关规范XXXXXXXXX网络科技有限公司

目录 一、外包前的准备工作 (3) 1.1项目负责人的确定 (3) 1.2需求文档的制定 (3) 1.3《软件开发方案》及接包方的确定 (3) 1.4接包方责任人的确定 (4) 二、软件在开发过程中的管理 (4) 2.1软件需求的细化 (4) 2.2开发过程中的管理及协调 (4) 2.3软件需求变动 (5) 三、交付验收过程管理 (5) 3.1软件交付前的内测 (5) 3.2软件交付时的公测 (5) 3.3软件验收交付的内容 (6) 3.4软件的验收 (6) 3.5软件验收报告 (7) 四、交付后的程序及源代码管理 (7) 4.1软件交付后的程序BUG处理 (7) 4.2软件交付后的功能更改 (7) 4.3程序发布及源代码管理 (7)

一、外包前的准备工作 1.1项目负责人的确定 外包项目确定启动前,我方应制定一个专门人员,作为软件外包的项目负责人,全权处理外包项目的所有事务。 1.2需求文档的制定 由项目负责人,对项目软件的使用范围、用户人群定位等进行详细分析,规划出软件的主要功能,同时结合我们现有平台软件,对软件的开发环境、应用环境做出规范要求,以此制定出《软件需求文档》。 《软件需求文档》在经项目组讨论后生效。 《软件需求文档》应包括以下内容: 项目软件的中英文名称、预计开发周期; 软件的技术规范,如开发环境、应用环境、数据库标准、数据交换接口等; 软件的适用范围、主要应用思想; 主要功能模块及功能详细说明; 业务基本流程; 1.3《软件开发方案》及接包方的确定 1.《软件需求文档》确定后,根据需求文档预选定接包方; 2.接包方同项目负责人沟通技术细节后,由项目接包方根据需求方案,对开发流 程进行细化,制定《软件开发方案》及相关DEMO; 3.项目负责人根据《软件开发方案》和DEMO确定最终的接包方,双份针对软 件开发、后期应用、源代码交付方式等细节进行磋商,签订《软件开发合同》。 《软件开发方案》中应包括以下内容: 项目整体的开发进程,应包括开发、测试、验收、交付等关键环节的进度安排; 软件各模块划分及定义;

一个完整的产品开发项目管理流程

如对您有帮助,请购买打赏,谢谢您! 一个完整的产品开发项目管理流程 从一个项目提出到结束,按照ISO9001:2000的项目管理流程,大致有如下步骤: 1、产品立项报告 按照公司的管理流程,由公司有关人等都有可能提出《产品立项报告》,比如公司老总、市场部门、研发部门,一般是在公司组织的定期召开的会议上提出,经初步讨论具有一定的可行性之后,由公司领导提交到公司负责产品开发立项的部门,比如,总工办,然后,按照公司的管理流程,由该部门组织人员进行讨论,最后指定某人进行产品的可行性分析,提交《产品的可行性分析报告》。 在《产品立项报告》中,初步描述该技术的国内、国外现状、经济效益和社会效益。。。 2、产品可行性分析报告 指定的某人提交《产品的可行性分析报告》,在会议上产品立项讨论通过,指定项目经理,对该产品提出《初步设计》。 在这里,要对风险进行评估。 风险控制:要求,新技术在产品中的使用比例不要超出30%。 如果这个产品大量使用新技术,那么,质量和进度往往不容易保证。 新技术,一般是需要先期做一些知识储备。使用太多的新技术推出的产品,一旦出现了不可控制的缺陷,将是灾难性的损失。 以上过程产生项目经理。以下步骤在项目经理的参与和指导下进行。 3、初步设计 由项目经理负责编写。 在这里,要对成本、进度、风险进行准确评估。 产生《初步设计》后,经讨论修改通过后,把《初步设计》提交给该项目的硬件工程师、软件工程师和结构工程师分别提交《硬件详细设计》、《软件详细设计》和《结构详细设计》; 在初步设计中,指定该项目负责的硬件工程师、软件工程师、结构工程师、样机生产负责人、测试工程师等。 在初步设计中,由项目经理对项目总成本进行核算。 并由项目经理或者测试工程师产生《测试大纲》,由总工程师或者项目经理对《测试大纲》进行批准。 4、硬件详细设计

房地产开发报建手册及流程图(完整版)

目录 第一部分项目开发报建流程1 第二部分项目前期阶段报建流程7一、办理签署《土地使用权出让合同书》手续7 第三部分项目建设阶段报建流程10 一、办理项目地名注册手续10 二、办理《项目立项》12 三、规划局13 (一)办理《建设项目选址意见书》 13 (二)办理《建设用地规划许可证》13 (三)建设项目规划设计方案(修规)报批 15(四)办理《建设用地规划批准书》15(五)建筑设计方案报批16(六)办理《建筑工程规划许可证》16(七)办理《临时建筑许可证》(政府机构或企业申报) 17(八)办理《临时建筑许可证》(私人申报) 18(九)建筑物室外装饰工程设计方案报批18(十)“一书两证”及附件变更遗失补发18(十一)办理《建设工程规划验收合格证》19(十二)办理房屋拆迁许可证、房屋拆迁公告20(十三)规划设计单位资格认证21四、市建设局22 (一)建设工程保证安全施工的措施备案22(二)建设工程缴费指南25

(三)房屋建筑和市政基础设施工程(施工和监理)合同、保函备案指南29(四)房地产开发项目手册备案指南15(五)建筑工程(新建和既有建筑装修、加层、扩建、改建)施工许可证32(六)建筑工程(新建和既有建筑装修、加层、扩建、改建)施工许可证34(七)建筑工程(新建和既有建筑装修、加层、扩建、改建)施工许可证39(八)房屋建筑和市政基础设施工程施工图设计文件审查备案指南43(九)房屋建筑工程和市政基础设施工程竣工验收备案指南49(十)工程合同纠纷调解申请指南 52(十一)房地产开发项目转让备案指南53(十二)商品房预售广告备案指南54(十三)商品房预售楼款用款申请指南56(十四)商住用地办理商品房预售许可情况说明58(十五)商品房预售许可指南59(十六)商品房预售许可证变更、延期指南61 五、城市管理局63 六、人防办76 七、消防局79 八、房管局82

一个完整的软件开发流程培训讲学

精品文档 一个完整的软件开发流程 一、开发流程图 精品文档. 精品文档 二、过程产物及要求 本表主要列出开发阶段需要输出的过程产物,包括产物名称、成果描述、负责人及备注,即谁、在什么时间、应该提供什么内容、提供内容的基本方向和形式是什么。

三、过程说明 (一)项目启动 1、产品经理和项目干系人确定项目方向,产品型项目的干系人包括公司领导、产品总监、技术总监等,项目的话则包括客户方领导、主要执行人等。 2、公司领导确认项目组团队组成,包括产品经理、研发项目经理、研发工程师、测试团队等。 精品文档. 精品文档 3、明确项目管理制度,每个阶段的成果产物需要进行相应的评审,评审有相应的《会议纪要》;从项目启动起,研发项目经理每周提供《项目研发周报》;测试阶段,测试工程师每周提供《项目测试周报》。 4、产品经理进行需求调研,输出《需求调研》文档。需求调研的方式主要有背景资料调查和访谈。 5、产品经理完成《业务梳理》。首先,明确每个项目的目标;其次,梳理项目涉及的角色;再来,每个角色要进行的事项;最后,再梳理整个系统分哪些端口,要有哪些业务模块,每个模块再包含哪些功能。 (二)需求阶段 1、进入可视化产物的输出阶段,产品经理提供最简单也最接近成品的《产品原型》,线框图形式即可。在这个过程中还可能产生的包括业务流程图和页面跳转流程图。业务流程图侧重在不同节点不同角色所进行的操作,页面跳转流程图主要指不同界面间的跳转关系。项目管理者联盟

2、产品经理面向整个团队,进行需求的讲解。 3、研发项目经理根据需求及项目要求,明确《项目里程碑》。根据项目里程表,完成《产品开发计划》,明确详细阶段的时间点,最后根据开发计划,进行《项目任务分解》,完成项目的分工。 4、研发工程师按照各自的分工,进入概要需求阶段。《概要需求》旨在让研发工程师初步理解业务,评估技术可行性。 (三)设计阶段 1、UI设计师根据产品的原型,输出《界面效果图》,并提供界面的标注,最后根据主要的界面,提供一套《UI设计规范》。UI设计规范主要是明确常用界面形式尺寸等,方便研发快速开发。UI设计常涵盖交互的内容。 2、研发工程师在界面效果图,输出《需求规格》,需求规格应包含最终要实现的内容的一切要素。 3、研发工程师完成《概要设计》、《通讯协议》及《表结构设计》,及完成正式编码前的一系列研发设计工作。 (四)开发阶段项目经理博客 1、研发工程师正式进入编码阶段,这个过程虽然大部分时间用来写代码,但是可能还需要进行技术预研、进行需求确认。 2、编码过程一般还需进行服务端和移动端的联调等。 精品文档. 精品文档 3、完成编码后需要进行功能评审。 (五)测试阶段 1、测试工程师按阶段设计《测试实例》,未通过的流程测试提交至Jira,分配给相应的开发人员调整。 2、研发工程师根据测试结果修改代码,完成后提交测试,测试通过后完成。 3、测试工程师编写《测试结果报告》,包括功能测试结果、压力测试结果等。 4、测试工程师编写系统各端口的《操作手册》、维护手册等。 (六)系统上线 与客户或者上级达成一致后,系统进行试运行,稳定后上线。项目管理者联盟文章 精品文档.

软件开发文档说明完整流程)

在软件行业有一句话:一个软件能否顺利的完成并且功能是否完善,重要是看这个软件有多少文档,软件开发文档是一个软件的支柱,如果你的开发文档漏洞百出,那么你所开发出来的软件也不可能会好;开发文档的好坏可以直接影响到所开发出来软件的成功与否。? 一、软件开发设计文档:软件开发文档包括软件需求说明书、数据要求说有书、概要设计说明书、详细设计说明书。 1、软件需求说明书:也称为软件规格说明。该说明书对所开发软件的功能、性能、用户?界面及运行环境等做出详细的说明。它是用户与开发人员双方对软件需求取得共同理?解基础上达成的协议,也是实施开发工作的基础。软件需求说明书的编制目的的就是?为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解、并使之面成为?整个开发工作的基础。 其格式要求如下:?? 1?引言? 1.1?编写目的。 1.2?背景? 1.3?定义?? 2?任务概述? 2.1?目标? 2.2?用户的特点? 2.3?假定和约束?? 3?需求规定? 3.1?对功能的规定?

3.2?对性能的规定? 3.2.1?精度? 3.2.2?时间特性的需求? 3.2.3?灵活性? 3.3?输入输出要求? 3.4?数据管理能力要求? 3.5?故障处理要求? 3.6?其他专门要求?? 4?运行环境规定? 4.1?设备? 4.2?支持软件? 4.3?接口? 4.4?控制?? 2、概要设计说明书:又称系统设计说明书,这里所说的系统是指程序系统。编制的目的是说明对程序系统的设计考虑,包括程序系统的基本处理。流程、程序系统的组织?结构、模块划分、功能分配、接口设计。运河行设计、数据结构设计和出错处理设计等,为程序的详细设计提供基础。 其格式要求如下:?? 1?引言? 1.1?编写目的? 1.2?背景? 1.3?定义? 1.4?参考资料??

相关文档
最新文档