Final exam Flashcards

1
Q

Product Support Life Cycle (in order)

A

i) Plan and Prepare for support and maintenance
ii) The Product is Released
iii) Defect and Non-Defect support run in parallel
(1) Defects are bugs in the program that cause errors.
(2) Non-Defects are user issues and other issues that are not the result of a program bug or error. Like bad UI design or training deficiencies or a user just getting confused.
iv) Announcement of new release or replacement
v) Reduction in Defect support. Only the most severe are worked on and all others ignored. Non-Defect support also stops.
vi) User migration to new software
vii) Product Withdrawal from the market.

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

b) Sun-setting

A

i) Stop any product’s additional feature and enhancement
ii) Fix only the high severity problems
iii) Announce new replacement product
iv) Encourage new and existing customers to move to new product
v) Notify all old users on the old product of the planned termination date
vi) Provide names of the other vendors who are willing to support the old product to the customers who chooses to stay
vii) Terminate the customer product and withdraw the product from the market

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

20) Problem arrival curve

A

a) During the period right after release, many problems are discovered and reported.
b) The amount of problems discovered eventually decreases; at the same time the nature of the problems discovered become more difficult to diagnose.

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

19) Software Configuration management

A

Software Configuration Management is the process of keeping all your “artifacts” of the creation process being updated and managed.

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

b) Software Configuration Management is composed of:

A

i) Understanding the policy, process activities, and the resulting artifacts that need to be managed.
ii) Determining and defining the framework that needs to be used to manage these artifacts
iii) Determining and bringing in any tools that need to be brought in to facilitate the management of these artifacts
iv) Training and ensuring that the agreed-upon configuration management process is practiced and adhered to.

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

v) An Organization may choose to manage the following artifacts for example

A

(1) Requirements specification
(2) Design specification
(3) Source code
(4) Executable code
(5) Test cases

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

a) Seed Process

A

i) This is a technique used to test how good the QA team is. The idea is to pepper the program with a number of defects and note how many the testers catch

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

b) Error Estimation

A

i) The Error Estimation is taking the number of unfound seeded defects and applying the ratio to the unseeded defects.

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

a) Boundary Values

A

i) Past experiences show that “Boundaries” are error-prone and should be tested rigorously.
v) Boundary-Values Analysis
(1) Test cases are designed on the boundaries of acceptable input domain.
ii) Do Equivalence-class partitioning and add test cases for boundaries (at boundary, outside, inside)

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

b) Black box

A

i) Also known as “data-driven testing” - it relies on a module description to devise test cases and treats the module like a “black box” where how it works is unknown.
(1) I.e. you can’t see the inner workings of the box, just what goes in and comes out.
ii) Uses the architectural design, including inputs, functionality, and outputs.
iii) Black box test cases should be designed before coding/implementation phase ends.

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

c) White box

A

i) Often called “structural testing” - it relies on analysis of a module’s source code to design a test case.
(1) Treats the module like a “white-box” where we can see and test the inner workings of the box.
(2) Test cases designed as needed on a case-by-case basis.
ii) More close analysis of the detailed design of a module.
iii) White box testing should supplement and not replace black box testing.

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

16) Refactoring

A

a) Improving your code style without affecting its behavior. Basically, clean up your code.

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

b) Things to fix by Refactoring

A

i) Duplicated code – Stuff that is clearly a waste
ii) Long method – Excessively large or long methods perhaps should be subdivided into smaller more cohesive ones.
iii) Large class – Same problem as long methods.
iv) Switch Statement – In object-oriented code, switch statements can in most cases be replaced with polymorphism, making the code clearer.
v) Feature Envy – in which a method tends to use more of an object from a class different to the one it belongs.
vi) Inappropriate Intimacy – in which a class refers too much to private parts of other classes.

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

c) Ways to Refactor

A

i) Extract Method – A process that turns a code fragment into its own method, with an appropriate name, and calls the method.
ii) Substitute algorithm – A process that replaces the body of a method with a new algorithm that is clearer, and returns the same result.
iii) Move Method – A process that moves an algorithm from one class to another where it makes more sense.
iv) Extract Class – A process that divides into two.

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

15) Test driven development principles

A

a) Write unit-test cases BEFORE the code!
b) The test cases become the requirements for the program. It must pass all tests to meet requirements and be considered successful.
c) Forces development in small steps

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

steps for test driven dev

A

i) Write test case and code
ii) Verify that the test case fails
iii) Modify the code so it succeeds in the test – The goal is to write the simplest code you can, without worrying about the future tests or requirements.
iv) Rerun test case and previous tests – Verify that it works and still passes all previous tests without failing and has not introduced any new defects.
v) Refactor until success and satisfaction – make it pretty.

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

Cloud Advantages

A

i) flexibility and scalability; we can create servers for just a few minutes or hours, and the companies developing the cloud services usually make them scale to almost any size.
ii) We do not need as much effort to manage cloud services as if we were managing our own servers
iii) Usually cloud services require much less initial capital investment
iv) more services moving to the cloud

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

