手有简述软件缺陷的生命周期可不可以学程序编程


VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户可以通过开通VIP进行获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会员鼡户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需要攵库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用户免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

还剩6頁未读 继续阅读
}

1. 与计算机硬件相比,计算机软件有哪些特点?


  1. 计算机硬件是有形的设备,具有明显的可见性但是人们却不能直接观察计算机软件的物理形态,只能通过他的实际运行情况来了解他的功能特性和质量。
  2. 人们在分析设计,开发测试软件产品的过程中,以及在软件开发项目的管理过程中渗透了大量的脑力劳動,人类的逻辑思维和智力活动和技术水平是生产软件产品的关键
  3. 计算机软件不存在像硬件一样的磨损和老化现象,他不会受引起计算機硬件老化的环境因素的影响但是软件却存在着简述软件缺陷的生命周期维护和技术更新的问题。
  4. 软件开发和运行必须依赖特定的计算機系统环境

2. 为什么说软件工程的发展在一定程度上解决了软件危机的各种弊端?

因为软件工程提出是为了解决软件危机所带来的各种弊端。具体的讲软件工程的目标主要包括以下几点。

  1. 使软件的开发成本控制在预计的合理范围之内
  2. 使软件产品的各项功能和性能能够满足鼡户需求。
  3. 提高软件产品的可靠性
  4. 使生产出来的软件产品易于移植,维护,升级和使用。
  5. 使软件的开发周期能够控制在预计的合理时间范围內

3. 简述软件工程的基本原则

1.== 将软件的生命周期划分为多个阶段,对各个阶段实行严格的项目管理。软件开发的生命周期可以划分为可行性研究需求分析,软件设计软件实现,软件测试产品验收和交付手段。
2. 坚持阶段评审制度以确保软件产品的质量。
3. 实施严格的产品控制以适应软件规格的变更。在软件开发过程中用户需求很可能不断发生变化。
4. 采用现代程序设计
技术==
5. 开发出来的软件产品应该能夠清楚地被审查
6. 合理的安排开发软件小组人员并且开发小组人员要小而精
7. 不断地改进软件工程实践

4. 如何理解软件生命周期的内在特征?

答:软件产品的生命周期是指从设计该产品的构想开始到软件需求的确定、软件设计、软件实现、产品测试与验收、投入使用以忣产品版本的不断更新,到最终该产品被市场淘汰的全过程软件生命周期这个概念从时间的角度将软件的开发和维护的复杂过程分解为叻若干个阶段,每个阶段都完成特定的相对独立的任务由于每个阶段的任务相对于总任务难度会大幅度降低,在资源分配、时间把握和項目管理上都会比较容易控制合理地划分软件生命周期的各个阶段,使各个阶段之间既相互区别又相互联系为每个阶段赋予特定的任務。

5. 请对比瀑布模型原型模型,增量模型和螺旋模型

瀑布模型是出现得比较早的软件开发模型在这种模型中,各阶段之间的组织方式僦如同瀑布流水一样逐级下落。开发人员必须在完成前一阶段的任务后才能开始下一阶段的工作,各个阶段之间通常是按固定顺序连接的前一-阶段的输出往往就是后- -阶段的输入。
根据瀑布模型的理论这种模型具有以下几个特点。
(1)瀑布模型是一种线性的软件开发模型回溯性很差
(2)瀑布模型是一种基于里程碑的阶段过程模型
(3)瀑布模型强调软件开发过程的阶段性,每个阶段完成特定的任务瀑布模型適用于具有以下特征的软件开发项目。

 1) 在软件开发的过程中需求不发生或很少发生变化,并且开发人员可以一次性获取到全部需求
 2) 软件開发人员具有==丰富的经验对软件应用领域很熟悉。
 3)软件项目的风险较低 瀑布模型不具有完善的风险控制机制。

瀑布模型的优点是阶段性强易于对项目进行管理,缺点是开发过程不灵活不能适应环境的变化。如果后续阶段中发现前期工作的错误或需求发生了变更會造成巨大的损失。

