How To Understand And Understand The Software Development Process In Korea



Similar documents
Universiti Teknologi MARA. The Perception of IT Organizations Towards Software Development Methodology Adoption

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

Universiti Teknologi MARA. Requirement Analysis Using UML Approach for Research Management System (RMS)

A STUDY ON SOTWARE PRODUCT DEVELOPMENT APPROACHES IN THE SRI LANKAN SOFTWARE INDUSTRY

CS4507 Advanced Software Engineering

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

The most suitable system methodology for the proposed system is drawn out.

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

Software Development Life Cycle (SDLC)

Universiti Teknologi MARA. User Perception on Electronic Customer Relationship Management (E-CRM) Features in Online Hotel Reservation

Basic Unified Process: A Process for Small and Agile Projects

Unit 1 Learning Objectives

Requirements Engineering

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

A Review of an MVC Framework based Software Development

Classical Software Life Cycle Models

SOFTWARE PROCESS MODELS

Software Development Life Cycle

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

A WEB-BASED SYSTEM APPLYING THE CUSTOMER RELATIONSHIP MANAGEMENT (CRM) CONCEPTS ON CUSTOMER SERVICES AND SUPPORT (CSS)

Unjverslti Teknologi MARA. Prototype Of Web - Based Journal Publication Systems For Institute Of Research, Development Commercialization (IRDC)

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Test Cases Design for Software Database Provisioning Development

Redesigned Framework and Approach for IT Project Management

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Software Development Methodologies

SYSTEMS ANALYSIS DESIGN

Agile Processes and Methodologies: A Conceptual Study

What is a life cycle model?

A Capability Maturity Model (CMM)

Chapter 1 The Systems Development Environment

LECTURE 1. SYSTEMS DEVELOPMENT

To introduce software process models To describe three generic process models and when they may be used

REVIEW ON THE EFFECTIVENESS OF AGILE UNIFIED PROCESS IN SOFTWARE DEVELOPMENT WITH VAGUE SYSTEM REQUIREMENTS

CHAPTER 3 : AGILE METHODOLOGIES. 3.3 Various Agile Software development methodologies. 3.4 Advantage and Disadvantage of Agile Methodology

Software Development Life Cycle Models - Process Models. Week 2, Session 1

Surveying and evaluating tools for managing processes for software intensive systems

IT3205: Fundamentals of Software Engineering (Compulsory)

Alan Dennis, Barbara Haley Wixom, and Roberta Roth John Wiley & Sons, Inc. Slides by Candace S. Garrod Red Rocks Community College 3-1

Lecture 3 Software Development Processes

Phase 2 Systems Analysis. Dr. Feng-Jen Yang

3C05: Unified Software Development Process

Agile and the role of the business analyst

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

Ob j ect-oriented Project Management with UML

Plan-Driven Methodologies

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

Management. Project. Software. Ashfaque Ahmed. A Process-Driven Approach. CRC Press. Taylor Si Francis Group Boca Raton London New York

The Unified Software Development Process

Increasing Development Knowledge with EPFC

Quantification and Traceability of Requirements

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

Application of software product quality international standards through software development life cycle

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN

How To Model Software Development Life Cycle Models

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI.

Unit I. Introduction

Agile Unified Process

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

Umbrella: A New Component-Based Software Development Model

Software Development Methodologies in Industry. By: Ahmad Deeb

Title: Topic 3 Software process models (Topic03 Slide 1).

Object-Oriented Systems Analysis and Design

COMPARATIVE STUDY ON SOFTWARE PROJECT MANAGEMENT MODELS

A Software Project Management Innovation (SPM) Methodology: A Novel Method for Agile Software Development

Systems Analysis and Design

Component Based Development in Software Engineering

A PROCESS APPROACH FOR SENIOR MANAGEMENT INVOLVEMENT IN SOFTWARE PRODUCT DEVELOPMENT

I219 Software Design Methodology

Selecting a Software Development Methodology based on. Organizational Characteristics. Adrienne Farrell

Elite: A New Component-Based Software Development Model

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

2. Analysis, Design and Implementation

2. Analysis, Design and Implementation

Scale agile throughout the enterprise A PwC point of view

What CMMI Cannot Give You: Good Software

(Refer Slide Time: 01:52)

Chapter 3. Technology review Introduction

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

Department of Industrial Engineering. Sharif University of Technology

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases

INTEGRATED STAFF ATTENDANCE SYSTEM (ISAS) WEE PEK LING

