软件工程大作业

发布 2021-05-05 19:39:28 阅读 5531

软件工程课设报告书。

学院:软件学院。

班级:16网安。

姓名:范澜灵。

学号:1615935075

**对软件工程项目开发。

本人虽是网络工程方向专业的学生,但经过这一学期来所上的软件工程课,收获颇多,就此对软件工程项目整体设计到开发发表一下自己的浅见,不足之处望各位读者老爷海涵。

一个项目总得来说不一定是给了你具体题目的,但总会是给你一个主题,在这个主题范围内找一个合适的题目,对吧?打个比方,比如我要开发一个项目,然后首先是要拿到这个项目的主题,通俗点来说就是这个项目是要做啥,做游戏?做**?

还是做软件应用。有了主题之后你才能从整体、大局上来构造这个项目的框架——“提纲”。这个框架就如同你写作文时的提纲,要让开发者清楚的明白自己该做相对于项目来说的什么模块。

我的理解一直就是项目是由多个模块合成的,因此不太可能是大点的项目就只让某一个程序猿来做,每个程序员他总有自己所擅长的和所不擅长的模块,因此“物尽其用人尽其才”就是项目经理所应达到的最高境界,合理的了解你项目内的各成员的性格特征、程序手法的特点来恰当并适宜的让他发挥出自己百分百的能力。

以上呢,都只能算是自己听了软件工程这门课后,一个软件工程菜鸟对软件如何开发谈出了自己的见解,正在学习中,也正在纠错的道路上。

软件开发的方法有下面六种:1.敏捷; 2.瀑布; 4.极限编程5.快速应用程序开发方法; 6.螺旋。

先讲敏捷这一开发方法。

敏捷软件开发是承担软件工程项目的概念框架。有许多像scrum这样的敏捷软件开发方**(我们将在本文中更多地介绍它),crystal方法和动态系统开发模型。敏捷方法的主要目标是通过在短时间内开发软件来降低风险,称为迭代,通常会持续一到四周。

每个时间盒就像一个迷你软件项目,包括发布新增功能的所有必要任务:规划,需求分析,设计,编码,测试和文档。

迭代可能不会增加足够的功能来保证发布产品,但是敏捷软件项目打算在每次迭代结束时发布新软件。在此迭代之后,团队重新评估项目优先级。敏捷方法强调工作产品是进度的主要衡量标准。

相对于其他方法,敏捷产生很少的书面文档 - 实时”是更好的通信类型。大部分开发团队成员(以及企业主)都位于附近,可以面对面沟通。

敏捷软件开发方法学的主要原则:面对面会议,持续合作,早期和持续交付工作软件,透明度。每当客户端或内部发生意外或频繁的变化时,该模型就成为经理和团队领导者的最佳选择。

它的优点是:1.自适应方法对变化做出有利的回应,允许直接沟通以保持透明度; 2.通过快速查找和修复缺陷并提前识别期望不匹配来提高质量。

它的缺点是:专注于使用软件并缺乏文档效率,结果不一致的机会不明确。

下面说的是瀑布这一软件开发方法。

瀑布模型是一种循序渐进的开发方法,其中开发被视为通过几个阶段稳步向下(如瀑布),通常:1.分析; 2.

软件需求说明软件设计; 3.软件设计; 4.测试; 5.

整合(如果有多个子系统); 6.部署(或安装); 7.维护。

该方法的线性和刚性特性使其易于理解和管理。所以对于经验不足的经理和团队来说,这是理想之选在这种方法中,完成了不同的目标。在进入下一个阶段之前,每个阶段必须完成100%,不要回头修改项目或方向。

从理论上讲,这个过程导致项目按时交付,因为每个阶段都有详细的计划。它可以用于目标明确,需求稳定的项目。但在实践中,瀑布式开发通常不能达到预期,因为它不包含大多数项目所必需的不可避免的变化和修订。

当一个应用程序正处于测试阶段时,很难回头去改变在概念阶段没有想到的东西。重点是一次性规划,时间安排,目标日期,预算和整个系统的实施。在开始下一阶段之前,通过大量书面文件,正式评审以及用户的批准/签收和大多数阶段结束时发生的信息技术管理,在项目的整个生命周期内保持严密的控制。

