Software Engineering Midterm

5.0(1)
studied byStudied by 2 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/49

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.

50 Terms

1
New cards

What are the essential attributes of good software?

Maintainability, dependability & security, acceptability, efficiency

2
New cards

What are the two fundamental types of software?

Generic products and Customized products

3
New cards

What is software engineering?

The documentation and process of developing software.

4
New cards

What are the four fundamental activities in software processes?

Software specification, software development, software validation, software evolution

5
New cards

What's the difference between software engineering and computer science?

Computer science is more focused on the methods and theories of computers and software systems

6
New cards

What are the four general issues that affect different types of software?

Heterogeneity, Change, Security, and Scale

7
New cards

5 different types of software applications

Embedded systems, web apps/server side, entertainment systems, operating systems, batch processing system

8
New cards

What software engineering fundamentals apply to all types of software systems?

Software process, focus on reliability, importance of reliability, software reuse

9
New cards

Three key characteristics of the engineering of web-based software engineering?

Software reuse, service-oriented systems, rich interfaces

10
New cards

What are the fundamental activities that are common to all software processes?

Software process models, process activities, coping with change, and process improvement

11
New cards

What are the development stages in integration and configuration?

Requirements specification, software discovery and evaluation, requirements refinement, application system configuration, and component adaptation and integratin

12
New cards

What are the principal requirements engineering activities?

Requirements elicitation and analysis, requirements specification and requirements validation

13
New cards

What are the two different approaches to process improvement and change that have been proposed?

System prototyping and incremental delivery

14
New cards

What are the identified levels in the SEI's Capability Maturity Model?

Initial, managed, defined, quantitatively managed, and optimizing

15
New cards

What are the shared characteristics of different agile methods of software development?

The process of specification, design and implementation. Documentation is also minimized.

16
New cards

List the 5 principles of agile methods

customer involvement, embrace change, incremental delivery, maintain simplicity, people not process

17
New cards

3 important agile techniques that were introduced in extreme programming?

Pair programming, refactoring,

18
New cards

What is test-first development?

The tests are written for the code before the actual function is made

19
New cards

What features are normally provided by version management systems?

Build script generation, version control integration, test automation, and documentation generation

20
New cards

What are user requirements and system requirements?

User requirements are the generalities of the system while the system requirements are the actual specifications

21
New cards

What is the distinction between functional and non-functional requirements?

Functional requirements are specific as to how the system should react in situations or what is should not do. Non-functional requirements are constraints on the services or functions often a little harder to really specify

22
New cards

What are the principal stages of requirements engineering?

elicitation and analysis, specification, and validation

23
New cards

What is ethnography and how is it used to in requirements engineering?

Ethnography is simply observing people in their work place and finding out what they need for seeing their everyday interactions

24
New cards

What info should be available in a scenario?

How the system starts, normal flow of events, what can go wrong and how to fix it, how the system ends

25
New cards

How do managers and test engineers use a system requirements document?

They use it to determine if the software meets all the user requirements.

26
New cards

What are the main advantages of using a standard format to specify requirements?

It removes some of the problems of natural language specification and variability is reduced.

27
New cards

What is a use case?

A use case is a way of describing interactions between users and a system using a graphical model and structured text.

28
New cards

three validation techniques

Consistency checks, completeness checks, and realism checks

29
New cards

What is requirements engineering?

It is the managing of evolving requirements and how they be managed.

30
New cards

What perspectives should be used for developing models of a software system?

An external perspective, interaction perspective, structural perspective, and a behavioral perspective

31
New cards

What UML diagrams types do you need to represent the essential features of a system?

Activity diagrams, use-case diagrams, sequence diagrams, class diagrams, and state diagrams

32
New cards

What is a context model?

A model describing the boundaries of the system. What will be developed and what will not

33
New cards

How are activity diagrams used in describing the context of use of a system?

Shows the activities in a process and the flow of control from one activity to another

34
New cards

What is illustrated in a UML sequence diagram?

The interactions between actors and objects of a system

35
New cards

How is generalization is used to simplify models of a system with many similar objects?

We learn about general classes and learn the characteristics for that class and use that information to narrow down objects

36
New cards

What is the basic assumption that underlies event-driven modeling?

The assumption is that a system has a finite number of states and that events may cause a transition from one state to another

37
New cards

The three types of abstract system models that are recommended by the MDA method?

A computation independent model, a platform-independent model, and platform specific model

38
New cards

What is the distinction between validation and verification?

Verification is making sure the software meets its functional and non-functional requirements. Validation is making sure the system meets the customer's expectations.

39
New cards

What is meant by configuration management?

It is concerned with the policies, processes, and tools for managing changing software systems.

40
New cards

What features are normally provided by version management systems?

Version control, system building, change management, and release management

41
New cards

What is a baseline?

It is a collection of component versions that make up a system.

42
New cards

What are two actions that git version management takes to reduce system storage?

A compression algorithm for stored files and they use the notion of pack files where smaller files are combined into a indexed single file

43
New cards

What are the three different platforms that may be involved in a system building process?

The development system includes development tools such as compilers and source code editors, the changes are typically in a private workspace before making changes to the system. The build server builds definitive, executable versions of the system. The target environment is the platform on which the system executes.

44
New cards

What are the two types of signature that may be used to relate source code files and their equivalent object code in a build system?

Modification timestamps and source code backups

45
New cards

What are the objectives of the change management process?

The evolution of the system is controlled and only the most urgent and cost-effective changes are prioritized.

46
New cards

What are the advantages of inspections over testing?

In testing, test code could of overlooked some aspect so the system wouldn't have been thoroughly tested. In an inspection, the system can be reviewed with broader knowledge.

47
New cards

The three principal stages of testing for a commercial software system?

Development testing, release testing, and user testing

48
New cards

The three important classes of interface errors?

Interface misuse, interface misunderstanding, timing erros

49
New cards

What are the three types of user testing?

Alpha testing, beta testing, and acceptance testing

50
New cards

What is stress testing and why is it useful?

If a system is designed to handle 300 processes per second and you test well beyond that you can ensure it meets that and make checks to make sure it doesn't go past the point of degradation