Assignment Briefs 09-10-2022

A description of software deployment techniques and an explanation of the importance of each stage in traditional software lifecycle approaches.

You have recently joined in FaceTap Digital Academy as a Software Developer. You are given a number of tasks during the probationary period.

You are presenting to a group of senior developers and your presentation should cover the following:

A description of software deployment techniques and an explanation of the importance of each stage in traditional software lifecycle approaches.

Software Development Life Cycle is the application of standard business practices to building software applications. It’s typically divided into six to eight steps: Planning, Requirements, Design, Build, Document, Test, Deploy, Maintain. Some project managers will combine, split, or omit steps, depending on the project’s scope. These are the core components recommended for all software development projects.

SDLC is a way to measure and improve the development process. It allows a fine-grain analysis of each step of the process. This, in turn, helps companies maximize efficiency at each stage. As computing power increases, it places a higher demand on software and developers. Companies must reduce costs, deliver software faster, and meet or exceed their customers’ needs. SDLC helps achieve these goals by identifying inefficiencies and higher costs and fixing them to run smoothly.

There are Seven Phases of the SDLC

 1. Planning

In the Planning phase, project leaders evaluate the terms of the project. This includes calculating labor and material costs, creating a timetable with target goals, and creating the project’s teams and leadership structure.

Planning can also include feedback from stakeholders. Stakeholders are anyone who stands to benefit from the application. Try to get feedback from potential customers, developers, subject matter experts, and sales reps.

Planning should clearly define the scope and purpose of the application. It plots the course and provisions the team to effectively create the software. It also sets boundaries to help keep the project from expanding or shifting from its original purpose.

2. Define Requirements

Defining requirements is considered part of planning to determine what the application is supposed to do and its requirements. For example, a social media application would require the ability to connect with a friend. An inventory program might require a search feature.

Requirements also include defining the resources needed to build the project. For example, a team might develop software to control a custom manufacturing machine. The machine is a requirement in the process.

3. Design and Prototyping

The Design phase models the way a software application will work. Some aspects of the design include:

Architecture – Specifies programming language, industry practices, overall design, and use of any templates or boilerplate

User Interface – Defines the ways customers interact with the software, and how the software responds to input

Platforms – Defines the platforms on which the software will run, such as Apple, Android, Windows version, Linux, or even gaming consoles

Programming – Not just the programming language, but including methods of solving problems and performing tasks in the application

Communications – Defines the methods that the application can communicate with other assets, such as a central server or other instances of the application

Security – Defines the measures taken to secure the application, and may include SSL traffic encryption, password protection, and secure storage of user credentials

Prototyping can be a part of the Design phase. A prototype is like one of the early versions of software in the Iterative software development model. It demonstrates a basic idea of how the application looks and works. This “hands-on” design can be shown to stakeholders. Use feedback o improve the application. It’s less expensive to change the Prototype phase than to rewrite code to make a change in the Development phase.

4. Software Development

This is the actual writing of the program. A small project might be written by a single developer, while a large project might be broken up and worked by several teams. Use an Access Control or Source Code Management application in this phase. These systems help developers track changes to the code. They also help ensure compatibility between different team projects and to make sure target goals are being met.

The coding process includes many other tasks. Many developers need to brush up on skills or work as a team. Finding and fixing errors and glitches is critical. Tasks often hold up the development process, such as waiting for test results or compiling code so an application can run. SDLC can anticipate these delays so that developers can be tasked with other duties.

Software developers appreciate instructions and explanations. Documentation can be a formal process, including wiring a user guide for the application. It can also be informal, like comments in the source code that explain why a developer used a certain procedure. Even companies that strive to create software that’s easy and intuitive benefit from the documentation.

Documentation can be a quick guided tour of the application’s basic features that display on the first launch. It can be video tutorials for complex tasks. Written documentation like user guides, troubleshooting guides, and FAQ’s help users solve problems or technical questions.

5. Testing

It’s critical to test an application before making it available to users. Much of the testing can be automated, like security testing. Other testing can only be done in a specific environment – consider creating a simulated production environment for complex deployments. Testing should ensure that each function works correctly. Different parts of the application should also be tested to work seamlessly together—performance test, to reduce any hangs or lags in processing. The testing phase helps reduce the number of bugs and glitches that users encounter. This leads to a higher user satisfaction and a better usage rate.

6. Deployment

In the deployment phase, the application is made available to users. Many companies prefer to automate the deployment phase. This can be as simple as a payment portal and download link on the company website. It could also be downloading an application on a smartphone.

Deployment can also be complex. Upgrading a company-wide database to a newly-developed application is one example. Because there are several other systems used by the database, integrating the upgrade can take more time and effort.

7. Operations and Maintenance

At this point, the development cycle is almost finished. The application is done and being used in the field. The Operation and Maintenance phase is still important, though. In this phase, users discover bugs that weren’t found during testing. These errors need to be resolved, which can spawn new development cycles.

An evaluation of alternative software development approaches.

