项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2023北航软件工程 |
这个作业的要求在哪里 | 团队项目-Alpha阶段项目计划 |
我在这个课程的目标是 | 学习软件工程技术,完成团队开发流程 |
这个作业在哪个具体方面帮助我实现目标 | 确定Alpha阶段功能实现与技术规范 |
技术规格说明书
- 一、技术栈
- 二、软件架构
- 1. 服务器与数据库
- 2. Django后端
- 3. Vue前端开发
- 4. 使用JSON进行前后端交互
- 三、系统的开发目标
一、技术栈
-
所选用的程序设计语言
-
前端语言:html+css+js
-
后端语言:python
-
-
基于上述语言,所选择的应用开发框架
- 前端:Vue.js
- 后端:Django
-
为了支持上述程序设计语言的开发、测试与部署,所必须的运行环境
- 数据库:使用mysql主数据库和Redis缓存数据库
- 服务器:使用腾讯云服务器
- 集成AI算法:
- 调用OpenAI API实现针对用户的定制化智能化服务,例如自然语言处理模型GPT-3,可以生成高质量的文本,如文章、新闻、诗歌等;图像生成模型DALL-E,可以根据用户输入的文本生成相应的图像;对话式语言模型chatGPT,可以做到与用户实时交流。
- ttext-to-image generation/retrieval
- automatic speech recognition
- 使用Electron将Web项目构建为跨平台的PC端桌面应用程序,或者完成移动端的UI适配
二、软件架构
软件的整体架构如下图所示:
1. 服务器与数据库
为了方便使用openai提供的api,我们选用了腾讯云海外服务器。采用MySql数据库进行数据的存储管理。
2. Django后端
Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架,基于 MTV 架构实现。利用 Django 提供的对象关系映射机制 (ORM)、路由管理、用户系统组件进行数据库交互与api开发,可起到简化开发,显著提高开发效率的效果。
3. Vue前端开发
Vue是一个流行的JavaScript框架,用于构建用户界面。Vue具有以下优点:
- 轻量级:Vue的体积很小,因此加载速度很快,适合用于移动应用和单页面应用程序。
- 易于上手:Vue的文档和API简单易懂,因此学习曲线较为平缓,即使是初学者也可以快速上手。
- 双向数据绑定:Vue实现了双向数据绑定,可以使数据的变化自动更新到视图,从而简化了开发过程。
- 组件化开发:Vue可以将整个用户界面拆分成多个可重用组件,使得代码的维护和开发更加方便。
- 虚拟DOM:Vue使用虚拟DOM来提高渲染性能,只对需要更新的部分进行实际的DOM操作,从而提高了应用程序的性能。
- 生态系统:Vue有很多插件和工具,例如Vue Router、Vuex、Vue CLI等,可以帮助开发者更快地开发和部署Vue应用程序。
4. 使用JSON进行前后端交互
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript语法,易于阅读和编写,并且可以被多种编程语言进行解析和生成。
我们所使用的Vue和Django都是常用的Web开发框架,它们之间可以通过HTTP请求来交换数据。由于两框架均可以轻松地对JSON进行解析和生成,因此我们选择使用JSON请求作为前后交互工具。后端Django负责处理业务逻辑和数据存储,前端Vue负责页面展示和交互操作,通过向后端发送请求获取数据或执行特定的操作。
三、系统的开发目标
-
需要完成哪些代码编写?
前端代码、后端代码、数据库代码等。其中,前端代码主要负责用户界面的展示和交互;后端代码主要负责业务逻辑的实现和数据处理;数据库代码主要负责数据的存储和管理。 -
需要完成哪些单元测试?
单元测试是测试软件中的最小可测试单元。在开发项目中,需要对每个模块的功能进行单元测试,以确保其正确性。单元测试通常包括三个部分:准备、调用和断言。其中,准备部分是为了准备测试环境,调用部分是为了调用被测模块的函数或方法,断言部分是为了验证被测模块的输出是否符合预期。在进行单元测试时,需要注意以下几点:- 单元测试应该覆盖所有可能的输入和输出情况。
- 单元测试应该尽可能地独立于其他模块。
- 单元测试应该易于编写和维护。
- 单元测试应该在开发过程中持续进行。
-
需要完成哪些系统压力测试?具体压力指标是多少?
- 确定存量数据的规模,分为单用户运行压力测试场景与多用户运行压力测试场景,对用户使用最频繁,或者操作复杂的业务,进行峰值业务量与实时业务响应时间的测试。
- 系统压力测试指标包括:CPU、内存、磁盘、网络等方面的测试。其中,CPU测试主要是针对CPU的负载情况进行测试,包括CPU的使用率、响应时间、并发数等;内存测试主要是针对内存的负载情况进行测试,包括内存使用率、内存泄漏等;磁盘测试主要是针对磁盘的负载情况进行测试,包括磁盘读写速度、磁盘空间等;网络测试主要是针对网络的负载情况进行测试,包括网络带宽、网络延迟等。
-
需要完成哪些真实测试?具体测试细节是怎样的?
- 集成测试:将各个模块组合起来进行测试,以验证模块之间的接口是否正确;
- 系统测试:将整个软件系统作为一个整体进行测试,按每项功能进行逐一测试,以验证其是否满足用户需求;
- 确认测试:在软件发布前进行的最后一次测试,基于多种浏览器版本及操作系统进行测试,确保软件已经达到预期的质量标准。
-
需要完成哪些系统文档的编写?需要详细到什么程度?
在软件开发过程中,需要编写的系统文档包括但不限于:需求文档、设计文档、测试文档、用户文档、安装文档、运维文档等。
- 需求文档是软件开发的第一步,它记录了软件的功能需求、性能需求、非功能需求等;
- 设计文档是软件开发的第二步,它记录了软件的架构设计、模块设计、接口设计等;
- 测试文档是软件开发的第三步,它记录了软件的测试计划、测试用例、测试报告等;用户文档是软件交付给用户使用的重要文档,它记录了软件的使用方法、操作流程等;
- 安装文档是软件安装时必须遵循的指南,它记录了软件的安装方法、环境要求等;
- 运维文档是软件上线后必须遵循的指南,它记录了软件的部署方法、维护方法等。
本文链接:https://my.lmcjl.com/post/10274.html
4 评论