Chapter 1_Software & Software Engineering (copy)

0.0(0)
studied byStudied by 0 people
GameKnowt Play
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/108

flashcard set

Earn XP

Description and Tags

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

109 Terms

1
New cards

Software

(1) instructions (computer programs) that when executed provide desired features, function, and performance;

(2) data structures that enable the programs to adequately manipulate information and

(3) documentation that describes the operation and use of the programs.

2
New cards

instructions

when executed provide desired features, function, and performance

3
New cards

data structures

enable the programs to adequately manipulate information

4
New cards

documentation

describes the operation and use of the programs.

5
New cards

developed or engineered

Software is _____, it is not manufactured in the classical sense.

6
New cards

wear out

Software doesn't "_____."

7
New cards

component-based construction,

custom-built

Although the industry is moving toward _____, most software continues to be _____.

8
New cards

Wear

often called the “bathtub curve”

9
New cards

bathtub curve

looks like a bathtub as we normally see in our bathrooms.

10
New cards

hardware

Wear is applicable only for ____.

11
New cards

wear or wear out state

  1. It refers that, at infant state of the life of hardware the failure rate is so high having many defects.

  2. By time, after customization & repairing the defects , it becomes idealized or gets into the steady state or idealized state and again continues.

  3. But after that, with respect to time, the failure rate rises gradually.

  4. As more time passes, at one time the hardware becomes totally unusable.

12
New cards

extreme usage,

excessive temperature,

dust,

vibration,

high voltage

Wear: These may be happened by (5):

13
New cards

software

_____ never wear outs. It has deterioration.

14
New cards

deterioration

  1. At its infant state, software has high failure rate same as hardware.

  2. By time, after customization & repairing the defects, it becomes idealized or gets into the steady state or idealized state.

  3. The Idealized Curve shows the Idealized State.

  4. And the Actual Curve shows the increased failure rate gradually due to the defeats during software customization and modification (Change).

  5. This (change) causes Software _____.

15
New cards

unfulfilled user demands,

slow,

bugs

Software defects may be happened by the (3):

16
New cards

Idealized Curve

shows the Idealized State.

17
New cards

Actual Curve

shows the increased failure rate gradually due to the defeats during software customization and modification (Change).

18
New cards

system software,

application software,

engineering/scientific software,

embedded software,

product-line software,

WebApps (Web applications),

AI software

Software Applications (6)

19
New cards

Open world computing,

Ubiquitous computing,

Netsourcing,

Open source,

Data mining,

Grid computing,

Cognitive machines,

Software for nanotechnologies

Software—New Categories (8)

20
New cards

Open world computing

pervasive, distributed computing

21
New cards

Ubiquitous computing

wireless networks

22
New cards

Netsourcing

the Web as a computing engine

23
New cards

Open source

”free” source code open to the computing community

24
New cards

pervasive

  • in the context of computing and technology, refers to something that is widespread and integrated into every aspect of our daily lives.

  • It means that computing is no longer confined to specific devices like desktops or laptops but is embedded throughout our environment, often in ways that are invisible or seamlessly integrated.

25
New cards

Open world computing

  • a computing paradigm where systems and applications operate in a dynamic and open environment, rather than in a closed, controlled one.

  • In such a scenario, the systems must be capable of handling incomplete, evolving, or unpredictable information.

  • This concept is often associated with artificial intelligence, robotics, and distributed systems, where the environment cannot be fully defined or controlled in advance.

26
New cards
27
New cards

Ubiquitous computing

  • A concept of Software Engineering and Computer Science where computing is made to appear anywhere and anytime.

  • It can occur using any device, in any location and in any format

  • Pervasive computing / Existing Anywhere

28
New cards

Netsourcing

  • is the practice of renting or "paying as you use" access to centrally managed business applications, made available to multiple users from a shared data center over the Internet or other networks via browser-enabled devices.

  • allows customers to receive business applications as a service (SaaS).

29
New cards

Open source software (OSS)

is software that is distributed with its source code, making it available for use, modification, and distribution with its original rights.

30
New cards

