zoukankan      html  css  js  c++  java
  • 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、执行迭代测试





  • 相关阅读:
    Spring框架开发的三种模式
    IDEA 的Surround With快捷键
    Spring框架IOC和AOP的实现原理与详解
    mitmproxy 安装配置
    adb 使用
    小象代理
    requests 模块查看请求的ip地址
    smtplib 邮件模块
    淘宝直播数据爬取 + 淘宝模拟登陆
    postgresql基础操作
  • 原文地址:https://www.cnblogs.com/zengyh-1900/p/5514779.html
Copyright © 2011-2022 走看看