原型模型是开发人员为了快速而准确地获取需求经常采用的方法在初步获取需求后,开发人员会快速地开发一个原型系统通过对原型系统进行模拟操作,开发人员可以更直观、更全面和更准确地了解用户对待开发系统的各项要求同时还能挖掘到隐藏的需求。如果开发人员对将采用的开发技术把握不大也可以采用原型模型进行技术上的尝试,以降低后续开发的风险原型模型具有鉯下特点。
(1)原型模型主要用于挖掘需求或是进行某种技术或开发方法的可行性研究。
(2)原型系统通常针对软件 开发系统的子功能模块所鉯功能相对不完善
(3)由于原型系统功能的局部性以及存在阶段的局部性在软件开发的实践中,原型模型通常结合其他的软件开发模型共哃使用发挥作用。

原型模型适用于具有以下特征的软件开发项目

 (I)对现有的软件系统进行产品升级或功能完善。
 (2)开发人员与用户之间交鋶受限需求获取困难。
 (3)开发人员对将要采用的技术手段不熟悉或把握性不大
 (4)具备快速开发的工具。

原型模型的优点是简单和快速缺點是需要花费一些额外的成本来构造原型,并且不利于创新

增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件从洏分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程相对于瀑布模型而言,采用增量模型進行开发开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交增量模型的最大特点就是将待开发的软件系統模块化和组件化。基于这个特点增量模型具有以下优点。

(1)将待开发的软件系统模块化可以分批次地提交软件产品,使用户可以及时叻解软件项目的进展
(2)以组件为单位进行开发降低了软件开发的风险。-一个开发周期内的错误不会影响到整个软件系统

增量模型的缺点昰要求待开发的软件系统可以被模块化。如果待开发的软件系统很难被模块化那么将会给增量开发带来很多麻烦。

增量模型适用于具有鉯下特征的软件开发项目
(1)软件产品可以分批次地进行交付。
(2)待开发的软件系统能够被模块化
(3)软件开发人员对应用领域不熟悉,难以一-佽性地进行系统开发
(4)项目管理人员把握全局的水平较高。

螺旋模型是一种用于风险较大的大型软件项目开发的过程模型它把开发过程汾为制定计划、风险分析、实施工程和客户评估4种活动。制定计划就是要确定软件系统的目标了 解各种资源限制,并选定合适的开发方案风险分析旨在对所选方案进行评价,识别潜在的风险并制定消除风险的机制。实施工程的活动中渗透了瀑布模型的各个阶段开发囚员对下一版本的软件产品进行开发和验证。客户评估是获取客户意见的重要活动
螺旋模型适应于风险较大的大型软件项目的开发。它嘚优点是将风险分析扩展到各个阶段中大幅度降低了软件开发的风险。但是这种模型的控制和管理较为复杂可操作性不强,对项目管悝人员的要求较高

6. 在统一软件开发过程模型中,核心工作流程包括哪些?

核心工作流程有业务建模,需求分析分析设计,实现测试和部署

}

谢邀其实Java并没有想象中的那么難,首先想要入这个行要做好一个心理准备,那就是你想走远点就得不间断的去学习,去汲取知识前期不能怕辛苦,不要闲下来就咑LOL、吃鸡、王者农药有空就得多看看各种开源项目的代码,API的设计方式各大网站的设计架构,理解各个环节的作用补齐自己的知识視野。


当然这个行业也并不是什么门槛都没有不要再私信我初中生、高中生、中专生能不能学习Java了。反正我个人是认为不可行的或许伱可以去问问其他大神? 或许他们会觉得可以的


下图是我更新过的自学表,分别分为4个阶段按照这四个阶段平稳的去学习并在每一个階段做完相应的项目和练习,找一份工作是完全没有问题的 。当然这里有个前提是你能学的下去,且通过查看网上的资料或视频能起码看嘚懂第一阶段的内容如果第一阶段全职学习耗时2个月以上的话,我个人建议你就需要仔细考虑考虑是否真的要人这个行业吧因为这个時间节点还没能够搞明白第一阶段的内容的话,从我个人的经验来讲可能后续走起来会更加吃力

Java学习前的一些准备

JDK是Java开发所需要的环境僦跟我们想玩某个网游一样,玩之前一定是需要先安装相应的程序包的 那这个JDK就是我们准备登陆Java大陆前需要安装的一个程序包。

IDE是集成開发环境一般集成开发环境都会带有JDK,可以使用自带的JDK也可以使用我们下载的JDK不同的IDE配置不同。Java常用的IDE有Eclipse、MyEclipse、IntelliJ IDEAIDE具备代码分析、补全、变异、调试等常用功能,可以大大的提高开发人员的编程效率

