软件工程

释放双眼,带上耳机,听听看~!

需求分析

  • 软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望。
  • 根据IEEE的软件工程标准词汇表,软件需求是指用户解决问题或达到目标所需的条件或能力,是系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力,以及反映这些条件或能力的文档说明。

需求的层次

  • 业务需求。是指反映企业或客户对系统高层次的目标要求,通常来自项目投资人、购买产品的客户、客户单位的管理人员、市场营销部门或产品策划部门等。
  • 用户需求。描述的是用户的具体目标,或用户要求系统必须完成的任务。
  • 系统需求。是从系统的角度来说明软件的需求,包括功能需求、非功能需求和设计约束等。

质量功能部署

质量功能部署QFD是一种将用户要求转化成软件需求的技术。其目的的是最大限度地提升软件工程过程中用户的满意度。为了达到这个目标,QFD将软件需求分为三类,分别是常规需求、期望需求和意外需求。

需求获取

常见的需求获取方法包括用户访谈、问卷调查、采样、情节串联板、联合需求计划等。

需求分析

一个好的需求应该具有无二义性、完整性、一致性、可测试性、确定性、可跟踪性、正确性、必要性等特性,因此,需要分析人员把杂乱无章的用户要求和期望转换为用户需求,这就是需求分析的工作。

在实际工作中,一般使用实体联系图(E-R图)表示数据模型,用数据流图(DFD)表示功能模型,用状态转换图(STD)表示行为模型。

软件需求规格说明书(SRS)

是需求开发活动的产物,编制该文档的目的是使项目干系人与开发团队对系统的初始规定有一个共同的理解,使之成为整个开发工作的基础。SRS是软件开发过程中的最重要的文档之一,对于任何规模和性质的软件项目都不应该缺少。

在国家标准GB/T8567-2006中,规定SRS应该包括以下内容:(1)范围、(2)引用文件、(3)需求、(4)合格性规定、(5)需求可追踪性、(6)尚未解决的问题、(7)注释、(8)附录。

需求验证

需求验证也称为需求确认,其活动是为了确定以下几个方面的内容:

  1. SRS正确地描述了预期的、满足项目干系人需求的系统行为和特征。
  2. SRS中的软件需求是从系统需求、业务规格和其他来源中正确推导而来的。
  3. 需求是完整的和高质量的。
  4. 需求的表示在所有地方都是一致的。
  5. 需求为继续进行系统设计、实现和测试提供了足够的基础。

一般通过需求评审和需求测试工作来对需求进行验证。

UML

UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。

UML机构包括:

  1. 构造块
  2. 规则
  3. 公共机制

UML中的事物

  1. 结构事物:结构事物在模型汇总属于最静态的部分,代表概念上或物理上的元素。
  2. 行为事物:行为事物是UML模型中的动态部分,代表世界和空间上的动作。
  3. 分组事物:分组事物是UML模型中组织的部分。
  4. 注释事物:注释事物是UML模型中的解释部分。

UML视图

  1. 逻辑视图:逻辑视图也称为设计视图,它表示了设计模型中在架构方面具有重要意义的部分,即类、子系统、包和用例实现的子集。
  2. 进程视图:进程视图是可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描述了并发与同步结构。
  3. 实现视图:实现视图对组成基于系统的物理代码的文件和构造进行建模。
  4. 部署视图:部署视图把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构。
  5. 用例视图:用例视图是最基本的需求分析模型。

面向对象分析

  1. 关联关系。关联提供了不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。关联体现的是对象实例之间的关系,而不表示两个类之间的关系。(用一条实线表示)
  2. 依赖关系。两个类A和B,如果B的变化可能会引起A的变化,则称类A依赖于类B。(用一条虚线加实心三角箭头表示)
  3. 泛化关系。泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。继承关系是泛化关系的反关系,也就是说,子类继承了父类,而父类则是子类的泛化。(用一条实线加空心三角箭头)
  4. 聚合关系。共享聚集关系通常简称为聚合关系,它表示类之间的整体与部分的关系,其含义是“部分”可能同时属于多个“整体”,“部分”与“整体”的生命周期可以不相同。(用一条实线加空心菱形箭头)
  5. 组合关系。组合聚集关系通常简称为组合关系,它也是表示类之间的整体与部分的关系。与聚合关系的区别在于,组合关系中的“部分”只能属于一个“整体”,“部分”与“整体”的生命周期相同,“部分”随着“整体”的创建而创建,也随着“整体”的消亡而消亡。(用一条实线加实心菱形箭头)
  6. 实现关系。实现关系将说明和实现联系起来。接口是对行为而非实现的说明,而类中则包含了实现的结构。一个或多个类可以实现一个接口,而每个类分别实现接口中的操作。(用一条虚线加空心三角箭头)

