1.软件的基本概念:
软件(software)是指一系列按照某种特定规则组织在一起,实现用户需求的计算机数据和指令的集合体。从狭义理解即运行在计算机、手机、手持设备等电子设备上的应用程序,都称为软件。从广义理解,软件不仅仅包含实现用户需求的源代码(计算机数据、指令),还包含与之相匹配的数据文档、支撑源代码运行的配置数据。三者构成一个完整的软件实体。
例如,一个地图软件,包含可执行程序、地图使用说明书、驱动数据包(不同地区的不同数据包)软件 = 程序 + 文档。
2.软件生命周期的各个阶段:
计划→需求分析→设计→编码→测试→运行→评价

计划
确定软件开发总目标;
给出软件的功能、性能、可靠性以及接口等方面的设想;
研究完成该项目的可行性,探讨问题解决方案;
对可供开发使用的资源、成本、可取得的效益和开发进度作出估计;
制定完成开发任务的实施计划。
需求分析
对开发的软件进行详细的定义,由需求分析人员和用户共同讨论决定,哪些需求是可以满足的,并且给予确切的描述,写出软件需求说明书SRS (Software Requirement Specification)。
需求来源:
市场调研
用户:市场调研人员
特点:自己想研发什么,自己就来研发。
客户要求
用户:实际的客户
特点:别人想研发什么,我们帮着研发。
设计
设计是软件工程的技术核心,这个阶段需要完成设计说明书。
概要设计(HLD)
在设计阶段把各项需求转换成相应的体系结构,每一部分是功能明确的模块。
详细设计(LLD)
对每个模块要完成的工作进行具体的描述。
编码
把软件设计转换成计算机可以接受的程序,即写成以某个程序设计语言表示的源程序清单,使用RDBMS工具建立数据库。
测试
测试是检验软件是否符合客户需求,达到质量要求,一般由独立的小组执行,测试工作分为:
单元测试:参照LLD,对每一个函数进行测试(白盒测试)
集成测试:参照HLD,对函数与函数的集成、模块与模块之间的集成进行测试(灰盒测试)
系统测试:参照SRS,对每一个功能、性能需求进行测试(黑盒测试)
运行与维护
这个阶段将软件交付用户投入正式使用,以后便进入维护阶段,可能有多种原因需要对它进行修改,如软件错误、系统软件升级、增强软件功能、提高性能等。
3.常见的项目组结构

4.常见的项目组架构
管理团队
项目经理
产品组
产品经理
软件开发组
开发经理或开发组长、系统架构师、开发工程师、美工或UI设计
软件测试组
测试经理或测试组长、测试架构师、测试人员(性能测试、功能测试、自动化测试)
配置管理组
配置经理、CMO(配置管理员)
网友评论