【HelloKitty团队项目】Alpha阶段技术规格说明书

项目内容
这个作业属于哪个课程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具有以下优点:

  1. 轻量级:Vue的体积很小,因此加载速度很快,适合用于移动应用和单页面应用程序。
  2. 易于上手:Vue的文档和API简单易懂,因此学习曲线较为平缓,即使是初学者也可以快速上手。
  3. 双向数据绑定:Vue实现了双向数据绑定,可以使数据的变化自动更新到视图,从而简化了开发过程。
  4. 组件化开发:Vue可以将整个用户界面拆分成多个可重用组件,使得代码的维护和开发更加方便。
  5. 虚拟DOM:Vue使用虚拟DOM来提高渲染性能,只对需要更新的部分进行实际的DOM操作,从而提高了应用程序的性能。
  6. 生态系统: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 评论

留下您的评论.