软件架构设计

软件架构为软件系统提供了一个结构、行为和属性的高级抽象。包括:

  • 构件的描述
  • 构件的相互作用(连接件)
  • 指导构件集成的模式以及这些模式的约束

软件架构风格

软件架构设计的一个核心问题时能否达到架构级的软件服用,也就是说,能否在不同的系统中,使用同一个软件架构。

将软件架构分为

  • 数据流风格
  • 调用/返回风格
  • 独立构件风格
  • 虚拟机风格
  • 仓库风格

软件设计

软件设计师需求分析的延伸与拓展。需求分析阶段解决“做什么”的问题,而软件设计阶段解决“怎么做”的问题。

结构化设计(SD)

SD方法的基本思想是将软件设计成由相对独立且具有单一功能的模块组成的结构,分为概要设计和详细设计两个阶段。

  • 在概要设计中,将系统开发的总任务分解成许多个基本的、具体的任务。
  • 为每个具体任务选择适当的技术手段和处理方法的过程称为详细设计。

面向对象设计(OOD)

OOD是OOA方法的延续,其基本思想包括抽象、封装和可扩展性,其中可扩展性主要通过继承和多态来实现。

设计模式

根据处理范围不同,设计模式可分为类模式和对象模式。

根据目的和用途不同,设计模式可分为创建型模式、结构型模式和行为型模式三种。

软件工程的过程管理

软件过程是软件生命周期中的一系列相关活动,即用于开发和维护软件及相关产品的一系列活动。

软件产品的质量取决于软件过程,具有良好软件过程的组织能够开发出高质量的软件产品。

软件测试及其管理

测试的方法

软件测试方法可分为静态测试和动态测试。

静态测试是指被测试程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测。

对文档的静态测试主要以检查单的形式进行,而对代码的静态测试一般采用桌前检测(Desk Checking)、代码走查和代码审查。

动态测试是指在计算机上实际运行程序进行软件测试,一般采用白盒测试和黑盒测试方法。

  • 白盒测试也称为结构测试,主要用于软件单元测试中。
  • 黑盒测试也称为功能测试,主要用于集成测试、确认测试和系统测试中。

测试的类型

根据国家标准GB/T15532-2008,软件测试可分为单元测试、集成测试、确认测试、系统测试、配置项测试和回归测试等类别。

软件集成技术

从单个企业的角度来说,EAI(企业应用集成)可以包括表示集成、数据集成、控制集成和业务流程集成等多个层次和方面。

表示集成是黑盒集成,常用的集成技术主要有屏幕截取和输入模拟技术。

数据集成是白盒集成。

控制集成也称为功能集成或应用集成,是在业务逻辑层上对应用系统进行集成的。

业务流程集成也称为过程集成,这种集成超越了数据和系统,它由一系列基于标准的、统一数据格式的工作流组成。

EAI技术可适用于大多数要实施电子商务的企业,以及企业之间的应用集成。EAI使得应用集成架构里的客户和业务伙伴,都可以通过供应链内的所有应用和数据库实现信息共享。

文章链接:https://www.67an.com/64
文章标题:软件工程
文章版权:七安 (67an.com) 所发布的内容,部分为原创文章,转载请注明来源,网络转载文章如有侵权请联系我们!
重要说明

本站资源大多来自网络,如有侵犯你的权益请联系管理员七安 或给邮箱发送邮件hello😀67an.com 我们会第一时间进行审核删除。站内资源为网友个人学习或测试研究使用,未经原版权作者许可,禁止用于任何商业途径!请在下载24小时内删除!


如果遇到评论下载的文章,评论后刷新页面点击对应的蓝字按钮即可跳转到下载页面本站资源少部分采用7z压缩,为防止有人压缩软件不支持7z格式,7z解压,建议下载7-zip(点击下载),zip、rar解压,建议下载WinRAR(点击下载)

给TA打赏
共{{data.count}}人
人已打赏
信息系统

常规信息系统集成技术

2019-12-27 18:20:45

信息系统

新一代信息技术

2019-12-29 18:28:48

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索