信息系统项目管理师吧 关注:33,672贴子:73,246
  • 6回复贴,共1
1.软件工程由方法、工具、过程组成。
2.本贴下面将回复中讲述:
需求分析
软件架构设计
软件设计
软件工程的过程管理
软件测试及其管理
软件集成技术


1楼2019-12-29 23:22回复
    需求分析:
    一.需求的层次:
    1.业务需求:是反映企业或客户对系统高层次的目标要求,通过业务需求可以确定项目视图和范围。
    2.用户需求:描述用户的具体目标,或用户要求系统必须能完成的任务。访谈和问卷。
    3.系统需求:包括功能需求、非功能需求、设计约束。
    二、质量功能部署:是一种将用户要求转化成软件需求的技术,目的是提升软件工程过程中用户的满意度。分为三类:
    1.常规需求;用户认为系统应该做到的功能或性能。
    2.期望需求:用户想当然的功能或性能。
    3.意外需求:也称兴奋需求,用户要求外的功能或性能。意外需求是控制在开发人员手中的。
    三、需求获取:是确定和理解项目干系人的需求和约束的过程。
    1.常用的方法有:用户访谈、问卷调查、采样、情节串联板、联合需求计划。
    四、需求分析:
    1.好的需求应:无二义性、完整性、一致性、可测试性、确定性、可跟踪性、正确性、必要性。
    2.使用SA方法需求分析:建模核心是数据字典,有三个层次的模型:
    数据模型:用实体联系图(E-R图)表示。
    功能模型:用数据流图(DFD)表示。
    行为模型:用状态转换图(STD)表示。
    3.OOA模型包括:
    用例模型:使用用例的方法描述系统需求。
    分析模型:描述系统的基本逻辑结构。
    五、软件需求规格说明书:SRS.
    SRS应包含:范围、引用文件、需求、合格性规定、需求可追踪性、尚未解决的问题、注解、附录。
    六、需求验证:也称需求确认。包含以下内容:
    正确描述系统行为和特征,软件需求是从系统需求、业务规格、其他来源中正确推导来的,需求是完整和高质量的,需求的表示在所有地方都是一致的,需求为系统设计、实现和测试提供足够的基础。
    七、UML:
    1.包括:
    构造块:事物、关系、图。
    规则:是构造块如何放一起的规定,包括命名、范围、可见性、完整性、执行。
    公共机制:包括规格说明、修饰、公共分类、扩展机制。
    2.UML中的事物:分为:
    结构事物:类、接口、协作、用例、活动类、构件、节点。
    行为事物:交互、状态机。
    分组事物:包(只存在于开发阶段)。
    注释事物:解释部分。
    3.UML中的关系:
    依赖:一个事物变化会影响另一个。
    关联:一组对象间连接。
    泛化:一般化和特殊化的关系。
    实现:类之间的语义关系。
    4.UML2.0中的图:
    类图:描述一组类、接口、协作和它们之间的关系。
    对象图:描述一组对象及它们间的关系。
    构件图:类图的变体。
    组合结构图:用于画出结构化类的内部内容。
    用例图:系统的静态用例视图。
    顺序图:是一种交互图,专注于系统的动态图。强调时序。
    通信图:也是一种交互图,强调对象之间的协作关系,1.X版本叫协作图。
    定时图:计时图,也是交互图,强调消息跨越不同对象的实际时间。
    状态图:描述一个状态机,给出了对象的动态视图。强调事件导致的对象行为。
    活动图:系统的动态视图,强调对象间的控制流程。
    部署图:架构的静态部署视图。
    制品图:系统的物理结构,通常与部署图一起用。制品也给出它们实现的类和构件。
    包图:由模型本身分解而成的组织单元,以及它们之间的依赖关系。
    交互概览图:活动图和顺序图的混合物。
    5.UML视图:
    逻辑视图:设计视图,类、子系统、包、用例实现的子集。
    进程视图:是逻辑视图的一次执行实例,描述了并发与同步结构。
    实现视图:实现视图对物理代码的文件和构件进行建模。
    部署视图:把构件部署到物理节点上,表示软件到硬件的映射和分布结构。
    用例视图:最基本的需求分析模型。
    八、面向对象分析:
    OOA任务是做什么,OOD任务是怎么做。
    面向对象分析阶段的核心工作是建立系统的用例模型和分析模型。
    1.构建用例模型四阶段:识别参与者、合并需求获得用例、细化用例描述、调整用例模型。
    2.建立分析模型的过程:定义概念类、确定类之间的关系、为类添加职责、建立交互图。前三者称CRC建模(类-责任-协作者)。
    类之间的关系:
    关联关系:类A(直线)类B。
    依赖关系:类A(虚线+实心三角)类B。A依赖于B,B变化引起A变化。
    泛化关系:子类(实线+空心三角)父类。父类是子类的泛化,子类是父类的继承。
    聚合关系:部分类(实线+空心菱形)整体类。如车轮和汽车。车坏了车轮能用,车轮坏了可以换新的。
    组合关系:部分类(实线+实心菱形)整体类。如部门和公司。公司没了部门就没了。
    实现关系:类A(虚线+空心三角)类B。类A实现类B(接口)。


    2楼2019-12-30 23:06
    回复
      软件架构设计:
      解决好软件的复用、质量和维护问题,是研究软件架构的根本目的。
      1.软件架构风格:
      数据流风格:批处理序列、管道/过滤器。
      调用/返回风格:主程序/子程序、数据抽象和面向对象、层次结构。
      独立构件风格:进程通信和事件驱动的系统。
      虚拟机风格:解释器和基于规则的系统。
      仓库风格:数据库系统、黑板系统和超文本系统。
      2.软件架构评估:
      敏感点:一个或多个构件的特性。
      权衡点:影响多个质量属性的特性,是多个质量属性的敏感点。
      评估的方式分为三种:
      基于场景的方式:架构权衡分析法、软件架构分析法、成本效益分析法。在架构评估中,一般采用刺激、环境和响应对场景进行描述。
      基于调查问卷的方式(检查表)。
      基于度量的方式。


      3楼2019-12-31 23:42
      回复
        软件设计:
        一、结构化设计:SD是一种面向数据流的方法,它以SRS和SA阶段所产生的DFD和数据字典等文档为基础,是一个自顶向下、逐步求精和模块化的过程。SD的基本思想是将软件设计成由相对独立且具有单一功能的模块组成的结构,分概要和详细设计。基本原则是高内聚、低耦合。
        二、面向对象设计:
        OOD是OOA的延续,其基本思想包括抽象、封装和可扩展性,可扩展性通过继承和多态实现。
        OOD的原则;
        1.单一职责:设计功能单一的类,高内聚。
        2.开放-封闭:对扩展开放,对修改封闭。
        3.李氏替换:子类可以替换父类。
        4.依赖倒置:依赖于抽象而不是具体实现。
        5.接口隔离:使用多个专门的接口比使用单一的总接口要好。
        6.组合重用:尽量使用组合,而不是继承关系达到重用目的。
        7.迪米特:最少知识法则,低耦合。
        三、设计模式:
        基本要素:模式名称、问题、目的、解决方案、效果、实例代码、相关设计模式。
        1.按处理范围不同分:
        类模式:处理类和子类间的关系,在编译时被确定,属静态关系。
        对象模式:处理对象间的关系,在运行时变化,属动态关系。
        2.按目的和用途分:
        创建型模式:用于创建对象,包括工厂方法模式、抽象工厂模式、原型模式、单例模式、建造者模式。
        结构型模式:用于处理类或对象的组合,包括适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式。
        行为模式:用于描述类或对象的交互以及职责分配,包括职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式。


        4楼2020-01-01 21:57
        回复
          软件工程的过程管理:
          一、在软件过程管理方面,最著名的模型是能力成熟度模型集成。24个过程域。
          1.阶段式模型:基本沿袭CMM模型框架,保持4个成熟等级,过程域的阶段式分组如下:
          可管理级:需求管理、项目计划、配置管理、项目监督与控制、供应商合同管理、度量与分析、过程和产品质量保证。
          已定义级:需求开发、技术解决方案、产品集成、验证、确认、组织级过程焦点、组织级过程定义、组织级培训、集成项目管理、风险管理、集成化的团队、决策分析和解决方案、组织级集成环境。
          量化管理级:组织级过程性能、定量项目管理。
          优化管理级:组织级改革与实施、因果分析和解决方案。
          2.连续式模型:没有与组织成熟度相关的几个阶段。连续式分组将过程域分组如下:
          过程管理:组织级过程焦点、组织级过程定义、组织级培训、组织级过程性能、组织级改革与实施。
          项目管理:项目计划、项目监督与控制、供应商合同管理、集成项目管理、风险管理、集成化的团队、定量项目管理。
          工程:需求管理、需求开发、技术解决方案、产品集成、验证、确认。
          支持:配置管理、度量和分析、过程和产品质量保证、决策分析和解决方案、组织级集成环境、因果分析和解决方案。


          5楼2020-01-02 22:43
          回复
            软件测试及管理
            一、测试的方法:
            1.静态测试:被测程序不再机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测。包括对文档和对代码的静态测试。
            对文档的静态测试:以检查单的形式进行。
            对代码的静态测试:以桌前检查、代码走查、代码审查进行。
            2.动态测试:在计算机上实际运行程序。
            白盒测试:结构测试,主要用于软件单元测试。测试方法有:控制流测试、数据流测试、程序变异测试。最常用的技术是逻辑覆盖。
            黑盒测试:功能测试,用于集成测试、确认测试、系统测试。
            二、测试的类型:
            1.单元测试:也称模块测试,技术依据是软件详细设计说明书。
            2.集成测试:目的是检查模块之间,以及模块和已集成的软件之间的接口关系,并验证已集成的软件是否符合设计要求。技术依据是软件概要设计文档。
            3.确认测试:用于验证软件的功能、性能和其他特性是否与用户需求一致。包括内部确认测试、Alpha测试和Beta测试、验收测试。
            4.系统测试:技术依据是用户需求或开发合同。
            5.配置项测试:对象是软件配置项,目的是检查软件配置项与SRS的一致性。在单元测试和集成测试后进行。
            6.回归测试:变更部分的正确性和对变更需求的符合性。
            三、面向对象的测试:
            测试的焦点从模块移向了类,测试的视角扩大到了分析和设计模型。
            OO系统三大特征:封装、继承、多态。
            四、软件调试:
            软件调试策略:蛮力法、回溯法、原因排除法。
            调试是测试后的活动。
            测试从已知条件开始,有预知结果。调试从未知条件开始,结果不可预计。
            测试可以提前确定进度,调试无法描述过程或持续时间。
            五、软件测试管理:
            包括:
            过程管理:测试活动管理和测试资源管理。
            配置管理:测试过程中产生的各种工作产品纳入配置管理。
            评审:测试就绪评审和测试评审。


            6楼2020-01-03 23:32
            回复
              软件集成技术
              从单个企业的角度来说,企业应用集成EAI包括:
              1.表示集成:也称界面集成,是黑盒集成,常用集成技术有屏幕截取和输入模拟。用户界面为集成点。
              2.数据集成:是白盒集成,中间件为集成点。
              3.控制集成:也称功能集成或应用集成,是在业务逻辑层上对应用系统集成的。集成点存于程序代码中。
              4.业务流程集成:也称过程集成,由一系列基于标准的、统一数据格式的工作流组成。
              5.企业之间的应用集成。


              7楼2020-01-04 08:47
              回复