Overview of Secure Application Development Flashcards
SDLC
Software Development Life Cycle
What are the SDLC stages?
Stage 1: Planning and Requirement Analysis
Stage 2: Defining Requirements
Stage 3: Designing the Product Architecture
Stage 4: Building or Developing the Product
Stage 5: Testing the Product
Stage 6: Deployment in the Market and Maintenance
SRS
Software Requirement Specification
consists of all the product requirements to be designed and developed during the project life cycle.
Created in stage 2 - Defining Requirements stage
DDS
Design Document Specification
Based on the requirements specified in SRS, usually more than one design approach for the product architecture is proposed and documented in a DDS
created in stage 3 - Designing the Product Architecture
UAT
User Acceptance Testing
sometimes products are released in stages. a UAT is when product is released in a limited segment and tested in real business environment
created in stage 6: Deployment in the Market and Maintenance
What are the popular SDLC Models or software development process models?
Waterfall Model
Iterative Model
Spiral Model
V-Model
Big Bang Model
Waterfall Model Design?
Sequential in nature. Current step must be complete prior to moving on to next step.
Situations where use of Waterfall model is appropriate?
- Requirements are very well documented, clear, and fixed
- Product Definition is Stable
- Technology is understood and not dyamic
- There are no ambiguos requirements
- Ample resources with required expertise are available to support the product
- The project is short.
What are the advantages of the Waterfall Model
allows for deatmentalization and control
a schedule can be set with deadlines for each stage
simple and easy to use
easy to manage
clearly defined stages
Waterfall Model disadvantages
does not allow much reflection or revision.
no working software produced until late during the life cylce
high risk and uncertainty
not good for complex and object oriented projects
not suitable for projects with risk of changing
difficult to measure progress within the stages
adjusting scope during life cycle can end project
What is the Iterative Model in SDLC
it starts with a simple implementation of a small set of software requirements and iteratively enhances evolving versions until a complete system is ready to be deployed
Basically, develpment begins by specifying and implementing just part of the software, which is then reviewed for further requirements and repeated which produces a nrew version at each iteration of the model
Illustration of the Iterative Model
What applications would use the Iterative Model?
Requirements of the complete system are clearly defined and understood.
Major requirements must be defined; however, some functionalities or requested enhancements may evolve with time.
There is a time to the market constraint.
A new technology is being used and is being learnt by the development team while working on the project.
Resources with needed skill sets are not available and are planned to be used on contract basis for specific iterations.
There are some high-risk features and goals which may change in the future.
Pros of the Iterative Model
The advantage of this model is that there is a working model of the system at a very early stage of development, which makes it easier to find functional or design flaws. Finding issues at an early stage of development enables to take corrective measures in a limited budget
Some working functionality obtained early on
results obtained early and periodically
progress can be measured
testing and debugging easy
supports changing requirements
Disadvantages of Iterative Model
The disadvantage with this SDLC model is that it is applicable only to large and bulky software development projects. This is because it is hard to break a small software system into further small serviceable increments/modules
not suitable for smaller projects
management complexity is more
end of project may not be known which is a risk