阶段大致细节1、入门基础

    • 了解什么是Java;代码语法基本格式;输出表达式。
    • 了解Java大致的编译以及执行过程
  • Java语言基础、循环、数组 ; 了解类和对象
    • 掌握Java的基本数据类型和引用数据类型有哪些;
    • 掌握强制数据类型转换囷自动类型提升规则;
    • 掌握类的概念以及什么是对象
  • OOP封装、继承、多态
    • 面向对象的三大特征,本节内容非常重要也相对来说较为难以理解一定要耐下心来好好理解。
    • 掌握IO读写流相关的类了解字节流,字符流和字符流缓冲区;
    • 掌握线程的概念多线程的创建、启动方式,锁和同步的概念及运用;
    • 掌握Socket通信的概念如何声明客户端服务端,如何完成双端数据通信
    • 到了数据库前,我们可以看看泛型以及反射嘚一些基础案例
    • 掌握数据库的基本概念,Mysql的安装、启动与停止
    • Mysql数据库客户端的安装与使用

通过第一阶段的学习掌握Java语法和常用类数据库叺门技术相关知识。让自己对于存储IO,这些有个大概的了解这时候,暂时不需要花大量的精力以及篇幅去学习多线程和Socket当然这里不昰说他们不重要,而是对于现阶段的你或许很难非常清晰的明白以及了解他们具体的作用。这里第一节忽略掉了SwingSwing章节的内容可以不学,因为在实际的工作中基本上没有用武之地使用第一阶段的技术完成一个小型的系统,找一个自己做容易理解的系统练练手比如超市管理系统、成绩管理系统等等这类需求简单却能讲整章内容结合起来使用的项目。当然这个时候可能会有人觉得没有图形界面没法完成系統操作实际上我们可以通过Console的输入输出来做系统界面。新手在第一阶段的学习时是最难熬的,因为这个时候需要背的东西特别多且鈈再像看小说一样,什么东西都能看明白路就变成了前面熟悉,左右陌生这个时候人的求知欲作祟,往往会把自己带着偏移了方向洇为我们自己也不知道这样走对不对。渐而远之也就慢慢放弃了。而这样的放弃是最不值得的。所以学习Java一定要按照某一个大纲,┅直往下不要往其他地方偏先走完一遍之后,再回头慢慢捡

  • HTML基本标签、表格、表单和框架;
    • 掌握HTML的基本语法;
    • 表格的作用以及合并行、匼并列;
    • 表单标签的使用,提交方式get/post的区别;
    • 掌握CSS的语法及作用在html中的声明方式;
    • 掌握CSS布局的函数使用;
    • 掌握CSS外部样式的引入。
    • 掌握JS的语法及作用在HTML中的声明方式;
    • 掌握JS中的变量声明、函数声明、参数传递等;
    • 掌握HTML中的标签事件使用;
    • 掌握JS中的DOM原型
    • 了解如何使用jQuery,下载最新蝂或者老版本的jQuery.js
    • 掌握选择器、文档处理、属性、事件等语法及使用;
    • 能够灵活使用选择器查找到想要查找的元素并操作他们的属性;
    • 掌握BootStrap嘚设计理念以及使用方式。这是我们需要接触的第一个前端框架使用起来也很简单;
    • 掌握BootStrap的栅格系统、表单、全局样式、分页工具栏、模态框等。
    • 掌握Java中的Web项目目录结构;
    • 掌握Servlet的基本运行过程
    • JSP显示乱码的解决办法等。
    • JSP中如何编写Java代码如何使用Java中的类;
    • 掌握Session的作用及作鼡域;
    • 掌握Cookie的作用及作用域;
    • 掌握Session及Cookie的区别,存储位置声明周期等;
    • 使用JSTL来做逻辑判断或循环控制
    • JNDI的作用以及如何使用JNDI连接数据库
    • 掌握茬JSP中如何使数据达到分页的目的;
    • 掌握Ajax的基本概念;
    • 掌握Session过滤器和编码过滤器

通过第二阶段了解前端相关的技术,如果你喜欢前端各种酷炫的效果那么就深入学习JS、CSS。不大感兴趣的话就浅尝辄止,并重点学习Servlet、Filter、Listener重点学习,重点学习重点学习。 重要的话说三遍!

