Open source development model and methodologies.

Slides:



Advertisements
Similar presentations
Making the System Operational
Advertisements

Software Quality Assurance Plan
Object-Oriented Software Development CS 3331 Fall 2009.
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Agile development By Sam Chamberlain. First a bit of history..
CS 501: Software Engineering
Rich Hypermedia for NB Requirements and Release Process Version 3.3 CSEM Consulting ICS 225 – Spring 2002.
Software Life Cycle Model
Sudheesh Singanamalla. Editable and Free Every open source software is free to download and use for a lifetime. At the same time it gives the transparency.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
IT Systems Analysis & Design
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Testing Challenges in an Agile Environment Biraj Nakarja Sogeti UK 28 th October 2009.
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
CS 5150 Software Engineering Lecture 3 Software Processes 2.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
Managing Change 1. Why Do Requirements Change?  External Factors – those change agents over which the project team has little or no control.  Internal.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
ANALISA & PERANCANGAN SISTEM Disusun Oleh : Dr. Lily Wulandari Program Pasca Sarjana Magister Sistem Informasi Universitas Gunadarma.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Introduction Requirements and the Software Lifecycle (3)
Chapter 2- Software Development Process  Product Components  Software Project Staff  Software Development Lifecycle Models.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
June 2008Mike Woodard Rational Unified Process Overview Mike Woodard.
Project Management Software development models & methodologies
Introduction To System Analysis and Design
Embedded Systems Software Engineering
CS223: Software Engineering
Software Development.
Teaching slides Chapter 2
Software Project Configuration Management
Software Engineering Management
Chapter 1 The Systems Development Environment
Regression Testing with its types
Software Configuration Management (SCM)
Valuable Project Management Tools and Techniques
Software Development methodologies
1.Introduction to Rational Unified Process (RUP)
System Development Life Cycle (SDLC)
Chapter 1 The Systems Development Environment
Design and Implementation
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
FORMAL SYSTEM DEVELOPMENT METHODOLOGIES
IT Systems Analysis & Design
Software Development Life Cycle
Applied Software Implementation & Testing
Introduction to Software Engineering
What do you need to know about XP?
Teaching slides Chapter 3.
Object Oriented Analysis and Design
How to Successfully Implement an Agile Project
Teaching slides Chapter 1.
Software life cycle models
Software engineering -1
Gathering Systems Requirements
Quality Assurance in an Agile Development Team Michelle Wu 2018 PNSQC
CS310 Software Engineering Lecturer Dr.Doaa Sami
Extreme Programming.
MANAGING THE DEVELOPMENT AND PURCHASE OF INFORMATION SYSTEMS
CS5123 Software Validation and Quality Assurance
Extreme Programming.
Gathering Systems Requirements
Chapter 1 The Systems Development Environment
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
System Development Methods
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

Open source development model and methodologies. Computer science department third year cs Lecturer : yasmin maki

There has always been methodology since when there has been a need to create solutions to problems. In the case of open source software development, methodology has been essential even though not very visible in creating successful development processes. The Linux and Apache projects are but a few of success stories of open source development projects.

The difference between open source projects, development processes and proprietary methods Complex OSSs are built by a large number of developers around the world with a common norm of openness; some of these developers are volunteers while others are supported by companies around the world.

The difference between open source projects, development processes and proprietary methods The workload usually is not assigned to the developers instead the developers choose to undertake whatever work they choose to perform There are usually no detailed requirements, design, project plan nor schedule

Software Development Methodologies The most common methodologies are chosen and they are:  The waterfall model  The Rational Unified Process Model (RUP)  The Agile Model o Scrum  Open Source Development mode

Open Source Development Model The model is said to be a fluid development process characterized by : increased intrateam collaboration, continuous integration and testing and greater end-user involvement; this model describes a process and characteristics that would apply to most open source projects but also states that every open source project could have its own development process.

The model runs under the Feature Development life-cycle and this process consists of: 1. Feature request process. 2. Architecture and Design Discussion. 3. Collaboration on Implementation. 4. Source code submission. 5. Continuous testing and Integration. 6. Source code release

Feature request process: When there is a need for a new feature, a feature request is create to ensure a common understanding within the development team : of what feature has been requested, its priority, development status, associated bugs, blockers and scheduled release. The project team contributors evaluate the request in terms of its need, strength and if it is fit for a future release. This feature request must be communicated and transparent to all team members whether new or old member.

Architecture and Design Discussion. The importance of communication comes under the architecture and design discussion phase and the most commonly used form of communication is : mailing list, Internet relay chat (IRC) client for design meetings and user support meetings taking into consideration that English might not be the primary spoken language of all participant

Collaboration on Implementation. After a sustainable communication channel has been created, then a collaborative development phase can ensue. Putting in mind that these team members can be from around the world, a project tool that support effectively code contribution must be involved for example the open source git repository.

Source code submission. The process begins with collaborative development among the team’s subset of developers who have taken the responsibility for developing the feature. When the code is functional, it is submitted to the project advocator over the mailing list that then together with other project participant may give feedback on the feature and decide if it can be accepted into the source code of the main software. The smaller the patch that is submitted at an iteration the easier it is to finding bugs and fixes unintended consequences in the source code .

Continuous testing and Integration Most open source project have automated build suite and test suites that evaluate new code immediately after integrations to identify functional issues during active development, which is why small incremental are favorable to ensure that quality of the source code is assured on all levels.

Source code release For all the feature codes to be well integrated, a release management is put in place as a development tree to make retrieving the most current stable release available to all users to continue work on

Core characteristics of open source development model are: that code contributors are responsible for development and maintenance of code that is; one or more of the project advocators checks and integrates source codes written by contributors into the body of existing codes

Another life cycle model for the development of the OSS The United States Department of Defense (DOD) proposed a life cycle model .The main focus of this development life cycle is on the contributor roles who participate in the development process of the OSS. The OSS development model presented by is shown in Figure below.

The OSS development life cycle consist of following: Developer: Developers consist of the persons who imitated and contributed majorly in the development of the OSS. The developer is responsible for the actual working of the OSS in right and proper manner.

Trusted Developer: Trusted developers consist of the persons who contribute in the development of the OSS continuously and they gained the trust of the initiators through their continuous involvement in the development process and became the part of the core developer community. Trusted developers are allowed to make updating and changes in the trusted repository directly. The entire user, distributor sends their request for change and updation to the trusted developer.

Trusted Repository: Repository means the data house. The repository in OSS development specifies the house from where all the information related to the OSS can be retrieved. The user and trusted developers can access the repository directly or through the distributor. The trusted repository specify the space from where user or trusted developer can get the official version of the software and get other related information such as bugs report, change log, documentation etc.

Distributor: Distributor is the persons who have the copy of developed OSS and they are using it and perform other task such as modify, integrate, testing, configuration etc.

User: User is the normal person who uses the OSS. User can be categorized as Passive and Active user. The Passive users are those who download the software for use, study they never participate in development. The Active user participate in the development process by performing task as finding bug, giving review about the OSS etc.

In this development process the flow of the source code is shown as developer - trusted developer - trusted repository - distributor - user i.e., it follows the top-down approach, where as feedback/bug report use bottom-up approach. It flows from user - distributor - trusted repository- trusted developer - developer.