Lockdown

bwilson
New.SoftwareDevMatrix.docx

Software Development Matrix

Dept of Cybersecurity, UMGC

CYB 670: Capstone in Cybersecurity

Professor Karl Olson

June 06, 2022

Software Development Methodology

Pros and Cons

Software Assurance Concerns

Waterfall Model

Pros:Relies on a team to follow a Sequence of Steps, never moving forward until the previous phase has been completed.

· Create requirements documents

· System design

· Implementation

· Testing

· Deliver Deployment

· Maintenance

Cons:

· makes Changes difficult, follow a set of steps

· No feedback path

· Difficult to accommodate change requests

· No overlapping of phases: This model recommends that a new phase can start only after the completion of the previous phase. But in real projects, this can’t be maintained. To increase efficiency and reduce cost, phases may overlap. 

No feedback path: In the classical waterfall model evolution of software from one phase to another phase is like a waterfall. It assumes that no error is ever committed by developers during any phase. Therefore, Software is not working until later stages in the software development lifecycle. 

Prototype Model

Pros:

· Flexible in design

· Easy to detect errors

· Find missing functionality easily

· Scope of refinement, new requirements.

· It can be reused by the developer for more complicated projects in the future

· It ensures a greater level of customer satisfaction and comfort

·

Cons:

· The model is costly

· It has poor documentation because of continuously changing customer requirements

· There may be too much variation in requirements

· Customer sometimes demands the actual product to be delivered soon after seeing an early prototype.

· Customer may not be satisfied or interested in the product after seeing the initial prototype

Prototypesmake customers assume they are further in process of development thantheyreally are. This causes developers to rush in getting a product out the door, leaving steps in the process like security not getting completed.

Agile Software Development

Pros:

· Working through pair programming produce well written compact programs

· It reduces the total development time of the whole project

· Customer representatives get the idea of updated software products after each iteration

Cons:

· Due to lack of formal documents creates confusion and important decisions taken during different phases can be misinterpreted

· Due to the absence of proper documentation, when the product is complete and developers are assigned to another project, maintenance of the development project can become a problem.

Software lifecycle allows Agile to be tailored towards cybersecurity.

Rapid Application Development

Pros

· The use of reusable components helps to reduce the cycle time of the project.

· Feedback from the customer is available at the initial stages.

· Feedback from the customer is available at the initial stages.

· The use of powerful development tools results in better quality products in comparatively shorter time spans.

· The use of powerful development tools results in better quality products in comparatively shorter time spans.

· The use of powerful development tools results in better quality products in comparatively shorter time spans.

Cons:

· The use of powerful development tools results in better quality products in comparatively sthe use of powerful development tools results in better quality products in comparatively shorter time spans.

· shorter time spans.

· The use of powerful development tools results in better quality products in comparatively shorter time spans.

· The use of powerful development tools results in better quality products in comparatively shorter time spans.

· The use of powerful development tools results in better quality products in comparatively shorter time spans.

Due to the rapid pace of Rapid Application Development (RAD) securitychallenges in the process.

Dynamic Systems Development

Pros:

· Timely delivery of projects with flexibility that focus on business goals and large-scale orgs.

Cons:

· Significant amount of money required makes this not suitable for smaller orgs.

N/A

Spiral Model

Pros:

· The use of powerful development tools results in better quality products in comparatively shorter time spans.

· The use of powerful development tools results in better quality products in comparatively shorter time spans.

· The use of powerful development tools results in better quality products in comparatively shorter time spans.

· The use of powerful development tools results in better quality products in comparatively shorter time spans.

· The use of powerful development tools results in better quality products in comparatively shorter time spans.

· Strong approval and documentation control.

Cons

· .It is not suitable for small projects as it is expensive.

· It is much more complex than other SDLC models. The process is complex.

· Too much dependable on Risk Analysis and requires highly specific expertise.

· Difficulty in time management. As the number of phases is unknown at the start of the project, time estimation is very difficult.

· Difficulty in time management. As the number of phases is unknown at the start of the project, time estimation is very difficult.

· Difficulty in time management. As the number of phases is unknown at the start of the project, time estimation is very difficult.

· It is not suitable for low-risk projects.

· May be hard to define the objective, verifiable milestones. Large numbers of intermediate stages require excessive documentation.

·

·

Model does not have security as A Process in any of the steps, Requires a significant amount of expertise.

Extreme Programming

Pros:

· Timesaving, Cost Saving simplicity, visibility

Cons:

· The focus is on code review instead of design and customer, quality assurance.

The software life cycle is not tailored to support security engineering challenges and focuses more on speed than security.

Feature-Driven Development

Pros:

· Good with features, bigger scale projects, uses the top known development practices

Cons:

· Not used by smaller teams, requires extremely competent leadership, and has minimal documentation.

Mistakes are made in phases of the feature-driven development that will cost in the long run.

Joint Application Development

Pros:

· Produce a design from the customer’s perspective.

· The Teamwork between company and client, helps to remove all risks.

· Due to close interaction, progress is faster.

· JAD helps to accelerate design and also to enhance quality.

· JAD cheers the team to push each other with leads them to work faster and also to deliver on Time

Cons:

· .Sometimes opinions among the team members may differ which makesit difficult to align goals and maintain focus.

· On depending upon the size of the product, in JAD people may have to spend a significant amount of time.

N/A

Lean Development

· Pros:LSD removes the unnecessary process stages when designing software so that it acts as a time saver and simplifies the development process.

· LSD removes the unnecessary process stages when designing software so that it acts as a time saver and simplifies the development process.

· LSD removes the unnecessary process stages when designing software so that it acts as a time saver and simplifies the development process.

Cons:

N/A

Rational Unified Process

Pros:

· Flexible, focus on requirements and documentation, reuses components of the project.

Cons:

· Could have lots of failures and difficult to implement with no end date in sight.

N/A

Scrum Development

Pros:

· Scrum framework is fast-moving and money efficient.

· Scrum framework is not a fully described model. If you want to adopt it you need to fill in the framework with your own details like Extreme Programming (XP), Kanban, and DSDM.

· Scrum framework is not a fully described model. If you want to adopt it you need to fill in the framework with your own details like Extreme Programming (XP), Kanban, and DSDM.

· The daily Scrum meetings and frequent reviews require substantial resources.

·

Cons:

· Scrum framework does not allow changes into their sprint

· Scrum framework is not a fully described model.

· It can be difficult for Scrum to plan, structure, and organize a project that lacks a clear definition.

· It can be difficult for the Scrum to plan, structure and organize a project that lacks a clear definition.

·

Scrum is tailored to security requirements.

https://www.geeksforgeeks.org/scrum-software-development/?ref=gcse