Cloud disadvantages

A

i) we still need to manage the services, and we lose control over the servers, which may introduce problems.
ii) might have trust or legal problems
iii) The servers may be in a different country and so subject to different laws, which might be a problem. We might have privacy, security, or legal requirements that make using other companies’ servers more difficult.
iv) the operating costs might be higher than owning the individual servers.
v) chances are many organizations will end up with hybrid applications, with some servers owned by the organization, some in the cloud, and some applications being managed directly, some in a platform as a service and using some cloud-provided services

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

13) Software integration

A

a) A simple reason for the integration step is that if the completed modules are left with the individual programmers, the programmers tend to make changes to an already unit-tested module and get confused about which is indeed the latest version. To ensure that the latest unit-tested modules do work together as a functional unit, these modules need to be compiled and linked together.

20
Q

user activities

A

i) Complexity Testing – who easy is the software to use

ii) Flexibility testing – different ways of use

21
Q

user key factors

A

i) Number of subjects who completed the tasks without any help
ii) Length of time, on average, required to complete each task
iii) Average number of times that help function was evoked
iv) Number of tasks completed within some predefined time interval
v) Places where subjects had to redo a task, and the number of times this needed to be done
vi) Number of times short cuts were used

22
Q

UI goals

A

i) UI Design Principles
(1) User action should be interruptible and allowed to be redone
(2) user defaults should be meaningful.
ii) 8 Rules of Interface Design
(1) Strive for consistency
(2) Enable frequent user to use short cuts
(3) Offer information feedback
(4) Design dialogues to yield closer
(5) Offer error prevention and simple error handling
(6) Permit easy reversal of actions
(7) Support internal locus of control
(8) Reduce short-term memory

23
Q

req design

A

i) Requirements definition and documentation
ii) Requirements prototyping
iii) Requirements review

24
Q

req Prioritization

A

i) Prune the requirements to what is needed
(1) Current user/customer demands or needs
(2) Competition and current market condition
(3) Anticipated future and new customer needs
(4) Sales advantages
(5) Existing critical problems in current product

25
Q

Agile Method

A

i) Agile processes are a family of software development methodologies that produce software in short iterations and allow for greater changes in design.
(1) Short Releases and Iterations – Divide the work into small pieces, release the software to the customer as often as possible
(2) Incremental Design – Don’t try to complete the design up front because not enough is known early about the system. Delay design decisions as much as possible and improve the existing design when more knowledge is acquired.
(3) User Involvement – Rather than trying to produce formal, complete immutable standards at the beginning, ask the users involved with the project to provide constant feedback. This leads to a better-suited system.
(4) Minimal Documentation – Do only the necessary amount of documentation, which is just a means to an end. Source code is a big part of the actual documentation.
(5) Informal Communication – Maintain constant communication, but not necessarily through formal documents.
(6) Change – Assume that the requirements and environments will change, try to find good ways to deal with this face.

26
Q

Agile manifesto

A

i) Individuals and interactions over processes and tools
ii) Working software over comprehensive documentation
iii) Customer collaboration over contract negotiation
iv) Responding to change over following a plan.
v) While there is value in the items on the right, we value the items on the left more.

27
Q

Agile Methodologies

A

i) Extreme Programing
ii) Crystal Family
(1) Crystal Clear
(a) Considered adequate for noncritical projects at the discretionary money level, and for projects that require teams of up to 6 or 8 people.
(2) Crystal Orange
(a) Considered adequate for noncritical projects at the discretionary money level, and for projects that require teams of up to 8 or 8 people.
(3) Crystal Orange Web
(a) Considered adequate for critical, but no life-critical projects that require teams of up to 40 people.

28
Q

Extreme programming

A

i) Using small teams in the same room to encourage communication, XP proposes that only the strictly necessary documentation is created, with the code and unit tests serving as documentation.

29
Q

XP core values

A

i) Frequent communication between team members and with the customer.
ii) Simplicity in design and code.
iii) Feedback at many different levels. Unit tests and continuous integration provide feedback to the individual developer, or pair of developers. Small iterations provide customer feedback.
iv) Courage to implement hard but necessary decisions.

30
Q

XP fundamentals

A

i) Rapid Feedback – Use pair programming, unit testing, integration, and short iterations and releases.
ii) Simplicity – Try the simplest possible approach. Don’t worry too much about considering cases that may or may not occur in the future.
iii) Incremental Change – Don’t try to make big changes; try small changes that add up.
iv) Embracing Change – Preserve options for the future while solving your most pressing problems. Delay decisions that commit you to a path until the latest possible moment.
v) Quality Work – Create as good a product as possible. Do the best work all the time.

31
Q

project plan

A

i) A well conceived document describing how the software will be made.

32
Q

project plan questions

A

i) What are the desired and needed requirements?
ii) What are the deliverables?
iii) What are the constrains of the project? (cost, schedule, ect.)
iv) What are the known risks?
v) Who are the users?

