【软件需求分析与设计】01 软件过程

1.1 软件开发的本质

软件开发的本质问题体现在软件本身所固有的问题中,软件是一种创造性开发性行为的产品。而不是制造业重复性行为的结果。

软件开发的不便事实主要包括:

  • 复杂性
  • 一致性
  • 可变性
  • 不可见性

软件开发发生意外事件主要因素:

  • 利益相关者(客户、开发者)

  • 软件过程

  • 软件建模(软件开发活动)

    问题

  1. 迭代开增量开发的定义,举出软件开发职工迭代增量过程的五个例子。

     迭代是在实现软件的每一功能时反复求精的过程,是提升软件质量的过程,是从模糊到清晰的过程。在连续的迭代中增加细节,必要时引入变更和改进(使功能越来越好)
     增量是强调软件在发布不同的版本时,每次都发布一点点,使软件功能数量渐增地发布的过程。增量版本保持了用户的满意度,为尚在开发中的模块提供重要的反馈。(使产品越来越好)
     例子:
     	1. 螺旋模型
     	2. Rational 统一过程(RUP)
     	3. 模型驱动的体系结构(MDA)
     	4. 敏捷开发过程
     	5. 面向方面的软件开发
    
  2. 什么是 UML ?为了采用 UML,过程必须支持什么?UML 的缺陷是什么?说出 UML 中使用的三组模型并描述出它们的工作。

     	UML 指 Unified Modeling Language,即统一建模语言,是一种独立于开发过程、实现技术,遵循面向对象思想的建模语言。
     	采用 UML 的过程必须支持一种面向对象的方法来进行软件生产。
     	缺点是只能使用面向对象的方法来生产软件。
     	三组模型指:
     		状态模型:描述静态数据结构
     		行为模型:描述对象协作
     		状态改变模型:描述随时间的推移,系统所允许的状态。
    
  3. 根据您在软件产品方面的经验,您如何解释软件过程的本质是由固有的软件复杂性、一致性、可变性和不可见性所决定的这种观点?你如何解释这四个因素?软件工程如何与传统工程不同,如土木工程和机械工程?

     一些重要的软件特性不易受到人为因素的影响,这些特性在所有的软件项目中都保持不变,并需要在项目中得到承认,它们定义了软件生产的本质问题。
     复杂性:软件本身就是复杂的,复杂性是软件规模的函数,以及组成软件产品的构建之间相互依赖关系的函数。
     一致性:应用软件必须与其所基于的特定硬件/软件平台相符合,也必须与现有的信息系统相符合,并集成在一起。
     可变性:因为业务过程和需求是不断变化的,所以在建立应用软件时必须能容纳变化。
     不可见性:即使应用软件提供了可见的输出,但是负责输出的代码通常隐藏在不可见的程序语句、二进制代码库以及周边的系统软件中。
     软件是开发出来的,而不是成批制造出来的。虽然软件工程的发展为开发实践引入了更多的确定性,但并不能保证软件项目的成功。与软件工程相比,产品以数学般的精确来设计,然后利用机械和生产线来成批制造。
    

1.2 系统规划

1.3 三级管理体系

1.4 软件开发生命周期

1.5 开发模式与方法

1.6 案例研究

猜你喜欢

转载自blog.csdn.net/qq_37581282/article/details/82783869