Dennis J. Frailey
429 Pond Spring Circle
Fairview, TX 75069
DVP term expires December 2014
Dennis is a recently retired Principal Fellow at Raytheon Company in Plano, Texas. He still teaches software engineering and computer science as an Adjunct Professor of Computer Science and Computer Engineering at Southern Methodist University (SMU), along with occasional teaching and consulting for industrial companies. At Raytheon, Dennis was a leader in software engineering improvement as well as a specialist in software measurement and cycle time reduction. He was also an instructor in several internal Raytheon courses for project managers and software managers and in past assignments served as a software project manager, computer architect, operating system designer, compiler designer, and speechwriter for company executives. Dennis previously worked at Texas Instruments, the Ford Motor Company, and as a tenured, Associate Professor at SMU where he helped start both the computer science and software engineering programs. He holds an MS and PhD in computer science (Purdue) and a BS in mathematics (Notre Dame).
Professionally, Dennis has over 150 technical publications (primarily in the fields of software engineering, software quality, computer architecture, operating systems and compiler design). He wrote articles on computer architecture for two encyclopedias and on software engineering and certification for another. In 2004 he was author of the software management portion of SWEBOK – the Guide to the Software Engineering Body of Knowledge. He’s been active in professional societies, currently serving as a member of the IEEE Computer Society Board of Governors, vice-chair of the IEEE-CS Education Activities Board, and chair of the Industry Advisory Board to the Texas Board of Professional Engineers. He has served for over 25 years as an ABET accreditation program evaluator in computer science, computer engineering and software engineering. Previously he was a member of the Computer Science Accreditation board of directors, ACM national vice president, Program Chair for almost a dozen conferences, including the 1994 National Computer Conference, ACM regional representative, chair of the Purdue University ACM student chapter, and Chair of the Dallas Association for Software Engineering Excellence.
Dennis was an IEEE-CS distinguished visitor in 2003-2006 and has been an ACM distinguished lecturer since the 1980’s. In these two programs he has given talks at over 200 chapters and student chapters. He has also given guest lectures at a number of universities including Ohio State, Purdue, Embry-Riddle, Rose-Hulman, and University of North Texas has been keynote speaker at the International Conference on Information Technology (2008), Euromicro (2003), Working Group on Software Engineering Education (2000), Jacksonville Technology Forum (1999), ACM SIGADA conference (1998), and Conference on Software Engineering Education (1996). He has taught numerous seminars on project management, measurement, quality, real-time system design and other topics through Texas Instruments, SMU, National Technological University, U. of Texas at Austin and UCLA Extension to Lawrence Livermore Laboratory, U.S. Army TACOM (TARDEC University), the New York Stock Exchange, and several dozen other companies through specialized courses, graduate courses, public short courses and seminars.
An Industry View of Computer Science/Computer Engineering/Software Engineering Education and Accreditation
Today's competitive companies rely on computing science, computer engineering and software engineering programs to provide highly qualified staff for computer and software development assignments. Accreditation is one way to identify the programs that meet minimum criteria for the profession. This talk provides an overview and critique of the accreditation processes and of computing science and computer and software engineering programs in general from the viewpoint of industry. Also addressed are the qualifications that industry looks for in computing science / computer engineering / software engineering graduates, and some of the likely career options.
Careers in Computing - How to Prepare and What to Expect
Too many people concentrate on getting a job instead of preparing for a career. In a rapidly changing field like computing, this can lead to burnout and dissatisfaction. Outsourcing is another concern of professionals in the field. This talk addresses the tremendous opportunities in the computing field and how one can prepare for a life-long career in computing. It includes an overview of typical jobs in industry, a review of what an employer might look for in hiring computing professionals, what positions are most likely to experience growth, and observations on what makes the difference in individuals who have successful, long-term careers.
Can Software Engineering Thrive in a Computer Science or Computer Engineering Department?
It has been said that industry wants software engineers but computer science and computer engineering departments are producing future faculty members. This talk focuses on what must happen to make software engineering the discipline that industry needs it to be. Issues covered include research areas that need more serious work, curriculum gaps, and obstacles commonly encountered in computer science and computer engineering departments. The talk can be tailored for academic or industrial audiences.
Recommended for Academic or Professional Audiences:
The IEEE Computer Society’s Professional Education Program
The Computer Society has recently begun developing a series of educational products intended for working professionals. These include basic introductions, in-depth focus courses, EssentialSets (important reference material), self-assessment courses, and a number of other products designed to assist professionals with continuing education and career enhancement. The initial collection of products is focused on software engineering and is aligned with the Guide to the Software Engineering Body of Knowledge (SWEBOK). These products are also aligned with the test specification of the CSDP examination. Future products will expand to other domains such as information technology and systems engineering, as well as addressing specialized topics such as programming for multi-core systems, software security and cloud computing. This talk provides an overview of this program, including excerpts from some of the materials.
Distance Education - Brave New World or Recipe for Disaster?
Distance education is often touted as a way to lower costs and make education more accessible. Yet it is often claimed that distance education depersonalizes the teaching process. This talk, based on over 40 years of distance education experience, explores the benefits and drawbacks of distance education and recommends what to look for, what to avoid, and what to expect. As a rule, distance education works best for working professionals seeking graduate level education or supplementary knowledge. Technology is much less important than careful planning and preparation. And, in the end, the success of distance education is often a matter of personal preference and learning/teaching style – both for students and for providers.
The IEEE-Computer Society’s Certified Software Development Professional (CSDP) Program
The CSDP is a formal, peer recognition that an individual has demonstrated comprehension of and proficiency within the field of software engineering. The program was developed by the IEEE Computer Society as part of a larger effort currently underway to establish software engineering as a profession. An individual holding the CSDP is recognized as possessing fundamental knowledge and understanding of computing principles and concepts and their application to the definition, design, construction, and testing of software. Furthermore, a CSDP holder can be expected to have the ability to provide appropriate software design with technical and economic tradeoffs in accordance with standards of practice, specifications, and principles of behavior. The CSDP is granted to an individual who meets certain qualifications, including education, experience and passing an examination. Because of the rapid change in this field, the CSDP holder must re-qualify every three years.
This talk addresses the history and motivation for the CSDP, describes the qualifications and examination process, provides information about taking and preparing for the examination, and discusses some initial results.
Improving Software Cycle Time
Being first to market is a critical factor for business success. Yet we often hear complaints about the poor quality of software that was rushed in order to meet a deadline. Agile software development methods are often touted as cures for this problem, but experience to-date shows that the resulting software products are often haphazardly designed and difficult to maintain. This talk addresses methods of software cycle time improvement that can also improve quality and lower development cost. The methods are based on techniques widely practiced in other disciplines, such as continuous flow manufacturing and quantitative process management. When applied to software development these techniques - often counterintuitive - are enabling leading-edge companies to produce high quality software quickly.
Quality Engineering – Moving Beyond Quality Control and Quality Assurance
Quality control is a process of keeping bad products from the customer. The principal methods of quality control are testing and inspecting. The basic assumption of quality control is that bad products will be produced, so you must filter them out. Quality assurance tries to find out why bad products are being produced and fix the underlying problems. It focuses on the entire process of product development. The assumption changes: bad products need not be produced if you manage how they are being produced. Quality engineering goes one step further – changing the way we engineer products. Quality becomes a major requirement and is designed in. This talk explains these concepts in more detail and outlines some of the most effective quality engineering techniques, illustrating with sample results.
Using the Software Engineering Body of Knowledge (SWEBOK) in Industry and Academia
The Guide to the Software Engineering Body of Knowledge (SWEBOK) was initially developed in 1998-2001 to help identify what knowledge a practicing software engineer should possess. It was released for trial use in 2001. A second version, was released in 2004 and version 3 is due in 2012. This talk discusses some initial applications and experiences with SWEBOK, namely to align a workforce development effort in a major commercial software development company and to improve masters level software engineering programs at two universities. The talk also describes an innovative education program that resulted from a collaborative effort between industry and academia, in which SWEBOK served as a mechanism for achieving common ground.
Chaos in the Graduate Software Engineering Curriculum -- and a Path Forward
A recent analysis of over two dozen graduate software engineering programs showed a high degree of inconsistency. When mapped against the SWEBOK, no program was found to be comprehensive and few patterns could be discerned except that each program was unique. It appeared that most such programs were not developed from first principles but, rather, as add-ons to existing academic programs in other fields. This finding confirmed a concern that employers don’t know what to expect from a graduate in software engineering and that most graduate software engineering programs have major gaps in coverage of important software engineering topics. GSwE2009, the graduate software engineering reference curriculum, was devised to serve as a model to help address these concerns. This talk outlines the findings, the principles, the goals, and the content of the reference curriculum. It also includes an assessment of how other curricula map to the reference (what topics tend to be well covered and what topics tend to be shortchanged) and provides some suggestions on how to implement an effective graduate software engineering curriculum.