Data mining

  • is the process of sorting through large data sets to identify patterns and relationships that can help solve business problems through data analysis.

  • techniques and tools help enterprises to predict future trends and make more informed business decisions.

31
New cards

Grid computing

  • is a computing infrastructure that combines computer resources spread over different geographical locations to achieve a common goal.

  • All unused resources on multiple computers are pooled together and made available for a single task.

32
New cards

Cognitive machines

  • are systems or devices that mimic human cognitive processes, such as learning, reasoning, problem-solving, perception, and decision-making.

  • These machines leverage technologies like artificial intelligence (AI), machine learning, natural language processing, and robotics to perform tasks that typically require human intelligence.

33
New cards

Nanotechnology

  • refers to specialized tools and programs designed to model, simulate, and analyze nanoscale materials, processes, and systems.

  • These software tools are essential for researchers and engineers working in the field of _____, as they allow for the exploration and manipulation of materials at the atomic and molecular levels

34
New cards

Legacy Software

  • older programs which are developed decades ago that are still in use by performing modifications in order to meet the business requirements

  • The rapid increase of such systems may cause the risk to the larger organizations as they may require outdated hardware and operating system.

  • remain supportive to core business functions and are important to business

  • is characterized by longevity and business criticality.

35
New cards

adapted

Legacy Software: Why must it change?

software must be _____ to meet the needs of new computing environments or technology.

36
New cards

enhanced

Legacy Software: Why must it change?

software must be _____ to implement new business requirements.

37
New cards

extended to make it interoperable

Legacy Software: Why must it change?

software must be _____ with other more modern systems or databases.

38
New cards

re-architected

Legacy Software: Why must it change?

software must be _____ to make it viable within a network environment.

39
New cards

web application (web app)

is an application program that is stored on a remote server and delivered over the internet through a browser interface

40
New cards

Web services

are web apps by definition and many, although not all, websites contain web apps.

41
New cards

Network intensiveness,

Concurrency,

Unpredictable load,

Performance,

Availability,

Data driven,

Content sensitive,

Continuous evolution,

Immediacy,

Security,

Aesthetics

Characteristics of WebApps (11)

42
New cards

Network intensiveness

A WebApp resides on a network and must serve the needs of a diverse community of clients.

43
New cards

Concurrency

A large number of users may access the WebApp at one time.

44
New cards

Unpredictable load

The number of users of the WebApp may vary by orders of magnitude from day to day.

45
New cards

Performance

If a WebApp user must wait too long (for access, for server-side processing, for client-side formatting and display), he or she may decide to go elsewhere.

46
New cards

Availability

Although expectation of 100 percent availability is unreasonable, users of popular WebApps often demand access on a “24/7/365” basis.

47
New cards

Data driven

The primary function of many WebApps is to use hypermedia to present text, graphics, audio, and video content to the end-user.

48
New cards

Content sensitive

The quality and aesthetic nature of content remains an important determinant of the quality of a WebApp.

49
New cards

Continuous evolution

Unlike conventional application software that evolves over a series of planned, chronologically-spaced releases, Web applications evolve continuously.

50
New cards

Immediacy

Although immediacy—the compelling need to get software to market quickly—is a characteristic of many application domains, WebApps often exhibit a time to market that can be a matter of a few days or weeks.

51
New cards

Security

Because WebApps are available via network access, it is difficult, if not impossible, to limit the population of end-users who may access the application.

52
New cards

Aesthetics

An undeniable part of the appeal of a WebApp is its look and feel.

53
New cards

concerted effort

Software Engineering: Some realities

a _____ should be made to understand the problem before a software solution is developed

54
New cards

design

Software Engineering: Some realities

____ becomes a pivotal activity because it serves as the bridge between ideas and their execution.

55
New cards

high quality

Software Engineering: Some realities

software should exhibit _____

56
New cards

maintainable

Software Engineering: Some realities

software should be _____

57
New cards

Software engineering

seminal definition:

is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.

58
New cards

Software engineering

IEEE definition:

The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.

59
New cards

