Summary Software – if engineered d – consists of products at various levels of abstraction, ranging from code over designs to requireme ments. Each product is useful ONLY, if stakeholde ders (people, roles) ) are defined d using these products, and if it is traceabl ble (up/down) ) to related d Introdu duction ction products. In industry, a large variety of “real” products (terminology & contents) ) and processes by which these products are created d exist. The common denominator, however, are essential contents. Therefo fore, in this lecture, a so-called d Virtual Product Model is used as a reference model. In real-world d developme pment environme ments each real physical docume ment contains part, one or more of these virtual products. For example, “System analysis document” may contain problem descript ption and user requireme ments. In any event, lack of any virtual product has to be justifi fied! d! Software and the economy The economies of ALL developed nations are dependent on software. More and more systems are software controlled Motivation Expenditure on software represents a significant fraction of GNP in all developed countries. Software engineering: how to develop software ICT – world (2001-2004) IT – GNP (2003) Valori in Mld $ e variazioni % annue 2.443 2.307 3.2% 2.234 2.218 0.7% 5.9% 3.8% USA 6.9% 3.1% 3.7% Regno Unito 0.8% 1,483 1,388 1,327 1,338 3.1% Francia 3.0% Germania 4.4% 2.6% 0.6% Giappone 2.2% 2.0% 960 891 896 919 Italia 1.8% Spagna 2001 2002 2003 2004 Fonte: Assinform / NetConsulting Information Technology Telecomunicazioni Fonte: Assinform / NetConsulting 1
Development and ICT usage Software, innovation, development 1 Singapore Evidence of correlation between ICT 2 Iceland 3 Finland diffusion and wealth Classifica WEF 4 Denmark (world economic forum) Positive correlation IT usage and per 5 USA Global IT report 2004-2005 6 Sweden capita GDP www.weforum.org 7 Honk Kong Positive correlation productivity increase 8 Japan and ICT usage 9 Switzerland 16 Netherlands 10 Canada 19 Austria 11 Australia 20 France 12 UK 29 Spain 13 Norway 39 India 14 Germany 41 China 45 Italy 15 Taiwan WEF – Global competitiveness Global competitiveness 1 Finland Institutions 2 USA 3 Sweden Infrastructure Classifica WEF 4 Denmark (world economic forum) Macroeconomy 5 Taiwan Global competitiveness 6 Singapore report 2004-2005 Health + primary education 7 Iceland www.weforum.org 8 Switzerland Higher education 9 Norway Market efficiency 10 Australia 11 Netherlands Technological readiness 12 Japan Business sophistication 13 UK 14 Canada Innovation 15 Germany 47 Italy Software Software is a collection of computer programs, procedures, rules, associated documentation and data. software development is more than merely the development of programs software incorporates documents describing various views for various stakeholders (e.g. users, developers) Definitions For a given problem, software is approximately 10 times more expensive to produce than a simple program [Brooks75: The Mythical Man Month] Average: 10 to 50 LoC per person day About 7 LoC in critical systems 2
Software - types Software - criticality stand alone safety critical word processor, aerospace, military, medical, .. embedded mission critical ABS, digital camera, mobile phone, .. banking, logistics, industrial production, .. process support other production process (things): industrial automation games, .. business process (information): management automation Software - complexity Shames .. – Complexity: Parts and interactions among Safety critical parts – [H Simon, The sciences of the artificial 1969] Therac25 - 3 casualties (1985) car: 30.000 parts/components crash KAL 901 - 225 casualties airplane: 100.000 parts/components Mission critical cell phone, printer driver: 1M Lines of Ariane V (1996) code Mars Polar Lander (2000) cellular network, operating system: several Millions ATT switching system (1990) software systems are probably the most complex human artifacts Diffusion Software costs local Software costs often dominate computer system costs. The costs of 1945 - 1980: scientific community, software on a PC are often greater military, banks, large private organizations than the hardware cost. global Software costs more to maintain than 1985 - today: „free‟ hardware, huge it does to develop. For systems with a diffusion of computing, impact on long life, maintenance costs may be everyday‟s life several times development costs. 3
Activity cost distribution What are the costs of sw engineering? Roughly 60% of costs are development Wat er fall m odel 0 25 50 100 75 costs, 40% are testing costs. For custom software, evolution costs often exceed Specification Design Developm ent Integration and testing development costs. Iterative developm ent 0 25 50 75 100 Costs vary depending on the type of system being developed and the Specification Iterative developm ent System testing requirements of system attributes such Com ponent-based software eng ineering 0 25 50 75 100 as performance and system reliability. Specification Developm ent Integration and testing Distribution of costs depends on the development model that is used. Developm ent and evolution costs f or long-lif etim e syst ems 0 10 200 30 400 System developm ent System evolution Product development costs Quality Most defects injected in requirements and design The earlier a defect injected, the more costly to correct it 0 25 50 100 75 Because defects are usually found in operation Specification Developm ent System testing Defect correction cost Functional vs. non functional Functional characteristics of software “Add two integer numbers” Non functional properties User interface usable by not computer expert Precision – relative error < 10 -9 – absolute error < 10 -8 Reliability – sum must be correct 99,999999% times Performance, efficiency – Sum must be performed < 0,01 millisec – Sum must use <10 kbytes ram memory 4
Functional vs. non functional Myths Non functional properties sometimes Software is inexpe pensiv ive harder to express Add-on on to engineerin ing products, as product often free? Harder to design into software Very labor intensive ive - – They are emerging properties assuming – Productivity = 40 - 8000 LOC per person month – Depend on the whole system, i.e. reliability, – Personal cost = : $ 8.000 per person month performance $1 to $200 per LOC a mediu dium m sized d project with 50.000 0 LOC costs between $50.000 00 and $10.000 00.00 000 0 in person onnel Myths Myths Software does not break as it ages Software is produced ced Fail ilures es do not occur due to materia ial Software is not mass produce ced (like e fatig igue e (as with hardware) but due to the machines) es) execu cuti tion on of logica cal l faults ts replication (manufacturing) is almost effortless Software is develo loped ed hardware reliability concepts don’t work All software e faults ts can be removed before e the description of the solution is the product execu cuti tion on Non-deterministic process due to human involvement Software changes ges due to requir irem ement ents Controllable in a probabilistic manner only changes ges, platfor orm changes ges (and defect t Quality focus/assurance has to be part of the correcti ections ons) development phase Typical software problems Solo programming vs. engineering Solo-Pro rogram ramming charact cteri risti stics s (Dave Parnas): Too expens nsive (up to a f factor of 10). Small program ams how are complex programs structured? Delivered too late (up to a factor of 2). --> modularization Does not live up to user expect ctations ns Program ams s specified in compute ter r science ce jargon (e.g., g., reliability) y) how does one communicate with customers? --> need adequate language High-Profil file Example Failur ures Focus on “correctness” as the measure of quality what other quality attributes might be important? Ariane-5 accident (? System process problem ?) --> ex safety, performance Activiti ties s performed d Individu duall ally Year-2000 problem (? System how is teamwork supported? architecture/documentation problem ?) --> precise interfaces, roles, process model 5
Recommend
More recommend