【软件评测】08软件工程

本文深入探讨了软件工程的各个方面,包括软件生命周期的各个阶段,如定义、开发和运维,以及软件开发模型如瀑布模型、敏捷方法等。文章强调了需求的层次和特征,介绍了概要设计和详细设计的重要性,同时还涵盖了MVC架构和能力成熟度模型(CMM)。
摘要由CSDN通过智能技术生成

软件工程概述

软件工程概念的提出是由于软件危机的出现

软件工程指运用计算机科学、数学管理科学等相关原理,以工程化的原则、工程化的方法来解决软件的问题的工程,其主要目的是提高软件的生产率,提高软件的质量,降低软件成本

软件工程的三要素—方法、工具、过程

  • 方法—指完成软件开发各项任务采用的技术
  • 工具—为了运用方法而需要采用软件的支持环境
  • 过程—为了获得高质量、低成本软件的一系列框架

软件生命周期

在这里插入图片描述

  • 可行性分析与项目开发计划----确定要开发的目标以及可行性,明确要解决的问题,该问题有没有可行的解决办法,如果有,需要多少费用、资源、时间,进行可行性分析,主要产物是可行性分析报告和项目计划书
  • 需求分析----为了解决提出的问题,确定软件的功能、性能、用户的界面,将系统提出逻辑模型,主要产物是软件需求说明书
  • 软件设计----将前面分析的逻辑模型转化为物理模型,分为概要设计和详细设计;

概要设计为设计系统的结构,由哪些模块组成,模块的结构层次、模块之间的调用、模块之前的调用、模块之间的交互,整体的数据结构和数据库结构,对于测试人员来说,还要确认集成测试的范围,主要产出为概要设计书;
详细设计主要完成每个模块功能的描述和设计,把功能编写一系列程序代码可实现的逻辑过程,主要产出为相机设计说明书;

  • 编码----将逻辑过程写成具体的程序代码,将物理模型转换为实际运行的系统
  • 测试----针对编写的程序模块,检查各个模块是否实现其功能,给出相关的评测报告
  • 维护----将程序代码发布至用户环境,进入维护阶段;维护是信息系统生命周期中花钱最多、延续时间最长的活动

软件定义阶段

基于瀑布模型,将软件分为定义阶段、开发阶段、运行维护阶段

定义阶段包括问题定义、可行性研究、需求分析

需求的层次

需求的层次包括业务需求、用户需求、系统需求

  • 业务需求–企业或客户对系统实现目标的要求
  • 用户需求–用户的具体目标
  • 系统需求–从系统角度来看软件的需求,包括功能需求、非功能需求、设计约束

功能需求–在系统中必须实现的功能需求
非功能需求–系统必须具备的属性,包括安全性、性能等
设计约束–在进行软件设计时限制的条件

需求的特征

需求的特征–完整性、正确性、可行性、可验证性、必要性、一致性

完整性–每一项需求都必须描述清除,使设计阶段人员能够获得正确的信息
正确性–正确的描述功能逻辑
可行性–在已知环境下可实现
必要性–每项需求都编写需求,可以追溯到每个用户
一致性–所有需求只有一个明确的统一的解释(术语等方面)
可验证性–每项需求是否可以通过测试用例去验证

软件开发阶段

开发阶段包括需求分析、软件设计、编码、测试

概要设计

概要设计也叫做总体设计

概要设计的内容–设计软件系统总体结构、数据结构及数据库设计

设计软件系统总体结构

  • 划分功能模块
  • 模块功能和职责
  • 模块间的调用关系
  • 模块间的信息传递
  • 评价模块结构的质量
    软件体系结构是在概要设计阶段进行的

数据结构及数据库设计

详细设计
  • 代码设计–信息的代码设计,比如说信息在系统中怎么管理
  • 输入/输出设计
  • 用户界面设计
  • 处理过程设计
  • 其他设计任务–标准化设计、描述设计结果、拟定实施方案
系统结构设计原则
  • 分解一一协调原则–把系统看作为一个整体,自顶向下分解、协调
  • 自顶向下的原则
  • 信息隐蔽、抽象的原则–信息隐蔽指的是通过封装技术,把一些机密信息,封装在模块内,用户只能看到输入输出;抽象指的是把具体的事情抽象成类或更高层的对象,通过系统去解决
  • 一致性原则
  • 明确性原则
  • 模块的扇入系统和扇出系数要合理

扇入:当前模块实现功能需要调用其他功能调入的个数称为扇入,扇入越大越好,扇入越大,模块的通用性越强,重复利用率较高

  • 模块的规模适当
聚合和耦合
<
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值