热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

程序员必须开始的道路

软件的发展说起软件工程不得不提软件,那软件又是什么呢?软件呀,它生存于硬件的家庭,由于硬件的各种限制,软件就是一个程序,主要由个人来编制。随着硬件的发展,软件的规模也相继变大,个人不能够
软件的发展        说起软件工程不得不提软件,那软件又是什么呢?软件呀,它生存于硬件的家庭,由于硬件的各种限制,软件就是一个程序,主要由个人来编制。随着硬件的发展,软件的规模也相继变大,个人不能够完成这么大的规模,就必须有好多人来完成。这时人们之间就有矛盾了,互相之间交流出现障碍,所以这些开发者就每写个程序,就写段说明。时间久了,软件变成了”程序+说明书“。软件就这样不断发展,变的更大了,它的很多功能需要大量的数据,并且需要专门的数据结构。软件最后变成了”程序+数据+说明书“。 软件工程       软件有了,就再添两个字——工程。有了工程,软件就不再能够随便开发了。软件工程把软件的开发的整个流程做了个计划,做了个标准。软件工程定义了7个基本原理。       第一、把软件的开发过程分为了好几个阶段,并且非常严格的控制。       第二、对每个阶段完成后,进行严格的评审。       第三、开发软件要用到现代的程序设计技术,也就是要用好的设计技术,注意不是开发技术,而是设计技术,是对整个软件的技术。       第四、结果应该清楚的评审,因为软件这个东西看不见,摸不着。所以一定要明确软件开发后的质量标准,便于审查。       第五、开发人员要是精英,人少了,之间的交流就少,因为交流出错的可能就少很多。       第六、实行严格的产品控制,产品出来了,不能随便更改,只要是更改,就得提前申请。评审后才能修改。       第七、虽然产品出来了,也要不断关注产品,看是否能采用先进的技术,总之要继续前进,选用新技术。 软件的生存周期        软件的生存周期,所谓生存周期,就是软件从一开始到它不怎么使用的这一段时间。大概分为6个阶段:计划开发软件,分析软件干什么,如何让软件完成工作,编写为计算机识别的代码,测试自己的软件行不行,最后不断的修理自己的软件。 软件的开发模型        说白了开发模型就是软件开发这几个阶段的过程有怎样的要求,有怎样的格式。比如瀑布模型,就要求每个相连的阶段必须严格控制,防止错误的出现。 在众多的模型中一个共同的特点就是:需求的分析,需求一定要把握好。
       瀑布模型缺点:1、开发过程不能够逆转,否则代价特高。2、实际的项目开发很难严格按照该模型进行。3、客户开始很难清楚自己的需求。4、软件的实际情况必须到项目开发后期,客户才能看到。        瀑布模型的使用范围:1、用户的需求很清楚,没有多少变化。2、开发人员对用户的需求很清楚。3、开发工作对用户的参与度要求低。
       快速原型优点:1、可以得到良好的需求。2、有利于开发与培训同步。3、开发费用低,开发周期短。4、用户很快就能够看到原型。
      快速原型模型的缺点:1、客户与开发者对原型理解不同,当用户听到还需要进一步开发系统时,很失望。2、准确且适合的原型设计很困难。3、不利于开发人员创新。
      快速原型模型的使用范围:1、开发人员对开发的领域比较熟悉且有快速的原型开发工具。2、项目招标,原型可以作为软件的开发模型。3、进行产品移植或对已有产品原型进行更改时,原型模型方法很适用。

       增量模型:1、人员分配很灵活,开始不用投入大量的人力资源。2、核心产品很受欢迎,可以增加人力实现下一个增量。3、可先发布部分功能给客户,让用户看到效果。
      增量模型缺点:1、同时开发的构件很难集成,需要软件的开放式结构。2、增量模型一直在修改,很容易退化到边做边改模型,对整个软件开发过程失去控制性。
      增量模型的使用范围:1、进行已有产品升级或新版本开发,增量模型很适合。2、对完成期限很严格的产品,可以考虑该模型。3、对开发的领域很熟悉,且有原型,该模型也非常适合。

      螺旋模型的优点:1、设计上的灵活性,可以在项目的各个阶段进行变更。2、分阶段来构建大系统比较简单,而且使成本计算简单。3、客户始终参与每个阶段的开发,使项目不偏离。4、随着项目的推进,有利于用户掌握项目的信息,也容易使用户和管理层有效交互。 
      螺旋模型的缺点:1、采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;2、过多的迭代次数会增加开发成本,延迟提交时间。
      螺旋模型的使用范围:螺旋模型只适合于大规模的软件项目。
             总结:几种模型都在和用户打交道,而且对整个系统的严格是可以看到的。所以无论哪种方法都要重视用户的需求和对产品的质量控制。 软件开发的方法       软件的开发方法主要有两种:结构化开发方法和面向对象的开发方法       结构化方法:自顶向下,逐步求精的方法,用模块化的方法和功能抽象把系统分为好几个子系统,容易开发,控制也简单。不过由于这样做导致数据和过程是分离的,使程序修改,数据也得修改,造成系统牵一发而动全身,复用性很差。       面向对象的方法:该方法设计出的软件的复用性很好。而且是从问题出手,联系实际,设计软件的系统。       这方面的知识仅初步接触,在以后的学习中会逐步加深。 总结       程序员的第一步,给自己的软件一个标准。


     
推荐阅读
  • 前端开发:从底层到顶端的行业现象解析
    在编程领域,鄙视链现象屡见不鲜,从C语言到Java、.NET等,每个技术栈都有其独特地位。然而,前端开发者尽管常处于鄙视链底端,却在市场需求中备受青睐。本文深入探讨这一现象,并分析前端工程师如何在竞争激烈的市场中脱颖而出。 ... [详细]
  • QBlog开源博客系统:Page_Load生命周期与参数传递优化(第四部分)
    本教程将深入探讨QBlog开源博客系统的Page_Load生命周期,并介绍一种简洁的参数传递重构方法。通过视频演示和详细讲解,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 创建第一个 MUI 移动应用项目
    本文将详细介绍如何使用 HBuilder 创建并运行一个基于 MUI 框架的移动应用项目。我们将逐步引导您完成项目的搭建、代码编写以及真机调试,帮助您快速入门移动应用开发。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 在哈佛大学商学院举行的Cyberposium大会上,专家们深入探讨了开源软件的崛起及其对企业市场的影响。会议指出,开源软件不仅为企业提供了新的增长机会,还促进了软件质量的提升和创新。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
  • 本文介绍了两种方法,用于检测 Android 设备是否开启了开发者模式。第一种方法通过检查 USB 调试模式的状态,第二种方法则直接判断开发者选项是否启用。这两种方法均提供了代码示例和详细解释。 ... [详细]
  • ASP.NET MVC中Area机制的实现与优化
    本文探讨了在ASP.NET MVC框架中,如何通过Area机制有效地组织和管理大规模应用程序的不同功能模块。通过合理的文件夹结构和命名规则,开发人员可以更高效地管理和扩展项目。 ... [详细]
  • 本文将深入探讨PHP编程语言的基本概念,并解释PHP概念股的含义。通过详细解析,帮助读者理解PHP在Web开发和股票市场中的重要性。 ... [详细]
  • 在 Flutter 开发过程中,开发者经常会遇到 Widget 构造函数中的可选参数 Key。对于初学者来说,理解 Key 的作用和使用场景可能是一个挑战。本文将详细探讨 Key 的概念及其应用场景,并通过实例帮助你更好地掌握这一重要工具。 ... [详细]
author-avatar
Max_coffee
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有