软件工程
着重于开发模型和开发方法的研究,以知道软件开发工作的顺利进行。
着重于软件工具和环境的研究,以低成本、高效率的方式辅助软件的开发。
计算机软件
计算机软件是指计算机系统中的程序及其文档。程序是计算任务的处理对象和处理规则的描述 。
系统软件:
系统软件是一整套服务于其他程序的程序。
特点:
和计算机硬件大量交互;
多用户大量使用;
需要调度、资源共享和复杂进程管理的同步操作;
复杂的数据结构以及多种外部接口;
应用软件:
应用软件是解决特定业务需要的独立应用程序。
工程/科学软件:
通常带有“数值计算”算法的特征。
嵌入式软件:
嵌入式软件存在于某个产品或系统中,可实现和控制面向最终使用者和系统本身的特性和工程。
产品线软件:
为多个不同用户的使用提供特定的功能。
Web应用软件:
一类以网络为中心的软件。
人工智能软件:
人工智能软件利用非数值算法解决计算和直接分析无法解决的复杂问题。
开放计算
无线网络的快速发展将促成真正的普适计算、分布式计算的实现。
网络资源:
万维网已经快速发展为一个计算引擎和内容提供平台。
开源软件
开放系统应用程序的代码,使得很多人能够为软件开发做贡献,这种方式正在逐步成为一种趋势。
软件工程基本原理
用分阶段的生命周期计划严格管理:应该把软件生命周期划分成若干个阶段,并相应地制定出切实可行的计划,然后严格按照计划对软件的开发与维护工作进行管理。 Boehm对生存周期的六类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划和运行维护计划。
坚持进行阶段评审
实现严格的产品控制
采用现代程序设计技术
结果应能清楚地审查
开发小组的人员应少而精
承认不断改进软件工程实践的必要性
软件生存周期
可行性分析与项目开发计划:确定软件的开发目标及其可行性。
需求分析:产生软件需求说明书文档。
概要设计:概要设计就是设计软件的结构并产生概要设计说明书文档。
详细设计:详细设计阶段的主要任务是对每个模块完成的功能进行具体描述,要把功能描述转变为精确的、结构化的过程描述。产生详细设计文档。
编码
测试:产生软件测试计划文档,测试用例和软件测试报告。
维护
软件过程:
软件构成三层含义:
个体含义,指软件产品或系统在生存周期中的某一类活动的集合。
整体含义,指软件产品或系统在所有上述含义下的软件工程的总体。
工程含义,解决软件过程的工程,应用软件的原则、方法来构造软件过程模型,并结合软件产品的具体要求进行实例化,以及在用户环境下的运作,以此进一步提高软件的生产率,降低成本。
能力成熟度模型(CMM)
CMM使软件组织能够较容易地确定其当前过程的成熟度并识别其软件过程执行中的薄弱环节,确定对软件质量和过程改进最为关键的几个问题,从而形成对其过程的改进策略。
CMM将软件过程改进分为以下5个成熟度级别:
- 初始级
- 可重复级
- 已定义级
- 已管理级
- 优化级
能力成熟度模型(CMMI)
CMMI是若干过程模型的综合和改进,是支持多个工程学科和领域的、系统的、一致的过程改进框架,能适应现代工程的特点和需要,能提高过程的质量和工作效率。
CMMI提供两种表示方法:阶段式模型和连续式模型。
阶段式模型:
结构类似于CMM,关注组织的成熟度。有5个成熟度等级。
初始的:过程不可预测且缺乏控制。
已管理的:过程为项目服务。
已定义的:过程为组织服务。
定量管理的:过程已度量和控制。
优化的:集中于过程改进。
连续式模型:
连续式模型关注每个过程域的能力,一个组织对不同的过程域可以达到不同的过程域能力等级。
能力等级可以独立地应用于任何单独的过程域,任何一个能力等级都必须满足比它等级低的能力等级的所有准则。
CMMI中包括6个过程域能力等级,等级号为0~5。
CL0(未完成的):过程域未执行或未得到CL1中定义的所有目标。
CL1(已执行的):其共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标。
CL2(已管理的):其共性目标集中于已管理的过程的制度化。根据组织级政策规定过程的运作将使用那个过程,项目遵循已文档化的计划和过程描述,所有正在工作的人都有权使用足够的资源,所有工作任务和工作产品都被监控、控制和评审。
CL3(已定义级的):其共性目标集中于已定义的过程的制度化。过程是按照组织的剪裁指南从组织的标准过程集中剪裁得到的,还必须收集过程资产和过程的度量,并用于将来对过程的改进上。
CL4(定量管理的):其共性目标集中于可定量的过程的制度化。使用测量和质量保证来控制和改进过程域,建立和使用关于质量和过程执行的定量目标作为管理准则。
CL5(优化的):使用量化(统计学)手段改变和优化过程域,以满足客户要求的改变和持续改进计划中的过程域的功效。
统一过程(UP)
统一过程模型是一种“用例和风险驱动,以架构为中心,迭代并且增量”的开发过程,由UML方法和工具支持。
统一过程定义了4个技术阶段及其制品:
初始阶段:生命周期目标。
精华阶段:生命周期架构。
构建阶段:初始运作功能。
移交阶段:产品发布。
总结:
我是衡钊清,北漂中的一员。
人生格言:[ 做一个决定,并不难,难的是付诸行动,并且坚持到底 ]