Comparison study between Traditional and Object- Oriented Approaches to Develop all projects in Software Engineering

CHAPTERS A NEW KNOT MODEL FOR COMPONENT BASED SOFTWARE DEVELOPMENT

System development lifecycle waterfall model

Digital Industries Trailblazer Apprenticeship. Software Developer - Occupational Brief

A Comparison of SOA Methodologies Analysis & Design Phases

A Survey of Software Development Process Models in Software Engineering

Becoming a Business Analyst

Applying Agile Methods in Rapidly Changing Environments

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Transcription:

Universiti Teknologi MARA Designing a Proposed Model of Software Development Practices Nor Hasikin Bt Husian Thesis submitted infiilfillmentof the requirements for Bachelor of Science (Hons) Information System Engineering Faculty of Information Technolc^y and Quantitative Sciences May 2007

DECLARATION I certify that this thesis and the research to which it refers are the product of my own work and that any ideas or quotation from the work of other people, published or otherwise are fiiuy acknowledged in accordance with the standard referring practices of the discipline MAY 31,2007 NOR HASIKIN HUSIAN 2005616875 u

TABLE OF CONTENTS CONTENT PAGE APPROVAL DECLARATION ACKNOWLEDGEMENT ABSTRACT LIST OF TABLES LIST OF ABBREVIATION LIST OF FIGURES ill iv v vi xi xii xiii CHAPTER 1: INTRODUCTION 1.0 Research Background 1 1.1 Research Background 1 1.2 Problem statement/research Problem 2 1.3 Objective of the Research 3 1.4 Scope of the Research 3 1.5 Significance of the Research 3 1.6 Summary 4 CHAPTER 2: LITERATURE REVIEW 2.0 Introduction 5 2.1 Software Development Life Cycle 6 vu

2.2 Software Development Methodologies 7 2.2.1 Categories of Software Development Methodologies 15 2.2.1.1 Traditional Methodologies 15 2.2.1.2 Object-Oriented Methodologies 16 2.2.1.3 Aspect-Oriented Methodologies 17 2.2.1.4 Agent-Oriented Methodologies 18 2.2.1.5 Component-Oriented Methodologies 19 2.2.1.6 Agile Software Methodologies 20 2.3 Software Development Process 21 2.3.1 Requirement 21 2.3.2 Design 27 2.3.3 Development 32 2.3.4 Testing 36 2.3.5 Deployment 39 2.3.6 System Operation and Support 45 2.3.7 Quality and Defect Management 49 CHAPTER 3: RESEARCH APPROACH AND METHODOLOGY 3.0 Introduction 54 3.1 Research Approach and Methodology 54 3.1.1 Problem Assessment and Research Study 56 3.1.2 Data Collection 56 3.1.2.1 Primary Data 57 3.1.2.2 Secondary Data 58 3.1.3 Data Analysis 58 3.1.4 Design 59 3.2 Summary 60 vui

CHAPTER 4: DATA ANALYSIS AND FINDINGS 4.0 Introduction 61 4.1 Software Development Methodology Adoption 62 4.1.1 Category of Software Development Methodology 64 4.1.1.1 Traditional Methodologies 65 4.1.1.2 Agile Software Methodology 66 4.2.1.3 Object Oriented Methodology 67 4.2 Current Software Development Practices 68 4.2.1 Requirement 69 4.2.2 Design 73 4.2.3 Development 76 4.2.4 Testing 79 4.2.5 Deployment 81 4.2.6 System Operation and Support 83 4.4.7 Quality and Defect Management 87 4.3 The Proposed Software Development Practices Model 89 4.3.1 Model Construction 89 4.3.2 Description of Model 90 4.3.2.1 Components of Model 92 4.3.2.1.1 Requirement 92 4.3 96 4.3.2.1.3 Testing 106 4.3.2.1.4 Deployment 110 4.3.2.1.5 System Operation and Support 113 4.3.2.1.6 Quality and Defect Management 116 CHAPTER 5: CONCLUSION AND RECOMMENDATIONS 5.0 Introduction 121 IX

5.1 Conclusion 121 5.2 Recommendations 122 REFERENCES 123 APPENDICES APPENDIX A Questionnaires Sample APPENDIX B Interviews Questions

APPROVAL DESIGNING A PROPOSED MODEL OF SOFTWARE DEVELOPMENT PRACTICES BY NOR HASnON BT HUSIAN This thesis was prepared under the direction of thesis advisor; Cik Rosdiana Bt Abd Razak. It was submitted to the Faculty of Information Technology and Quantitative Sciences and was accepted in partial fulfillment of the requirements for the degree of Bachelor of Information System Engineering. Approved by: Cik Rosdiana bt Abd Razak Thesis Supervisor Date: 04 May 2007 111

