当前位置: 首页 > news >正文

《软件工程导论》实验报告一 软件工程文档

目  录

一、实验目的

二、实验环境

三、实验内容与步骤

四、实验心得


一、实验目的

        1. 理解软件工程的基本概念,熟悉软件,软件生命周期,软件生存周期过程和软件生命周期各阶段的定义和内容。

        2. 了解软件工程文档的类别、内容及撰写软件工程文档的方法。

        3. 通过Internet搜索与浏览,了解网络环境中主流的软件工程技术网站,掌握通过专业网站不断丰富软件工程最新知识的学习方法,尝试通过专业网站的辅助与支持开展软件工程应用实践。

        4. 熟悉软件工具、软件开发环境和CASE工具。

        5. 了解《GB/T15853-1995软件支持环境》相关内容。

二、实验环境

        1. 操作系统:Windows 操作系统。

        2. 操作软件:WPS文档编辑器、谷歌浏览器。

        3. 学时分配:2学时。

、实验内容与步骤

        1. 查阅有关资料,给出“软件”的权威定义,请标明出处。

软件(中国大陆及香港用语,台湾称作软体,英文:software)是一系列按照特定顺序组织的计算机数据和指令的集合;在国标中对软件的定义为与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据;以开发语言作为描述语言可以认为:软件=程序+数据+文档。简单的说软件就是程序加文档的集合体。

                                                                                                                ——from百度百科

        2. 查阅有关资料,给出“软件生命周期”的权威定义,请标明出处。

软件生命周期也称为软件过程模型,是指从软件定义、开发、使用、维护到报废为止的整个过程,一般包括问题定义、可行性分析、需求分析、总体设计、详细设计、编码、测试和维护。

                                                                                                                ——from百度百科

        3. 查阅有关资料,给出“软件生存周期过程”的权威定义,请标明出处。

软件生存周期(SDLC,软件生命周期)是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。

                                                                                                                ——from知乎

        4. 查阅有关资料,给出软件工程文档的类别、内容及撰写文档的方式。

(1)软件工程文档大致分为:开发文档、管理文档、用户文档三类。

(2)可行性研究报告——可行性分析(技术上、经济上、社会条件上);实施方案;论证选定方案。

(3)项目开发计划——将开发过程中有关各项工作的负责人员、开发进度、经费预算、软硬件等问题做出的安排记载下来,以便根据本计划开展和检查本项目的开发工作。

(4)软件需求说明书——使用户和软件开发者双方对软件的初始规定有一个共同的理解,使之成为整个开发工作的基础。明确本系统的详细需求,供使用单位确认系统的功能和性能,并作为软件设计人员的设计依据和使用单位的验收标准。

(5)概要设计说明书——对系统设计的考虑,并且完成系统的大致设计、明确该系统的数据结构与软件结构,进一步细化该系统设计阶段得出的总体概貌。从该报告中能够看出该系统的组织结构、模块划分、功能分配和接口设计,为该系统的详细设计提供基础。

(6)详细设计说明书——说明一个软件系统各个层次的每一个程序(每个模块或者子程序)的设计考虑。对概要设计中产生的功能模块进行过程描述,设计功能模块的内部细节,包括算法和详细数据结构,为编写源代码提供必要的说明。

(7)数据库设计说明书——对于设计中的数据库的所有标识符、逻辑结构和物理结构做出具体的设计规定。用于指导该系统在数据库存储各方面的内容,为系统开发的程序员、系统分析员做为基准文档。

(8)数据要求说明书——向整个开发时期提供关于被处理数据的描述和数据采集要求的技术信息。明确《各项功能和非功能性需求实现时所需要的数据,并可以此数据为根据设计数据库。同时为概要设计和详细设计人员提供设计依据,其他本项目组的开发人员也可参阅。

(9)测试计划——提供对该软件的测试计划。对项目进行测试,详细记录测试过程,对软件的质量进行评估,同时为我们提供了更正系统漏洞的依据。本测试计划文档作为指导此测试项目循序渐进的基础,帮助我们安排合适的资源和进度,避免可能的风险。

(10)测试分析报告——把集成测试和确认测试的结果、发现以及分析写成文件加以记载。根据测试计划报告,对软件进行测试,详细记录测试过程,以对软件的质量进行测评,为软件设计人员提供BUG依据,故编写了此文档。

(11)项目开发总结报告——总结本项目开发工作的经验,说明实际取得的开发结果以及对整个开发工作的各个方面的评价。

(12) 操作手册——向操作人员提供该软件每一个运行的具体过程的有关知识,包括操作方法的细节。

