是用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
是为了使软件项目能够按照预定的成本、进度、质量顺利完成,
贯穿于整个的软件生命周期而对人员、产品、过程和项目进行分析和管理的活动。
以程序和文档的形式保存在作为计算机存储器的磁盘和光盘介质上,
通过操作计算机才能体现出它的功能和作用,用于满足用户的需求。
软件 = 程序 + 数据 + 文档。
程序:软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令序列。
数据:使得程序能正常操作信息的数据结构。
文档:描述与程序开发,维护和使用有关的图文材料。
软件:一系列计算机指令的集合,往往指可执行的计算机应用程序。
最终的产出可以是系统、可以是临时的指令任务,也可以作为产品级输出
系统:系统是由相互作用相互依赖的若干组成部分结合而成的整体。
计算机领域的系统,系统软件属于软件中的一种,软件还分应用软件等。
现在软件变得越来越复杂,于是我们用“系统”这个词来形容现代的软件。
平台:可以是一系列系统的集合,也可以是一系列软件的集合,他们可以完成同一件事,
也可以完成不同的事,人们可以在平台上进行系统间的交互行为,平台更像是一个产品,包装在最上层。
1.系统软件:为计算机使用提供最基本的功能,可分为操作系统、设备驱动和工具软件,其中操作系统是最基本的软件。
2.支撑软件:在系统软件和应用软件之间,提供应用软件设计、开发、测试、评估、运行检测等辅助功能的软件。
包括软件开发环境、数据库管理系统、网络软件。
3.应用软件:为了某种特定的用途而被开发的软件。
类别 | 参与人数 | 研发周期 | 资金规模 |
---|---|---|---|
小型 | 10人以下 | 1-4个月 | 50万以下 |
中型 | 10-100人 | 1年以下 | 50万-300万 |
大型 | 100人以上 | 1年以上 | 300万以上 |
序号 | 阶段 | 通俗描述 | 任务 |
---|---|---|---|
1 | 问题定义与可行性研究 | 是否做? | 此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标、范围(用软件解决什么问题)及其可行性。 |
2 | 需求分析 | 做什么? | 在确定软件开发可行的前提下,这个阶段的任务主要是明确为了解决这个问题目标系统必须要做什么。为此,需要深入具体的了解用户的需求,确保系统要解决的问题和用户想法完全一致。明确目标系统必须做什么,确定目标系统必须具备哪些功能。 |
3 | 软件设计 | 怎么做? | 主要根据需求分析的结果,对整个软件系统进行设计,如系统架构设计,数据库设计,界面设计等等。 |
4 | 软件实现 | 开始做 | 是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一、符合标准的代码编写规范,以保证程序的可读性、可维护性。选择合适的算法和数据结构,以提高程序的运行效率。 |
5 | 软件测试 | 检验质量 | 在软件开发完成后要经过严密的测试,以发现软件在整个设计与实现过程中存在的问题并加以纠正。 |
6 | 运行维护 | 售后服务 | 软件维护发生在软件已经交付使用之后,维护的主要目标是使系统持久的满足用户的需求。是软件生命周期中持续时间最长的阶段,包括纠错性维护和改进性维护两个方面。 |
自主研发类项目
合同类项目
产品升级类项目