Two general approaches to the SDLC
Predictive approach
Adaptive approach
Predictive approach
-Waterfall model
-Assumes the project can be planned in advance and that the IS can be developed according to the plan
-Requirements are well understood and/or low technical risk
Adaptive approach to the SDLC
-Iterative model
-Assumes the project must be more flexible and adapt to changing needs as the project progresses
-Requirements and needs are uncertain and/or high technical risk
Traditional predictive SDLC
-Earlier approach based on engineering
-Typically have sequential phases
Newer Adaptive SDLC
-Emerged in response to increasingly complex requirements and uncertain technological environments
-Always includes iterations where some of design and implementation is done from the beginning
-Many developers claim it is the only way to develop IS
Additional adaptive concepts
-Incremental development
-Walking skeleton
Incremental development
-An approach that completes portions of the system in increments
-A system is implemented and partially deployed in steps during the project
-Gets part of the working system into users’ hands sooner
Methodologies
-Provides guidelines for every facet of system development
-Specifies an SDLC with activities and tasks
-Specifies project planning and project management models and reporting
-Specifies analysis and design models to create
-Specifies implementation and testing techniques
Model
-An abstraction of an important aspect of the real world
-Makes it possible to understand a complex concept by focusing only on relevant part
-Each model shows a different aspect of the concept
-Crucial for communicating project information
Walking skeleton
-An approach in which the complete system structure is built early, but with bare-bones functionality
Tools
Software applications that assists developers in creating models or other components required for a project
Technique
-A collection of guidelines that help an analyst complete and activity or task
-Learning techniques is the key to having expertise in a field
Methodology
Includes a collection of techniques that are used to compare activities and tasks, including modeling, for every aspect of the project
Two approchases to software construction and modeling
-The structured approach
-The object-oriented approach
The structured approach
-Earlier aproach, assumes a system is a collection of processed that interact with data
-Structured analysis,structured design, and strcutured programming
The object-oriented approach
More recent approach.Assumes a system is a collection of objects that interact to complete tasks
-OO analyis,OO design and OO programming
Object oriented analysis
The process of identifying and defining the use cass and sets of objects in the new system
Object-oriented design
Defining all of the types of objects necessary to communicate with people and devices and showing how they interact to complete tasks
Object oriented programming
Writing statements that define the actual classes and what each object of the class does
Agile development
-A guiding philosophy and a set of guidelines for developing IS in an unknown, rapidly changing environment
-Complements adaptive SDLCs and methodologies that support it
-Takes adaptive and makes sure developers are fast on their feet to respond to changes
Agile development philosophies and values
-Value respoding to change over following a plan
-Value individuals and interactions over processes and tools
-Value working software over comprehensive documentation
-Value customer collaboration over contract negotiation
Three current methodologies
-Unified process(UP)
-Extreme programming(XP)
-Scrum
-uses an iterative SDLC
-UP uses UML
-XP and scrum are based on agile principles, UP can also be used in an agile fashion
Unified Process
-Developed by Booch,Rumbaugh and Jacobson who previously devloped UML
-UP defines a complete methodology that uses UML for system models and describes a new, adaptive SDLC
The unified process-life cycle
-The unified process life cycle model includes iterations and phases
-Phases are inception, elaboration, construction and transition