zoukankan      html  css  js  c++  java
  • 需求分析与系统设计总结

    课程体系:


    主要目标:
    课程理论化的知识比较多,需要理解和记忆;整个课程体系从全局的高度上概括了软件开发过程中的需求分析和系统设计,详细介绍了开发流程,利用可视化工具对开发中的实际问题做了形象的表达,是项目开发前期的必要准备;是一门培养项目经理的课程。

    重点难点:

    UML
    数据持久化
    开发模型与方法
    学会使用画图工具

    一. 软件过程
    软件开发的本质
    1.软件开发的不变事实:
    一致性:应用软件必须与所基于的特定硬件/软件明天相符合,也必须与现有的信息系统相符合,并集成在一致。
    可变性:业务过程和需求会不断的变化。
    不可见性:负责输出的代码通常深深地隐藏在”不可见”的程序语句,二进制代码库,以及周边的系统软件中

    2.软件开发的意外事件的三个因素:
    利益相关者,过程,建模

    软件开发生命周期
    软件生命周期的5个阶段:
    业务分析,系统设计,实现,集成和部署,运行和维护。
     业务分析:确定和详细说明需求,开发和集成系统的功能和数据模型,并捕获非功能性需求和其他系统约束。
     系统设计:包括体系结构设计和详细设计。对涉及客户端的用户界面和服务器端的数据库对象的程序设计进行解释。提出影响系统可理解性,可维护性和可扩展性的各种设计问题,并对其文档化。
     实现:对客户端应用程序和服务器数据库进行编码,测试等,保证系统实现符合系统设计。
     集成和部署:将系统的组成构建组装在一起,以及与外部系统的对接。
     运行和维护:使用新系统替换老系统,保障新系统的正常运行,并承接对新系统的修正和扩展工作。

    软件生命周期各阶段输入输出

    开发模型与方法
    主要的开发模型与方法
     瀑布模型
    要求每一个阶段都有明确的文档产出,对于严格的瀑布模型每一个阶段都不应该重叠,而应该在评审通过、相关的产出物都已经实现后才能够进入到下一个阶段。就是说瀑布模型一般是按顺序执行的

     螺旋模型
    螺旋模型并不是一个完全独立的模型,而是与瀑布模型有着内在联系。它遵从瀑布模型“需求→架构→设计→编码→测试”的路线。其最大的特点是整个开发过程是迭代的和风险驱动的。就是通过将瀑布模型的多个阶段转化到多个迭代过程中,以减少项目的风险。

     敏捷开发
    敏捷开发是一种价值观与原则,指导我们更加高效的开发。以用户需求为核心,采用迭代(时间周期)、增量(循序渐进,功能模块)的方式开发软件,目的在于快速覆盖、响应市场需求
    特点:迭代开发,增量交付,开发团队和用户反馈推动产品开发,持续集成,开发团队自我管理

     面向方面开发
    AOP的主要目标是通过识别所谓的横切关注点,以及为这些关注点生产独立的软件模块来生产出更加模块化的系统。这些模块成为方面,利用成为方面编排的过程将方面集成起来。
    AOP的几个概念:
    方面:功能模块,AOP将系统分解成许多方面,这些方面构成了核心功能构建,称为基础代码。
    连接点:软件组成的预定义的点,例如对方法的调用,对属性的访问,对象的实例化和抛出异常等。
    通知:需要为连接点采取的特定动作称为通知(例如,检查用户的安全性权限,或开始一个新的业务事实)。通知可以在链接点执行之前运行(前置通知),也可以在链接点完成之后运行(后置通知),或者可以取代连接点的执行(环绕通知)
    方面编排:方面构成了单独的方面代码,为了这样的系统能够运行,软件构件必须由方面组成,必须将方面编排到程序的逻辑流中,这样的一个软件组成过程称为方面编排。
    切入点:同一个通知可以应用到程序的许多连接点,与单个通知相关的一组链接称为切入点。

  • 相关阅读:
    字母次数
    hdu 2051 Bitset(十进制到二进制)
    练习1升级
    实验一写能自动生成小学四则运算题目的程序
    TCP/IP bad check sum
    Lua GC 之 Ephemeron
    RHEL6下VNC安装和配置
    qpid安装
    关闭中国电信无线客户端自动更新
    Python GC
  • 原文地址:https://www.cnblogs.com/SeaTop/p/14631558.html
Copyright © 2011-2022 走看看