Introduction

Software life cycle models describe the interrelationships between software development phases. The common life cycle models are:

Waterfall: In this type of development, each of the stages (requirements, design, development, and test) are separate and do not overlap. Each stage has a set of exit criteria which must be met before the next stage can begin.

Extreme programming: Waterfall model does not work with shifting requirement, in XP, coding starts as early as possible to detect Emergent design.

V-Shaped: The V-Shaped model is the same as the Waterfall model except that testing is a consideration throughout the development. Each stage of development is matched with its equivalent stage in testing: Requirements-System testing, High-level design-Integration testing, Detailed design-Unit testing.

Prototyping: Prototyping consists of developing a partial implementation of the system to give the users a feel for what the developer has in mind. The users then give feedback on what they think of the prototype - what works and what doesn’t - and the developer can make changes more easily and efficiently.

Incremental: Here, system is developed in different stages, with each stage consisting of requirements, design, development, and test phases. In each stage, new functionality is added. This type of development allows the user to see a functional product very quickly and allows the user to impact what changes are included in subsequent releases.

Spiral: The Spiral model of development, each spiral addresses a set of major risks that have been identified. Each spiral consists of: determining objectives, alternatives, and constraints, identifying and resolving risks, evaluating alternatives, developing deliverables, planning the next iteration.

Smile follows a merged model of Incremental and Extreme programming.

Specification : Smile way of information capturing is done with k files.

Data Store kslick/kmongo
Relational, Mongo

Script kscript

Stream kstream