(13)用户手册——使用非专门术语,给使用者一个使用指南,充分描述该软件系统所具有的功能以及基本的使用方法,并为用户提供遇到问题时的解决方法。使用户了解该软件的用途,正确使用它。

(14)开发进度月报——及时向有关管理部门汇报项目开发的进度和情况,以便及时发现和处理开发过程中出现的问题。

                                                                                                                ——from知乎

        5. 查阅有关资料,给出“软件工具”、“软件开发环境”、“CASE工具”的定义,并标明出处。

(1)软件工具是指为支持计算机软件的开发、维护、模拟、移植或管理而研制的程序系统。它是为专门目的而开发的,在软件工程范围内也就是为实现软件生存期中的各种处理活动(包括管理、开发和维护)的自动化和半自动化而开发的程序系统。

(2)软件开发环境(Software Development Environment,SDE)是指在基本硬件和数字软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称SDE。它由软件工具和环境集成机制构成,前者用以支持软件开发的相关过程、活动和任务,后者为工具集成和软件的开发、维护及管理提供统一的支持。

(3)CASE代表的是计算机辅助软件工程(Computer Aided Software Engineering)。CASE工具是一组软件应用程序,用于自动化SDLC活动。 CASE工具被软件项目经理,分析师和工程师用来开发软件系统。

                                                                                                                ——from知乎

        6. 填写下列学术术语的英文简写,并思考、理解其含义

(1)软件开发环境(Software Development Environment):

软件开发环境(简称SDE)指的是开发人员在创建、测试和部署软件应用程序时所需的一系列硬件、软件、工具和流程的集合。它是为了支持软件开发过程而构建的基础设施,旨在提供开发人员所需的资源和工具,以便高效地开发、测试和交付软件。

                                                                                                                ——from知乎

(2)软件工程环境(Software Engineering Environment):

软件工程环境(简称SEE)是指在构筑一个新软件时所依赖的条件工具和基础设施等,包括软环境和硬环境。SEE具有多维性,表现在不仅要集成与软件开发技术相关的工具,还要集成与支持技术、管理技术相关的工具,并将它们有机地结合在一起,强调支持软件生产的全过程。

                                                                                                                ——from知乎

(3)软件支持环境(Software Support Environment):

软件支援环境(简称SSE)是指辅助技术人员及管理人员更加高效、可靠地开发各类软件,并对已有软件进行维护的完整的软件系统,具有实用性、集成性、开放性、可移植性的特点。

                                                                                                                ——from知乎

(4)集成开发环境(Integrated Development Environment):

集成开发环境(简称IDE)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。让开发更加快捷方便,通过提供工具和各种性能来帮助开发者组织资源,减少失误,提供捷径。

                                                                                                                ——from知乎

        7. 通过查阅资料给出GB/T15853-1995《软件支持环境》规定的软件支持环境的基本要求。

GB/T15853—1995《软件支持环境》规定的软件支持环境的基本要求是承办单位必须规定、实现并集成全部软件及有关项目,以用于开发和支持按合同应交付的软件。承办单位还必须确定应推荐给软件支持部门的全部软件,以便于支持按合同交付的软件在整个生存期内正常运行。此外,还必须向软件生存期支持部门提供一些方法,以保证其有能力执行对按合同交付的软件的支持。

                                                                                                                ——from中国知网

        8. 了解Microsoft Visio的基本情况,试列出优势。

(1)Microsoft Visio是最流行的图表软件之一,可以在熟悉的界面中实现图表,数据可视化和流程建模。带有一系列模板和内置形状,几乎可以创建任何复杂的图表,允许用户定义自己的形状并将其导入到图形中。Microsoft Visio 是一款功能强大、操作简单的图表制作工具,可以满足用户制作各种图表和流程图的需要,是企业和个人进行图表制作的首选工具之一。

(2)Microsoft Visio 是微软公司开发的一款专业的绘图软件,主要用于制作各种图表和流程图,包括组织结构图、流程图、数据流图、网络拓扑图、UML图等。支持多种输出格式,可以输出为图片、PDF、HTML、Visio文件等。

(3)丰富的模板和符号库:Visio 提供了各种图表模板和符号库,包括组织结构图、流程图、数据流图、网络拓扑图、UML图等,可以帮助用户快速制作各种图表。

(4)操作简单:Visio 的操作界面简单直观,用户可以通过拖拽、连接符号等方式快速制作图表,而且支持快捷键操作,提高了工作效率。

(5)支持实时协作:Visio 可以通过 SharePoint 或 OneDrive 进行实时协作,多个用户可以同时编辑同一个文件,提高了团队协作效率。

(6)支持数据链接:Visio 可以与 Excel、Access、SQL Server 等数据源进行链接,可以通过数据绑定的方式动态更新图表数据,提高了数据可视化的效率。

(7)支持自定义样式:Visio 提供了各种预设样式,用户可以根据自己的需求自定义样式,以便更好地展现图表。

                                                                                                                ——from中国知网

        9. 列出常用的UML建模工具,选择一款逐步熟悉它。

(1)UML即Unified Model Language,是一种建模语言,也是标准建模语言。在软件开发中,当系统规模比较复杂时,需要用图形抽象地来表达复杂的概念,让整个软件设计更具有可读性,可理解性,以便尽早发现软件设计时存在的潜在问题,从而降低开发风险。同时,也极大地方便了业务人员与开发人员之间的交流。

(2)Enterprise Architect是一个全功能的、基于UML的visual CASE工具,主要用于设计、编写、构建并管理以目标为导向的软件系统。它支持用户案例、商务流程模式以及动态的图表、分类、界面、协作、结构以及物理模型。

(3)Umlet是开源的免费UML工具,这个软件实际上是用JAVA写的,还有有一套简化的语言,提供用编码的方式画时序图等各种图,也可以用code的方式自定义页面元素。

(4)Rational Rose是直接从UML发展而诞生的设计工具,它的出现就是为了对UML建模的支持,ROSE一开始没有对数据库端建模的支持,但是在现在的版本中已经加入数据库建模的功能。ROSE主要是在开发过程中的各种语义、模块、对象以及流程,状态等描述比较好,主要体现在能够从各个方面和角度来分析和设计,使软件的开发蓝图更清晰,内部结构更加明朗,对系统的代码框架生成有很好的支持。

(5)PowerDesigner是对数据库建模而发展起来的一种数据库建模工具。直到7.0版才开始对面向对象的开发的支持,后来又引入了对UML的支持。但是由于PowerDesigner侧重不一样,所以它对数据库建模的支持很好,支持了能够看到的90%左右的数据库,对UML的建模使用到的各种图的支持比较滞后。

(6)Visio 原来仅仅是一种画图工具,能够用来描述各种图形(从电路图到房屋结构图),也是到VISIO2000才开始引进软件分析设计功能到代码生成的全部功能,它可以说是目前最能够用图形方式来表达各种商业图形用途的工具。

                                                                                                                ——from中国知网

        10、列出主流的数据库设计工具,简要分析它们的特点。

(1)思迈特软件Smartbi——能打通各类数据源,丰富的数据连接能力能够从各种数据源中抓取数据进行分析,为用户提供了强大而灵活的数据获取能力。一方面继承了需要掌握sql和存储过程等倾向于技术人员的传统数据集,另外也具备可视化界面让业务人员也能实现数据准备。具有Excel融合分析、制作企业报表、图形可视化、进行地图分析、数据大屏幕、分析报告、自助查询、多维分析、移动应用、协同决策、运维可视化的特点。

(2)DbVisualizer集成了一个易用的界面。用户可以用它来浏览复杂的架构和编辑数据,使用户可以管理数据库服务器的实例、整体安全性、以及会话存储。具有友好的用户界面,并能够在所有流行的操作系统上运行。

(3)Vertabelo是一款在线的数据库设计工具,团队成员既可以通过Vertabelo轻松地在项目上开展协作,也可以通过电子邮件与团队成员共享访问的各种权限。目前,Vertabelo提供三种不同的访问级别:所有者、编辑者和查看者。具有友好且时尚的界面,它不但易于被访问和使用,并且易于在团队中实现工作的共享。

(4)DbSchema具有友好的用户界面,可简化数据库的设计。它能够为管理大型数据库提供友好的界面布局,以便用户更专注于数据库的特定功能。是一个多合一的数据库设计器与管理器。它被认为是管理复杂数据库的一款非常实用的工具。

(5)Toad Data Modeler是一款数据库建模工具,Toad Data Modeler使用到了自动化且直观的工作流程,并且内置了专业的知识库。随着时间的推移,Toad建立了一个大型开发者社区,并成为了广受欢迎的数据库方案。Toad集成了一套用户界面,它可以帮助用户更好地了解现有的数据库和对应的表之间的关系,进而创建各种逻辑和物理的数据模型。Toad是一个具有许多出色功能的数据库建模平台。

                                                                                                                ——from中国知网

        11. 列出当前流行的原型设计工具,说明应用场景。

