软件开发过程中存在哪些问题(软件开发过程中存在哪些问题及建议)
今天给各位分享软件开发过程中存在哪些问题的知识,其中也会对软件开发过程中存在哪些问题及建议进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
软件开发过程中的常见问题有哪些?
1.前言应用软件系统是事件驱动的软件系统,系统通过接口接受事件后,交由系统业务层处理,业务层处理完事件后将需要的信息存入数据库,整个应用软件系统分为三个子系统:接口子系统,业务子系统,数据库子系统,业务子系统进一步分为三个子系统:表示层,业务层,数据接入层。其中业务层是整个系统的核心,表示层负责通过接口子系统接收系统事件交给业务层处理,数据接入层供业务层使用完成数据的持久化。每个层对编程人员的技术要求是不同的,表示层需要了解的技术根据接口子系统选择的不同而不同:如windows界面,需要对MFC有比较深入的了解,web界面则要求对asp,asp.net,或jsp有比较深入的了解。数据访问层需要的技术则由数据库子系统的选择决定,另外还需要了解:ODBC,JDBC等。接口子系统的选择:windows界面,java界面,web界面,命令行接口,CTI, API等 数据库子系统的选择:关系数据库,普通文件等基于以上对应用软件系统的理解,软件开发流程的输入是用户的业务需求,输出就是系统的业务层、表示层、数据接入层的代码,以及接口和数据库,以及各种文档。因此得到比较理想化的软件开发流程图,该图使用uml中的活动图描述。2.需求分析阶段需求分析阶段的常见问题是:需求分析不够深入,对问题域没有仔细研究,急于进入设计阶段。造成这种问题一方面是因为项目管目赶进度以及存在于管理人员头脑中的根深蒂固的想法:任何时候不能让任何人员闲着,另外很大的原因是很多人不知道如何进一步深入研究问题域。需求分析阶段不仅要列出系统的use case,更重要的是要列出use case的输入输出和例外情况等,以及问题域中的对象之间的静态关系和动态关系,如对象间的包含关系,继承关系,调用关系等。需求分析阶段另外一个常见的问题是常常将需求分析等同于数据库设计,需求分析阶段定义的是系统作什么,而不是怎么做,需求分析的结果应该与具体的技术实现无关。数据库设计是技术实现的细节,应该尽可能的推迟技术细节的决策,不应该使技术细节束缚了我们对系统需求的理解。需求分析阶段应该从用户的角度对系统建模,不应将大量的技术细节暴露给用户,导致系统易用性差。需求分析阶段可以进一步细分为业务需求分析阶段和系统功能需求分析阶段。在很多研发性质的系统中,不注重业务需求分析,只有系统功能需求分析,导致开发人员知其然不知其所以然。系统功能规范文档与业务需求文档的重要区别有以下几点:内容不同:系统需求分为功能需求和非功能需求,功能需求进一步分为业务功能需求和非业务功能需求。系统需求规范文档除了包括业务需求文档中的业务功能需求,功能规范文档需要增加以下内容:系统的非业务功能需求,由于业务需求由计算机系统实现而产生的功能需求,如系统需要系统管理员管理,系统管理员的角度产生一些非业务功能需求,另外需要描述系统非功能需求:数据量,性能要求,响应速度,可用性要求,可靠性要求,界面语言要求等等。 阅读的对象不同:业务需求文档是用来与业务人员交流,功能规范文档是开发人员开发的依据 使用的语言不同:业务需求文档使用自然语言书写,而功能规范文档使用比较严谨的语言,如:uml书写 对编写人的要求不一样:业务需求编写人员只需要对业务系统熟悉,系统规范由系统架构师完成 体现系统架构师价值的地方是编写系统规范文档和业务层设计, 系统规范文档是下一步界面设计,业务层设计和数据库设计的依据,表示层,业务层,数据访问层之间是相互联系的,它们之间的关系应该在系统规范文档中找到。3.架构设计阶段架构设计阶段的常见问题是将架构设计理解为技术架构设计,实际上架构设计分为技术架构设计和业务架构设计。技术架构一般由系统软件商提供,可以在不同的应用软件系统中使用,例如:微软的MFC, SUN的J2EE等。对于一个应用软件系统,更重要的是业务架构的设计,也就是将需求分析阶段中得到的各种关系,根据系统的非功能需求将需求分析转变为代码。其实没有业务架构的设计也是可以的,很多项目中直接将对象之间的各种关系以数据库的方式实现,这样的系统不是面向对象的,因此面向对象设计的很多好处不能体现。由于在架构设计阶段中没有进一步细分,通常会导致不能准确估计任务量,造成项目计划变成摆设。4.详细设计阶段详细设计阶段一个重要的任务是系统持久化设计。对应用系统而言,持久化设计只是管理存储的机制,有多种技术手段可以选择:可以是面向对象数据库管理系统,简单的文件,或者是关系数据库,也可以是使用ORM工具等。总之应该把它留到最后作为细节处理。我们不应该将我们的系统和任何特定的技术绑定在一起。我们可以根据需求自由选择需要的持久化技术,并且保留在将来需要时更改持久化技术的自由。5.编码阶段编码阶段还处于小农经济,自给自足,没有分工合作。编码阶段以use case为粒度安排工作,这样的安排方式要求每一个开发人员必须对表示层,业务层,数据接入层的所有技术都要有比较深入的了解,由于每个开发人员各自只对自己的use case负责,对别人的use case不了解,但是每一个use case会有功能重复的地方,导致大量的重复工作。编码阶段工作安排的粒度应该是类,编码阶段工作的安排原则是先分层,再分割,按照表示层,业务层,数据访问层分开后,每一层内可以进一步分为不同类,使用测试驱动的编程方法,每个编程人员单独编写代码,并进行单元测试。每个层次的编程人员只需要对某一种技术有比较深入的了解。6.测试阶段很多人分不清什么是单元测试,什么是集成测试,什么是系统测试?测试的顺序是先单元测试,然后是集成测试,最后是系统测试。单元测试是源代码级的测试,一般由编程人员自己使用各种unit工具测试,是白盒测试。集成测试是在单元测试结束后,将一个或若干个单元作为一个子系统的黑盒测试,测试子系统内的所有组件可以正确的交互,集成测试通过对子系统不断增加新的单元最后完成整个系统的测试,集成测试不应由开发人员完成。7.结束软件开发过程中,各种辅助工具以及process很重要,但是使用工具和process的最终目的是为了更高效的在开发人员之间沟通交流,记录存在开发人员脑子里的想法,不要为了process而process。不能以为会使用MS word,就认为可以成为作家。最后引用Robert Martin的《敏捷软件开发:原则、模式与实践》中的一句话作为本文的结束:过渡信赖工具和过程以及低估智力和经验都是软件开发灾难的源泉。 注: 本文摘自网络 台州极速网络有限公司愿以雄厚的技术实力基础
IT培训分享软件开发项目中会遇到的问题
软件开发项目中会遇到哪些问题呢?参加软件学习不得不了解在以后工作中会出现的状况,IT培训为你提前解析。
1)新手。任何项目组成员都不可避免地出现新手,他们往往是刚刚从大学毕业的学生。这些新手由于软件开发时间太短,往往技术不成熟,没有形成良好的开发习惯,所以编写代码质量较差,问题很多。他们常常成为项目组的“鸡肋”,用多了项目质量无法得到保证,不用则又人手不够。当然北大青鸟校区的学子毕业就已经有一年多的工作经验,已经是熟手了。
2)人员变动。一个维护时间稍长一点儿的软件项目,人员变动是在所难免的。老员工被调动到其它项目去了,由新员工来接替他们的工作。北大青鸟校区软件讲师在一次软件培训课堂上就说到,在我的项目组中,人员调动达到了90%,没有调走的就是我自己。新员工在接替老员工进行代码维护,甚至继续进行新的开发的时,由于对原有代码以及设计思路理解的偏差,也会出现大量的低劣代码。
3)不规范的代码编写。即使除去以上两个问题的影响,项目组成员编写的代码同样会出现问题。在项目开发之初,我们往往会制定一个代码编写的规范,但在项目开发过程中,许多成员往往会忽视这些代码规范而进行随意的编写。随意地代码编写会降低代码的可读性、可维护性和易变更性。那么,我们应当采用什么样的管理措施,保证代码的规范,提高代码的质量呢?
软件开发过程中会遇到哪些问题
手机app开发过程中所遇到的9大注意事项:
一、没有规划的开始
很多App项目在开发之前,都没有规划好,这就比如,写作文没有大纲,做房子没有建筑图,到最后做出来的app和客户需要的效果大相庭径。所以在开始 之前就要做好一份书面规划,包括app开发的目的、需要实现的功能,以及预期每个阶段需要完善哪些功能等等,然后根据规划,设计出用户需求的流程图。
二、盲目的创建跨平台app
跨平台app在一定程度上,能从用户的实际使用中获得反馈,有利于改善在其他平台发布的版本。然而跨平台app一般情况下没有全面的功能,对于多个独 立的平台来说,则需要更多的编码。所以在设计app之前,要展开用户调查,包括不同的年龄、生活方式、教育环境等等,再判断使用安卓和ios的比例,确定 好开发平台。
三、不重视开发人员建议
通常产品设计师在得到一些灵感的时候,就会在产品中加入一些其他元素,然而站在开发者的角度去考虑问题,有时候会觉得加进来的这个东西比较多余,而且 和移动设备的操作体验也不匹配,或者这些元素会产生一些不必要的数据。蓝海汇app开发技术人员介绍:这时如果产品设计师一意孤行的话,很可能会导致产品 变残,或者因此而让用户在使用过程中产生了多余的数据,而放弃此应用。所以比较好的办法就是,在技术可行,并不影响用户体验的情况下,可以实施这种想法。
四、将app设计成网站模式
用户愿意用你的App,主要原因有两种,一是有用;二是精简、快速,两者缺一不可。如果将app设置成网站形式,不仅打开缓慢,容易闪退,花了大量时间还找不到想要的重点在哪里。另外,如果用户想要打开网页版,他们还会用手机吗,只有在特别需要的情况下才会使用吧。
五、手机屏幕尺寸不兼容
其实这种情况很常见,同一个app在不同手机上排版不同、格式不同,比如说在某些小屏幕的手机上,看到的内容就比较凌乱,给人非常不专业的感觉。所以开发者需要注意手机屏幕尺寸的兼容性。
六、触发后台程序
使用app时,移动设备上也会运行其他后台服务,过多的系统需求会导致设备崩溃,这是常见的大忌。
七、忽视操作系统集成
Android和iOS风格、布局和导航都大不相同,这需要匹配创建项目的每一个操作系统来满足用户。同时,对苹果app而言,它需要专为操作系统而设计的应用。
八、节省测试
一个人的思维引导他做的事情,是一个自然过程,所以开发者或设计程序人员对自己开发的或者设计的产品是没法公正判断的,因为他们开发出来的产品正是他 们了解到的样子。那么就不能由开发者或设计程序人员自己来测试。作为测试人群,他们应该是目标用户,或者是没有参与开发的人员,但最好不要是家人,因为比 较不客观。
九、迷失最终目的
在规划好app开发项目流程以后,不要轻易改变,如果在开发过程中,不断加入新的需求,就会逐渐远离最初的开发目的,这是不能让客户满意的。那么在有新的 需求或者想法时,要及时在产品开发前,与客户开会讨论并确认,尽量确保开发出来的产品与最初规划的样子相符合。
软件开发过程中存在哪些问题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于软件开发过程中存在哪些问题及建议、软件开发过程中存在哪些问题的信息别忘了在本站进行查找喔。