DECLARATION I certify that this thesis and the research to which it refers are the product of my own work and that any ideas or quotation from the work of other people, published or otherwise are fiilly acknowledged in accordance with the standard referring practices of the discipline MAY 31,2007 NOR HASIKIN HUSIAN 2005616875 u

ACKNOWLEDGEMENT In the name of Allah, the Most Merciful and the Most Compassionate. Firstly, I would like to express my gratitude to Pn Ariza bt Nordin and Pn Wan Amalina bt Wan Hariri for their guidance in carrying out this IT Project (1TS690). And highly appreciation to Cik Rosdiana bt Abd Razak for her supervision. My sincere gratitude to those who had helped me with my data collection especially all the interviewees and respondents. And the most appreciation to my family for their encouragement in finishing this course gloriously. Last but not least, to all my friends, thank you for sharing your information, giving me advices and suggestions to make this thesis achieves it goals and always be there for me to give a helping hand. Thank you. IV

ABSTRACT The growth in use of Information Technology (IT) has spurred software development effort around the globe including in Malaysia. This research focuses on two aspects of the development of software: (1) Identification of the adoption of software development methodologies among IT organization in Malaysia and (2) Collection of quantitative data regarding current software development practices used by IT organization in Malaysia. A correct selection of methodology and practices used is important to produce a reliable and correct software product. This research will focus on software development methodologies and practices adopted and also used by IT organization in Malaysia. Survey and interviews will be conducted to retrieves information from respondents. This research presents the results of survey on 30 IT organizations in Malaysia in combination with interviews. The findings of this research indicates the software development methodologies adopted by IT organization in Malaysia and the current software development practices used by this type of organization. The key finding of this research is a proposed model of software development practices. This proposed model may guide IT organizations in choosing the right software development methodologies and perform the correct software development practices. It also provides more understanding, exposure and knowledge on software development methodologies available to peoples involves in YT industries. XI

LIST OF TABLES TABLE PAGE 2.1 Example of current leading software development methodologies 14 2.2 Comparison of Traditional Software Development Model 16 2.2 Comparison oftraditional Software Development Model 16 4.1 Category of Methodology Usage 64 4.2 Software Development Methodologies 65 4.3 Tools and Techniques used to Elicit and Analyze Requirements 70 4.4 Formats for Communicating Requirements Back To Users 71 4.5 Method use to help users understand the requirements 72 representation 4.6 Type of Design Methodologies 73 4.7 Implementation Tools 77 4.8 Programming Language 77 4.9 People Involves in Testing Activities 80 4.10 Methods to Provide Support 83 4.11 Evaluation Criteria 85 XI

LIST OF ABBREVIATION ABBREVIATION SDLC - Software Development Life Cycle IS - Information System AD -Agile Data AMDD - Agile Model Driven Development AUP - Agile Unified Process DSDM - Dynamic System Development Method EUP - Enterprise Unified Process XP - Extreme Programming FDD - Future Driven Development OOSP - Object Oriented Software Process RUP - Rational Unified Process TDD - Test Driven Development AOSD - Aspect-Oriented Software Development AO - Agent-Oriented AOP - Aspect-Oriented Programming CBSE - Component Based Software Engineering CBSD - Component Based Software Development ASP - Agile Software Process JAD - Joint Application Design CASE - Computer Aided System Engineering NOT - Nominal Group Techniques xu

FIGURE LIST OF FIGURES PAGE 2.1 Software Development Life Cycle 6 2.2 A Group Support System ("Grouputer") 24 2.3 V-Model of Software Testing 36 2.4 Deployment Process 40 3.1 Research Approach and Methodology 55 4.1 Software development Methodology Adoption 62 4.2 Traditional Enterprise Software Development Process 89 4.3 The proposed Software Development Practices Model 91 4.4 Requirement Practices 92 4.5 Design Practices 96 4.6 Development Practices 101 4.7 Testing Practices 110 4.8 Deployment Practices 102 4.9 System Operation and Support Practices 113 4.10 Quality and Defect Management Practices 116 xui

