software process(软件过程)

software process(软件过程)

The nature of software development
软件开发的本质

System planning
系统规划

Systems for three management levels
三层管理系统

The software development lifecycle
软件开发生命周期

Development models and methods
发展模式及方法

Problem statements for case studies (separate set of slides)
案例研究的问题陈述(独立的幻灯片组)

Development models and methods

发展模式及方法

“how " of software production
软件如何生产

called also lifecycle models
也叫作生命周期模型

Development models

Model defines an approach to software production
模型定义了软件生产的方法

Has an associated process-iterative and incremental
是否有相关的过程——迭代和增量

Process is unique(different) for each organization
每个组织的过程都是独特的(不同的)

Representative models for iterative and incremental development;
迭代和增量开发的典型模型:
the spiral model 螺旋模型
the IBM Rational Unified Process(RUP) IBM Rational统一过程(RUP)
Model Driven Architecture(MDA) 模型驱动架构(MDA)
agile software development 敏捷软件开发
aspect-oriented development 面向方面的发展

Spiral model

software process(软件过程)
software process(软件过程)
项目分析象限—风险分析
风险分析决定是否转移到下一个象限
工程象限–估算项目进展,进入下一个项目之前,要进行用户评估

IBM Rational Unified Process(RUP)

软件开发过程平台
RUP在二维关系中组织项目
初始、细化、构造、转换

RUP强调迭代开发
定制项目
RUP具有普遍适用性
software process(软件过程)
RUP organizes projects in two-dimensional terms
RUP以二维的方式组织项目

The horizontal dimension represents the successive phases of each project iteration:
水平维度表示每个项目迭代的连续阶段:

The vertical dimension represents seven software development disciplines and supporting activities of configuration and change management, project management, and environment.
垂直维度代表了七个软件开发规程,以及配置和变更管理、项目管理和环境的支持活动。

Model Driven Architecture (MDA)

为系统详细说明为系统有关的模型或无关的模型
MDA提供了工具和技术,MDA概念提供关联主要概念
software process(软件过程)

Agile software development

敏捷软件开发
software process(软件过程)

Key points of agility in software production:
软件生产中的敏捷性要点:

Individuals and interactions over processes and tools
个人和交互超过了过程和工具

Working software over comprehensive documentation
工作软件胜过全面的文档

Customer collaboration over contract negotiation
客户合作重于合同谈判

Responding to change over following a plan
响应变化而不是遵循计划

The best known representatives:
最著名的代表

  • eXtreme Programming(XP) 极限编程(软件名)
  • Aspect Oriented Software Development 面向方面的软件开发
  • Feature-Driven Development 驱动开发
  • Lean Development 精益开发

Aspect-oriented software development

software process(软件过程)
Produces more modular systems by identifying so called crosscutting concerns
通过确定所谓的横切关注点来产生更模块化的系统

Typically, nonfunctional requirements/qualities
通常情况下,非功能需求/品质

The modules are called aspects
这些模块称为方面
基本代码vs方面cod