The Software Development Approaches below show how the various tasks related to software development can be organized. Typical approaches or paradigms encountered in DoD software development include waterfall, incremental, and spiral as described below.

Waterfall Approach

Development activities are performed in order, with possibly minor overlap, but with little or no iteration between activities. User needs are determined, requirements are defined, and the full system is designed, built, and tested for ultimate delivery at one point in time. A document-driven approach best suited for highly precedence systems with stable requirements.

The waterfall model is often also referred to as the linear and sequential model, for the flow of activities in this model are rather linear and sequential as the name suggests. In this model, the software development activities move to the next phase only after the activities in the current phase are over. However, like is the case with a waterfall, one cannot return to the previous stage.

Incremental Approach

Determines user needs and defines the overall architecture, but then delivers the system in a series of increments

(“software builds”). The first build incorporates a part of the total planned capabilities, the next build adds more capabilities, and so on, until the entire system is complete.

Spiral Approach

A risk-driven controlled prototyping approach that develops prototypes early in the development process to specifically address risk areas followed by an assessment of prototyping results and further determination of risk areas to prototype. Areas that are prototyped frequently include user requirements and algorithm performance. Prototyping continues until high-risk areas are resolved and mitigated to an acceptable level.

During each iteration or loop, the system is explored at greater depth and more detail is added. Appropriate for exploratory projects that are working in an unfamiliar domain or with unproven technical approaches. The iterative nature allows for knowledge gained during early passes to inform subsequent passes. Requires low up-front commitment.

 

You are designing a booklet for the attendees to demonstrate your understanding of the process of software development. Your booklet should cover the following:

(A&B)

Agile with scrum: The term “agile” is ambiguous and there are many flavors of agile. For this article the term is used for projects that follow the 1997 agile manifesto, have embedded users to provide requirements, use user stories, divide projects into discrete sprints that are developed individually, and use the scrum concept and daily status meetings. Minimizing paperwork and accelerating development speeds are top goals of agile.

CMMI 1 with waterfall: The Capability Maturity Model Integrated™ (CMMI) of the Software Engineering Institute is a well-well-known method for evaluating the sophistication of software development. CMMI 1 is the bottom initial level of the 5 CMMI levels and implies chaotic development. The term “waterfall” refers to traditional software practices of sequential development starting with requirements and not doing the next step until the current step is finished.

CMMI 3 with iterative: The third level of the CMMI is called “defined” and refers to a reasonably smooth and well understood set of development steps. The term “iterative” is older than “agile” but has a similar meaning of dividing applications into separate pieces that can be constructed individually.

CMMI 5 with spiral: The 5th level of the CMMI is the top and is called “optimizing.” Groups that achieve this level are quite sophisticated and seldom make serious mistakes. The spiral model of software development was pioneered by Dr. Barry Boehm. It features ideas that also occur in agile, such as individual segments that can be developed separately. The spiral segments are often larger than agile segments and are preceded by prototypes.

(C)

An evaluation of the software testing methodologies.

Software testing techniques are crucial for detecting faults in software and reducing the risk of using it. As such, it is important that we have a good understanding of how to evaluate these techniques for their efficiency, scalability, applicability, and effectiveness at finding faults. This article enhances our understanding of software testing technique evaluations by providing an overview of the state of the art in research and structuring the field to assist researchers in locating types of evaluations they are interested in. To do so a systematic mapping study is performed. Three hundred and sixty-five primary studies are systematically collected from the field and each mapped into categories based on numerous classification schemes. This reveals the distribution of research by each category and identifies where there are research gaps. It also results in a mapping from each combination of categories to actual papers belonging to them; allowing researchers to locate all the testing technique evaluation research very quickly with properties they are interested in. Further classifications are performed on case study and experiment evaluations to assess the relative quality of these evaluations. The distribution of research by various category combinations is presented along with a large table mapping each category combination to the papers belonging to them. We find most evaluations are empirical evaluations in the form of case studies and experiments, most of them are of low quality based on proper methodology guidelines, and relatively few papers in the field discuss how testing techniques should be evaluated.

An evaluation of the methods of reviewing system performance.

The primary goals of a performance evaluation system are to provide an equitable measurement of an employee’s contribution to the workforce, produce accurate appraisal documentation to protect both the employee and employer, and obtain a high level of quality and quantity in the work produced. To create a performance evaluation system in your practice, follow these five steps:

  • Develop an evaluation form.
  • Identify performance measures.
  • Set guidelines for feedback.
  • Create disciplinary and termination procedures.
  • Set an evaluation schedule. 

References:

https://phoenixnap.com/blog/software-development-life-cycle

https://acqnotes.com/acqnote/careerfields/software-development-approaches

 

100% Plagiarism Free & Custom Written, Tailored to your instructions
paypal checkout

Our Giveaways

Plagiarism Report

for £20 Free

Formatting

for £12 Free

Title page

for £10 Free

Bibliography

for £18 Free

Outline

for £9 Free

Limitless Amendments

for £14 Free

Get all these features for
£83.00 FREE

ORDER NOW