(1)摹客RP——具备强大的高保真原型设计能力和团队协作能力。不仅保证了快速产出和精细设计两不误,同时满足产品经理、设计师的需要,在线工具的协作能力更是不容小觑:多人实时编辑,便捷的团队评审,工程师查看页面数据、复制代码等强大功能非常适合团队使用。摹客RP 是一款真正完全免费的原型设计工具,不限时长、不限功能、不限页面,自带交互效果的预设组件、海量图标、便捷的编辑方式,快速产出设计;支持页面交互、状态交互、组件交互,以及设置多种触发方式和交互动作,轻松制作精细交互效果;钢笔工具、铅笔工具、布尔运算、响应式布局等特色功能,设计创作自由随心;支持多人同时在线编辑同一项目,共同完成原型设计;设计稿中支持直接绘制流程图,清晰呈现项目逻辑;强大的协作功能:团队评审、工程师查看页面数据、复制代码、撰写在线文档、任务管理。适用于中高保真原型,快速原型, 团队协作,WEB/移动端/平板原型,线框图,视觉稿。

(2)墨刀是一款简单易上手的原型设计工具,内置丰富的组件库和图标库,很适合新手小白使用,当然专业的设计师也适用。可以从头开始绘制原型,也可以导入设计稿进行完成交互原型。其操作起来比较方便,组件自由拖拽,设置连接效果,添加动作效果,动作+目标+动效,交互逻辑清晰可见。墨刀支持在线团队协同,多人聚焦讨论,打开评论可以在线讨论并且第一时间收到产品的新增需求、产品细节和修改建议等等,随时随地沟通想法,在有问题时及时修改,免去完成后再回头改带来的麻烦。墨刀电脑、手机、微信等多种设备的完美演示,可以将作品分享出去,无论是在手机还是pc端等等都能查看,支持多人同时编辑,项目交接时,无需反复下载和上传文件,即时同步项目信息,交接流程更加高效。

(3)Axure是一款专业的快速原型设计工具,让负责定义需求和规格、设计功能和界面的专家能够快速创建应用软件或Web网站的线框图、流程图、原型和规格说明文档。Axure使用的人多,范围广,使得沟通,传输和修改便捷,功能强大,熟练使用库和自定义控件后,效率大幅提升。Axure主打的Web设计,因此生成的原型在移动端使用不方便。

                                                                                                                ——from中国知网

        12. 列出主流的源代码管理工具,简要分析它们的特点。

(1)CVS是一个常用的代码版本控制软件,主要会在开源软件管理中使用。一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。CVS版本控制系统是一种GNU软件包,主要用于在多人开发环境下源码的维护。在一台服务器上建立一个源代码库,可以存放源程序。由源代码库管理员统一管理这些源程序。每个用户在使用源代码库之前,首先要把源代码库里的项目文件下载到本地,然后修改,最后用CVS命令提交。这样一来,就好像只有一个人修改文件,不但避免了冲突,又做到跟踪文件变化情况。VSS 的费用较低、可以得到稳定的技术支持、安装和配置非常简单,对于该产品,不需要外部的培训。但是VSS 的安全性不高并且配置管理的功能比较基本。

(2)SVN是一个开放源代码的版本控制系统,是采用分支管理系统的高效管理。它管理着随时间改变的数据。这些数据放置在一个档案库中。这个档案库像一个普通的文件服务器,但是它会记住程序源码的修改以及变动。这样的话,不仅可以把程序源码恢复到改动之前的版本,也可以浏览程序源码的变动历史。SVN系统实现对项目软件的版本控制,一方面是通过实现历史操作记录查阅,而另一方面是通过进行组员间的协同开发以实现对项目软件的版本控制。可以完成精细的权限控制,还能完成更加个性化的功能、是开发源码软件,无需支付购买费用。但是SVN 的权限设置单一,无法完成复杂的权限控制、没有生产厂家为其提供技术的支持,如发现问题,通常只能靠自己查找网上的资料进行解决。

(3)GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,因此叫做GitHub。GitHub除了Git代码仓库托管及基本的Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱、代码片段分享等功能。其作为一个分布式的版本控制系统,在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用。GitHub可以托管各种git库,并提供一个web界面,并且在GitHub上,使用者可以找到海量的开源代码。

                                                                                                                ——from中国知网

        13. 列出主流的单元测试、集成测试、性能测试工具,简要说明各自特点。

(1)单元测试工具——JUnit针对被测对象再重新编写调用断言程序,从而验证被测函数或类的正确性,项目规模小的时候测试人员尚能承受,随着项目的不断复杂化,工作量呈数量级增加,测试人员需要投入更多的精力,而企业也需要投入更多的成本,而Junit的出现,解决了之前的一切问题,使得单元测试变得非常简单,易于实施。

