您现在的位置是:首页 >学无止境 >软件工程基础学习网站首页学无止境

软件工程基础学习

ww7758_ 2024-05-08 17:20:28
简介软件工程基础学习

目录

一、软件工程概述

二、可行性报告

三、需求分析

四、用例

五、软件设计模型

六、软件测试


一、软件工程概述

软件工程是关于开发高质量软件的学科,旨在提高软件开发过程的效率和质量。它的发展历史可以追溯到20世纪60年代,从那时起,软件工程一直是计算机科学领域中最重要的研究方向之一。

软件工程课程旨在向学生介绍软件开发的基本原理和技术,包括软件需求分析、设计、编码、测试和部署等方面的知识。通过学习软件工程课程,学生将能够了解如何构建高质量的软件,并掌握开发团队的协作能力和项目管理技术。

二、可行性报告

软件工程可行性报告是一份详细说明一个软件项目的可行性,包括技术、经济、法律和操作上的可行性分析。它通常由项目经理和软件工程师的团队编写,以帮助业主和投资者确定软件项目是否有意义和可行。

可行性报告通常涵盖以下几个方面

  1. 项目概述:介绍软件项目的背景和目的。
  2. 目标和目标用户:明确软件项目的目标和目标用户。
  3. 技术可行性:分析项目所需要的技术是否能够实现。
  4. 经济可行性:分析项目的成本和收益,以确定项目是否经济可行。
  5. 法律可行性:评估项目是否符合法律和法规要求。
  6. 操作可行性:分析项目在实施过程中是否能够顺利进行。

 

三、需求分析

系统需求是这个系统必须执行/支持的所有活动和必须满足的约束条件。通常分为功能需求和非功能需求。

功能需求:系统必须执行的活动。以工资管理系统为例,可能包括电子支付、计算工资、计算工资税、维护员工相关信息、社保、医保、公积金缴纳等等。

功能需求是根据公司开展业务交易的过程和业务规则确定的。有时这些规则详细记录与文档,从而易于确定和描述;而另外的一些规则可能隐蔽而难以被发现。而尽早发现这类规则是需求分析的重要任务。

非功能需求:是系统的固有特征,它不同于系统必须执行或支持的活动。区别功能/非功能需求并不容易,人们开发了一些架构来识别和分类需求的方法,如FURPS+架构(功能、可用性、可靠性、性能、可支持性的首字母),

 

常用的需求信息收集技术包括:

  1. 用户/系统干系人访谈
  2. 发放和收集调查问卷
  3. 检查输入、输出和文档
  4. 观察和记录业务流程
  5. 收集活跃用户的用户评论和建议

四、用例

用例是一种软件工程技术,用于描述系统如何与利益相关者(例如用户)交互以实现某种目标。在软件开发过程中,用例是描述系统功能需求和行为的一种有效的方式。

用例包含以下几个方面:

  1. 用例名称:用于描述用例的名称,通常用动词和名词组成。
  2. 角色:用于描述参与用例场景的利益相关者,例如用户或系统管理员。
  3. 前置条件:用于描述执行用例之前必须满足的条件,例如用户必须已经登录。
  4. 后置条件:用于描述用例执行成功后的结果,例如订单已经创建成功。
  5. 基本流程:用于描述用例的主要流程,也称为正常流程。其中包含了参与者的交互以及系统的响应。
  6. 替代流程:用于描述用例的替代路径,也称为异常流程。其中包含了可能导致用例失败的交互和系统的响应。
  7. 异常流程:用于描述用例的异常路径,也称为错误流程。其中包含了系统无法处理的错误和异常情况,例如系统崩溃或网络连接中断。
  8. 参考资料:用于描述用例所依赖的参考资料,例如用户手册或系统规格说明书。

以下为用例图之间的四种关系:

 

五、软件设计模型

软件设计有许多不同的模型,以下是其中的一些:

  1. 瀑布模型(Waterfall Model):这是一种线性的模型,软件开发过程按照特定的阶段进行,每个阶段完成后才能进行下一个阶段。这个模型适用于开发比较简单的软件,但在处理复杂的软件项目时存在一些问题。

 

2. 原型模型(Prototype Model):这个模型主要是为了快速开发原型而设计的。软件开发人员可以在开发周期的早期阶段创建一个原型,用于演示软件的某些功能,以便用户和开发人员可以更好地了解软件的需求。

 

3. 增量模型(Incremental Model):这个模型将软件开发过程分成小的增量,每个增量都是一个可工作的软件。在每个增量完成之后,软件开发人员和用户都可以对软件进行评估和反馈,以便在下一个增量中进行改进。

 

4. 螺旋模型(Spiral Model):这个模型是一种迭代式的模型,软件开发人员会在每个迭代中评估和改进软件,以便在开发周期的后期阶段获得更好的结果。

 

5. 敏捷模型(Agile Model):这个模型强调快速响应需求变化和软件开发过程中的灵活性和协作。软件开发人员和用户密切合作,以便在开发过程中及时反馈和改进软件。

 

每种模型都有自己的优点和局限性,应根据具体情况选择合适的模型或组合多个模型使用。例如,需求模型可以帮助确保系统满足用户需求和业务要求,行为模型可以帮助开发人员更好地理解系统的行为和反应,设计模型可以帮助开发人员更好地组织代码和模块。总之,采用多种模型可以使软件设计更加全面和准确,有助于实现高质量的软件系统。

六、软件测试

软件测试的基本流程

1、根据项目、产品的需求提炼测试需求。

2、根据测试需求和项目的整体计划,制定测试计划,测试方案等,包括测试的时间节点安排,人力资源安排,测试策略等,并进行评审。

3、根据测试需求以及相关的设计文档,编写测试用例,即明确每个测试点的具体的操作步骤,预期结果等内容,并对用例进行评审。

4、准备测试环境和测试数据,包括测试系统部署的硬件环境和软件环境。

5、执行测试用例,提交测试过程中发现的bug,并通过版本迭代进行回归测试,验证相关的bug。

6、完成内部软件系统的功能测试,系统测试之后,系统趋于稳定,提交客户进行验收测试。

7、编写软件测试报告。

8、对测试过程进行总结,并将测试过程中的所有文档进行归档。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。