Software Development Life Cycle (SDLC). SDLC Models.

Software Development Life Cycle (SDLC) - a series of events that occur with the system in the process of its creation and further use.

The following are the key stages of the cycle:

  • Analysis. The team decides what the software needs to do. The main point is to think about what the user will want from the program. It might be a good idea to ask other people what they want from the software. Who is going to use it? What information do they need to input? What information or data does it need to output? Consider existing similar systems or determine how the current system works.

  • Design - the team work out the details of the program by breaking it down into smaller chunks. This includes thinking about the visual appearance and the programming behind the software. The team will use pseudocode and diagrams to work out how the program should go.

  • Implementation - the program code is written. Good pseudocode allows the implementation stage to be relatively easy. The code is normally written in a high-level language.

  • Testing - this involves testing the program under various conditions to make sure it is going to work. Devices it could be used on and what might cause the program to crash.

  • Evaluation discusses the level of achievement of the goals. The key evaluation criterion is the use of the system by the intended users.

Waterfall model - after a certain phase is completed, it is thoroughly checked

Advantages

Disadvantages

Easy to understand, easy to use

Provides structure to inexperienced staff

Milestones are well understood

Sets requirements stability

Good for management control (plan, staff, track)

All requirements must be known upfront

Deliverables created for each phase are considered frozen – inhibits flexibility

Does not reflect problem-solving nature of software development – iterations of phases

Integration is one big bang at the end

Little opportunity for customer to preview the system (until it may be too late)


Spiral model - before performing any phase, several prototypes are made

Advantages

Disadvantages

Provides early indication of insurmountable risks, without much cost

Users see the system early because of rapid prototyping tools

Critical high-risk functions are developed first

Users can be closely tied to all lifecycle steps

Early and frequent feedback from users


Time spent for evaluating risks too large for small or low-risk projects

Time spent planning, resetting objectives, doing risk analysis and prototyping may  be excessive

The model is complex 

Risk assessment expertise is required

Spiral may continue indefinitely


Prototyping Model - making a prototype before work

Advantages

Disadvantages

  • Customers can “see” the system requirements as they are being gathered

  • Developers learn from customers 

  • A more accurate end product

  • Unexpected requirements accommodated

  • Allows for flexible design and development

  • Steady, visible signs of progress produced

  • Interaction with the prototype stimulates awareness of additional needed functionality

  • Tendency to abandon structured program development for “code-and-fix” development

  • Bad reputation for “quick-and-dirty” methods

  • Overall maintainability may be overlooked

  • Process may continue forever (scope creep)




Последнее изменение: Thursday, 18 April 2024, 13:40