P1_C1-3:系统分析与设计概要

SE(软件工程)


软件工程的概念在导论这门课介绍的比较清楚。这个地方,我们回想这几个概念,有个自己的理解就好:

  • 理解软件工程
  • 为什么学软工?
  • 软工的知识体系
  • 若干重要概念
  • 软工的演变与趋势

OOAD


阅读书上第1章

几个课外的概念

  • software crisis:
    • is a term used in the early days of computing science for the difficulty of writing useful and efficient computer programs in the required time
  • Constructive Cost Model(COCOMO):
    • an algorithmic software cost estimation model developed by Barry W. Boehm. The model uses a basic regression formula with parameters that are derived from historical project data and current as well as future project characteristics.
  • 必须要了解software engineering body of knowledge中本课涉及的KA(knowledge areas)
    • software requirements, software design, software construction,software development process, software engineering models and methods
  • 必须了解三种开发生命周期的特点
    • Waterfall development: 试图在编程之前详细定义所有或大部分需求
    • 优势1: 定义了软件开发基本流程,创意阶段描述问题、市场、关键技术等,分析阶段调查问题与需求
    • 劣势1: 人力资源问题,知识技能需求不同,人员数量要求不同
    • 劣势2: 容错问题能力,再后期发现需求问题,工作量难接受
    • 劣势3: 前后依赖问题,前面需求模糊,后面工作无法开展
  • Iterative and incremental developmen:允许在不完整的工作、不完美的知识储备下开始
    • 优势1: 逐步趋向稳定
    • 优势2: 有效管理需求变化
    • 优势3: 持续集成
    • 优势4: 尽早接触整个系统
    • 优势5: 在线风险评估
  • Agile development:
  • 软件企业的评价指标Capabilty Maturity Model Integration(CMMI)中的5个等级
    • Initial: 无序,自发生产模式
    • Managed: 建立了基本的项目管理,制定了必要的过程纪律
    • Defined:将软件管理和工程过程文档化、标准化
    • Quantitatively Managed: 定量理解与控制, 定量预测性能
    • Optimizing:工程量化反馈,不断改进

书本基本概念

  • Analysis:
    • 对问题和需求的调查, 在问题域中发现关键的概念类, “概念”
  • Design
    • 满足需求的概念上的一个解决方案,将概念类映射到软件类,在问题域外发现实现所需要的类设计框架等, “协作”

UML, 一种可视化语言

  • 三种应用UML的方式:
    • 草图:普通的使用方式, agile modeling 强调的
    • 蓝图:逆向工程-根据源码生成UML类图、包图, 前向工程-根据UML图生成源码
    • 编程语言: 自动生成可执行代码
  • 三种应用UML的perspective
    • conceptual perspective:描述现实世界
    • Specification perspective(少用): 描述软件中的实现,但是不说明技术
    • implementation perspective: 特定技术(如C++)中的软件实现
  • 不同perspective 中的类的概念
    • conceptual class: 真实世界中的概念
    • software class:过程或方法中,表示软件实现的类
    • implementation class: 特定语言中的类

Iterative, evolutionary, and agile


阅读书上第2章

Unified Process

  • UP
    • the process is scalable, effective, improves productivity, Iterative and incremental approach 允许从不完整的工作和不完备的知识开始
  • UP workflow:定义了一系列要执行的活动:
    • Business Modeling:定义问题等,建立用力模型
    • Requirements Analysis: 定义领域模型等
    • Design: 建立设计模型,设计用例在物理上的实现
    • Implementation: 编码
    • Test and Integration
  • Use Case Driven
    • 意味着团队从编程和测试中收集发现的需求,应用use case
  • Architecture Centric
    • 软件系统的整体结构、结构元素、结构元素之间的协作

Iterative and Evolutionary

  • Agile Methods and Attitude
    • 优先级最高的是,通过早期和持续交付有价值的软件来满足客户
    • 欢迎变更需求,即使在开发后期
    • 等等等等
  • Agile Modeling
    • 采用敏捷方法不是意味着不建模
    • 建模的目的主要是为了理解和沟通,不是为了交文档
    • 不要对所有软件都建模
    • 所有模型都可能不准确,最终代码和设计会与模型有差异
  • Worker参与系统的开发,Actor是使用系统的人,
  • stakeholder包括了workers和actors
  • Artifacts(制品),包括用例模型、领域模型、源码等等
  • Activities 表示的是工作流中要完成的任务,包括:迭代计划、找到用例和actors、执行迭代测试





posted on 2016-05-24 16:11  曾炒煮煎炖  阅读(241)  评论(0编辑  收藏  举报