软件开发
软件(Software)简单地说,软件也被称为软设备。简单地说,软件是指系统中程序、开发和使用程序所需的所有文档的集合。软件分为系统软件和应用软件。软件不仅包括可以在计算机上运行的程序,而且与这些程序相关的文件通常被认为是软件的一部分。该软件被应用于世界各地,对人们的生活和工作产生了深远的影响。
01
软件开发的内容
不仅是用户需求,还有开发中遇到的所有需求。例如,你必须知道做这个项目是为了解决什么问题;在测试案例中应该输入哪些数据......为了清楚地了解这些需求,您经常需要与客户、项目经理和项目合作伙伴沟通。
02
设计
在编码之前,必须有一个计划告诉你该做什么,结构是什么等等。你必须这样做,否则它可能会一团糟。
03
编程
如果你的程序在项目截止日期不能运行或满足客户的要求,你就拿不到钱。
04
测试
目的是让你知道什么时候完成。如果你很聪明,你应该先写测试,这样你就可以及时知道你是否真的完成了。否则,你往往不知道什么功能真的完成了,离预期的目标还有多远。
在软件开发中,客户和开发人员都有自己的基本权利和义务。
05
客户
定义每个用户需求的商业优先级;
制定总体计划,包括投资多少,需要多长时间,目的是什么;
在项目开发过程中的每一个工作周,投资都能获得最大的回报;
通过重复指定的功能测试,准确掌握项目进度;
可随时改变需求、功能或优先级,避免昂贵的再投资;可根据各种变化及时调整项目计划;
项目可随时取消;项目取消时,以前的开发工作不是一堆垃圾,已开发的功能符合要求,正在进行或未完成的工作应不难接管。
06
开发人员
知道该做什么,优先做什么;
工作效率高;
有问题或困难时,可得到客户、同事、上级的回答或帮助;
评估工作,并根据周围情况的变化及时重新评估;
积极承担工作,而不是消极接受分配;
一周工作40小时,不加班。
软件开发过程
流程的总括
软件设计理念和方法的一般过程包括软件设计的功能和实现的算法和方法、软件的整体结构设计和模块设计、编程和调试、程序协调和测试、编写和提交程序。
1相关系统分析师和用户对需求有需求,然后使用Excel或Word列出要开发的系统的大功能模块,每个大功能模块都有哪些小功能模块,在这一步中明确相关界面时,可以在此步骤中初步定义少量界面。
2系统分析师根据自己的经验和需求,深入了解和分析需求Excel或Word或者相关工具制作文档系统的功能要求文档。本文将明确使用系统的大功能模块、大功能模块的小功能模块,并列出相关的界面和界面功能。
3系统分析师和用户再次确认需求。
4系统分析师根据确认的需求文档中使用的界面和功能需求,对每个界面或功能进行迭代设计。
5系统分析师根据列出的功能,将写好的总体设计文计文档。
6测试准备好的系统。交给用户,用户使用后逐一确认每个功能,然后验收。
01
流程举例
1.某公司想找人订购一套人事管理软件,从某个渠道得知我们提供了这种服务,于是联系了我们。
2.我们将派专门的软件开发业务人员到他们那里了解我们想为他们设计什么软件,然后回来为他们制定一个计划,包括:我们开发的软件的一般界面是什么?谁使用方便?谁能使用什么功能?它有多方便?一般的硬件要求是什么?
3.看完计划后,他们决定要做这样的软件,签合同,我开始开发这个软件。
4.我们把开发出来的软件交用他们使用,其中在使用的过程中哪里使用不方便或哪里达不到要求,我们会第第一时间修改这些功能,直到他们要求的所有功能都能很完美的解决掉。
02
软件开发中的注意事项
设计变更及需求变更:
03
开发人员最怕的是什么呢?设计变化,还是需求变化?我觉得需求变化是最最致命的。当你的一个项目数据库都定下来后,而且已经开发了若干个工作日,突然接到甲方公司提出,某个功能要改变,原先的需求分析要重新改,如果这个修改是涉及的数据库的表结构更改的话,那真是最致命的。这就意味着项目的某些部分得重新推倒重来,如果这个部分跟已完成的多个部分有牵连的话,那就后果更可怕了。所以当碰到这种情况发生,作为项目经理的你就应该考虑先查责任人,究竟是自己的需求分析做的不够好,还是客户在认同了需求分析后做出的修改,如果是后者的话,你完全可以要求客户对他的这个修改负责任!那么,呵呵,客户先生,对不起了,本次新增加的需求将归入另外一个版本。如果是改变前面某个需求的定义,那么说不定就要推倒重来了,不过这个时候到不用太在意,毕竟错的是客户。(项目正式开始前没有没有说清楚其需求)。所以,各位看客,在需求分析做好后,在开工之前一定要叫客户认可签字,并且在合同上要注明,当由客户原因引起的需求改变而造成开发成本的增加,客户要为此买单地。
如果在需求不变的情况之下,设计发生了变化,这个仅仅是我们内部之间的矛盾,商量一下就能解决。在简单设计中,因为前期的设计是不完整的,那么当进入任何一个新的模块进行开发时,都有可能引起设计的变化。开发人员的水平的高低就基本上决定了软件的好坏。
开发人员的测试
开发人员的测试是保证代码能正常运行,在开发时候发现的错误往往比较容易修正。(另外一个好处就是没有人来骂你。因为只有你自己知道)。但是一旦软件到了测试小组那里出了问题,那么就多了很多时间来修正BUG,如果到了客户哪里才发现的BUG,那么时间就更长了,开发人员本身受到的压力也是到了最大话了。客户-