Mobile systems have evolved to a level where they are required to carry out their operations in a wide range of environments, from voice communication, networking and entertainment to complex business applications. Software running on mobile devices has as well grown to a point in which it has earned a major role and impact on the overall performance and capability of a system. This situation attracts a genuine interest of knowing in a more detailed fashion the conditions under which mobile software systems are conceived, designed, implemented, and maintained, both from process and product point of views. In parallel, “mission-critical” is a recurrent concept in Software Engineering that refers to software systems in which a malfunction may lead to injuries, loss of lives or loss of significant investment. As consequence, these systems require the highest care through all steps of the software development cycle [1]. Application areas of mission-critical software comprehend manufacturing control, transportation systems, weapon delivery systems, space programs, air traffic control, medical systems and many others [2]. The continuous growth in capabilities in software applications running in mobile devices allows them to become an attractive platform to be part of more complex systems, including safety-critical or missioncritical systems. As mentioned above, due to the nature of these environments, such mobile software system would be required to meet strict assurance practices with regard to safety, security and performance, being subject to attain certifications from competent authorities before entering into service. Currently we count on several software processes and quality management systems intended to support the development of general-purpose (e.g. CMMi, ISO 12207, ISO 15504) or application-specific (e.g. RTCA/DO-178B, ISO 62304, EN 50128) software. These models were conceived and developed without considering restrictions given by a specific target platform, and are general enough to accommodate any execution environments (e.g. embedded, desktop, etc.), so they are prepared to suit the needs and restrictions of mobile equipment. On the other hand, the number of published development models specific for mobile software systems (e.g. Mobile-D [3] or RaPiD7 [4]) is still limited, and they present addressable shortcomings. These models converge in the selection of Agile methodologies to provide a development framework, calling attention on the necessity of adapting the processes and practices to the evolving needs of mobile software, shorting the development cycles. As a common characteristic, they have claimed little level of criticality on mobile applications, so Agile quality assurance practices do not necessarily fulfill the requirements imposed by application-critical standards or certification procedures [5]. In summary, currently it is not available a methodology or framework to manage the assurance of mobile software so as to produce application-critical, certifiable software, taking into account the needs, boundaries, and particular conditions given by a mobile environment. Such conditions may impact the quality of the software product within a mission-critical system, and deserve to be carefully considered in addition to the practices already dictated by safety-critical software development standards. We believe that it is necessary to study (i.e. survey, leverage) current software assurance practices adopted by mobile development, and analyze the existing gap between them and mission-critical software standards. After knowing such distance, we may identify the ways in which current practices can be strengthened or adapted to have a robust mobile software assurance process that positively aids mobile developers to produce software able to be incorporated into a certifiable mission-critical environment.
CORRAL L, SILLITTI A, SUCCI G (2011). Preparing Mobile Software Development Processes to Meet Mission-Critical Requirements.
Preparing Mobile Software Development Processes to Meet Mission-Critical Requirements
SUCCI G
2011
Abstract
Mobile systems have evolved to a level where they are required to carry out their operations in a wide range of environments, from voice communication, networking and entertainment to complex business applications. Software running on mobile devices has as well grown to a point in which it has earned a major role and impact on the overall performance and capability of a system. This situation attracts a genuine interest of knowing in a more detailed fashion the conditions under which mobile software systems are conceived, designed, implemented, and maintained, both from process and product point of views. In parallel, “mission-critical” is a recurrent concept in Software Engineering that refers to software systems in which a malfunction may lead to injuries, loss of lives or loss of significant investment. As consequence, these systems require the highest care through all steps of the software development cycle [1]. Application areas of mission-critical software comprehend manufacturing control, transportation systems, weapon delivery systems, space programs, air traffic control, medical systems and many others [2]. The continuous growth in capabilities in software applications running in mobile devices allows them to become an attractive platform to be part of more complex systems, including safety-critical or missioncritical systems. As mentioned above, due to the nature of these environments, such mobile software system would be required to meet strict assurance practices with regard to safety, security and performance, being subject to attain certifications from competent authorities before entering into service. Currently we count on several software processes and quality management systems intended to support the development of general-purpose (e.g. CMMi, ISO 12207, ISO 15504) or application-specific (e.g. RTCA/DO-178B, ISO 62304, EN 50128) software. These models were conceived and developed without considering restrictions given by a specific target platform, and are general enough to accommodate any execution environments (e.g. embedded, desktop, etc.), so they are prepared to suit the needs and restrictions of mobile equipment. On the other hand, the number of published development models specific for mobile software systems (e.g. Mobile-D [3] or RaPiD7 [4]) is still limited, and they present addressable shortcomings. These models converge in the selection of Agile methodologies to provide a development framework, calling attention on the necessity of adapting the processes and practices to the evolving needs of mobile software, shorting the development cycles. As a common characteristic, they have claimed little level of criticality on mobile applications, so Agile quality assurance practices do not necessarily fulfill the requirements imposed by application-critical standards or certification procedures [5]. In summary, currently it is not available a methodology or framework to manage the assurance of mobile software so as to produce application-critical, certifiable software, taking into account the needs, boundaries, and particular conditions given by a mobile environment. Such conditions may impact the quality of the software product within a mission-critical system, and deserve to be carefully considered in addition to the practices already dictated by safety-critical software development standards. We believe that it is necessary to study (i.e. survey, leverage) current software assurance practices adopted by mobile development, and analyze the existing gap between them and mission-critical software standards. After knowing such distance, we may identify the ways in which current practices can be strengthened or adapted to have a robust mobile software assurance process that positively aids mobile developers to produce software able to be incorporated into a certifiable mission-critical environment.I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.