1. RESEARCH PROPOSAL A STUDY OF PROPER SOFTWARE ENGINEERING TECHNIQUES AND THE PROBLEMS FACED IF NOT USED CONSISTENTLY THROUGHOUT THE DEVELOPMENT PROCESS Proposal for Direct Research Project in Partial Fulfillmentof the Requirements for the Degree of Master of ScienceInformation Systems – Software Engineering Management Strayer University Submitted By Carol A. Harstad, BS(IS-Pr) 1240 Apopka Lane, Kissimmee, Florida 34759 (863) 427-0890 carol.harstad@mail.strayer.edu Under the direct supervision of: Dr. Mark Ulmer TABLE OF CONTENTS TOC
1-3
INTRODUCTION PAGEREF _Toc235196506 1 Context of the Problem PAGEREF _Toc235196507 1 Statement of the Problem PAGEREF _Toc235196508 1 Research Question and Subquestions PAGEREF _Toc235196509 2 Significance of the Study PAGEREF _Toc235196510 3 METHODOLOGY PAGEREF _Toc235196511 3 Research Design and Methodology PAGEREF _Toc235196512 3 Objectives of the Study PAGEREF _Toc235196513 3 Organization of the Study PAGEREF _Toc235196514 4 TIMETABLE PAGEREF _Toc235196515 5 PROPOSED REFERENCE LIST PAGEREF _Toc235196516 5 INTRODUCTION Context of the Problem What issues will a company face when developing software inappropriately? If not done properly, developing a new software package can be lengthy, taking longer than expected to reach completion. It can also result in low quality, more expensive, and hard to maintain software. Additionally, improper design and planning could possibly lead to disastrous results. I plan to show that by applying proper methods and procedures to the development process, and using the proper tools, an organization can avoid these issues and develop a high quality, less expensive, easier to maintain software in a timely manner (Software Engineering, 2009). The Institute of Electrical and Electronics Engineers (IEEE) defines software engineering as “the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software (The Joint Task Force on Computing Curricula, 2004).” A software engineer “focuses on the computer as a problem-solving tool (Pfleeger & Atlee, 1998).” I will present acceptable software engineering methods, tools, and procedures, and the issues an organization could face if they are not used. Areas of concern included in my study are as follows: modeling, planning and managing, securing the requirements, design, programming, testing, delivering, maintaining, evaluating, and improvement. Statement of the Problem Proper software engineering techniques are required for a high quality software solution. Not using the proper techniques could possibly result in software that is low in quality, expensive, hard to maintain, and take longer to build (Software Engineering, 2009). While most universities teach the proper techniques to their students, many organizations do not use nor teach them, or do not use them consistently, and they pay the price for such practice. Sometimes, an organization will see the deadline, and decide that the proper planning and designing will take too much time they could be using for coding. In essence, what they are doing, is skipping the essential pieces that would inevitably prevent them from back-stepping and reworking. If the organization does not do proper planning and design, they may miss essential pieces to the solution that could possibly end in total and complete disaster. If they miss enough of the solution, they might have to scrap the entire project and start over. The worst possible outcome could be a catastrophic disaster (Glass, 1997). As Long describes, “there are many catastrophic disasters such as the Ariane 5 rocket (Flight 501) (Glass, 1997), the Federal Bureau of Investigation Virtual Case File system (Eggen & Witte, 2006), the Federal Aviation Administration Advanced Automation System (Glass, 1997), the California Department of Motor Vehicle system, the American Airlines reservation system, and many more (Glass, 1997) (Long, 2008).” Research Question and Subquestions The purpose of this research is to determine the following: Is proper and consistent use of software engineering techniques the best approach to the software development process? To answer this question, I will address the following subquestions: What are the knowledge areas for software engineering? What are the basic software development processes? How can we apply proper software engineering techniques to each process? What are the consequences if we do not use some of the techniques in the development processes? Significance of the Study This case is significant because it shows software engineers the importance of, and proper use of techniques, to develop software and what can happen if they do not make use of available tools. As discussed in the context of the problem, if an organization does not properly plan, design, and test an application, catastrophic disasters can occur. METHODOLOGY Research Design and Methodology This research will be a qualitative in nature case study, using literature review, Internet documentation, and personal experience. I currently hold my Bachelors of Science degree in Computer Information Systems, and near completion of the Masters of Science degree in Information Systems with emphasis on Software Engineering Management. Additionally, I have over eighteen years experience with software development in all phases of the process. During this time of learning and doing, I have realized that the learning is a never-ending process and keep an open mind to new technologies and methods. Objectives of the Study Based on the findings of this study, I will show organizations the importance of proper software engineering techniques to create high quality, inexpensive, maintainable software in a timely manner. This study will cover the following: The ten knowledge areas of Software Engineering (SWEBOK, 2004) Software Requirements Software Design Software Development (Construction) Software Testing Software Maintenance Software Configuration Management Software Engineering Management Software Engineering Process Software Engineering Tools and Methods Software Quality Organization of the Study Chapter 1 of this study introduces the problem statement and describes the specific problem I am addressing in the study. Chapter 2 presents a review of literature and relevant research associated with the problem addressed in this study. Chapter 3 discusses the ten knowledge areas of software engineering. Chapter 4 discusses the software development processes. Chapter 5 discusses available software engineering methods and tools, and how to apply them to each of the processes discussed in Chapter 4. Chapter 6 explains the consequences of omitting methods or tools from the development process. Chapter 7 offers a summary and discussion of the researcher's findings, implications for practice, and recommendations for future research. TIMETABLE Prepare proposal by12 July Submit Chapter 1 draft19 July Complete literature review by2 August Complete research chapters23 August Complete summary & conclusion30 August Complete DRP draft6 September Complete final DRP by13 September Complete DRP PowerPoint Presentation20 September PROPOSED REFERENCE LIST BIBLIOGRAPHY Baltzan, P., & Phillips, A. (2009). Business Driven Information Systems (2nd ed.). The McGraw-Hill Companies, Inc.Burd, S. D. (2006). Systems Architecture. Boston, Massachusetts: Thomson.Carnegie Mellon. (2009). Software Engineering Institute. Retrieved July 11, 2009, from Software Engineering Institute: http://www.sei.cmu.edu/Eggen, D., & Witte, G. (2006, August 18). The FBI's Upgrade That Wasn't: $170 Million Bought an Unusable Computer System. The Washington Post , p. A01.Glass, R. L. (1997). Software Runaways: Monumental Software Disasters. Prentice Hall.IEEE Computer Society. (2009, July 11). IEEE: The world's leading professional association. Retrieved July 11, 2009, from IEEE: The world's leading professional association: http://www.ieee.org/portal/siteIEEE-CS/ACM Joint Task Force. (1999, October). Engineering Code of Ethics. Computer Society Connection , 84-88.Leveson, N. G. (2004). Role of Software in Spacecraft Accidents. Journal of Spacecraft and Rockets 4 .Long, L. N. (2008, January). The Critical Need for Software Engineering Education. Retrieved July 11, 2009, from Software Technology Support Center: http://www.stsc.hill.af.mil/Crosstalk/2008/01/0801Long.htmlLowry, G. (2009, June 2). ASP.net Forums: Community. Retrieved July 11, 2009, from Microsoft ASP.net: http://forums.asp.net/p/1429826/3201693.aspxPfleeger, S. L., & Atlee, J. M. (1998). Software Engineering. Upper Saddle River, New Jersey: Pearson Education, Inc.Satzinger, J. W., Jackson, R. B., & Burd, S. D. (2007). Systems Analysis and Design in a Changing World (4th ed.). Boston, Massachusetts: Thomson.Software Engineering. (2009, July 6). Retrieved July 11, 2009, from Wikipedia, The Free Encyclopedia: http://en.wikipedia.org/w/index.php?title=Software_engineering&oldid=300600273Sommerville, I. (2007). Software Engineering (8th ed.). London: Pearson Education Limited.SWEBOK. (2004). Guide to the Software Engineering Body of Knowledge. (A. Abran, J. W. Moore, P. Bourque, & R. Dupuis, Eds.) Los Alamitos, California: The Institute of Electrical and Electronics Engineers, Inc.The Joint Task Force on Computing Curricula. (2004, August 23). Software Engineering 2004. Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering . IEEE Computer Society.U.S. House of Representatives. (2001). Proc. of the Aviation Subcommittee Meeting. Washington, DC.