Search My Blog & Website

Showing posts with label development methodologies. Show all posts
Showing posts with label development methodologies. Show all posts

Monday, August 18, 2008

ISO IEC 15288 / INCOSE SEBoK v3.0 Life Cycle Stages

Life-cycle definition is an important aspect of any system. By defining a life-cycle we can establish a framework for meeting stakeholder needs in an orderly fashion.

This order comes from the presence of stages in the life-cycle, and decision-making at the end of each stage to determine the readiness to move on. Stakeholders are concerned with the business case, funding and capability of a system at each stage.

INCOSE SEBoK ver 3.0 defines seven life-cycle phases. Each of these phases are listed below. Phases 2 - 7 are the same as the six phases defined in ISO 15288.

Pre-concept Phase:
Inputs: New ideas
Process: Creative systems engineering and requirements definition
Outputs: Identified enabling technologies

Concept Phase:
Inputs: Studies, experiments, models
Process: Requirements identification (if not done in pre-concept), indepth feasibility studies, prototypes, risk evaluation, early validation
Outputs: System requirements, feasible design solution

Development Phase:
Input: System requirements
Process: Development, integration, verification and validation
Outputs: Developed, verified and validated system

Production Phase:
Input: Tested system
Process: Modifications, re-verification, cost reduction
Output: Manufactured product

Utilization Stage:
Input: Performance reports, change requests, operational work orders
Process: Operations, change management
Output: Operational product, upgrades

Support Stage:
Inputs: Modifications, change requests
Process: Change control, maintenance, cost reduction, support
Output: Sustainable service and supported mission

Retirement Stage:
Inputs: change requests, competing systems
Process: System migration, removal, disposal
Output: Disposed system

Friday, August 08, 2008

Agile In a Nutshell

Agile development is all about short iterations. Using what is known as a scrum process requirements are iterated and turned into use cases which are tested and so on.

The goal in agile is to test early, to identify early defects; and use continuous stakeholder feedback to deliver high-quality consumable code through use cases, and a series of short time-boxed iterations.

Thursday, September 06, 2007

Common Software System Development Methodologies

There are 4 common software system development methodologies. These methodologies comprise of:

(1) A process - to define activities or tasks to achieve the goal of the methodology
(2) A vocabulary - to describe the process and work products created during the process application.
(3) Rules and guidelines - to define the quality of the process and the work products

The four methodologies are shown in the table below along with their strengths and weaknesses.

Domain

RUP

Shlaer-Mellar

CRC

XP

Emphasis

- Incremental and iteration

- Execution for verification

Scenarios and simplicity

Simplicity, design through integration and refactoring

Strengths

- Comprehensive

- Well Defined artifacts and roles

- Incremental deliveries

- Simulation capability

- Well defined testing rules

- Well defined transition from one step in the process to another

- Real-time system support

- Simplicity

- Easy to use to transition from procedural to object oriented concepts

- Focuses on object value, leading to optimized system

- Focuses and cares about the programming environment

- Supports and requires close relationship between clients and developers

- Accounts for changes in the development process

Weakness

- Large and difficult

- Complicated rules

- Customization is not straight-forward

- Limited vendors supporting the process

- Considerable learning curve

- Focuses too much on state modeling.

- Limited vendors supporting the process

- Supports primarily classes

- Requires a facilitator

- Relies on an ideal development environment

- Depends extensively on client commitments

- Requires high quality human interaction among development team

- The system is in a constant state of maintenance