软件工程导论

软件工程导论——结对编程项目总结

眉间皱痕 提交于 2019-11-30 16:31:07
结对编程总结 1、关于复用个人项目实现结对编程项目 在与结对伙伴的讨论后,决定了各自负责的需求,那么我负责的是实现生成试卷以及答题窗口。对比个人项目,我需要实现的功能是显示一个答题窗口,而且每次显示一题,在答完了一题之后才可以进行答下一题,直到答完最后一题,点击提交试卷就会显示试卷分数。所以如何复用呢?相对于在个人项目中直接的生成试卷并写在 txt 文件中,这一次我把试卷题目和答案存储在一个二维字符串数组里,并且把生成试卷的方法以及显示窗口的方法写在两个类中,在显示窗口的类中调用生成试卷的类并实现其中的方法,将题目数据传到显示窗口类中,将其一题一题显示。 2、结对编程经验教训 ①控制显示内容 在做项目的过程中,一个待实现的需求是答完一题才能进入下一题的答题,在我把四个单选按钮实现之后,在 “下一题”这一个按钮上我发现无法直接让显示试题内容的标签的内容跳到下一题 ( 我用一个整数控制第几题,而按钮监听器无法对其进行控制 ) ,在查询了网上的做法之后,发现必须把控制显示试题第几题的整数设置为类的静态变量成员,如此才能在按钮的监听器上改变其的值,以此做到做完一题就会跳下一题。 ②关于静态方法以及类方法 在做项目之前与伙伴的讨论中,伙伴建议我多写几个类,这样可以做到每个功能对应的类,阅读起来一目了然,我也觉得这样做很好,但在实现窗口的类中 ( 此类为主类 )

《软件工程导论》课后习题答案

六眼飞鱼酱① 提交于 2019-11-30 09:47:29
来源:https://blog.csdn.net/Rong_Toa/article/details/80771976 第一章 软件工程概论 1.什么是软件危机? 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面: (1)用户对开发出的软件很难满意。 (2)软件产品的质量往往靠不住。 (3)一般软件很难维护。 (4)软件生产效率很低。 (5)软件开发成本越来越大。 (6)软件成本与开发进度难以估计。 (7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。 2.为什么会产生软件危机? (1)开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。 (2)软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。 (3)尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。 3.怎样克服软件危机? (1)充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训

软件工程导论————队友个人代码分析

扶醉桌前 提交于 2019-11-30 03:35:17
前言 本次软工学习流程分个人项目、结对编程以及团队项目,其中结对编程为个人项目的优化,此处对结对编程的队友的个人项目代码进行个人的分析并互相学习 从程序结果看需求实现(以用户李四1为例) 登录并生成题目 题目展示 需求的实现分析 用户端功能——用户登录、选择等级、生成题目、退出登录 文件结构目录——用户/题目等级/xx.txt 题目规范——小学、初中、高中均满足题目要求 补充:关于txt文件里保存的题目,两道题之间没有空行应该是漏看了需求,因为不是很难的问题,这里点一下 从代码结构到内容实现 技术选型:python 结构框架:代码没有冗杂在一个.py文件里,多文件编程,main.py主要编写程序的流程,使得流程清晰,generate.py则主要编写题目生成算法,算是个人项目里较核心的部分 代码内容:在mian程序为了控制用户的使用流程,嵌套了三个while(True)循环,使用时一定注意不要死循环,最后的控制效果大体上令人满意;在generate程序里通过个人对题目的理解,设计了一套加括号、加幂指数以及加三角符号的算法,实现效果还可以,因为根号的表示原因,存在根号表示范围不明确的通病;在user程序采用读文件方式,读取存储在文件中的已添加用户 个人角度评价优劣 优点 代码完成度较高,结构层次清晰 生成的题目美观度能够令人满意 用户的处理采用文件,方便添加用户(需求里没要求) 缺点

软件工程导论——结对项目队友代码分析

荒凉一梦 提交于 2019-11-30 03:34:52
背景介绍 软件工程这门创新课程,提倡做中学。我们一开学边感受到了他的威力,第一周便要求完成一个个人项目。在第二周的结对编程中,我们互相审核搭档的代码,进行学习。 技术选型分析 我的队友不仅仅停留在命令行上,而是搭建了图形界面,技术选型选择了Electron与React。 Electron是GitHub开发的一个开源框架。它允许使用Node.js和Chromium完成桌面GUI应用程序的开发。Electron现已被多个开源Web应用程序用于前端与后端的开发,著名项目包括GitHub的Atom和微软的Visual Studio Code。 React是一个为数据提供渲染为HTML视图的开源JavaScript 库。React视图通常采用包含以自定义HTML标记规定的其他组件的组件渲染。React数据改变时对HTML文档进行有效更新,和现代单页应用中组件之间干净的分离。 Electron进程通信基本知识 Electron 运行package.json的main脚本的进程被称为主进程。 在主进程中运行的脚本通过创建web页面来展示用户界面。 一个 Electron 应用总是有且只有一个主进程。 由于 Electron 使用了 Chromium 来展示 web 页面,所以 Chromium 的多进程架构也被使用到。 每个 Electron 中的 web 页面运行在它自己的渲染进程中。

软件工程导论复习

旧巷老猫 提交于 2019-11-27 06:09:59
软件工程导论 1. 软件的概念? (判断?) 虽然软件对于现代的人并不陌生,但很多人对于软件的理解并不准确, “软件就是程序,软件开发就是编程序”的这种错误观点仍然存在。 什么是软件 2.什么是软件? 软件是 计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。 程序 按事先设计的功能和性能要求执行的指令序列。 数据 使程序能正常操纵信息的数据结构。 文档 与程序开发,维护和使用有关的图文材料。 2. 软件危机及其具体表现? 主要表现为:软件的发展速度远远滞后于硬件的发展速度,不能满足社会日益增长的软件需求。 软件开发周期长、成本高、质量差、维护困难 。 ( 1 )经费预算经常突破,完成时间一再拖延。由于缺乏软件开发的经验和软件开发数据的积累,使得开发工作的计划很难制定。主观盲目制定计划,执行起来与实际情况有很大差距,使得开发经费一再突破。由于对工作量估计不足,对开发难度估计不足,进度计划无法按时完成,开发时间一再拖延。 ( 2 )开发的软件不能满足用户要求。开发初期对用户的要求了解不够明确,未能得到明确的表达。开发工作开始后,软件人员和用户又未能及时交换意见,使得一些问题不能及时解决,导致开发的软件不能满足用户的要求,因而导致开发失败。 ( 3 )开发的软件可维护性差。开发过程中没有同意的、公认的规范,软件开发人员按各自的风格工作,各行其是