Software Engineering Fundamentals and Web System Design Principles

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/137

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No study sessions yet.

138 Terms

1
New cards

What are the likely explanations for most software failures?

Increase system complexity; Failure to use software engineering methods

2
New cards

What are essential attributes of good software?

Acceptability; Dependability; Maintainability

3
New cards

What best describes embedded control systems?

Software control systems that control and manage hardware devices.

4
New cards

What are software engineering fundamentals applicable to all types of software systems?

Developed using a managed process; Dependability and performance are important; Understanding and managing software specifications and requirements; Effective use of existing resources.

5
New cards

What is a major change in software engineering for web-based systems?

Software reuse has become the dominant approach.

6
New cards

What are the areas of professional responsibility regarding ethics in software engineering?

Competence; Intellectual property rights

7
New cards

What is software specification?

Where customers and engineers define the software to be produced and its constraints.

8
New cards

What is software development?

Where the software is designed and programmed.

9
New cards

What is software validation?

Where the software is checked to ensure it meets customer requirements.

10
New cards

What is software evolution?

Where the software is modified to reflect changing requirements.

11
New cards

What does the Waterfall model represent?

Takes fundamental process activities and represents them as separate phases.

12
New cards

What is incremental development?

Develops a series of versions, each adding functionality to the previous version.

13
New cards

Which method is typically used in safety-critical systems?

Waterfall

14
New cards

What does requirements analysis and definition establish?

The system's services, constraints, and goals by consulting with users.

15
New cards

What are appropriate systems for the waterfall method?

Embedded systems; Critical systems; Large software systems

16
New cards

What are advantages of incremental development over waterfall?

Reduced change cost; Easier customer feedback; Early delivery and deployment

17
New cards

What is a downside to the incremental approach?

System structure tends to degrade as new increments are added.

18
New cards

What is NOT a type of software component frequently reused?

Custom systems from a student project

19
New cards

What are the 3 main activities in the requirements engineering process?

Elicitation and analysis; Specification; Validation

20
New cards

What is the Process Maturity Approach?

Improving process and project management and introducing good software engineering practice.

21
New cards

What is the Agile Approach?

Iterative development and reduction of overheads in the software process.

22
New cards

Why do companies care more about rapid delivery than detail?

Businesses operate in a changing climate, making it impractical to focus on minute details.

23
New cards

What are principles underlying agile development?

Individual interactions over processes; Working software over documentation; Customer collaboration over contract negotiation; Responding to change over following a plan.

24
New cards

What is an advantage of user stories?

Easy for users to understand and critique.

25
New cards

What is a disadvantage of user stories?

They are liable to be incomplete.

26
New cards

What is a difficulty with test first development?

Programmers may take shortcuts when writing tests.

27
New cards

What common aspect of scrum methodology is affected by remote work?

The regularly scheduled stand-up meeting.

28
New cards

What are functional requirements?

Statements of services the system should provide and how it should behave.

29
New cards

What are constraints on the services offered by the system?

Timing constraints, development process constraints, and constraints imposed by standards.

30
New cards

What are non-functional requirements?

Statements in natural language plus diagrams of the services the system provides and its operational constraints.

31
New cards

What is the purpose of user requirements?

A structured document setting out detailed descriptions of the system's functions, services and operational constraints.

32
New cards

What is an example of a non-functional requirement?

During a given business day, system downtime should not exceed 5 minutes.

33
New cards

What type of requirements engineering do Agile methods typically use?

Incremental.

34
New cards

True or False: Stakeholders often don't know what they want from a system except in general terms.

True.

35
New cards

Who are examples of stakeholders regarding the use of an ATM?

The customers of the bank; Any customers of another bank willing to use this ATM for a fee; The employees of the bank.

36
New cards

What is a common requirements elicitation technique?

Interviewing.

37
New cards

What is a recommended guideline when writing natural language requirements?

Avoid the use of overly technical language.

38
New cards

True or False: Ambiguities in software requirements do not largely affect the cost of a project.

False.

39
New cards

What are the 3 main components of the user story template?

Benefit; Role; Goal.

40
New cards

What is the main method used in Stage 1 of research?

Survey.

41
New cards

What is the main method used in Stage 2 of research?

Interviews.

42
New cards

What is the first follow-up interview question in the paper?

Describe your role in working with user stories.

43
New cards

What percent of respondents did not use a template for user stories, according to the paper?

15%.

44
New cards

True or False: Those respondents who do use a template generally found more benefit from user stories.

True.

45
New cards

What is the key to getting the full benefit from a user story template?

Benefit section.

46
New cards

True or False: Quality Guidelines improve the relationship between practitioners seeking more quality and user stories.

True.

47
New cards

What do user stories improve?

Productivity.

48
New cards

True or False: Many practitioners are very negative about user stories.

False.

49
New cards

Architectural design has a close relationship to which phase of software development?

Requirements engineering.

50
New cards

What is architecture in the small typically used for?

Individual programs.

51
New cards

What is architecture in the large typically used for?

Large software systems such as enterprise systems with many subsystems.