(2)单元测试工具——TestNG与JUnit一样,属于Java语言中的一个测试框架,TestNG与JUnit相比功能更为强大,JUnit目前仅能实现单元测试,并且在编程语法上具有一定的局限性,而TestNG更为简洁,同时支持多组测试Case及更多的测试应用,如功能测试、自动化测试等。

(3)集成测试工具——Selenium 是一个用于 Web 应用程序自动化测试的工具,支持跨浏览器和跨平台测试,并提供丰富的 API 和测试脚本编写方式。

(4)集成测试工具—— JMeter 是一个 Apache 项目,用于进行负载测试、性能测试和压力测试,支持多种协议和测试脚本编写。

(5)性能测试工具——LoadRunner是一种评测软件系统性能的负载/压力测试工具。测试工程师利用该工具模拟成千上万个终端用户实施并发负载查找问题,并利用其自带的Analysis模块进行确认问题。LoadRunner适用于各种体系架构的软件系统性能测试,利用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。

(6)性能测试工具——JMeter和Loadrunner区别是,一个是开源免费,一个是收费,不开源。但是Loadrunner比Jmeter更加稳定,数据监控的报表也比Jmeter丰富。还有LoadRunner的IP欺骗功能可以更好地模拟实际用户场景。

                                                                                                                ——from中国知网

四、实验心得

        1、通过学习实验中给出的软件的权威定义,我认识到软件不仅仅是计算机程序的集合,还包括相关的文档、数据和配置文件等组成部分。软件是通过软件工程的生命周期过程进行开发和维护的,而软件工程文档的撰写是必不可少的一部分。了解了软件工程文档的类别、内容以及撰写方式,我意识到合适的文档可以提高团队协作和沟通效率,同时也对软件开发的质量控制起到重要作用。

        2、实验让我深入了解了软件工程的基本概念和软件开发过程,对软件的生命周期及每个阶段的定义和内容有了清晰的认识。

        3、通过使用适当的测试工具进行测试,可以帮助我更全面地了解软件的运行情况、发现潜在问题,并及时进行修复,保证开发的质量和效率。

        4、通过查阅资料对软件工具、软件开发环境和CASE工具的定义和特点的了解,我发现在软件开发过程中,合适的工具和环境能够提高开发效率、简化开发流程并保证质量。

        5、通过完成实验并总结经验,我对软件工程的知识有了更加系统和清晰的认识。我明白了软件开发过程中的各个环节和文档的重要性,同时也明确了需要使用适当的工具和环境来支持开发工作。作为一个软件工程师,我将在今后的学习和实践中更加注重对软件工程的规范和流程的遵循,同时也将积极利用各种工具和资源来提高自己的技术能力和工作效率。

http://www.xdnf.cn/news/1288459.html

相关文章:

  • 基于LLVM的memcpy静态分析工具:设计思路与原理解析(C/C++代码实现)
  • Life:Internship in OnSea Day 50, 51
  • 11. React组件插槽用法
  • Flink Python API 提交 Socket 数据源的 WordCount 作业
  • uni-app实战教程 从0到1开发 画图软件 (学会画图)
  • Flutter UI Kits by Olayemi Garuba:免费开源的高质量UI组件库
  • nvm install 14.21.3 时npm 无法下载和识别
  • -bash: ./restart.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录
  • 1.Ansible 自动化介绍
  • 串口通信“第二次总超时”的复盘
  • ETCD备份
  • aspose word for java 使用书签进行内容填充和更新
  • SM4对称加密算法的加密模式介绍
  • Python Day28 HTML 与 CSS 核心知识点 及例题分析
  • 自动驾驶 HIL 测试:构建 “以假乱真” 的实时数据注入系统
  • 《嵌入式Linux应用编程(四):Linux文件IO系统调用深度解析》
  • GraphQL 原理、应用与实践指南
  • 【Altium designer】快速建立原理图工程的步骤
  • Day05 店铺营业状态设置 Redis
  • MySQL-多表查询
  • 第23章,景深:技术综述
  • 下一代防火墙技术
  • 【KO】android 面试 算法
  • 数字气压传感器,筑牢汽车TPMS胎压监测系统的精准感知基石
  • 西门子S7-200与S7-1200通过PPI以太网模块通讯,赋能汽车制造行业发展
  • 如何在 Ubuntu 24.04 LTS Linux 中安装 JSON Server
  • WebAssembly的原理与使用
  • 前端最新Vue2+Vue3基础入门到实战项目全套教程,自学前端vue就选黑马程序员,一套全通关!笔记
  • Tauri Qt孰优孰劣
  • 计算机毕设不知道选什么题目?基于Spark的糖尿病数据分析系统【Hadoop+Spark+python】