学習完第二阶段的内容之后就可以进行B/S版本的系统开发了。这个时候我们可以挑选个稍微复杂点儿的项目来练练手能找到商业项目练手嘚那是最好不过的,没有的话就写写学生管理系统,档案管理系统人事管理系统之类的练练手吧。最后说一下本阶段的前端知识如果将jQuery和Bootstrap学的差不多了的话,再看EasyUI这之类的前端框架也基本上都是照着API用就行了别害怕看API,看API将是你以为的整个职场生涯必不可少的一个技能

    • SpringMVC中的控制器注解、请求注解、参数注解、响应注解等;
    • Redis的安装与连接;
    • Redis常用命令及各命令使用场景;
    • Redis的持久化机制。
    • 短信&邮件发送
    • MavenΦ央仓库及私服
    • 什么是分布式文件系统;
    • 分布式文件系统解决的问题是什么;

通过第三阶段了解目前Java领域比较经典的三大框架了解他们嘚大概功能,并加以使用通过使用SSM开发一个简易CRM之类的项目来加强了解,理清楚框架的大致原理搞清楚这三个框架之间的作用域以及角色。理解Redis作为内存数据库与MySQL这类关系型数据库的区别,并能使用常用的Jar包完成模拟请求,定时任务等相关系统常用功能的开发并能够通过Maven創建SSM项目,整合Log4j或其他的日志包了解FastDFS的作用,并理解图片上传至文件服务器和上传到tomcat之间的区别

在第三阶段的内容学习完了之后就应該对整个系统研发有个大概的印象,实际上这个时候独立完成一个系统之后,再回过头来仔细思考下Servlet+JDBC+JSP与SSM实现项目的相同点及区别这样會让你更加的有收获。并能够理解非关系型数据库Redis的性能优势以及使用场景

    • 了解SpringBoot项目的格式以及创建方式
    • Spring自定义错误处理
  • Struts2应用(了解即鈳)
    • 通过学习Struts,了解什么是MVC;
    • 掌握Struts是如何完成界面控制的;
    • 掌握Struts的参数接收及传递;
    • 掌握Struts的拦截器;
    • Hibernate在项目中的作用及优势;
    • 什么是HQL什麼是关系映射(一对一,多对一多对多);
    • 了解Hibernate的事务、懒加载和缓存。
  • Redis哨兵模式的搭建
    • Linux中的常用命令;
    • Linux下的项目部署方式
    • 反向代理囷正向代理分别是什么;
    • Mysql集群的常用方案有哪些;
    • Mycat中间件的概念
    • Mycat的使用准则;
    • 了解数据库的主从复制;
    • 了解数据库的主备切换;
    • 为什么需偠主从和主备。
    • Solr做搜索的优势是什么;
    • Solr的安装与使用
    • 回顾所有所学习到的知识,联系所有框架中的自定义容器、上下文来理解变量及对潒的存储
    • 理解垃圾回收是怎么一回事

通过第四个阶段了解更简单易用的SpringBoot微服务应用和存储集群相关的概念及实现方案。让自己具备一个設计高可用可扩展的项目框架视野。这样对于后面继续专研SpringCloud / Dubbo、zookeeper这些RPC相关的框架有很大的好处

第四阶段的内容更加偏向于互联网技术栈,通过这一节的内容能够脱离出基本的增删改查了解出了增删查改之后,需要了解的集群、系统性能优化、外部缓存服务器使用、集群負载等概念这些思维对于后面的提高以及学习会很有好处。

我提到的这些东西都能搜到对应的资料无非多踩点坑罢了。但是看文档or項目永远进步不了。一定要上手敲想再多也不如动手。有机会联系一名优秀学长有个走在前面的人给你指路肯定比你自己走要快得多。


最后一定要动手,一定要动手一定要动手。把代码敲烂你才会有收获,不要被视频诱导敲一遍之后误认为你自己会了,如果第②天你起来时已经忘了昨天学习了什么的话那说明你还是没学会。好好加油吧


在所有的学习过程中,每一个节点都应该有相应的练习戓者项目来进行练手看再多的博文和视频都是不行的, 不能让自己的双手停下来只有不停的敲打键盘,写出自己的项目然后在实际嘚开发中学会如何使用debug,总结所有遇到的bug及解决思路这样才叫做学习技术。所以希望有兴趣的同学,能够好好努力不要因为一点点難度就懈怠、放弃。开发这条路途无论你工作多久,都会遇到各种奇奇怪怪的问题以及形形色色的bug等着你去解决。

}

我要回帖

更多关于 简述软件缺陷的生命周期 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信