1 / 32

Chapter 14: The Future of Software Engineering

Chapter 14: The Future of Software Engineering. Most of this comes from Chapter 14 in Pfleeger and Atlee’s : Software Engineering Theory and Practice, 3 rd edition. Contents. 14.1 How have we done? 14.3 Decision-making in software engineering

idalee
Download Presentation

Chapter 14: The Future of Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 14: The Future of Software Engineering Most of this comes from Chapter 14 in Pfleeger and Atlee’s : Software Engineering Theory and Practice, 3rd edition

  2. Contents 14.1 How have we done? 14.3 Decision-making in software engineering 14.4 The professionalization of software engineering: licensing, certification, and ethics

  3. Chapter 14 Objectives • The Wasserman principles and how we have done • Decision-making in software engineering • Professionalization in software engineering • Next step in research and practice

  4. 14.1 How Have We Done? • Use complex language • Use patterns and abstractions • Apply formal methods • Build a vast array of tools

  5. 14.1 How Have We Done?Wasserman’s Steps to Maturity • Abstraction • Analysis and design notations • User interface prototyping • Software architecture • Software process • Reuse • Measurement • Tools and integrated environments

  6. 14.3 Decision-Making in Software EngineeringSidebar 14.1 Delphi Techniques • A group of experts receives the specification plus an estimation form • The experts discuss product and estimation issues. • The experts produce individual estimates • The estimates are tabulated and returned to the experts • An expert is made aware only of his or her own estimate; the sources of the remaining estimates remain anonymous • The experts meet to discuss the results. • The estimates are revised • The experts cycle through steps 1 to 7 until an acceptable degree of convergence is obtained

  7. 14.3 Decision-Making in Software EngineeringExample Used in Assessing Group Effects

  8. 14.3 Decision-Making in Software EngineeringA Modest Observational Study • 12 graduate students of Bournemouth University were organized in four teams • Each team was required to capture requirements and develop a prototype for a simple information system • Each team was asked to predict the size of the prototype in lines of code • Three rounds, the last two rounds applying Delphi Technique

  9. 14.3 Decision-Making in Software EngineeringA Modest Observational Study (continued) • Estimation errors from three rounds of predicting size

  10. 14.3 Decision-Making in Software EngineeringA Modest Observational Study (continued) • Convergent group estimates • Three groups show improvement • Fourth group diverged from the true value

  11. 14.3 Decision-Making in Software EngineeringA Modest Observational Study (continued) • Divergent group estimates

  12. 14.3 Decision-Making in Software EngineeringAnother Observational Study • Postgraduate students at University of Maryland • All students were working practitioners • Yielded comparable results, in that successive rounds of the Delphi technique led to a substantial reduction in the range of estimation • Each student completed a Myers-Briggs test (personality test)

  13. 14.3 Decision-Making in Software EngineeringAnother Observational Study (continued) • Maryland group’s confidence in final estimate

  14. 14.3 Decision-Making in Software EngineeringPerceived Strengths and Weakness of the Delphi Technique

  15. 14.3 Decision-Making in Software EngineeringLessons Learned from the Two Studies • The subjects had a broadly positive attitude to the technique • Personalities can dominate the discussion, even when the dominant participant is not correct • Increase in confidence had no relationship to the experience of the team members • It is important to acknowledge the role of group dynamics in the estimation process • Decision-making can be applied in a wider context

  16. 14.4 The Professionalization of Software Engineering: Licensing, Certification, and Ethics • Improve software engineering education • Licensing or certification to improve process and product

  17. 14.4 The Professionalization of Software EngineeringSoftware Engineering Education • Specializing in software engineering as: • part of a computer science major • part of a computer engineering major • part of an engineering major • a separate degree from computer science or computer engineering

  18. 14.4 The Professionalization of Software EngineeringSoftware Engineering Involves Both Computer Science and Engineering

  19. 14.4 The Professionalization of Software EngineeringSoftware Engineering and Engineering Principles and Practices • Software engineering borrows and adapts principles and practices from engineering • Early planning and development activities • Systematic, predictable design and development properties • Consideration of nonfunctional properties

  20. 14.4 The Professionalization of Software EngineeringSoftware Engineering vs. Computer Science • Computer science • Focuses on data, data transformation, and algorithm • Advanced courses present designs and programming techniques for specific application domain • Software engineering • Focuses on building software products • Looks at all activities involved in developing a software system from initial idea to final product • Design concepts tend to focus on general-purpose design principles, patterns, and criteria • Advanced courses present design and analysis techniques that scale to large software systems

  21. 14.4 The Professionalization of Software EngineeringSoftware Engineering Body of Knowledge • Computing curricula-software engineering (SE2004), IEEE-CS and ACM 2004 • Software engineering body of knowledge (SWEBOK), IEEE-CS 2004 • Software engineering syllabus (CEQB 1998)

  22. 14.4 The Professionalization of Software EngineeringSoftware Modeling and Analysis • The knowledge unit Modeling Foundation is decomposed into the topics • Modeling principles (e.g., abstraction, decomposition, views) • Pre- and post-conditions and invariants • Mathematical models and specification language • Properties of modeling language • Distinction between notations’ syntax and semantics • Importance of models explicating all information

  23. 14.4 The professionalization of Software EngineeringLicensing Software Engineering • Licensing: a legal restriction on who is allowed to practice in a regulated profession

  24. 14.4 The Professionalization of Software EngineeringLicensing Process in Canada (continued) • Route to becoming a professional engineering (P.Eng) in Canada

  25. 14.4 The Professionalization of Software EngineeringLicensing Process in the United State • Professional engineer (PE) application process in the US

  26. 14.4 The Professionalization of Software EngineeringProponents of Licensing Software Engineers • The practice of software engineering falls under statutes such as the Professional Engineers Act • Licensing software engineers would: • improve software quality • encourage software developers to obtain a solid educational foundation for their practices • encourage the use of best practices • improve the engineering of software and the education of software engineers

  27. 14.4 The Professionalization of Software EngineeringOpponents of Licensing Software Engineers • There is no evidence that licensed software engineers produce and maintain the best software • Licensing may afford false assurance to the public that software developed by licensed professionals is of high quality • There is no widely accepted body of knowledge whose mastery would define competency in software engineering • Public safety would be best ensured by certifying the products rather than the processes or the procedures

  28. 14.4 The Professionalization of Software EngineeringCertification • A voluntary assessment that a practitioner may choose to undergo to demonstrate competency • Administered and bestowed by a professional society • The IEEE Computer Society offers certification as a certified software development professional (CSDP) • The Computer Information Processing Society (CIPS) has an information system professional (ISP) certificate

  29. 14.4 The Professionalization of Software EngineeringCSDP Experience Requirement Areas • Professionalism and engineering economics • Software requirements • Software design • Software construction • Software testing • Software maintenance • Software engineering management • Software configuration management • Software engineering process • Software engineering tools and methods • Software quality

  30. 14.4 The Professionalization of Software EngineeringCode of Ethics Key Functions • It stimulates ethical conduct • It inspires public confidence • It offers a formal basis for evaluating actions and disciplining professionals who have agreed to adhere to the code • Two codes of ethics: • ACM: http://www.acm.org/about/code-of-ethics • SWE: http://www.acm.org/about/se-code

  31. 14.4 The Professionalization of Software EngineeringSidebar 14.2 ACME/IEEE SE Code of Ethics and Professional Practice • Software engineers shall act consistently with the public interest • Software engineers shall act in a manner that is in the best interests of their client and employer, consistent with the public interest • Software engineers shall ensure that their products and related modifications meet the highest professional standards possible • Software engineers shall maintain integrity and independence in their professional judgment • Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development maintenance • Software engineers shall advance the integrity and reputation of the profession, consistent with the public interest • Software engineers shall be fair to and supportive of their colleagues • Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession

  32. 14.4 The Professionalization of Software EngineeringNext Steps in Research and Practice • Study the ways we are similar to other engineers • Study the ways we are different from other engineers • Make sure that we view software engineering in its broader setting, recognizing that quality of software products and process are generated by creative people working in team • Embrace other disciplines, including the social science • Pay more attention to the consequences of the software engineering decisions

More Related