Lesson 7.3: System Development Life Cycle Flashcards

1
Q

Requirements analysis

A

Requirements analysis requires significant input from stakeholders, such as potential users, as well as those with other ties, such as legal or financial interests. In cases where the beneficiary is an entity, like a company or government agency, requirements analysis may start with a feasibility study. The feasibility study determines whether development is possible under the given constraints and whether the development aligns with the organization’s mission. In the case of producing commercial off-the-shelf (COTS) systems for the mass market, requirements analysis is likely to begin with a market study by the system developer.

The requirements analysis process consists of three steps:

  1. Compiling and analyzing the needs of the system use
  2. Negotiating with project stakeholders on trade-offs between wants, needs, costs, and feasibility
  3. Developing a set of requirements identifying the necessary features and services of the completed system
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

The system requirement specification (SRS)

A

The system requirement specification (SRS) is a written agreement between all parties that records the system requirements and guides system development. The SRS also helps resolve disputes that arise during development. Because of how important the SRS is in the development process, organizations such as IEEE and large systems clients, such as the U.S. Department of Defense, have adopted standards for requirement specifications.

The system requirement specification (SRS) is a written agreement between all parties that records the system requirements and guides system development. The SRS also helps resolve disputes that arise during development. Because of how important the SRS is in the development process, organizations such as IEEE and large systems clients, such as the U.S. Department of Defense, have adopted standards for requirement specifications.

The SRS should clearly define objectives to determine a system’s success. Too often, however, the SRS fails to delineate the system objectives.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Design

A

While the requirements analysis describes the system, the design creates a plan for constructing the system. Requirements analysis identifies the problem to be solved, while design plans a solution. Requirements analysis is often equated with deciding what the system should do, whereas design is equated with deciding how the system would do it. If, for example, the user’s ability to access necessary systems using a limited number of steps is defined as a user requirement, the design phase may include the layout of drop-down boxes and the coloring scheme. When the design phase is complete, the organization should have a detailed description of the system structure.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

implementation phase

A

The system is built during the implementation phase, including such things as developing programs and databases and creating data files. As projects move from the design phase into the implementation phase, the demand for specialized technical skills increases. It is during the implementation stage of software development projects, for example, that the distinction between a system analyst and a programmer becomes clear. A system analyst is involved throughout the entire development process. A programmer is primarily tasked with writing programs that implement the design produced by a system analyst.

Many factors influence the successful implementation of a system—training, team skills, team communication, effective project management, quality assurance, and upper-management commitment are just a few.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

system maintenance

A

During system maintenance, the system is monitored, evaluated, and modified as needed. System maintenance is a continuous phase that covers a wide variety of activities, including troubleshooting application errors and incompatibilities, updating documentation, and providing end-user support. There are four primary categories of software maintenance: corrective, adaptive, perfective, and preventive.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Corrective maintenance

A

The goal of corrective maintenance is to remove errors to ensure functionality of the system. In Mei’s medical office, if a patient record application causes the operating system to reboot, Mei might begin corrective maintenance by reviewing the application and/or operating system logs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Adaptive maintenance

A

Adaptive maintenance is performed when organizational changes affect system requirements, such as changes in the organizational procedures, forms, or system controls and security needs. For example, Mei’s medical office might change how nurses obtain and verify their patients’ identity, such as adding barcode reader functionality to read barcodes from patients’ wristbands.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Perfective maintenance

A

Perfective maintenance is performed when new components are introduced, or existing components are improved, to enhance overall system performance. Examples of perfective maintenance include a new operating system for performance improvement or a new technology to increase efficiency.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Preventive maintenance

A

Preventive maintenance refers to changes made to increase the life span of systems and could include restructuring, optimizing code, or updating documentation that impacts the scalability, stability, and maintainability of the system. One maintenance activity that could be categorized as preventative is testing air conditioning units in the server rooms.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

System quality control

A

As systems have become more complex, malfunctions, cost overruns, and missed deadlines are becoming more common, resulting in a need for more effective quality control processes. System quality control goes beyond debugging to include improving procedures and developing training for employees. The ISO 9000 series of standards address industrial activities such as design, production, installation, and servicing. The ISO/IEC 15504 is a set of standards developed jointly by the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC). It is common for third-party system developers to meet specific standards.

Quality control must also maintain effective documentation practices. It is important that each step of the development process is accurately documented for future reference. Without maintaining up-to-date documentation, it is likely the records will be inaccurate or no longer applicable. Documenting the various audits throughout the system development process helps reduce errors.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

testing

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

glass-box testing (white-box testing)

A

Techniques based on the Pareto principle and basis path testing rely on knowledge of a system’s internal components. This is known as glass-box testing, commonly referred to as white-box testing, which includes having developers test internal structures of software

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Black-box testing

A

Black-box testing does not rely on the tester’s knowledge of the system’s structure but is focused on the user experience (UX).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Methodologies that fall within the black-box category are alpha, beta, and user acceptance testing.

A

In alpha testing, the first stage, developers and/or an internal UX team test a preliminary version of the software, providing feedback about performance and functionality. The second stage is beta testing, sometimes referred to as pilot testing. In this stage, the next version of the system is given to a segment of end users for similar testing from their perspective before the final version is released. The final stage is referred to as user acceptance testing. During this stage, the users test the system in an operational setting to make sure the system continues to align with business objectives and meet the goals of the stakeholders.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Documentation

A

A system is not effective unless people can learn to use it and maintain it properly. Documentation is an important part of a system. The production of documentation is a component of the system development process. There are three types of system documentation: user documentation, system documentation, and technical documentation. User documentation explains the system to users and may include information such as how to access certain features, frequently asked questions (FAQs), and contact information for customer support.

