software engineering
play

Software Engineering - Introduction - Fernando Brito e Abreu - PDF document

Software Engineering - Introduction - Fernando Brito e Abreu (fba@di.fct.unl.pt) Universidade Nova de Lisboa (http://www.unl.pt) QUASAR Research Group (http://ctp.di.fct.unl.pt/QUASAR) Summary Motivation Motivation Course


  1. Software Engineering - Introduction - Fernando Brito e Abreu (fba@di.fct.unl.pt) Universidade Nova de Lisboa (http://www.unl.pt) QUASAR Research Group (http://ctp.di.fct.unl.pt/QUASAR) Summary � Motivation Motivation � � Course structure � Theory classes � Lab classes � Evaluation � Bibliography Software Engineering / Fernando Brito e Abreu 7-Jun-05 2 1

  2. Summary � Motivation Motivation � Course structure � Course structure Course structure � � Theory classes � Theory classes Theory classes � � Lab classes � Lab classes Lab classes � � Evaluation � Evaluation Evaluation � � Bibliography � Bibliography Bibliography � � 7-Jun-05 Software Engineering / Fernando Brito e Abreu 3 Crisis? What Crisis? � After 5 decades the software community is still unable to consistently produce reliable software on time and within budget that completely satisfies customers Robert L. Glass: Software Runaways: Monumental Software Disasters , Prentice Hall PTR, 1998, ISBN: 0-13-673443-X Robert L. Glass : Computing Calamities - Lessons Learned From Products, Projects and Companies That Failed, Prentice Hall PTR, 1988, ISBN: 0-13-0828629 Software Engineering / Fernando Brito e Abreu 7-Jun-05 4 2

  3. Are Professors to Blame? � “Real world” - Programming in the large � large teams, large overheads, deliverables often late, over budget � no assessment by peers ⇒ quality doesn’t pay! � Universities - Programming in the small � small teams, small overheads, schedules are met, budget is not a constraint � assessment by “graduate peers” ⇒ quality pays! � We have a paradigm mismatch! 7-Jun-05 Software Engineering / Fernando Brito e Abreu 5 Crisis? What Crisis? � $250 billion; 175,000 projects � 31% of projects are cancelled = $81 billion � 52.7% with 187% cost overrun = $59 billion � 16 % on time in 1994 � 34 % on time in 2003, a big improvement! Source : Standish Group International, 1994 and 2003 Surveys Software Engineering / Fernando Brito e Abreu 7-Jun-05 6 3

  4. Crisis? What Crisis? � Software bugs cost the U.S. economy an estimated $59.5 billion annually, or about 0.6% of the gross domestic product (GDP) � Users shoulder more than half of the costs � Developers and vendors bear the remainder Source: The Economic Impacts of Inadequate Infrastructure for Software Testing , Technical Report, National Institute of Standards and Technology, USA, May 2002 http://www.nist.gov/director/prog-ofc/report02-3.pdf 7-Jun-05 Software Engineering / Fernando Brito e Abreu 7 Crisis? What Crisis? The user viewpoint … Delivered but never used with success (3200 KUSD) Paid but never delivered (1950 KUSD) 2% Used but extensively modified (1300 KUSD) Used with some modifications (198 KUSD) 3% Used without modifications (119 KUSD) 19% 47% 29% Software Engineering / Fernando Brito e Abreu 7-Jun-05 8 4

  5. Failure Scenario � Ill-defined requirements � Quickly evolving requirements � No process defined � Unrealistic planning � Inappropriate tools � Lack of user involvement � Unable to detect problems in an initial phase � Turnover in development teams � Unqualified people � Lack of quantitative based control mechanisms � Reduced coverage of test battery 7-Jun-05 Software Engineering / Fernando Brito e Abreu 9 Success Scenario � Well defined responsibilities � Correct estimation of schedule and costs � More effective control of the development process � Strong motivation of team members � Strong involvement of users in req. specification � Defined / repetitively adopted development process � Less corrective and evolutive maintenance efforts � Increased reliability of developed products � Profit for all parties (win-win relationships): satisfied users, clients and technical team members Software Engineering / Fernando Brito e Abreu 7-Jun-05 10 5

  6. Is Software Different? � Is software development so much distinct from that of other products? � Does that prevent us from adopting solutions from other more mature engineering fields? 7-Jun-05 Software Engineering / Fernando Brito e Abreu 11 Essential Differences in Software According to Fred Brooks [Brooks87] : � Complexity � Alterability � Invisibility Source: Brooks, Frederick P. Jr. : ”No Silver Bullet: Essence and Accidents of Software Engineering", IEEE Computer, 20(4), April 1987. Software Engineering / Fernando Brito e Abreu 7-Jun-05 12 6

  7. Essential Differences in Software � Complexity � Lack of reuse � Many pieces with fuzzy interfaces � No laws of physics � Human mind complexity 7-Jun-05 Software Engineering / Fernando Brito e Abreu 13 Essential Differences in Software � Alterability � “Curse” of flexibility � User pressure on programmers � Support for hardware evolution Moore´s Law: semiconductor gate density will double every 18 months Software Engineering / Fernando Brito e Abreu 7-Jun-05 14 ( Gordon Moore, INTEL co-founder, 1965) 7

  8. Essential Differences in Software � Invisibility � No single model with all details � Multi-level graph structures with fuzzy interconnection � Coupling produces undesirable side-effects 7-Jun-05 Software Engineering / Fernando Brito e Abreu 15 Software Engineering !!! Software Engineering / Fernando Brito e Abreu 7-Jun-05 16 8

  9. Software Engineering is … “The application of a systematic , disciplined , quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software” Source: IEEE Standard Glossary of Software Engineering Terminology,” IEEE, std 610.12-1990, 1990. 7-Jun-05 Software Engineering / Fernando Brito e Abreu 17 Some pre-historical roots � 1958 : John Tukey, the world-renowned statistician, coined the term software � 1968 : The term software engineering was used in the title of a NATO conference held in Germany � "Software Engineering: Report on a conference by the NATO Science Committee," Peter Naur and Brian Randell (eds), January 1969 � 1972 : The IEEE Computer Society first published its Transactions on Software Engineering Software Engineering / Fernando Brito e Abreu 7-Jun-05 18 9

  10. Some pre-historical roots � 1976 : Creation of the IEEE committee for developing software engineering standards � 1979 : Published the first software engineering standard (IEEE Std 730 for software quality assurance plans). This standard was influential in many following standards: � configuration management � software testing � software requirements � software design � software verification and validation. 7-Jun-05 Software Engineering / Fernando Brito e Abreu 19 FAQs about Software Engineering (SE) � Is SE a branch of Computer Science? � What is the ≠ between Science and Engineering? � Which other disciplines is SE related to? � If SE is Engineering, then it designates a profession? � How can I recognize a profession when I see one? Software Engineering / Fernando Brito e Abreu 7-Jun-05 20 10

  11. Software Engineering is for Engineers! � Scientists extend our knowledge of the laws of nature � Just as electrical engineering is based upon the science of Physics, software engineering should be based, among others, upon Computer Science. � Engineers apply those laws of nature to build useful artifacts, under a number of constraints � An engineer must be equipped with the essential knowledge that supports the selection of the appropriate technology at the appropriate time in the appropriate circumstance 7-Jun-05 Software Engineering / Fernando Brito e Abreu 21 Other disciplines related to SE Engineering and Management disciplines Science disciplines � Computer science � Computer engineering � Mathematics � Systems engineering � Ergonomics � Project management � Biology � Quality management Software Engineering / Fernando Brito e Abreu 7-Jun-05 22 11

  12. Software Engineering � SE does not aim producing laws (it is not a science) � A Law is a theory or group of theories that has been widely confirmed by intensive “in vivo” evidence (although being open to rebuttal) � However, several theories have been raised in SE � A theory is a conceptual framework that explains existing facts or predicts new facts (by explaining cause-effect relationships in the product development life-cycle) Q1: Which theories have been raised in SE? Q2: Are there cause-effect relationships in the software development life-cycle? 7-Jun-05 Software Engineering / Fernando Brito e Abreu 23 Some Software Engineering “theories” … � Object-oriented systems are more extensible than procedural systems � Software inspections are more efficient than testing � Cohesion should be maximized and coupling should be minimized in order to increment maintainability � Accurate effort estimates can be produced without a detailed design (e.g. Function Points analysis) � The complexity of a software system increases non linearly with its age (“Lehman’s “Law” of Sw Evolution) � Aspect-oriented languages improve modularity Software Engineering / Fernando Brito e Abreu 7-Jun-05 24 12

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend