461h International SvmDosiurn Electronics in Marine. ELMAR-2004. 16-18 June 2004. Zadar. Croatia project risks. Third section connects methodologies for dealing with main organisational problems and means of organizing software development project, providing complete solution for achieving efficient software development organization. Conclusions are given at the end. 2. PROBLEMS CONNECTED WITH SOFTWARE DEVELOPMENT ORGANIZATION Software solutions available on today's global software market are the result of joint activities of a number of individual software developers, or many software development teams. The work on software development project should be organised according to the software development process [ 11. Software development process defines activities that are needed to develop software solution, roles that perform these activities and artefacts, i.e. all of the products that are connected with software development [2]. Every software development process, such as Rational Unified Process is created to be universal, i.e. every software development process could be used in different software Fig. 1: Rational Unified Process structure development projects. Therefore, software development process must be adapted to the needs of particular software development project to be efficiently used [l]. Adaptation and application of software development process is long and complicated procedure. We propose the use of Rational Unified Process (RUP) as the base for organisation of software development project because software development process contains many approved software development best practices. Structure and main RUP components are presented on Figure'l. RUP defines activities, roles and artifacts required for software system development. RUP activities are defined within several disciplines used to cover main software system development areas. 2.1 People and competences The first explored software development organization problem is the problem of assigning tasks to the people according to their knowledge. Every member of software development team should be responsible for tasks that are closely connected with his competences [5]. Quality competences are very important and they are considered as a precondition for successful software development project. This means that every software development project should track project member's competences and assign project tasks and activities according to them [4]. We strongly emphasize the role of competence manager, as an addition to roles defined in UP. Role of competence manager should'be responsible for tracing competences of project members and for supervision of task and activity assigning. Competence manager should also build database with details about competences of project members, which should be used by project management team. With the role of competence manager, we propose assigning competence tasks to every project member, i.e. each UP role should have defmed 39 1 Authorized licensed use limited to: Chalmers University of Technology. Downloaded on September 7, 2009 at 09:55 from IEEE Xplore. Restrictions apply.
461h International SvrnDosium Electronics in Marine. ELMAR-2004. 16-18 June 2004. Zadar. Croatia activities connected with competence development. Successful software development project should result with quality software solution and increased competences of project members. This is important because efficiently used competences should remarkably shorten development time and result with better quality of software solution. 2.2. Software requirements The quality of software system is usually measured in accordance Requirement property Description Benefit to the amount of satisfied Used to defme probability Requirements with requirements. UP defines of requirement change high probability of requirement discipline that Stability during sohare change can be contains activities related to development process selected requirement management, but still Used to order reauuements Reouirements with many problems related to Risk amount according to the risk higLest risk impact amount related to can be chosen to be software requirements remain. requirement realization realized first Poor dealing with software requirements is one of the most Table 1: Proposed requirement properties common causes for software development project failure [2], [4], [5]. Requirements management should be part of every software development phase, because of common requirements changes during the project realisation. Software requirements management is not a trivial task and usually demands considerable amount of time. We propose systematic approach to requirements management, considered as a supplement to UP requirement management discipline. Requirements management should start in accordance with the start of software development project. In initial phases of software development, requirements should be listed, possibly in some requirements management tool. After basic description, requirements should be divided into categories defined according to the competences of project members. Requirement division is significant, because requirement categories form the base for assigning responsibilities on software development project. The role of competence manager has noteworthy responsibility to requirement category definition. If software requirements are divided into categories according to the competences of project members, it is easy to assign these categories to each project member. This should be done on early project phases, but requirements categories ought to be reconsidered after major project milestones. When initial project categories are established, they can be assigned to particular project members, when these categories become responsibilities for project members. Project members responsible for some requirement group should explore in-depth and define each requirement in category. After exploration, project members should mark each requirement with label that holds information about the amount of risk that each requirement brings into software development project. Requirements in each category should be ordered according to the amount of risk connected with them. When the requirements are categorised and ranked according to the risk amount, project management should chose requirements with highest risk impact to be realised first. By applying approach described above, software development will be guided by software requirements to allow early risk resolution. In this case, the most important risks will be solved in the beginning of software development, when the costs of possible project failure (caused by risk materialisation) are acceptably low. A change of requirements during software development is common problem on software development projects [l]. RUP requirement management discipline handles requirement 392 Authorized licensed use limited to: Chalmers University of Technology. Downloaded on September 7, 2009 at 09:55 from IEEE Xplore. Restrictions apply.
46th International Symposium Electronics in Marine, ELMAR-2004, 16-18 June 2004, Zadar. Croatia change, but in formal manner that is not suitable for small development projects with high requirement change rate. In order to support requirements change, we propose methodology for examining and tracing change of requirements in software development project. This methodology is based on development of requirement impact matrix that contains information about requirements and main project impact areas. Requirement impact matrix should contain information about main development areas and software system parts for each requirement. With this approach it is easy to track main development areas and requirements connected with them. In addition, a new property of each requirement called stability is proposed as presented on Table 1. Stability property holds information about requirement stability and probability that particular requirement will change. Each software development iteration should begin with requirement status assessment. On this status assessment requirements with high probability of change should be identified and a special plan should be defined in order to prepare and explain actions which are required if requirement change occurs. Particular attention should be given to requirements with high probability of change during software development iteration in order to promptly recognize occurrence of requirement change. If the requirement change occurs, a project status should be assessed and actions defined in requirements change plan should be taken. 2.3. Project risks Today companies must build competitive software in shortest possible time to market, a process connected with a large number of risk impacts. Risks on software development project should be assessed in early development phases and tracked during complete software development lifecycle. RUP defines risk management activities in Risk addressing Avoided Confined I Monitored Description I Methodology 1 TO completely I Use of different technology. -. reduce probability requirement change, project of risk occurrence plans adjustment To keep risk impact Changes on the project within certain limits regarding used technology or boundaries and resources To lessen Significant changes on the consequence of risk project, Dehe risk occurrence occurrence plans to minimize risk consequence To track risk Risk occurrence tracked occurrence continuously during software development 393 Authorized licensed use limited to: Chalmers University of Technology. Downloaded on September 7, 2009 at 09:55 from IEEE Xplore. Restrictions apply.
46th International Symposium Electronics in Marine, ELMAR-2004, 16-18 June 2004, Zadar. Croatia development project as an addition to roles defined in RUP to be responsible for all activities connected with project risks, i.e. risk identification, definition and management, as well as for defining strategies and actions connected with risk materialization. Because of risk categorisation according to project member’s competence categories, risks must be assigned to project members according to risk impact area. With this approach, each project member has responsibility for risk identification and definition according to his competence area to continuously track assigned risks and identify possible risk occurrence. Project management team should supervise risk tracking and plan software development based on risks identified by project members and other project status indications defined in RW. The whole idea of this approach is to push risk identification to software developers and to have currently updated information about project risks, which should be used as a base for project decisions. 3. ORGANISATION OF SOFTWARE DEVELOPMENT Software development process is a way of definition for sequence of actions which are performed to build software solution. The company’s development resources should be used as much as possible to develop quality software in shortest possible time and within planned expenses. In efficient organisation of software development project, each project member has been given clearly defined activities to perform and responsibilities to carry. In order to achieve best possible utilisation of company’s resources, each project member should perform activities defmed in RUP that are closely related to his competences and knowledge. We propose the role of competence manager for every software development project to supervise role and activity allocation between project members. The use of software development process is suggested, because it brings knowledge about the best software development practices based on experience collected in many software development projects [l]. Typical workflow for obtaining efficient software development organisation is shown on Figure 2. (-1 Unified Pmcess study Adaptation of Unified Process 4 Fig. 2: Workflow for Competence manager has very important role in adaptation of RUP obtaining efficient project because RUP defined activities should be suited according to the organhation ?? Roles and Actiuties definition Application d proposed methodologies 4 ji Sohare de\\elopment project realization competences of project members. The main concept for adaptation of software development process is to perform only those activities which add value to the software system. This means that all performed activities should bring benefit to the software development project. Besides adaptation of activities, project management team should evaluate all products and artefacts that RUP suggest and customise them to the project needs. After theoretical preparation and adaptation of RUP, actual work on software development project should begin. This doesn’t mean that the entire work software development project organisation is finished. On the contrary, the real work on organisation of software development actually begins with the start of the project. Responsibilities of project management team members include guiding project members and supervision of performed activities. By this supervision, project management team members can continuously track progress on development areas for which they are responsible. The results of supervision should be used as a base for organisation improvement. 394 Authorized licensed use limited to: Chalmers University of Technology. Downloaded on September 7, 2009 at 09:55 from IEEE Xplore. Restrictions apply.
461h International Symposium Electronics in Marine, ELMAR-ZW4. 16-18 June 2004. Zadar. Croatia 5. CONCLUSION In this paper, the most common causes for software development project failures are presented. Poor utilisation of human resources, unreasonable software system requirements and unexpected materialisation of undocumented project risks usually leads to project termination. Problems on software development projects are connected with the development team member’s approach and implementation of the methodologies we proposed in this work can eliminate them. Proposed methodologies are defined as an addition to activities and disciplines described in Rational Unified Process. The methodologies for dealing with people competences, software system requirements and project risks are simple and easy to apply on real software development projects. Methodologies defined for software development project planning and organisation will significantly improve working conditions on software development projects. Methodologies presented in this work with accordance to Rational Unified Process will bring many benefits to software development project and remarkably increase project’s prospects for success. Finally, application of presented methodologies will lead to better software development projects and to better software products themselves. REFERENCES [l] SertiC Hrvoje, Applying Unified process on complex software system development, Master Thesis, Economic Faculty, University of Zagreb, Zagreb 2002. [2] Booch Grady, Rambaugh James, Jacobson Ivar: The Unified Software Development Process, Addison-Wesley, New York, 2001. [3] Larman Craig: Applying UML and Patterns, Prentice Hall PTR, Upper Saddle River NJ, 2002. [4] Krutchten Philippe: The Rational Unified Process, Addison-Wesley, New York, 2000. [5] Royce Walker, Software Project Managment: A unfied framework, Addison-Wesley, New York, 1998. EFIKASNA ORGANIZACIJA RAZVOJA SOFTVERA ZASNOVANA NA PlUMJENI UNIFICIRANOG PROCESA Saietak: Ruzvoj sofiera se dunus povezuje sa orgunizucijom radu vedeg broju osobu, chk i vedeg broja ruzvojnih iimovu i primjenom softisiicirunih i nujnovijih tehnologiju. Kuko bi se omogudila ejkasnu orgunizucija rmvoju sojiieru predl&mo metodologije kojima se trebu nudopuniti Unlficiruni Proces zu rmvoj sojivera i premu kojima irebu orgunizirati rad na projektu kako bi se osigurula ejkusnu realizacija sofierskog sustavu. Metodologija za koriitenje kompetencija osobu koje sudjeluju u projektu ruzvoja sofieru numijenjenu je stvuranju okrufenja nu projektu ruzvoja sojiveru u kojem svuka osobu U projektu postaje odgovorna za aktivnosti koje su usko vezune uz njegovo podruqe kompeienciju. Metodologiju vezunu uz zahtjeve koje sojiverski sustuv mora ispunjuvuti dijeli zahtjeve U kutegorije vezane uz podruqa kompetencija kako bi omogudilo nujbolje iskoriitenje kompetencija i kvulitetno defnirunje zuhtjevu koje sojiverski sustav mora ispuniti. Predloiene metodologije skupa so primjenoin Unijiciranog Procesu trebuju omoguditi ejkusnu reulizaciju kvuliteinog sofierskog susiavu U= predvidljive resume i vrijeme potrebno za rumoj. Kljurne rijeri: Razvoj komunikacijskih sustava, slutajevi uporabe, programski zahtjevi Authorized licensed use limited to: Chalmers University of Technology. Downloaded on September 7, 2009 at 09:55 from IEEE Xplore. Restrictions apply.
395
因篇幅问题不能全部显示,请点此查看更多更全内容