CHAPTER 1 INTRODUCTION 1.0 Introduction Determining the basis of a research is one of the important parts in any research study. This chapter will discuss on background of the research to understand what contribute to the carrying out of this research. The research problem identified, the objectives defined, the scope established and also the significance of research estimated will be described clearly in this chapter. 1.1 Research Background Software has conquered an essential and critical role in our society today. We increasingly depend on the features and services offered through computerized systems. Any modem product or services are using some piece of software. However, Software applications are complex products that are difficult to develop and test. (Fugetta, 2000).Very often, software exhibits unexpected and undesired behaviors that may even cause severe problems and damages. According to Fugetta (2000), the quality of a software product heavily depends on the people, organization and procedures use to create and deliver it. A correct selection of methodology is important to produce a reliable and correct software product. There are various methodologies available for software development. A methodology is composed of tools, techniques and methods that helps in producing better end products that meet user demands, improving

development process and also standardizing processes for better integration (Avison & Fitzgerald, 2003). For that reason, this research will investigate on the use of software development methodologies and software development practices adopted by Information Technology (IT) organizations in Malaysia. 1.2 Problem Statement / Research Problem Software development process can be over-intellectualized, and in some circumstances a methodology may prescribe an overly-complex approach whereas a simpler one may be more appropriate, given the nature of development in organizations (Fitzgerald, 2000). The inappropriate use of methodology in software development may raise problem such as inflexible and cumbersome development process. Previous researchers also had criticised the lack of empirical research on systems development in real organisational contexts (Jenkins et ah, 1984; Fitzgerald, 1994). More research is therefore needed into the actual practice of systems development in organisations. It is important to discover the essentially good practices of good systems developers, so that these can be transferred to other developers. This research will focus on identifying software development practices among software developers in its environment.

1J Objective Of The Research The objectives for this research are: 1. To identify software development methodologies adopted by IT organizations in Malaysia. 2. To describe the current software development practices used by IT organizations in Malaysia. 3. To propose software development practices model. 1.4 Scope Of The Research This research will focus on software development methodologies and practices adopted and also used by IT organization in Malaysia. Survey and interviews will be conducted to retrieves information from respondents. 1.5 Significance Of The Research The significances of the research are listed as below: 1. Provides more understanding, exposure and knowledge on software development methodologies available to peoples involves in IT industries. 2. The outcome of this research may guide IT organizations in choosing the right software development methodologies and perform the correct software development practices.

3; This research may also serve as the basis for other local researchers to perform further research in this field. 1.6 Summary In this chapter the initial steps of conducting the research is discussed. This chapter gives an overview on what this research is all about. The research background is stated clearly together with problem definition, the objectives, purposes, scope and also the significance of the research. This chapter also can be seen as the introduction to the research that can give early understanding on the research.

CHAPTER 2 LITERATURE REVIEW 2.0 Introduction In this chapter, all information that is relevant to this research are explored and evaluated. Different sources such as journals, articles and books are used to gather the information. This information is important to provide accurate facts and understanding on the research. All the literature is reviewed based on research objectives identified in the previous chapter. Since, in this research, the author are particularly interested in the adoption of software development methodologies and software development practices among IT organization in Malaysia, the author limit the literature review to this two topics, and Software Development Life Cycle (SDLC). These two topics are discussed more detailed in the next subtopic.

2.1 Software Development Life Cycle (SDLC) According to Marchewka (2006), Software development life cycle represents the sequential phases or stages a software follows throughout it usefiil life. The SDLC establishes a logical order or sequences in which the software developments occur and indicate whether to proceed from one activity to the next (McConell, 1996). It is stated that there are no generally accepted version of SDLC. Figure 2.1 below includes the generally accepted activities or phases associated with system or software development. Planning \ y \ Analysis y Design / \ Implementation y Maintenance \ and Support / i L Source: Jack T. Marchewka, Information Technok>gy Project Management, 2006 Figure 2.1: Software Development Life Cycle Meanwhile Fugetta (2000) added that software lifecycle defines the different phases in the lifetime of a software product. Typically, they are requirements analysis and specification, design, development, verification and validation, deployment, operation, maintenance, and retirement. Moreover, a software lifecycle defines the principles and guidelines according to which these different phases have to be carried out.