Institute of Electrical and Electronics Engineers (IEEE)

  • is a technical professional society dedicated to advancing tech and innovation.

  • serves scientists, engineers, and professionals involved in all areas of science and technology.

60
New cards

computer-aided software engineering

a system for the support of software development

61
New cards

layered technology

  • Software engineering is a fully _____, to develop software we need to go from one layer to another.

  • All the layers are connected and each layer demands the fulfillment of the previous layer.

62
New cards

a quality focus

  • defines continuous process improvement principles

  • It provides integrity that means providing security to the software so that data can be accessed by only an authorized person, no outsider can access the data.

  • It also focuses on maintainability and usability.

63
New cards

process

  • It is a foundation or base layer of Software Engineering.

  • It is the glue that holds the technology layers.

    • It is key that binds all the layers together which enables the development of software before the deadline or on time

  • It defines framework activities.

    • defines a framework that must be established for the effective delivery of software engineering technology

  • covers all the activities, actions, and tasks required to be carried out for software development.

64
New cards

Communication,

Planning,

Modeling,

Construction,

Deployment

Process activities (4)

65
New cards

Communication

  • It is the first and foremost thing for the development of software.

  • is necessary to know the actual demand of the client.

66
New cards

Planning

It basically means drawing a map for reduced the complication of development.

67
New cards

Modeling

In this process, a model is created according to the client for better understanding.

68
New cards

Construction

It includes the coding and testing of the problem.

69
New cards

Deployment

It includes the delivery of software to the client for evaluation and feedback.

70
New cards

methods

  • During the process of software development the answers to all “how-to-do” questions are given by method.

  • It has the information of all the tasks which includes communication, requirement analysis, design modeling, program construction, testing, and support.

71
New cards

tools

  • allows automation of activities which helps to perform systematic activities

  • provide a self-operating system for processes and methods.

  • are integrated which means information created by one tool can be used by another.

  • the software & applications used to develop, test, and maintain the layers.

    • These include Integrated Development Environments (IDEs) like Visual Studio or Eclipse, version control systems like Git, and testing tools like JUnit

72
New cards

Framework activities,

Umbrella Activities

Process framework (2)

73
New cards

Communication,

Planning,

Modeling,

Construction,

Deployment,

Framework Activities (5)

74
New cards

Analysis of requirements,

Design

Modeling (2)

75
New cards

Code generation,

Testing

Construction (2)

76
New cards

Umbrella activities

  • are a series of steps or procedures followed by a software development team to maintain the progress, quality, changes, and risks of complete development tasks.

  • These steps of _____ will evolve through the phases of the generic view of software development.

77
New cards

Software project management,

Formal technical reviews,

Software quality assurance,

Software configuration management,

Work product preparation and production,

Reusability management,

Measurement,

Risk management

Umbrella Activities (7)

78
New cards

Software project tracking and control

  • This activity allows the software team to check the progress of software development.

  • Before the actual development starts, make a software development plan and develop on this basis, but after a certain period of time, it is necessary to analyze the development progress to find out what measures need to be taken.

    • It must be accepted at an appropriate time after the completion of development, testing, etc.

    • The test results may need to reschedule the development time.

79
New cards

Risk management

  • is a series of steps to help software development teams understand and manage uncertainty.

  • It is a very good idea to identify it, assess the likelihood of it happening, assess its impact, and develop an “if the problem does happen” contingency plan.

80
New cards

Software quality assurance

  • this defines and conducts the activities required to ensure software quality.

  • The quality of the software, such as user experience, performance, workload flexibility, etc., must be tested and verified after reaching the specified milestones, which reduces the tasks at the end of the development process, which must be performed by a dedicated team so that the development can continue.

81
New cards

Technical reviews

  • It assesses software engineering work products in an effort to uncover and remove errors before they are propagated to the next activity.

  • Software engineering is done in clusters or modules, after completing each module, it is good practice to review the completed module to find out and remove errors so their propagation to the next module can be prevented.

82
New cards

Measurement

  • This includes all measurements of all aspects of the software project.

  • Define and compile process, project, and product metrics to help the team deliver software that meets the needs of stakeholders;

  • it can be used in conjunction with all other frameworks and general operations.

