The Role of Software in Systems

advertisement
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
Download