软件工程发展趋势

注册

 

发新话题 回复该主题

软件工程01 [复制链接]

1#
北京白癜风治疗专科医院 http://m.39.net/pf/bdfyy/

软件=程序+数据+文档

?程序:计算机可以接受的一系列指令,运行时可以提供所要求的功能和性能。

?数据:使得程序能够适当地操作信息的数据结构。

?文档:描述程序的研制过程、方法和使用的图文资料。

软件的本质特性

软件所具有的复杂性、一致性、可变性、不可见性等特性,使得软件开发过程变得难以控制

软件的复杂性

软件的一致性

软件的可变性

软件的不可变性

软件工程是

①将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护,即工程化应用到软件上;

②对①中所述方法的研究。

软件工程的发展

软件工程的基本要素

软件工程方法

面向服务:在应用表现层次上将软件构件化,即应用业务过程由服务组成,而服务由构件组装而成。

面向构件:寻求比类的粒度更大的且易于复用的构件,期望实现软件的再工程。

面向对象:以类为基本程序单元,对象是类的实例化,对象之间以消息传递为基本手段。

面向过程:以算法作为基本构造单元,强调自顶向下的功能分解,将功能和数据进行一定程度的分离。

软件开发的基本策略

软件工程的基本原理

用分阶段的生命周期计划严格管理

坚持进行阶段评审

实行严格的产品控制

采用现代程序设计技术

结果应能清楚地审查

开发小组的人员应少而精

不断改进软件工程实践

过程是一组将输入转化为输出的相互关联或相互作用的活动

软件开发活动

问题定义:人们通过开展技术探索和市场调查等活动,研究系统的可行性和可能的解决方案,确定待开发系统的总体目标和范围。

需求开发:在可行性研究之后,分析、整理和提炼所收集到的用户需求,建立完整的需求分析模型,编写软件需求规格说明。

软件设计:根据需求规格说明,确定软件体系结构,进一步设计每个系统部件的实现算法、数据结构及其接口等。

软件构造:概括地说是将软件设计转换成程序代码,这是一个复杂而迭代的过程,要求根据设计模型进行程序设计以及正确而高效地编写和测试代码。

软件测试:检查和验证所开发的系统是否符合客户期望,主要包括单元测试、子系统测试、集成测试和验收测试等活动。

软件维护:系统投入使用后对其进行改进,以适应不断变化的需求。完全从头开发的系统很少,将软件系统的开发和维护看成是一个连续过程更有意义。

软件开发管理与支持活动

(软件项目管理计划、软件配置管理计划、软件质量保证计划、评审记录……)

软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量和风险进行控制和管理的活动。

软件配置管理是通过执行版本控制、变更控制的规程,并且使用合适的配置管理软件,来保证所有产品配置项的完整性和可跟踪性。

软件过程模型

瀑布模型

将基本的开发活动看成是一系列界限分明的独立阶段,这是一种计划驱动的软件过程,有利于规范软件开发活动。

原型化模型

原型是一个部分开发的产品,用于加强对系统的理解,有助于明确需求和选择可行的设计策略。

迭代式开发

将描述、开发和验证等不同活动交织在一起,在开发过程中建立一系列版本,将系统一部分一部分地逐步交付。

可转换模型

利用自动化的手段,通过一系列转换将需求规格说明转化为一个可交付使用的系统。

敏捷开发方法

敏捷开发就是一种有效应对快速变化需求,快速交付高质量软件的迭代和增量的新型开发方法。它强调更紧密地团队协作,

分享 转发
TOP
发新话题 回复该主题