1.软件部署对软件设计的影响。
2.面向对象的核心思想和局限性。(把数据及对数据的操作放在一起)
3.用户体验与需求分析。
4. 软件项目管理的体会。
5.软件体系结构的意义。
6.软件工程产生背景。
7.编码风格与开发效率。
8.软件项目开发中各角色之间的关系。
9.软件测试在软件开发各阶段中的体现。
参考评分标准:结合具体实验项目6w(4分);理论部分(3分);联系实际部分(3分)。
Who (谁或什么结构)
What (发生了什么变化或有什么)
How (怎样发生的)
When (什么时间或什么顺序)
Where (在什么场所或结构中发生的)
Why (为什么会发生这样的变化)
1、软件部署对软件设计的影响
理论:软件部署环节是指将软件项目本身,包括配置文件、用户手册、帮助文档等进行收集、打包、安装、配置、发布的过程。
项目基于Linux系统,以配置环境变量JDK为例分析6个W。
Who:开发人员
What:配置环境变量
How:通过配置/profile/etc下的路径实现
When:开发初期
Where: 在Centos7上
Why:项目部署到Linux成本低,安全性高
实践:本项目为宿舍送餐系统,在Linux上下载Jdk8后,编写基本的用户手册,将项目打包安装发布到Linux系统。
2.面向对象的核心思想和局限性。(把数据及对数据的操作放在一起)
理论:三大特性:封装、继承、多态
面向对象 = 对象(object)
+ 分类(classification)
+ 继承(inheritance)
+ 通过消息的通信
局限性:与AOP对比
Who:项目团队
What:对象(object)
+ 分类(classification)
+ 继承(inheritance)
+ 通过消息的通信
How:将数据及数据的操作封装为类
When:开发阶段
Where:POJO/entity层
Why:面向对象易维护、易复用、易扩展
实践:本项目基于SSM+SpringBoot框架,将基本信息与数据封装成user类customer类,将类进行实例化调用实例方法。
定义系统、确定执行者、确定用况图
3.用户体验与需求分析。
Who:项目经理
What:调查技术、经济、安全可行性后,研究项目具体做什么 (注册、显示菜单、订单、支付界面、消息反馈)
(1)前台功能
用户登陆注册功能:包括用户注册,登录;
用户查看功能菜单:包括用户个人订餐信息查询和订单状态跟踪;
用户签订菜单功能:用户订餐信息(品种,数量,送货地点等)提交,修改和删除;
用户确认无误付款功能:确定订餐信息无误之后付款。
(2)后台功能
食物管理:包括添加、修改、删除以及下线前台外卖餐品;
用户管理:包括用户维护、权限和积分管理等功能;
订单管理:订单的增删改查功能。
消息管理:订单系统前台通知消息。
How:事先通过对于宿舍人员的调研,调查主要喜欢的餐厅、用餐情况,绘制流程图、状态图、用例图、类图、顺序图等。
When:需求分析阶段
Where:文档形式
Why: 1.识别需求有效性 2.重塑原始需求 3.合理分配时间 4.指导设计方案
4. 软件项目管理的体会。
整个项目团队分为文档编辑、开发人员、测试人员、测试经理、项目经理、开发经理、设计师、运维师。使得项目能够井然有序的进行。
从整个项目的过程来看,团队合作中需要沟通、分工、协作和监督。只有做好这四项才算是一个好的合作团队。首先,团队合作最基本的技能就是沟通。第二,要详细制定计划,并严格按照计划来执行。
5.软件体系结构的意义。
体系结构,一般来说与需求密切相关的;明确的需求可以指定明确的软件规格,越明确的规格设计的架构越清晰。
常见的有CS模型、主从模型、分层模型。
本项目采用分层模式,
表示层 (也称为UI层 )
应用程序层 (也称为服务层 )
业务逻辑层 (也称为域层 )
数据访问层 (也称为持久层 )
(基于SSM框架,具体叙述每一个层的优点),SpringMVC是使用了MVC设计思想的轻量级web框架,对web层进行解耦,使我们开发更简洁
6.软件工程产生背景。
软件工程的兴起是为了解决软件危机的出现,(软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。)
危机实例:美国银行信托软件系统开发案
7.编码风格与开发效率。
If 语句需要加else
写一个方法get(){
}
或get()
{
}
一般整体需要统一缩进,统一格式。
使用IDEA编译器,通过JDK的新技术,以及下载好用的插件完成提高开发效率。
8、软件项目开发中各角色之间的关系
基本项目:为宿舍送餐的app
基本需求触发:我是12公寓的xxx,想要吃饭,但是某团显然送不到宿舍楼上,但我又懒得出宿舍,如何解决这个问题?
项目/产品经理:联系客户以后,分析需求,告知设计师,开发经理
设计师:对于软件蓝图由我来规划
开发经理:让开发人员写代码吧
测试经理:让测试人员写测试开发人员的代码,设计增量迭代,黑盒白盒测试用例,测试过程中要不断和其他经理沟通
测试人员与开发人员积极与经理沟通,提出问题
我作为测试人员,积极地与开发人员进行沟通交流,比如这个我发现登录模块用户名输入值是空,也能登录,可能是用户名数据库没有设置为非空字段,麻烦开发大大看一下吧。
9.软件测试在软件开发各阶段中的体现。
根据瀑布模型,分为需求分析-概要设计-详细设计-编码-测试-运维
需求分析阶段
在需求分析阶段,我作为软件测试人员参与需求开发的整个过程,审查宿舍送餐项目的用户需求和需求规格说明书。在这个阶段的后期,可以开始测试计划的编写,确定测试项,规划测试进度。
设计阶段
在设计阶段,主要职责是评审软件设计说明。测试人员对软件设计说明的评审要点包括:
设计是否覆盖所有的软件需求;
设计是否在技术上可实现;解决:使用JDK1.8,SpringMVC可实现
设计是否具有可测性和可维护性;解决:AOP面向切面编程
设计是否具有用户友好性。解决:界面图标清晰直观。
设计是否在技术上可实现;
设计是否具有可测性和可维护性;
设计是否具有用户友好性。
编码阶段
在编码阶段,测试人员要完成测试用例的设计,并且让测试用例通过评审。
测试阶段
黑盒测试、回归测试,对于重复性工作可以编写自动化脚本。
在测试阶段,测试人员的工作最为繁重,具体包括搭建测试环境,准备测试数据,执行软件测试,记录并上报软件缺陷,协助开发人员修复缺陷,对修复缺陷后的软件进行回归测试,对缺陷数据进行分析,编写软件测试报告。