Chapter 1_Software & Software Engineering_Shortened

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

1/57

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

58 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.

  • doesn't "wear out."  it deteriorates

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

custom-built

Although the industry is moving toward component-based construction, most software continues to be _____.

7
New cards

Wear

  • often called the “bathtub curve” as it looks like a bathtub as we normally see in our bathrooms.

  • is applicable only for hardware

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

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

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

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

  • These may be happened by (5)

    • extreme usage,

    • excessive temperature,

    • dust,

    • vibration,

    • high voltage

8
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 _____.

  6. Software defects may be happened by the (3):

    • unfulfilled user demands,

    • slow,

    • bugs

9
New cards

Idealized Curve

shows the Idealized State.

10
New cards

Actual Curve

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

11
New cards

system software,

application software,

engineering/scientific software,

embedded software,

product-line software,

WebApps (Web applications),

AI software

Software Applications (7)

12
New cards

Open world computing,

Ubiquitous computing,

Netsourcing,

Open source,

Data mining,

Grid computing,

Cognitive machines,

Software for nanotechnologies

Software—New Categories (8)

13
New cards

Open world computing

pervasive, distributed computing

14
New cards

Ubiquitous computing

wireless networks

15
New cards

Netsourcing

the Web as a computing engine

16
New cards

Open source

”free” source code open to the computing community

17
New cards

adapted

Legacy Software: Why must it change?

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

18
New cards

enhanced

Legacy Software: Why must it change?

software must be _____ to implement new business requirements.

19
New cards

extended to make it interoperable

Legacy Software: Why must it change?

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

20
New cards

re-architected

Legacy Software: Why must it change?

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

21
New cards

Network intensiveness,

Concurrency,

Unpredictable load,

Performance,

Availability,

Data driven,

Content sensitive,

Continuous evolution,

Immediacy,

Security,

Aesthetics

Characteristics of WebApps (11)

22
New cards

Network intensiveness

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

23
New cards

Concurrency

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

24
New cards

Unpredictable load

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

25
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.

26
New cards

Availability

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

27
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.

28
New cards

Content sensitive

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

29
New cards

Continuous evolution

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

30
New cards

Immediacy

Although _____—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.

31
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.

32
New cards

Aesthetics

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

33
New cards

concerted effort

Software Engineering: Some realities

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

34
New cards

design

Software Engineering: Some realities

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

35
New cards

high quality

Software Engineering: Some realities

software should exhibit _____

36
New cards

maintainable

Software Engineering: Some realities

software should be _____

37
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.

38
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.

39
New cards

process framework

framework activities and umbrella activities

40
New cards

Communication,

Planning,

Modeling,

Construction,

Deployment

framework activities (5)

41
New cards

Modeling

  • Analysis of requirements

  • Design

42
New cards

Construction

  • Code generation

  • Testing

43
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.

44
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 (8)

45
New cards

Adapting a Process Model

  • The overall flow of activities, actions, and tasks and the interdependencies among them

  • The degree to which actions and tasks are defined within each framework activity

  • The degree to which work products are identified and required

  • The manner which quality assurance activities are applied

  • The manner in which project tracking and control activities are applied

  • The overall degree of detail and rigor with which the process is described

  • The degree to which the customer and other stakeholders are involved with the project

  • The level of autonomy given to the software team

  • The degree to which team organization and roles are prescribed

46
New cards

George Polya

is known as the father of modern problem solving,

47
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).

48
New cards

Understand the problem

communication and analysis

49
New cards

Plan a solution

modeling and software design

50
New cards

Carry out the plan

code generation

51
New cards

Examine the result for accuracy

testing and quality assurance

52
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?

53
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?

54
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?

55
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?

56
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)

57
New cards

Software Myths

  • Affect managers, customers (and other non-technical stakeholders) and practitioners

  • Are believable because they often have elements of truth, but invariably lead to bad decisions, therefore, insist on reality as you navigate your way through software engineering

58
New cards

business need

Every software project is precipitated by some _____—

  • the need to correct a defect in an existing application;

  • the need to the need to adapt a ‘legacy system’ to a changing business environment;

  • the need to extend the functions and features of an existing application, or

  • the need to create a new product, service, or system.

Explore top flashcards