书面文件是每个阶段的明确可交付成果。尽管缺乏灵活性和过时的想法,但这种方法旨在摆脱不必要的文书工作,耗时的定期会议和积压。因此,对于预先了解开发的所有方面的小型项目而言,这是一个很好的选择,对于复杂项目来说这是一个不好的解决方案,因为它非常不灵活。

在公司或者老板有明确要求和解决方案的情况下,不需要定义流程来开发最终产品。老板只需在完成项目时设定截止日期,并以开发团队自己的方式完成项目。

优点:1.易于理解和功能; 2.简单到足以处理模型是僵化的; 3-节省大量的时间; 4.允许简单的测试和分析; 5.它允许部门化和管理控制。

缺点:1.只匹配精确的需求; 2.不适用于维护项目; 3.不允许在测试阶段进行编辑; 4.无法知道项目的可能结果; 5.对于长期和正在进行的项目来说不是很好。

下面说的是scrum这一软件开发方法。

scrum是一个用于管理产品开发的迭代式和增量式敏捷软件开发框架。它定义了一个灵活的整体产品开发策略,开发团队作为一个单元实现共同目标。。scrum的一个关键原则是双重认识,即客户会改变他们想要或需要的东西(需求波动)并且会改变他们的想法。

scrum采用基于证据的经验方法 - 接受事先不能充分理解或定义的问题,而是集中关注如何最大限度地提高团队的快速交付能力,响应新兴需求,并适应不断发展的技术和变化在市场条件下。

scrum的主要特点:积极进行优先工作,完成一系列短迭代或冲刺中的固定积压项目,一个简短的每日会议(“scrum”)来解释进展情况,描述即将开展的工作和可能的障碍,一个简短的计划会话,其中将定义sprint的积压项目,当所有团队成员反思过去的冲刺时,一个简短的心跳回顾。scrum由scrum master提供,它的主要工作是消除阻碍团队实现冲刺目标的能力。

scrum的主人并不是团队的领导者(因为他们是自组织的),而是团队与任何不稳定影响之间的生产力缓冲区。该方法鼓励所有团队成员以及项目涉及的所有学科进行口头交流。与看板不同,scrum更具时间框架和计划性。

整个项目被分成称为sprints的时间框,并且所有团队坐在一起并为每个sprint计划需要完成的任务列表或用户故事列表。一旦团队同意并承诺在给定的时间框架内完成某些任务,开发团队应该坚持承诺并完成sprint中的所有任务。如果延迟成本很高,最后期限应尽可能延迟,scrum最适合。

当最终产品不清楚或者需求没有得到客户的正确反馈时,经常会使用scrum。在这里,客户参与整个过程,确定并关注需要完成的某些sprint产品待办事项(与团队一起)。scrum取代了灵活的方**,适合长期发展,并且频繁更改需求。

换句话说,它适用于需要300多个小时的开发项目。与瀑布不同的是,scrum模型采用更灵活的规则,可以适应最后时刻的变化。团队合作,检查和透明度是scrum方法的关键因素。

结构:1.产品积压(一组允许尽快建立mvp的最高优先级任务); 2.

冲刺积压(包含开发人员将在2-4周后处理的高优先级功能); 3.冲刺本身; 4.这种增长方法用于快速开发软件,其中包括一系列迭代以生成所需软件。

它使有意推进的项目步入正轨。

优点:1.决策权掌握在团队的手中; 2.业务需求文档被认为是不重要的; 3.轻轻控制的方法empathizing与不断更新。

缺点:1.处理方法因成本波动而受损: 2.不适合大型项目: 3.需要高度专业的团队,这对新手来说没有任何地方。

下面说的是极限编程这一软件开发方法。

极限编程方法(xp)指的是敏捷软件工程方**。它是为了避免开发目前不需要的功能而创建的。它旨在创造一流的最终产品,而不考虑需求的频繁变化。

这种方法的另一个目的是降低软件必需品的成本。为了实现这一点,应用持续测试和计划。与其他方法相比,xp需要更多时间和人力资源。

至于xp主要用于在非常不平衡的环境中制作软件,并在建模过程中提供更好的易用性,这对于复杂的项目来说是完美的。如果您的客户有最后期限来交付产品,但没有清楚地了解其工作方式,并且风险更高,那么这是最佳选择。xp技术的设立是为了解决和缓解风险并提高成功的可能性。

与瀑布方法不同的是,系统的需求被确定并且通常被“冻结”,xp意味着在项目后期阶段改变需求的成本可能非常高。xp团队应该在现场设立一个客户,为团队指定工作的优先次序,以及谁可以在问题出现时立即回答问题。简单的**更有可能工作。

因此,极端的程序员只能编写**来满足当前项目中的实际需求。为了回顾xp程序员编写的**,共享一个屏幕和键盘(这也改善了通信),以便在编写**时对所有**进行审阅。在极限编程中,测试是在编写**之前编写的。

**在通过测试时被认为是完整的(但是之后需要重构以消除复杂性)。尽管人们认为xp只能在少于12人的小团队中工作,但它已被成功应用于超过一百名开发人员的团队。

优点:1.它着重于客户参与: 2.制定合理的计划和时间表: 3.开发人员特别致力于该项目: 4.配备高质量软件的现代化方法。

缺点:1.有效性取决于涉及的人员: 2.需要频繁召开会议以提高总成本: 3.需要过度的发展变化: 4.确切的可能性和未来的结果真的是未知的。

下面说的是螺旋这一软件开发方法。

螺旋方法扩展了瀑布模型,增加了快速原型,以结合自上而下和自下而上的概念。它在重点领域重点考虑迭代风险分析。它适合于大型复杂系统。

对于大型,昂贵和复杂的项目,螺旋通常选择瀑布方法。螺旋生命周期模型是一个复杂的生命周期模型,重点在于及早识别和减少项目风险。一个螺旋型项目从小规模开始,探索风险,制定一个处理风险的计划,然后决定是否采取下一步的项目(做下一轮迭代)。

它源于不断降低项目风险水平带来的快速发展收益。成功使用螺旋生命周期模型取决于认真,细心和知识渊博的管理。您可以在螺旋模型中找到以下步骤:

1.新的系统要求详细定义。2.

初步设计创建。3.初步设计构建了新系统的第一个原型。

第二个原型使用四个步骤演变: -第一个原型的评估; -确定第二个原型的要求; -计划和设计第二个原型; -构建并测试第二个原型。

如果风险很大,项目可能会中止。风险因素可能涉及开发成本超支现有原型的评估方式与之前的原型相同,如果需要,还可以从中开发另一个原型,重复前面的步骤直到客户满意。

最终系统的构建(基于精制原型),最终的系统经过彻底的评估和测试,日常维护是持续进行的,以防止大规模故障并最大限度地减少停机时间,重点在于风险评估以及通过将项目分解成更小的部分并在开发过程中提供更多的易变性来降低项目风险。开发者打算制定一个迭代螺旋的计划。每个周期都涉及产品各个部分的相同步骤以及每个层次的细化。

任何螺旋生命周期模型的完成都基于对项目的一致,细致和熟悉的管理。

优点:1.风险因素大大减少; 2.非常适合大型和复杂的项目; 3.稍后允许其他功能; 4.适用于各种业务需求的高风险项目。

软件工程大作业

目录。引言 1正文 1 3 软件需求分析 2 3.1系统功能需求分析 2 3.2管理信息系统的界面特点 3 3.3 管理系统具体研究 3 4 功能需求描述 5 4.1员工基本信息模块 5 4.2工资结构设置模块 6 4.3数据库设计 6 4.4数据流程图 6 总结 9参考文献 10 基于sql开发的...

软件工程大作业

无锡科技职业学院。2009 2010学年第二学期。软件工程 期末试卷20904 09 软外,09测试 考试形式大作业考试时间 6.21 6.24 班级学号姓名成绩。应用题目 4 25 1 学校要设计一个计算机等级考试报名系统,系统要完成如下功能 学生信息的导入功能,学生基本信息修改功能,学生报名功能...

软件工程大作业

5 中文乱码问题 1 数据库 mysql 4.1 或以上版本 4.1直接支持unicode,以下版本支持的不好。2 驱动 mysql jdbc driver的3.0.16 或以上版本 3 在数据库中做如下设定。4 在建立表时同样加上engine myisam default charset gbk ...