The Role of Software in Systems by Gerrit Muller Buskerud University College e-mail: gaudisite@gmail.com www.gaudisite.nl Abstract Software is a dominating factor in the development of complex systems. It plays a crucial role in the performance of the final product at the one hand, while it contributes significant to the development cost and elapsed time of development. This paper will discuss the role of software in the broader system context. An improved understanding of the role of software enables the system architect, and the other stakeholders of the product creation process, to integrate the software development better. In this way hardware-software tradeoffs can be made, balancing performance, costs and risks. human user Distribution This article or presentation is written as part of the Gaudí project. The Gaudí project philosophy is to improve by obtaining frequent feedback. Frequent feedback is pursued by an open creation process. This document is published as intermediate or nearly mature version to get feedback. Further distribution is allowed as long as the document remains complete and unchanged. Feedback Control application SW control SW digital electronics October 22, 2014 status: concept version: 1.3 legend analog or power electronics mechanical mechanical device device optical optical device device sensor sensor local automation or safety Relative Contribution of SW relative effort 100% physics/chemistry, etc. mechanics electronics SW 1970 2000 time The Role of Software in Systems 2 Gerrit Muller version: 1.3 October 22, 2014 RSWrelativeEffort Mismatch between Role and Discipline role of software integration technology captures application functionality defines lot of system behavior determines how much of potential system performance is achieved acts as director mismatch! focus of software discipline software technologies, such as: programming languages data bases operating systems component technologies engineering practices The Role of Software in Systems 3 Gerrit Muller version: 1.3 October 22, 2014 RSWroleOfSoftware Control Hierarchy along Technology axis human user Feedback Control application SW control SW digital electronics legend local automation or safety analog or power electronics mechanical mechanical device device The Role of Software in Systems 4 Gerrit Muller optical optical device device sensor sensor version: 1.3 October 22, 2014 RSWcontrolHierarchy Characterization of disciplines concrete abstract tangible intangible mature immature production lead-time flexible? material cost Mechanics The Role of Software in Systems 5 Gerrit Muller Analogue / power Electronics Digital Electronics version: 1.3 October 22, 2014 SWdisciplineCharacterization Software Quality Attributes annotated with SW relation usable usability attractiveness responsiveness image quality wearability storability transportability interoperable connectivity 3rd party extendible liability testability traceability standards compliance effective efficient ecological ecological footprint contamination noise disposability serviceability configurability installability liable dependable safety security reliability robustness integrity availability serviceable future proof evolvability portability upgradability extendibility maintainability down-to-earth attributes resource utilization cost of ownership logistics friendly consistent throughput or productivity The Role of Software in Systems 6 Gerrit Muller reproducibility predictability manufacturability logistics flexibility lead-time version: 1.3 October 22, 2014 RSWqualities cost price power consumption consumption rate (water, air, chemicals, etc.) size, weight accuracy legend weak SW relation strong SW relation Design Aspects related to SW Customer Application Functional Conceptual Realization objectives design philosophy per quality attribute performance, safety, security, ... granularity, scoping, containment, cohesion, coupling e.g., distributed or centralized control interfaces, allocation, budgets information model (entities, relations, operations) identification, naming HAL_message_acknowledge_status versus ACK static characteristics, dynamic behavior system-level infrastructure software development process, environment, repository, and tools life cycle, configuration management, upgrades, obsolescence feedback tools, for instance monitoring, statistics, and analysis persistence licensing, SW-keys setup sequence, initialization, start-up, shutdown technology choices make, outsource, buy, or interoperability decisions The Role of Software in Systems 7 Gerrit Muller version: 1.3 October 22, 2014 RSWdesignAspects SW Mechanisms Customer Application Functional Conceptual Realization objectives error handling, exception handling, logging processes, tasks, threads configuration management; packages, components, files, objects, modules, interfaces automated testing: special methods, harness, suites signaling, messaging, callback scheduling, notification, active data, watchdogs, timeouts locking, semaphores, transactions, checkpoints, deadlock detection, rollback identification, naming, data model, registry, configuration database, inheritance, scoping resource management, allocation, fragmentation prevention, garbage collection persistence, caching, versioning, prefetching, lazy evaluation licensing, SW-keys bootstrap, discovery, negotiation, introspection call graphs, message tracing, object tracing, etc. distribution, allocation, transparency; component, client/server, multitier model The Role of Software in Systems 8 Gerrit Muller version: 1.3 October 22, 2014 RSWmechanismsSW