Clearly a structured life cycle is needed.
Software Development - Discipline and Lifecycle Required
Software development is complex because it ties various other engineering elements together. A disciplined approach is required.
This cartoon describes one of the core problems of software development: different mental models between the various stakeholder groups.
Clearly a structured life cycle is needed.
Click the "full" button at the right bottom corner of the slide.
The problems of software development can only be tackled by a consistent, structured approach that allows\n- the different stakeholders to understand each other\n- the development and its various stages to be transparent and traceable
The problems of software development can only be tackled by a consistent, structured approach that allows
- the different stakeholders to understand each other
- the development and its various stages to be transparent and traceable
The following reference is to a presentation that outlines the CMMI, why it is needed and what its benefits can be.
It also leads into agile development.
Complete overview description of the CMMI. Initial sections provide good overview. Emphasis on need to tailor to the organisation concerned. Introduction to agile concepts at the end.
Recommended
Complete overview description of the CMMI. Initial sections provide good overview. Emphasis on need to tailor to the organisation concerned. Introduction to agile concepts at the end.
Agile Software Development
Agility does not mean "no discipline" - agility refers more to the rapid application cycles.
Good introduction to agile development, its manifesto and the practices.
The comments about "heavyweight" techniques are really motivated by the fact that approacheas like the CMMI are often building a "process fortress" rather than a lightweight extensible framework.
A can be seen from this presentation the agile approach still is very structured and very disciplined. Iterative development is emphasised, 4-eyes principle, and integration and testing.
Here we are back to the framework standards.
Good introduction to agile development, its manifesto and the practices.
The comments about "heavyweight" techniques are really motivated by the fact that approacheas like the CMMI are often building a "process fortress" rather than a lightweight extensible framework.
A can be seen from this presentation the agile approach still is very structured and very disciplined. Iterative development is emphasised, 4-eyes principle, and integration and testing.
Here we are back to the framework standards.
Back to linking CMMI and Agility
Good overview and examples.
Yet another concept: "lean". Whilst agility is about rapid iterations, "lean" is about avoiding waste, and therefore limiting the amount of rework.
Lean software development applies more to philosophy, practices and attitudes among the developer stakeholders, than to any of the statistical/mathematical techniques. Here we are looking at the behavioural patterns that make up good processes and that will - in the long run - amenable to the six sigma and other techniques for optimisation.
The following reference is to a site containing significant amounts of good material concerning lean software development.
The Poppendieck LLC site is one of the best resources concerning the merger of lean concepts, agile software development and disciplined software engineering.
The centre piece is the page about principles - which should be the basis for all policies in development organisations.
The Poppendieck LLC site is one of the best resources concerning the merger of lean concepts, agile software development and disciplined software engineering.
The centre piece is the page about principles - which should be the basis for all policies in development organisations.
This set of principles should be the core of all development organisations.
These principles marry lean and disciplined (traditional) approaches.
Model-Based Software Development
Model-based development means - as the name suggests - to build a model of the system under construction, or of parts or views thereof, such as safety. In most engineering applications these models are mathematically based. Statistical models are in use in social applications, and derivative yield models, for instance, for finance.
Example for modelling properties of systems
Good introductroy example to the role model based development is starting to play, here in the transportation industry.
Good example of how models are used for guiding the development of non-functional properties of systems.
In this section mathematics-based modelling an corresponding tools are presented.
Overview of the most widely used tool in engineering and science software development applications.
Find out how users like you rely on Simulink to solve difficult problems
and accelerate research and development.
In this section the link from modelling to model-based architecture is made. Software architecture is introduced as a new concept. AUTOSAR uses this to structure vehicle architectures to achieve compatibility and thus complexity reduction in industry.
ETAS paper about AUTOSAR approach.
Model-based Development of Autosar Application Software
Today, control algorithms of electronic in-vehicle functions are implemented on networked control units with differing software architectures. Special effort is needed when integrating software components from different sources, which limits the reusability of automotive embedded software. This Etas paper focuses on the advantages of model-based development and describes the reengineering of an engine management system as an example.
Software Product Lines
Systematic development of lines or families of software products - this requires a really disciplined organisation with development and domain experience.
Few companies have reached proficiency here (e,g, Bosch).