52
New cards

What are advantages of using software architecture?

Stakeholder communication; System analysis; Large-scale reuse.

53
New cards

True or False: Using a block diagram for large, complex systems is an intuitive way for people to see the structure.

True.

54
New cards

What must the architectural design satisfy?

Meet the requirements for both functional and non-functional requirements.

55
New cards

What best describes an API?

A method that allows two pieces of code to communicate.

56
New cards

What is the most common type of web API?

REST API.

57
New cards

Which HTTP method is used to retrieve data?

GET.

58
New cards

What status code indicates a successful HTTP request?

200.

59
New cards

What is a Partner API?

API access only available to organizations with a relationship to the business.

60
New cards

What is a request parameter?

A piece of data sent with an API request to modify the response , defines what resource is being targeted

61
New cards

What is a 500 error?

Server error.

62
New cards

What is a query parameter?

A parameter located after the question mark of the API's URL.

63
New cards

True or False: The program must be completely defect-free before being delivered to customers.

False.

64
New cards

True or False: Testing only finds the presence of errors rather than their absence.

True.

65
New cards

What supports developer testing?

Developers have in-depth knowledge of the software under test.

66
New cards

What is a supporting argument that developer testing can be conducted more quickly than independent testing?

Immediate feedback.

67
New cards

What is an argument against developer testing?

Developer biases can mask errors.

68
New cards

What best describes the purpose of regression testing?

Testing to ensure that bugs were not introduced after changes.

69
New cards

What is the difference between testing COTS systems and 'normal' testing?

Completely different as we have no access to the primary source code.

70
New cards

Within stress testing do you ideally want the system to degrade slowly or collapse all at once?

Should degrade slowly.

71
New cards

What are the benefits of early user involvement during acceptance testing?

Real-world feedback; Early bug detection.

72
New cards

What is the importance of system evolution?

Older (legacy) systems are still critically important to many businesses, must maintain value of these assets

73
New cards

What are common problematic evolution situations?

  1. Where the development team has used an agile approach but the evolution team prefers a plan-based approach.

  2. Where a plan-based approach has been used for development but the evolution team prefers to use agile methods.

74
New cards

What are strategies for evolving legacy systems?

Scrap; Maintain; Reengineer; Replace partially or fully.

75
New cards

When is adding new features generally more expensive?

During maintenance than during development.

76
New cards

number of requests for corrective maintenance (process metric for assessing maintainability)

An increase in the number of bug and failure reports may indicate that more errors are being introduced into the program than are being repaired during the maintenance process

77
New cards

What does average impact analysis time indicate?

As it increases, more and more components are affected and maintainability is decreasing. 

78
New cards

What does the metric average time taken to implement a change request mean?

This is the amount of time that you need to modify the system and its documentation, after you have assessed which components are affected. 

79
New cards

What is indicated by outstanding change requests?

Indicates maintainability decline.

80
New cards

What are advantages of reengineering?

Reduced risk; Reduced cost.

81
New cards

What is a situation that is not a stereotypical bad smell?

Unnecessary functions.

82
New cards

When should you use a layered architecture?

When building new facilities on top of existing systems.

83
New cards

What is the fourth general issue affecting many types of software?

Scale.

84
New cards

Why do large companies struggle to adopt agile?

Project managers unwilling to accept higher risk.

85
New cards

What are the 3 stages of change management?

Problem analysis; Change costing; Change implementation.

86
New cards

Does Scrum work by selecting features based on ease of development?

False.

87
New cards

What is the first chapter of the requirements document according to Sommerville?

Preface.

88
New cards

What can Quality Guidelines lead to?

Better user stories, which leads to higher productivity.

89
New cards

What are the three primary advantages of architectural design?

  1. Stakeholder Communication 

  2.  System Analysis 

  3. Large scale re-use 

90
New cards

What is stakeholder communication?

The process of exchanging information with stakeholders.

91
New cards

What are general issues that affect software?

Heterogeneity (working across diff types of computers and mobile device), business & social change, security & trust, scale.

92
New cards

What are the types of applications?

Standalone applications, transaction-based applications, embedded control systems, batch processing systems, entertainment systems, modelling and simulation systems, data collection systems, systems of systems.

93
New cards

What are the benefits of incremental development?

Reduced cost of change, easier customer feedback, early and continuous system delivery.

94
New cards

What are the activities involved in process improvement?

Process measurement, process analysis, process change.

95
New cards

What types of process measurement exist?

Time taken, resources used, number of events or occurrences.

96
New cards

How can rework be reduced?

Through change anticipation and change tolerance.

97
New cards

What are the uses of prototyping?

To help with requirements elicitation and validation, UI experimentation, and in testing to run back-to-back tests

98
New cards

Why is rapid software development important?

Due to business change speed, need for rapid deployment, adaptability over documentation.

99
New cards

What are the phases of Scrum?

Planning phase, sprint cycles, project closure.

100
New cards

What terminology is used in Scrum?

Scrum team, product backlog, product owner, ScrumMaster, sprint, velocity.