面向对象建模分析(一)

面向对象分析方法

软件的错误是怎样产生的?软件工程的挑战有哪些

  1. 交付的软件不是用户需要的
  2. 用户需求的变化
  3. 风险没有管理
  4. 无力的团队管理

软件

软件是一种特别的产品,随着规模和复杂性的进步以及应用领域的扩大逐渐形成了工程。
是计算机中与硬件相互依存的另一部分,包括程序、数据和说明文档。

程序是按照设计要求和性能指标设计的指令序列

数据是程序能够正常操纵信息的数据结构

说明文档是用于开发和维护软件程序的各种图文资料。

软件工程

软件工程是软件的工程性方法,涵盖了所有生命周期,并提供了一整套工程性方法来指导软件开发。

软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科。

包含:1. 软件开发技术 2. 软件项目管理

软件工程三要素:方法、工具、过程

软件工程应包括的知识(10个):软件需求、软件设计、软件构建、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程工具和方法、软件质量

软件的发展历程经历了哪几个阶段,每个阶段的特点是什么?

  • 第一阶段:程序设计阶段
    • 个人英雄主义的开发、软件开发就是程序设计、不考虑通用型
    • 文档不全
    • 只有程序的概念,没有软件的概念。
    • 采用汇编语言、机器语言应对计算机性能问题
  • 第二阶段:软件设计阶段
    • 程序规模增大、需小组协作生产
    • 由小组运行、维护
    • 程序重要性提升,不再被视作硬件的附属成分。
    • 在计算机系统的开发过程中与硬件工程师共同起主导作用。
  • 第三阶段:传统软件工程阶段
    • 采用工程化生产方式
    • 软件产业兴起
    • 软件开发成功率、质量大大提升。
    • 软件工程并发环境及并发环境涌现,度量问题得到重视。
  • 第四阶段:现代软件工程阶段
    • OOP广泛使用
    • 软件开发技术逐渐成熟

软件危机

指计算机软件的开发和维护过程中所遇到了一系列严重问题。

软件生命周期

包括分析、设计、实现、测试和维护等。

软件工程的框架

软件工程目标:正确性、可用性、费用合算

软件工程活动:需求、设计、实现、确认、支持

软件工程原则:适宜开发范型、合适设计方法、高质量工程支持

软件过程

是为了获得高质量软件所需要完成的一系列步骤。

生命周期模型把生命周期划分成那些阶段以及执行顺序,也称为软件过程模型。

常见模型:瀑布模型、快速原型模型、增量模型、螺旋模型

瀑布模型

瀑布模型.jpg

应用场景:大型软件项目;需求明确;需求变化少

特点:

  • 阶段间具有顺序性和依赖性
  • 推迟实现的观点。
  • 质量保证的观点

优点:

  • 严格规定了必须提交的文档
  • 按活动划分的检查点
  • 当前阶段完成后,只需关注后续阶段

缺点:

  • 阶段划分固定、阶段间大量文档增加工作量
  • 开发模型线性,只有在过程结束才能看到成果,增加风险
  • 早期的错误可能要等到末期测试才能发现,带来严重后果

快速原型模型

快速原型模型.jpg

应用领域:客户不熟悉软件、沟通理解困难

优点:

  • 减少需求不明确带来的开发风险
  • 更好和客户沟通
  • 减少技术、应用风险,缩小成本,提高产品质量

缺点

  • 尽可能快速建造原型、限制开发人员创新
  • 所选技术工具不一定主流,效率低
  • 可能导致产品设计差
  • 客户确定真正需求、原型可能被抛弃

增量模型(演化模型)

增量模型.jpg

适用范围:需求比较明确、架构稳定

优点:

  • 及时反馈、适应变化好
  • 客户看到不断变化的软件,降低开发风险
  • 团队士气的鼓舞

缺点:

  • 需要开放式的体系结构,维护难度大
  • 容易退化为边做边改模型、使软件过程控制失去整体性

螺旋模型

螺旋模型.jpg

适用范围:大型复杂的系统

优点:

  • 强调可选方案以及约束条件支持软件重用
  • 有助于提升软件质量

缺点:

  • 要求客户接受相信风险分析
  • 风险分析成本过大则无意义
  • 需善于识别风险且准确

结构化方法(面向功能、数据流软件开发方法,结构化生命周期法)

五个阶段:规划、分析、设计、实施、运行维护
Jackson方法的表示:顺序、选择、重复

面向对象软件开发方法

自底向上的归纳、自顶向下的分解,尽可能运用人类自然思维方式

要点:

  • 客观世界由各种对象组成
  • 所有对象划分为类
  • 类具有登记
  • 对象之间通过消息交互

三大重要特征:封装、继承、多态

基本概念:对象、类、封装...

核心概念:对象、类

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容