`
javacoming
  • 浏览: 37402 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论
阅读更多

软件开发的内容是:需求、设计、编程和测试!

需求:不仅仅是用户需求,应该是开发中遇到的所有的需求。比如,你首先要知道做这个项目是为了解决什么问题;测试案例中应该输入什么数据......为了清楚地知道这些需求,你经常要和客户、项目经理等交流。

设计:编码前,肯定有个计划告诉你要做什么,结构是怎样等等。你一定要按照这个来做,否则可能会一团糟。

编程:如果在项目截止日,你的程序不能跑起来或达不到客户的要求,你就拿不到钱。

测试:目的是让你知道,什么时候算是完成了。如果你聪明,你就应该先写测试,这样可以及时知道你是否真地完成了。否则,你经常会不知道,到底有哪些功能是真正完成了,离预期目标还差多远。 

软件开发中,客户和开发人员都有自己的基本权利和义务。
客户:
  定义每个用户需求的商业优先级;
  制订总体计划,包括用多少投资、经过多长时间、达到什么目的;
  在项目开发过程中的每个工作周,都能让投资获得最大的收益;
  通过重复运行你所指定的功能测试,准确地掌握项目进展情况;
  能随时改变需求、功能或优先级,同时避免昂贵的再投资;能够根据各种变化及时调整项目计划;
  能够随时取消项目;项目取消时,以前的开发工作不是一堆垃圾,已开发完的功能是合乎要求的,正在进行或未完成的的工作则应该是不难接手的。

开发人员:
  知道要做什么,以及要优先做什么;
  工作有效率;
  有问题或困难时,能得到客户、同事、上级的回答或帮助;
  对工作做评估,并根据周围情况的变化及时重新评估;
  积极承担工作,而不是消极接受分配;
  一周40小时工作制,不加班。 

软件开发过程可以包括以下6个阶段:

计划

      对所要解决的问题进行总体定义,包括了解用户的要求及现实环境,从技术、经济和社会因素等3个方面研究并论证本软件项目的可行性,编写可行性研究报告,探讨解决问题的方案,并对可供使用的资源(如计算机硬件、系统软件、人力等)成本,可取得的效益和开发进度作出估计。制订完成开发任务的实施计划。

分析

      软件需求分析就是回答做什么的问题。它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。本阶段的工作是根据需求说明书的要求,设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库或数据结构设计说明书,组装测试计划。

设计

      软件设计可以分为概要设计和详细设计两个阶段。实际上软件设计的主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。可以是一个函数、过程、子程序、一段带有程序说明的独立的程序和数据,也可以是可组合、可分解和可更换的功能单元。模块,然后进行模块设计。概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。

编码

      软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的"源程序清单"。充分了解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。

      当前软件开发中除在专用场合,已经很少使用二十世纪80年代的高级语言了,取而代之的是面向对象的开发语言。而且面向对象的开发语言和开发环境大都合为一体,大大提高了开发的速度。

测试

      软件测试的目的是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设计一套出色的测试用例(测试数据和预期的输出结果组成了测试用例)。如何才能设计出一套出色的测试用例,关键在于理解测试方法。不同的测试方法有不同的测试用例设计方法。两种常用的测试方法是白盒法测试对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。结构错误包括逻辑、数据流、初始化等错误。用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。白盒法和黑盒法依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。其中接口错误包括内部/外部接口、资源管理、集成化以及系统错误。黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。黑盒法。

维护

      维护是旨在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。编写软件问题报告、软件修改报告。

      一个中等规模的软件,如果研制阶段需要一年至二年的时间,在它投入使用以后,其运行或工作时间可能持续五年至十年。那么它的维护阶段也是运行的这五年至十年期间。在这段时间,人们几乎需要着手解决研制阶段所遇到的各种问题,同时还要解决某些维护工作本身特有的问题。做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以使它扩展功能,提高性能,为用户带来明显的经济效益。然而遗憾的是,对软件维护工作的重视往往远不如对软件研制工作的重视。而事实上,和软件研制工作相比,软件维护的工作量和成本都要大得多。

      在实际开发过程中,软件开发并不是从第一步进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。在测试过程中的问题可能要求修改设计,用户可能会提出一些需要来修改需求说明书等。

分享到:
评论

相关推荐

    软件工程课后习题答案 软件工程 软件工程 软件工程

    在软件开发过程中,软件工程是一门至关重要的学科,它涵盖了软件开发的整个生命周期,包括需求分析、设计、编码、测试和维护。这个压缩包文件似乎包含了一份关于软件工程的课后习题答案,以及可能与电子技术基础相关...

    软件工程发展史

    软件工程发展史 软件工程是指为了提高软件质量、降低成本、提高生产效率、降低维护难度的一门工程学科。软件工程的发展经历了漫长的过程,从软件的诞生到现在的发展趋势。下面是软件工程发展的主要阶段: 第一阶段...

    软件工程课程设计飞机订票系统源代码.zip

    软件工程课程设计飞机订票系统源代码软件工程课程设计飞机订票系统源代码软件工程课程设计飞机订票系统源代码软件工程课程设计飞机订票系统源代码软件工程课程设计飞机订票系统源代码软件工程课程设计飞机订票系统源...

    \软件工程课程设计\软件工程课程设计.doc

    软件工程课程设计 软件工程课程设计是软件工程专业学生的一门重要课程,旨在培养学生设计、开发和测试软件系统的能力。本文档旨在介绍软件工程课程设计的基本概念、方法和技术。 1. 绪论 软件工程课程设计是一个...

    软件工程PDF课件1-11章打包.zip

    软件工程PDF课件 01_SEIntro软件工程概述.pdf 软件工程PDF课件 02_Process软件过程.pdf 软件工程PDF课件 03_Management软件项目管理.pdf 软件工程PDF课件 04_Requirement需求工程.pdf 软件工程PDF课件 05_OOIntro...

    软件工程习题解答

    作者编著的枟软件工程导论枠被国内许多高校选作软件工程课的教材,累计销售约70 万册。为配合 读者学习软件工程,作者又精心编写了这本学习辅导书。 本书正文共10 章,每章由三部分内容组成:第一部分系统扼要地...

    JAVA开发项目软件工程课程设计图书借阅管理系统源代码.zip

    JAVA开发项目软件工程课程设计图书借阅管理系统源代码JAVA开发项目软件工程课程设计图书借阅管理系统源代码JAVA开发项目软件工程课程设计图书借阅管理系统源代码JAVA开发项目软件工程课程设计图书借阅管理系统源代码...

    面向对象软件工程

    《面向对象软件工程》 作者:Stephen.R.Schach 学校:(美)范德比尔特大学 书名原名:Objected-Oriented Software Engineering 目录: 第一部分 面向对象软件工程简介  第一章 面向对象软件工程的范畴  第二章 ...

    软件工程 电子书 电子科技大学

    《软件工程》是一本由电子科技大学的黄迪明教授主审、许家珆教授主编的专业教材,它全面地涵盖了软件开发的各个阶段和关键环节,是学习软件工程理论与实践的重要参考资料。这本书的章节结构严谨,内容丰富,旨在帮助...

    软件工程课程设计

    软件工程课程设计 软件工程课程设计是计算机科学相关专业《软件工程》课程的后继教学环节,是一个重要的、不可或缺的实践环节。其目的是使学生能够针对具体软件工程项目,全面掌握软件工程管理、软件需求分析、软件...

    软件工程设计案例

    ### 软件工程设计案例相关知识点 #### 一、软件工程的历史背景与发展历程 - **背景**: 20世纪60年代,随着高级语言的普及,计算机的应用领域迅速扩大,导致对软件系统的需求激增。然而,当时的软件开发方式无法...

    软件工程课件.rar

    《软件工程深度剖析》 软件工程是一门涵盖了软件开发全生命周期的学科,旨在通过系统化、规范化的流程来提高软件质量、效率以及可维护性。本资料“软件工程课件.rar”提供了关于软件工程的全面讲解,以PPT的形式共...

    合肥工业大学软件工程试卷.zip

    【标题解析】:“合肥工业大学软件工程试卷.zip”这个标题表明这是一个关于软件工程学科的考试资料,来自于合肥工业大学,且是以压缩文件(.zip)的形式存储。.zip是一种常见的文件压缩格式,用于打包多个文件或...

    软件工程毕业设计—兼职招聘系统源码+数据库.zip

    软件工程毕业设计—兼职招聘系统源码+数据库软件工程毕业设计—兼职招聘系统源码+数据库软件工程毕业设计—兼职招聘系统源码+数据库软件工程毕业设计—兼职招聘系统源码+数据库软件工程毕业设计—兼职招聘系统源码+...

    北大软件工程课件

    软件工程专业课资料 PPT 非常详细 软件工程专业是一门研究用工程化方法构建和维护有效的、实用的 软件工程知识体系全景图 软件工程知识体系全景图 [1] 和高质量的软件的学科。它涉及到程序设计语言,数据库,软件...

    软件工程专业十篇实习报告

    1、软件工程实习报告-8000字.doc 2、软件工程实习手册-7000字-日志+总结.doc 3、软件工程实习周记-11周-4500字.doc 4、软件工程实训总结-5300字.docx 5、软件工程专业实习报告-精选.docx 6、软件技术实习报告10篇....

    软件工程课程设计管理系统.doc

    软件工程课程设计管理系统 软件工程课程设计管理系统是指一种用于管理软件工程课程设计的系统,旨在帮助学生、教师和管理者更好地管理和跟踪软件工程课程设计的各个阶段。该系统涉及到软件工程课程设计的各个方面,...

    集美大学试卷 软件工程2010-2011学年期末《软件工程》试卷

    《集美大学软件工程2010-2011学年期末《软件工程》试卷解析》 在软件工程的学习过程中,期末试卷是检验学生理论知识与实践技能的重要手段。集美大学软件工程专业的期末试卷,无疑是对学生们一学期学习成果的全面...

    软件工程导论;河南大学;软件学院;软件工程全家桶【所有的学习资料、复习资料】

    整理好的所有的软件工程导论资料,从课件到期末的复习题以及小组大项目;简称软件工程导论全家桶; 1.日常学习课件 2.软件工程大项目(很全),可直接进行给展示以及项目说明书等等 3.软件工程所有雨课堂的整理好的...

Global site tag (gtag.js) - Google Analytics