2.2 Software Development Methodologies A methodology is a formalized approach to implementing the Software Development Life cycle (SDLC) (Dennis, Wixom and Tegarden, 2005). There are many different systems development methodologies, and each one is based on the order and focus on each SDLC phase. For example, the waterfall model suggests that a specific phase should be started only when the deliverables of the previous one have been completed. On the other hand, the spiral model considers software development as the systematic iteration of a number of activities driven by risk analysis. A methodology is also defined as a recommended collection of phases, procedures, rules, techniques, tools, documentations, managements and training used to develop a system (Avison & Fitzgerald, 2003). Some methodologies are formal standard used by government agencies, while others have been developed by consulting firm to sell to clients. Many organizations also have internal methodologies that explain exactly how each phase of the SDLC is to be performed in that company. Methodologies can be categorized in many ways. It can be looked at whether they focus on business process or the data that support the business process. Another way to categorized methodologies is to see the sequencing of SDLC phases and the time and effort devoted to each (Dennis, Wixom and Tegarden, 2005). According to Nandhakumar and Evison (2000), Information System (IS) development methodologies differ in the technique it recommend, the contents of the development phases they specify and in some cases their whole perspectives on information system. They are intended to improve many aspects of IS development, such as understanding the development process, communicating

the knowledge acquired, improving productivity of the programming task and making IS easier to maintain (Avison and Fitzgerald, 1995). New methodologies and approaches are often proposed as solutions to problems in IS development (Fitzgerald, 1996). There are also new methodologies developed by blending together what are considered to be the strong features of existing methodologies. Methodologies may also be developed by combining different types of methodologies to overcome the drawbacks of each. Since there are many methodologies, selecting the best methodology is a problem for a company. A methodology is not universally applicable to all development situations because situations might differ depending on the type of project and its objectives, the organization and its environment, the users, and the developers and their respective skills. The type of project might also differ as to purpose, complexity, structuredness, degree of importance, projected life, and potential contribution to overall corporate performance. Different environments might exhibit different rates of change, number of users affected by the system, user skills, and analyst skills. All these characteristics can influence the choice of required development approach (Avison & Fitzgerald, 2003). In practice, developers frequently do not apply the methodologies in their complete form as specified (Chikofsky, 1989, Jenkins et ah, 1984). Developers omit those aspects of the methodology that do not seem to suit the contingencies of the situation. Some organizations have rejected the use of methodologies, returning to less-formal, more flexible approaches. They also likely to find an appropriate approach for their system development work (Avison & Fitzgerald, 2003). Table 2.1 below shows an example of current leading software development methodologies in software industry.

Table 2.1: Example of Current Leading Software Development Methodologies. Method Description When to Use It Primary Modeling Artifacts Agile Data A partial agile method Tailor the AD Agile data models (AD) which focuses on philosophies and techniques which support techmques into evolutionary (iterative other evolutionary and incremental) database processes. development. Agile Model A partial, practices-based Tailor the AM Apply the right Driven method which describes principles and artifact for the Development techniques for effective practices into other situation at hand. (AMDD) modeling and agile or near-agile documentation of processes. systems. Agile Unified Process (AUP) An agile instantiation of the Unified Process (UP), a dramatic simplification of the RUP. When you want something in between XP and traditional RUP, a process that is agile Use-case model UML sequence diagrams UML class model Physical data model yet explicitly includes activities and artifacts which

you're accustomed to, or simply something that's firee. Code and Fix A typically ineffective For throw-away Source code approach to development, prototypes. usually followed by unskilled or poorly skilled developers, where they simply write code without putting much thought into it. Also called "hacking" or "immature development". Data-Driven This is a generic category Development of a Conceptual data Approach of data-driven methods data warehouse. model popularized in the 1970s and 1980s with the emergence of structured methods. This approach is typical rigorous and Development of a simple "CRUD" (Create Read Update Delete) business Logical data model Deployment architecture Physical data model serial. For a humorous application. look, read The Glacial Methodology. Dynamic This is an agile method Development of a Functional 10

System that has received ISO user interface prototype Development 9001 certification. In intensive system. Design prototype Method many ways it is a Complex business (DSDM) formalization of the application. Rapid Application Development (RAD) methods of the 1980s. Enterprise A rigorous, seven-phase Need to manage a Enterprise business Unified software process that portfolio of model Process (EUP) includes development. projects, including Enterprise domain operation, and retirement but not limited architecture model of software-based teams following the Enterprise technical systems. Development RUP. architecture model efforts are iterative and You have been Project-level incremental. It includes a successftil at several artifacts multi-system view that RUP projects and includes enterprise wish to now take architecture, reuse thefiillsystem management, portfolio lifecycle into management, and people account. management activities. Extreme An agile development Small, co-located User stories Programming method that focuses on project teams (4-10 Architectural (XP) the critical activities people). metaphor/strategy required to build Requirements are Class responsibility software. uncertain. collaborator (CRC) Good relationship cards 11