第一次课 2022 09.05

第一次课 2022 09.05

一、获取技术知识

  • 理解系统建模
  • 学习建模
  • 在软件生命周期的不同阶段进行建模
  • 了解如何使用工具 CASE←商用(计算机辅助软件工程)starUML

二、软件工程是解决问题的活动

  • 分析:了解问题的本质,将问题分解成碎片
  • 合成:将碎片组成一个大结构
  • 为了解决问题我们使用
    • 技术(方法): 使用一些明确定义的符号产生成果的规范过程
    • 方法论: 应用于软件开发的技术集合,并通过哲学方法进行统一
    • 工具: 用于完成某种技术的仪器或自动化系统

三、软件工程的定义

  • 软件工程是一系列技术,方法和工具的集合,有助于生产:
    • 高质量的软件系统
    • 在给定的预算范围内
    • 在给定的截止日期之前

四、影响软件系统质量的原因

  • 复杂度
    • 系统过于复杂,以至于没有一个程序员能够理解他了
    • 引入一个错误修复会导致另一个错误
  • 变化
    • 软件系统的“熵”随着每次更改儿增加:每个实现的改变都会侵蚀系统的结构,从而使下一次更改的成本昂贵(软件动力学第二定律)
    • 随时间推移,成本变高从而无法推动系统完成预期任务

五、面对复杂的系统

  • 抽象
    • 处理复杂性的固有的人为限制 7+-2现象(人短时间只能记住5-9个概念)
    • 分块:对象的集合
    • 忽略不必要的细节
    • 系统模型
      • 对象模型:系统的结构是怎么样的
      • 功能模型:系统有哪些功能
      • 动态模型:系统如何对外部事件作出反应
    • 任务模型
      • PERT伯特图表:任务之间的依赖关系
      • 日程
      • 组织图
    • 问题模型
      • 已解决和未解决的问题,客户的限制,解决方案
  • 分解
    • 一种用于掌控复杂性的技术
    • 功能分解(按功能一层一层分解(偏底层))
      • 概念
        • 系统分解为模块
        • 每个模块都是应用域中的主要处理步骤
        • 模块可以分解成更小的模块
      • 缺陷
        • 功能遍布整个系统
        • 维护者必须了解整个系统才能对系统进行一次更改
        • 后果: 代码难以理解
        • 复杂且无法维护的代码用户界面通常很尴尬且不直观
    • 面向对象分解
      • 概念
        • 系统分解成类
        • 每个类都是应用域中的主要抽象
        • 类可以分解为更小的类
      • 类的识别(对于面向对象建模至关重要)
        • 基本假设
          • 新软件系统的类(绿地)
          • 识别现有系统的类(再造)
          • 创建基于类的借口(接口工程)
        • 有哪些限制?根据系统的用途
  • 分层分级
------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片