System documentation describes the system’s internal configuration so the system can be maintained later in its life cycle. A major part of software development system documentation is software code. The code needs to be versioned and presented in a readable format. Versioned code allows developers to track modifications and reverse any changes that have been problematic. Readability is important so that any contributing developer can read the code. Development companies have created conventions for writing programs that include several common features:

indentation conventions for script readability
naming conventions for variables and constraints
documentation conventions for sufficient program documentation
Technical documentation describes how to install and maintain the system, including information about installing updates and providing feedback to the development team.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

waterfall model and incremental model

A

Early approaches to system engineering used the waterfall model, following the development process sequentially: first requirements analysis, then design and implementation, and finally testing. Each step needed to be finished before moving on to the next. New models have evolved to reflect the natural trial-and-error creative process of problem-solving.

Using the incremental model, the system is constructed in increments. The first increment is a simplified version of the final product. As tests are completed, more features are added and tested incrementally until the system is complete. If a patient record system is being developed for a hospital, the first increment might incorporate only the ability to view a small sample of patient records. Additional features would be available when this version is operational, such as the ability to add and update records.

16
Q

Prototyping

A

Prototyping is building and evaluating basic versions of a proposed system. Rapid prototyping involves quickly constructing a simple sample that may consist of only a few screen images, indicating how the system would function. Rapid prototyping is used to build a “rough draft” of a product, with minimal resources and effort, giving stakeholders a clear picture of the intended system.

17
Q

Open-source development

A

Open-source development permits users to modify the software code. Possibly the most notable example is the Linux operating system. Although most software from Microsoft is closed source (meaning the code cannot be modified), PowerShell Core was made open source in 2016.

Under the open-source model, applications are developed and shared to be downloaded, used, and updated by a local or even global community of enthusiasts.

18
Q

Agile Methodologies

A

Agile methods are system development methodologies that propose incremental implementations, respond to rapidly changing requirements, and reduce the emphasis on rigorous requirements. Scrum and extreme programming are both examples of agile methodologies.

Scrum is a hands-on system consisting of simple steps:

The system owner makes a prioritized wish list.
The scrum team selects an item toward the top of the wish list and plans the implementation during an event called “sprint.”
The team completes the list of objectives while assessing progress in daily meetings called scrums.
The sprint ends with the system ready to be released.
A new sprint starts, using another item on the wish list.
This process continues until the prioritized wish list is clear.
Following the extreme programming (XP) model, systems are developed by a team of fewer than a dozen individuals working in a communal workspace, where they freely share ideas and assist each other in the development project. The system is developed incrementally by repeated daily cycles of informal requirements analyses, designs, and common tests. New, expanded versions of the system appear on a regular basis. Each version is usually evaluated by the project stakeholders.

Agile development is quick, increases customer satisfaction, values employees, and reduces rework.

19
Q

High availability

A

High availability solutions provide replicas, or copies, of critical systems that can be deployed when the original systems are not available.

20
Q

Disaster recovery plans (DRPs)

A

Disaster recovery plans (DRPs) rely on solutions to ensure that systems can recover from catastrophic events in a reasonable amount of time with minimal data loss.

21
Q

Data mirroring, data backups, and off-site storage

A

Data mirroring, data backups, and off-site storage are some of the strategies used for disaster recovery and business continuity.

Data mirroring involves setting up the operating system to simultaneously write copies of the data on several storage devices. If something happens to one drive, another drive will be used in place of the faulty one, enabling the systems to recover functionality quickly without significant degradation of service.

Data backups can be stored on any data storage device, but tape archival is common for businesses. Tape drives are inexpensive and can be transported to an off-site location.

Off-site locations are a common solution for disaster recovery; if the primary site is damaged in some way, the data can likely be restored at another site.

Off-site storage locations are often found in other states. Salt mines and caves are popular locations for physical storage because of the low humidity and the protection provided by the earth’s terrain. Storing data in the cloud is another popular option. Storing a copy of company data in the cloud improves the ability to recover, as many public cloud service providers replicate their data across various geographic locations.

22
Q

Suggested Criteria for Assessing Off-Site Storage

A

Accessibility=The length of time necessary to retrieve the data from storage. Also, the storage facility’s opening hours.

Cost=The cost of shipping, operational fees, and disaster response/recovery services.

Environment=The structural and environmental conditions of the storage facility: temperature, humidity, fire prevention, and power management control.

Geographic area=The distance from the organization. The probability of the storage site being affected by the same adverse event as the organization.

Security=The security capabilities of the storage facility and employee confidentiality. Both the storage facility and employee confidentiality must meet the data’s sensitivity and security requirements.

23
Q

Hot storage

A

Hot storage allows organizations the quickest access to restore critical data in the event of a disaster or catastrophe. Hot storage solutions typically involve the latest and greatest storage equipment and the fastest protocols. In addition, hot storage is typically located close to the client or in multiple locations to ensure fast access. Some hot data storage solutions include Microsoft’s Azure Hot Blobs and Amazon’s AWS service, but these premium solutions can be quite expensive because of the high-performing resources and protocols involved.

24
Q

Cold storage

A

Cold storage offers less frequent access and is maintained on minimal equipment that is considered lower performance. Returning to normal operations after a disaster is slower with cold storage. Some examples of cold storage include tape backup, offline cloud storage, and even some online services such as Amazon Glacier and Google Coldline. One significant advantage of cold storage, however, is that it is less expensive than hot storage.