33
Q

project plan activities

A

i) Ensure that the requirements of the project are accurately understood and specified.
ii) Estimate the work effort, the schedule, and the needed resources/cost of the project.
iii) Define and establish measurable goals for the project.
iv) Determine the project resource allocations of people, process, tools, and facilities.
v) Identify and analyze the project risks.

34
Q

goals of project management

A

a) End results of the project satisfy the customers’ needs
b) All the desired and needed product/project attributes – quality, security, productivity, cost, schedule, etc. – are met
c) Team members are operating effectively and at a high level of morale.
d) Required tools and other resources are made available and are effectively utilized.

35
Q

a) Waterfall

A

(3) Requirements must be specified in the first step.
(4) Four main tasks must be completed before the software can be packaged for release: requirements, design, code, and test.
(5) The output from each stage is fed into the next stage in sequence.
ii) Problems
(1) Viewed as a single iteration model that provided very little task overlapping.
(a) Backward arrows were introduced in the diagram to depict the addition of iterative activities.
(2) Limited interaction with users at only the requirements phase and at the deliver of the software.

36
Q

b) Spiral

A

(1) Incorporates prototyping and modeling as an integral part of the process.
(2) Allows iterative and evolutionary approaches to all activities based on the amount of risks involved.
(3) Does not preclude the rework of an earlier activity if a better alternative or a new risk is identified
ii) Problems
(1) Relies on risk assessment expertise, not all software engineers are trained/experienced in risk identification and risk analysis.

37
Q

c) Incremental

A

(1) Modification to the waterfall model. As software projects increased in size, it was recognized that it is much easier, and sometimes necessary, to develop software if the larger tasks are subdivided into smaller components, which can be developed incrementally and iteratively.
(2) Components were developed in an overlapping fashion, then integrated into the system and tested as a whole. Provides some risk containment, if a component ran into trouble, other components were able to still continue to be developed independently.
(3) Multiple release scenario where subsequent releases may include bug fixes and new functional features.
ii) Problems
(1) Problems are intertwined making the decoupling of parts into independently implementable components difficult.
(2) Requires deep understanding of the problem, solution, and the usage environment.
(3) Overlapping different increments can be difficult because there may be some amount of sequential dependency of information among the components.

38
Q

d) Rational Unified Process

A

(1) Framework versus a single process, developed by Rational Software Corporation.
(2) Origin rooted in the original 1997 Objectory Process and Unified Modeling Language(UML – An object oriented modeling language that provides the elements and relationships to model software requirements and design.)
ii) 4 Phases
(1) Inception
(2) Elaboration
(3) Construction
(4) Transition

39
Q

5) What is software engineering ?

A

i) David Parnas – multi-person construction of multi-version software
ii) Pfleeger – application of computing tools to solving problems.
iii) Sommerville – “an engineering discipline whose focus is the cost effective development of high quality software system.”

40
Q

5) What does software engineering impact/touch on?

A

i) Financial and banking systems
ii) Transportation is managed by various devices that contain embedded software
iii) Household appliances and cars
iv) Sophisticated medical systems
v) Manufacturing utilize large resource processing systems
vi) Food supply managed by distribution and warehouse software systems.

41
Q

a) Functional req

A

i) Input Formats
ii) Sorting
iii) Special cases, boundaries, and error conditions.

42
Q

b) Non-Functional

A

i) Performance, usability, maintainability.
ii) Measured on a linear scale which can vary greatly. Ex. Degrees of satisfaction.
iii) Referred to as “ilities” because the words describing most of them will end in “-ility.”
iv) Nonfunctional requirements are:
(1) Performance
(2) Modifiability
(3) Usability
(4) Configurability
(5) Reliability
(6) Availability
(7) Security
(8) Scalability

43
Q

3) Chaos report success

A

i) User involvement
ii) Executive management support
iii) Clear requirement statements
iv) Proper planning

44
Q

Chaos Failure

A

i) Lack of user input/involvement
ii) Incomplete/changing requirements and specifications
iii) Lack of resources

45
Q

Chaos report controversy

A

i) Misleading
(1) Standish defines successful project solely by adherence to an initial forecast of cost, time and functionality (amount of features and functions, not functionality itself). Do not consider a software development projects’ context, such as usefulness, profit, and user satisfaction.
ii) One-sided
(1) Neglect underruns for cost and time and overruns for amount of functionality
iii) Pervert the estimation practice
(1) Standish definitions cause large cost and time overestimations and large functionality underestimations.
iv) Result in meaningless figures
(1) Without taking forecasting biases into account it is almost impossible to make any general statement about estimation accuracy across institutional boundaries.

46
Q

2) What are the strategies the GAO considers necessary for good software dev

A

a) Focused attention on software development environment (people/tools/management/etc.)
b) “Disciplined” development process
c) Methodical use of metrics to gauge cost, schedule, and functional performance targets