高级软件工程作业
可行性分析技术:
1、可行性分析的目的
用最小的代价和最短的时间来确定问题是否能够解决,避免时间、资金、人力、物力的浪费。①确定问题是否值得去解决
②效益是否达到值得投资开发这个系统的程度
③判断原定的系统规模和目标是否现实
2、应从哪些方面研究可行性?
① 经济可行性分析:经济效益能超过它的开发成本吗?
② 技术可行性分析:使用现有的技术能否实现这个系统?
③ 操作可行性分析:操作方式在这个用户组织内行得通吗?
④ 法律可行性分析:开发的系统是否会触犯法律法规?
3、可行性分析过程
- 检查系统规模和目标,明确限制或约束条件
了解客服真正需要的,因此需要做到:
访问客户关键业务人员。
阅读和分析有关的资料。
改正含糊或不确切的术语和叙述
- 研究正在使用的系统
了解现有系统存在的问题。
采用工具:系统(业务)流程图。
- 导出新系统的高层次逻辑模型
应该告诉用户“What”,而不是“How”
使用工具:数据流图 和 数据字典
- 提出可行性解决方案并评估比较
从系统高层次逻辑模型出发,探索若干种可供选择的系统实现方案,对每种方案都应该仔细研究它的可行性。
- 选择合适的解决方案
分析员必须提供建议的解决方案,以及其他解决方案。应说明为什么选择了建议的解决方案。可以使用可行性矩阵来说明。
- 撰写可行性分析报告并提交审查
4、可行性分析注意问题
- 全面考虑系统开发过程所涉及的所有技术问题
软件开发涉及多方面的技术,包括开发方法、软硬件平台、网络结构、系统布局和结构、输入输出技术、系统相关技术等。应该全面和客观地分析软件开发所涉及的技术,以及这些技术的成熟度和现实性。
- 尽可能采用成熟技术
成熟技术是被多人采用并被反复证明行之有效的技术,因此采用成熟技术一般具有较高的成功率。另外,成熟技术经过长时间、大范围使用、补充和优化,其精细程度、优化程度、可操作性、经济性等方面要比新技术好。鉴于以上原因,软件项目开发过程中,在可以满足系统开发需要、能够适应系统发展、保证开发成本的条件下,应该尽量采用成熟技术。
- 慎重引入先进技术
在软件项目开发过程中,有时为了解决系统的特定问题,为了使所开发系统具有更好的适应性,需要采用某些先进或前沿技术。在选用先进技术时,需要全面分析所选技术的成熟程度。有许多报道的先进技术或科研成果实际上仍处在实验室阶段,其实用性和适应性并没有得到完全解决,也没有经过大量实践验证,在选择这种技术时必须慎重。例如,许多文章中已经报道了指纹识别技术,而且市场上也有实验性产品,但指纹识别技术至今仍有许多重大技术难题没有突破,离具体应用仍有一定距离。因此,在项目开发中要谨慎选用这种技术。如果不加分析,在项目中盲目采用指纹识别技术,应用时肯定会出现许多难以解决的具体问题。
- 着眼于具体的开发环境和开发人员
许多技术总的来说可能是成熟和可行的,但是在开发队伍中如果没有人掌握这种技术,而且在项目组中又没有引进掌握这种技术的人员,那么这种技术对本系统的开发仍然是不可行的。例如,分布对象技术是分布式系统的一种通用技术,但是如果在开发队伍中没有人掌握这种技术,那么从技术可行性来看就是不可行的。
- 技术可行性评价
技术可行性评价是通过原有系统和欲开发系统的系统流程图和数据流图,对系统进行比较,分析新系统具有的优越性,以及对设备、现有软件、用户、系统运行、开发环境、运行环境和经费支出的影响,然后评价新系统的技术可行性。主要包括以下几个方面:
①在限制条件下,功能目标是否能达到;
②利用现有技术,性能目标是否能够达到;
③对开发人员数量和质量的要求,并说明能否满足;
④在规定期限内,开发是否能够完成。
5、成本估算技术
- 代码行技术
软件成本 = 每行代码的平均成本×估计的源代码总行数
代码行技术把开发每个软件功能的成本和实现这个功能所需要用的源代码行数联系起来。
通常根据经验和历史数据估计实现一个功能需要的源程序行数。
估计出源代码行数以后,用每行代码的平均成本乘以行数就可以确定软件的成本。
每行代码的平均成本主要取决于软件的复杂程度和工资水平。
- 任务分解技术
软件开发项目分解为若干个相对独立的任务,分别估计每个单独任务的成本;
单独任务成本 = 任务所需人力估计值×每人每月平均工资;
软件开发项目总成本估计 = 各个单独任务成本估计值之和。
首先把软件开发工程分解为若干个相对独立的任务。
再分别估计出每个单独的开发任务的成本,最后累加起来得出软件开发工程的总成本。
估计每个任务的成本时,通常先估计完成该项任务需要用的人力(以人月为单位),再乘以每人每月的平均工资而得出每个任务的成本。
- 自动估计成本技术
采用自动估计成本技术的软件工具可以减轻人的劳动,并且使得估计的结果更客观。
采用这种技术必须有长期搜集的大量历史数据为基础,并且需要有良好的数据库系统支持。
- 功能点FP方法
功能点估算法常用在项目开始或项目需求基本明确时使用,这时进行估算其结果的准确性比较高。假如这个时候使用LOC代码行估算法,则误差会比较大。
使用功能点估算法无需懂得软件使用何种开发技术。LOC代码行估算法则与软件开发技术密切相关。
功能点估算法是以用户为角度进行估算,LOC代码行估算法则是以技术为角度进行估算。
通过一些行业标准或企业自身度量的分析,功能点估算法是可以转换为LOC代码行的。
- COCOMO估算模型
是一种精确的,易于使用的,基于模型的静态成本估算模型。
constructive cost model(构造性成本模型)
从本质上说是一种参数化的项目估算方法,参数建模是把项目的某些特征作为参数,通过建立一个数字模型预测项目成本(类似于居住面积作为参数计算的整体的住房成本)。
- Putnam估算模型
是一种动态多变量的模型,假设在软件开发的整个生存周期中工作量有特定的分布。
根据一些大型软件项目的工作量分布情况,推导出软件项目在软件生存周期各阶段的工作量分布。
6、成本效益分析
效益分析的目的:
从经济角度分析开发一个特定的新系统是否划算,从而帮助正确地做出是否投资于这项开发工程的决定。
经济效益通常表现为减少运行费用或增加收入。成本/效益分析的第一步是估计开发成本、运行费用和新系统将带来的经济效益。运行费用取决于系统的操作费用(操作员人数、工作时间和消耗的物资等等)和维护费用。系统的经济效益 = 因使用新系统而增加的收入 + 使用新系统可以节省的运行费用。
货币的时间价值:通常用利率的形式表示货币的时间价值。
投资回收期:使累计的经济效益等于最初投资所需要的时间。
纯收入:在整个生命周期之内系统的累计经济效益(折合成现在值)与投资之差。
投资回收率:衡量投资效益的大小,并且可以把它和年利率相比较。
案例:高级软件工程课堂作业管理系统可行性分析
高级软件工程课堂作业管理系统可行性分析
1引言
1.1编写目的
此可行性研究报告对《高级软件工程课堂作业管理系统》软件做了全面细致的思考,明确所要开发的软件具有的功能、性能、限制、环境等。考虑课堂作业管理系统的法律可行性、技术可行性和经济可行性。项目分析员进行下一步工作的前提,是软件开发人员在定义阶段较早的认识到系统方面的缺陷,可以少花时间和经历,也可节省资金,避免许多困难,所以该可行性研究报告在整个开发过程中是非常重要的。
本研究报告的目的是为了提高课堂作业管理的水平,达到节约时间、提高效率、快捷效率的管理目的,从而降低人力,物力,财力消耗,本次编写目的是为了分析湖南师范大学是否具备研发课堂管理系统的必要性和可能性,预期的读者为系统管理人员,开发人员和维护人员。
1.2背景
- 教育领域的数字化转型: 在数字化时代,教育领域也在寻求创新和效率提升。教育机构越来越倾向于采用技术来改善教育流程和管理。
- 教育管理的挑战: 管理研究生课堂作业可以是一个复杂的任务。教师需要分发、收集、评估和反馈作业,同时保持对每位学生的记录。这可能导致繁重的管理工作和潜在的错误。
- 学生需求: 研究生学生通常期望高质量的教育体验,包括高效的作业提交和反馈机制。他们寻求更便捷、透明和高效的方式来管理作业。
- 竞争优势: 教育机构在提供高质量教育方面需要保持竞争优势。拥有一种有效的作业管理系统可以提高学生满意度和教学效果。
- 教师工作负担: 教师通常面临大量的作业管理工作,这可能占用他们的时间,降低他们的教学效率。一个有效的系统可以减轻他们的工作负担。
- 数字化教育工具的普及: 教育界广泛使用在线学习平台、教育管理系统和其他数字化工具,这为开发研究生课堂作业管理系统提供了技术基础。
- 数据分析需求: 教育机构越来越重视数据分析,以改进教学和学生表现。作业管理系统可以为教育数据的收集和分析提供重要的信息。
- 法规和隐私考虑: 保护学生的个人数据和隐私是非常重要的,因此任何系统的开发需要遵守相关法规和标准。
1.3项目内容和功能
- 用户管理:
- 学生账户管理:支持学生注册、个人信息管理和密码重置。
- 教师账户管理:用于教师登录、管理课程和评估作业。
- 作业管理:
- 作业发布:教师可以创建和发布作业,包括指导、截止日期和相关资源。
- 作业提交:学生可以在线提交作业,支持不同文件格式的上传。
- 作业评估:教师可以评估学生的作业,提供反馈和成绩。
- 课程管理:
- 课程设置:教师可以创建和管理课程,包括课程信息、学生名单和日程安排。
- 课程资源:教师可以上传课程材料、幻灯片和其他学习资源。
- 通知和提醒:
- 作业提醒:系统可以向学生和教师发送作业截止日期提醒。
- 系统通知:支持系统消息、重要日期提醒等通知功能。
- 成绩管理:
- 成绩记录:系统可记录和跟踪学生的成绩,包括作业、测验和考试。
- 报告生成:教师可以生成成绩报告和分析,以便于评估学生的表现。
- 协作和讨论:
- 讨论论坛:学生和教师可以在系统内进行讨论和互动。
- 组队功能:支持学生组队合作,共同完成作业项目。
- 数据分析和报告:
- 学生表现分析:提供学生表现的数据分析和可视化报告。
- 教学评估:教师可以评估教学效果和学生满意度。
- 安全和隐私:
- 数据加密:保护学生和教师的个人信息和作业内容。
- 访问控制:确保只有授权用户可以访问系统和数据。
- 移动应用支持:
- 提供移动应用,使学生和教师可以随时随地访问系统和完成任务。
- 集成和扩展性:
- 与其他教育工具和系统的集成:如学生信息系统、图书馆系统等。
- 可扩展性:系统应具备扩展功能以满足不同学院和学科的需求。
2可行性研究的前提
2.1目标
A. 减少老师的工作量和所需人员数量
B. 对学生的管理更加高效便捷
C. 提高对课堂作业的管理和批改效率
2.2条件、假定和限制
说明对这项开发中给出的条件、假定和所受到的限制,如:
- 系统的运行寿命的最小值为:4年
- 系统方案选择比较的时间:2天
- 经费来源:暂无
- 硬件环境:湖南师范大学的机房设备以及网络设备
- 运行环境:win10,win11以上版本的操作系统,台式机以及笔记本
- 开发环境:Python3.11、SQL Server 2022
- 可利用的信息和资源:学生信息表、湖南师范大学研究生系统
2.3进行可行性研究的方法
本次可行性研究主要通过调查研究法,在蒋少华教授的带领下对湖南师范大学的教师和学生的反馈,了解他们对作业管理系统的需求和期望。
2.4评价尺度
1、开发费用:5000元之内
2、各项功能的优先次序:满足操作员,管理员以及一般用户的使用:
3、开发时间:一个月
4、难易程度:设计从简,适合于任何水平的人员使用。
3对现有系统的分析
这里的现有系统是指当前实际使用的系统,这个系统可能是计算机系统,也可能是一个机械系统甚至是一个人工系统。分析现有系统的目的是为了进一步阐明建议中的开发新系统或修改现有系统的必要性。
课堂作业管理现有系统是通过在线表格查看同学们提交的作业链接,这需要每个人实时编辑表格,老师需要一个一个点击链接查看,再返回进行评价和打分,工作效率较低。
4所建议的系统
4.1对所建议系统的说明
通过与数据库的交互,实现学生的实时操作与数据的实时更新。
4.2处理流程和数据流程
- 用户注册和登录:
- 数据输入:学生和教师通过用户界面输入个人信息进行注册和登录。
- 数据存储:用户信息存储在数据库中,包括用户名、密码、联系信息等。
- 数据处理:系统验证用户凭据,允许合法用户访问系统。
- 课程管理:
- 数据输入:教师创建和管理课程,输入课程信息、学生名单和课程资料。
- 数据存储:课程信息存储在数据库中,包括课程名称、时间表和材料。
- 数据处理:系统将课程信息呈现给学生和教师。
- 作业发布:
- 数据输入:教师创建和发布作业,输入作业要求、截止日期和相关资源。
- 数据存储:作业信息存储在数据库中,包括作业名称、描述和截止日期。
- 数据处理:系统将作业信息发送给相关学生。
- 作业提交:
- 数据输入:学生提交作业,上传相关文件。
- 数据存储:学生提交的作业存储在数据库中。
- 数据处理:系统记录作业提交时间,并通知教师有新的作业提交。
- 作业评估:
- 数据输入:教师评估学生作业,提供反馈和成绩。
- 数据存储:成绩和反馈信息存储在数据库中。
- 数据处理:系统计算成绩并通知学生。
- 通知和提醒:
- 数据输入:系统生成通知和提醒,包括作业截止日期和系统更新。
- 数据存储:通知信息存储在数据库中。
- 数据处理:系统向学生和教师发送通知和提醒。
- 成绩记录:
- 数据输入:系统记录学生的成绩,包括作业、测验和考试成绩。
- 数据存储:成绩数据存储在数据库中。
- 数据处理:系统生成成绩报告和分析。
- 协作和讨论:
- 数据输入:学生和教师在系统内进行讨论和互动,输入评论和问题。
- 数据存储:讨论内容存储在数据库中。
- 数据处理:系统呈现讨论内容并允许用户互动。
- 数据分析和报告:
- 数据输入:系统收集学生表现和教学数据。
- 数据存储:数据存储在数据库中。
- 数据处理:系统生成数据分析和报告,支持决策制定。
- 数据安全和隐私:
- 数据输入:确保数据传输和存储的安全性。
- 数据存储:加密存储和访问控制以保护隐私和数据安全。
4.3影响
a. 用户操作规程:管理员负责学生信息录入工作;
b. 源数据的处理;源数据保存在数据库中,可随时进行查询;
c. 对数据保存的要求:安全性、完整性、正确性;
d. 输出报告的处理过程、存储媒体和调度方法。
4.4局限性
由于开发小组的第一次做正规开发,每月实战经验,可能会导致一些问题考虑的不全面,出现部分的遗漏情况。
4.5技术条件方面的可行性
a. 开发软件采用Python为基础开发环境
b. 以SQL Server 2022为数据库系统
c. 结合两个环境,通过一年的学习,有了知识基础和稳固的经验。
d. 在规定时间内,能够顺利完成任务。
5可选择的其他系统方案
暂无。
6投资及效益分析
6.1支出
对于所选择的方案,说明所需的费用。如果已有一个现存系统,则包括该系统继续运行期间所需的费用。
6.1.1基本建设投资
包括采购、开发和安装下列各项所需的费用,如:
a. PC机一台:5000元
b. 数据库管理软件:500元
c. 安全与保密设备:1000元
总计:7500元
6.1.2其他一次性支出
a. 系统研究(需求的研究和设计的研究):500元
b. 开发计划与测量基准的研究;500元
c. 数据库的建立;1000元
d. 检查费用和技术管理性费用;1000元
e. 培训费以及开发安装人员所需要的一次性支出;1000元
总计:4000元
6.1.3非一次性支出
列出在该系统生命期内按月或按季或按年支出的用于运行和维护的费用,包括:
a. 设备的租金和维护费用;2000元/年
b. 软件的租金和维护费用;500元/年
c. 其他经常性的支出:1000元/年
总计:3500元/年
7社会因素方面的可行性
7.1法律方面的可行性
独立自主开发,不存在版权问题。
7.2使用方面的可行性
只需要一个软件工程师,两名管理员,管理简单方便,资金都有记录,可以随时核对账目,还可以打印报表供领导检查。
8结论
总结各方面分析,该系统是可行的。