83
New cards

Software configuration management

  • It manages the impact of changes throughout the software development process.

  • is a set of activities designed to manage changes by identifying work products that can be changed, establishing relationships between them, and defining mechanisms for managing different versions of them.

84
New cards

Reusability management

  • Define the standards for the reuse of work products (including software components), and develop mechanisms to implement reusable components.

  • This includes the approval of any part of a backing-up software project or any type of support provided for updates or updates in the future. Update the software according to user/current time requirements.

85
New cards

Work product preparation and production

It encompasses the activities required to create work products such as models, documents, logs, forms, and lists.

86
New cards

George Polya

is known as the father of modern problem solving,

87
New cards

George Polya

He suggests:

  1. Understand the problem (communication and analysis).

  2. Plan a solution (modeling and software design).

  3. Carry out the plan (code generation)

  4. Examine the result for accuracy (testing and quality assurance).

88
New cards

communication and analysis

Understand the problem

89
New cards

modeling and software design

Plan a solution

90
New cards

code generation

Carry out the plan

91
New cards

testing and quality assurance

Examine the result for accuracy

92
New cards

Understand the Problem

  • Who has a stake in the solution to the problem? That is, who are the stakeholders?

  • What are the unknowns? What data, functions, and features are required to properly solve the problem?

  • Can the problem be compartmentalized? Is it possible to represent smaller problems that may be easier to understand?

  • Can the problem be represented graphically? Can an analysis model be created?

93
New cards

Plan the Solution

  • Have you seen similar problems before? Are there patterns that are recognizable in a potential solution? Is there existing software that implements the data, functions, and features that are required?

  • Has a similar problem been solved? If so, are elements of the solution reusable?

  • Can subproblems be defined? If so, are solutions readily apparent for the subproblems?

  • Can you represent a solution in a manner that leads to effective implementation? Can a design model be created?

94
New cards

Carry Out the Plan

  • Does the solution conform to the plan? Is source code traceable to the design model?

  • Is each component part of the solution provably correct? Has the design and code been reviewed, or better, have correctness proofs been applied to algorithm?

95
New cards

Examine the Result

  • Is it possible to test each component part of the solution? Has a reasonable testing strategy been implemented?

  • Does the solution produce results that conform to the data, functions, and features that are required? Has the software been validated against all stakeholder requirements?

96
New cards

The Reason It All Exists,

KISS (Keep It Simple, Stupid!),

Maintain the Vision,

What You Produce, Others Will Consume,

Be Open to the Future,

Plan Ahead for Reuse,

Think

Hooker’s General Principles (7)

97
New cards

The Reason It All Exists

  • A software system exists for one reason: to provide value to its users.

  • All decisions should be made with this in mind.

  • Before specifying a system requirement, before noting a piece of system functionality, before determining the hardware platforms or development processes, ask yourself questions such as: "Does this add real VALUE to the system?" If the answer is "no", don't do it.

  • All other principles support this one.

98
New cards

KISS (Keep It Simple, Stupid!)

  • Software design is not a haphazard process.

  • There are many factors to consider in any design effort.

  • All design should be as simple as possible, but no simpler.

  • This facilitates having a more easily understood, and easily maintained system.

  • This is not to say that features, even internal features, should be discarded in the name of simplicity.

  • Indeed, the more elegant designs are usually the more simple ones.

  • Simple also does not mean "quick and dirty." In fact, it often takes a lot of thought and work over multiple iterations to simplify.

  • The payoff is software that is more maintainable and less error-prone.

99
New cards

Maintain the Vision

  • A clear vision is essential to the success of a software project.

  • Without one, a project almost unfailingly ends up being "of two [or more] minds" about itself.

  • Compromising the architectural vision of a software system weakens and will eventually break even the most well designed systems.

  • Having an empowered Architect who can hold the vision and enforce compliance helps ensure a very successful software project.

100
New cards

Conceptual integrity

  • Without _____, a system threatens to become a patchwork of incompatible designs, held together by the wrong kind of screws.

  • _____ is the most important consideration in system design.