Software Engineering Final Study Guide

Ace your homework & exams now with Quizwiz!

To determine the architectural style or combination of styles that best fits the proposed system, requirements engineering is used to uncover

Characteristics and Constraints

Explain why chunking is important during the component-level design review process.

Chunking is important because it involves fewer overall components to be reviewed. This is obtained by high cohesion and low coupling. Because there are fewer chunks, it is easier for reviewers to manage the interaction between the components.

Integration testing of object-oriented software can be accomplished by which of the following testing strategies?

Cluster Testing Thread based testing Use-Based testing

The 40-20-40 rule suggests that the least of amount of development effort be spent on

Coding

Describe the component-level design for WebApps.

Component level design for WebApps consists of two elements of design. 1. Content design a. Focuses on content objects and the way in which they may be packaged for presentation to a WebApp end user. b. Formality is tuned to the characteristics of the WebApp to be built. c. Do not need to be organized as components. More individualistic. d. Needs a clear structural model to incorporate content components if content is highly dynamic. 2. Functional design a. Consists of a series of components developed in parallel with information architecture to ensure consistency.

What is the purpose of scenario-based testing?

Concentrates on an actor and software integration

The best reason for using independent software test teams is that

Conflict of interest between developers and testers are reduced

What types of abstraction are used in software design?

Control Data Procedural

In traditional software engineering, modules must serve in which of the following roles?

Control component Infrastructure Component Problem Domain Component

Regression testing should be a normal part of integration testing because as a new module is added to the system new

Control logic is invoked Data flow paths are established

Mark the correct statements to indicate the differences between software coupling and cohesion.

Coupling measures a module's connections to other modules Cohesion is the extent to which a module focuses on just one thing.

In component-level design persistent data sources refer to

Databases and Files

Which of these are critical practices for performance-based project management?

Defect tracking Empirical Cost estimation Formal risk management

Which of the following interface design principles reduce the user's memory load?

Define intuitive shortcuts Disclose information Establish Meaningful defaults.

List three areas in which process models may differ from one another.

Degree to which work products are identified and required. Level of autonomy given to the software team. Manner in which project tracking and control activities are applied.

component-level design

Detailed room drawings

The task (activity) network is a useful mechanism for

Detecting inter-task dependencies Determining critical path

Evolutionary software process models...

Do not generally produce throwaway systems. Are iterative in nature. Can easily accommodate product requirements changes.

Interface Design

Drawing of access points

Describe the principle of information hiding as it applies to software design.

Each module should contain only the information necessary to carry out their specific task or function. They also should only share the information required by other modules for their specific functions.

Acceptance tests are normally conducted by the

End-Users

A task set is a collection of

Engineering Work-tests Milestones Deliverables

Which of these techniques is not useful for partition testing at the class level?

Equivalence Class partitioning

What is equivalence partitioning as it applies to software testing?

Equivalence partitioning is a black-box testing method that divides the input domain of a program into classes of data from which test cases can be derived.

Several common design issues surface for almost every user interface including

Error Handling System response time

Which of the following need to be assessed during unit testing?

Error handling execution paths

How do you create agile processes to manage unpredictability?

Software increments must be delivered in short time periods Software processes must adapt to changes incrementally

Data flow testing is a control structure testing technique where the criteria used to design test cases is that they

select test paths based on the locations and uses of variables

Which of the following are objectives for formal technical reviews?

uncovers errors in software products

A useful technique for evaluating the overall complexity of a proposed architecture is to look at the component

flow dependencies sharing dependencies

Which of the following can contribute to team toxicity?

frenzied work atmosphere inadequate budget poorly coordinated software process unclear definition of team roles

Identify the characteristics that belong to good design.

implements all analysis model requirements provides a complete software picture quality assessment guidelines

During the process of modeling the system in context, systems that interact with the target system are represented as

peer-level systems subordinate systems superordinate systems

What are the four framework activities found in the Extreme Programming (XP) process model?

planning, design, coding, testing

Which team organizational paradigm would you expect to use for a team developing an extremely innovative computer-based video game?

random

UML activity diagrams are useful in representing which analysis model elements?

scenario-based elements

Describe the differences between black-box testing and white-box testing.

- Black box testing is testing that occurs on the interface of the software. Black box testing focuses on the functional requirements of the program. Black-box testing techniques allow the tester to derive a set of input conditions that will exercise all functional requirements of the software. - White box testing is a way to test all (or most) logical paths of the internal components of a program. This is also called 'exhaustive' testing. This can be very hard to do for large systems due to the amount of time it would take to test all logical pathways.

Outline reasons that many software developers do not pay enough attention to requirements engineering.

1 Many software developers want to jump right in and start coding before they have a clear understanding of what is needed. 2 They believe that system requirements will become clear as they build the project. 3 Project stakeholders will be able to understand need only after examining early iterations of the software. 4 Things change so rapidly that attempts to understand requirements in detail are a waste of time. 5 The bottom line is producing a working program.

What are three dimensions of software quality?

1) An effective software process establishes the infrastructure that supports any effort at building a high-quality software product. 2) A useful product delivers content, functions, and features that the end user desires, but as important, it delivers these assets in a reliable, error-free way. 3) By adding value for both the producer and user of a software product, high-quality software provides benefits for the software organization and the end-user community.

What questions should be asked to help refine a preliminary use case?

1) Can the actor take some other actions at this point? 2) Is it possible that the actor will encounter some error condition at this point? If so, what might it be? 3) Is it possible that the actor will encounter some other behavior at this point? If so, what might it be?

Describe the five values held by XP teams?

1) Communication - Close collaboration between customers and developers that is continuous, simple and effective. 2) Simplicity - Working on only the immediate needs of the project and avoiding the future needs. Refactoring can be done later if necessary. 3) Feedback - a. The software team uses test cases to get feedback (from the software). b. Working software is given to customers and they in return give the developers feedback on how well their software is performing. c. As part of the planning process, the team gives the customers feedback about cost and schedule. 4) Courage - Also known as 'discipline'. Discipline to work on the software for today and not for tomorrow because tomorrows needs may be different when you get there. 5) Respect - Respect for customers, team members, and the software itself. As the team works in an XP environment, their respect for the process increases.

Describe the phases of the prototyping model for software development?

1) Communication - During this phase, a meeting with stakeholders takes place and initial thoughts/ideas/objectives for the software are discussed. 2) Quick Plan/Modeling Quick Design - This phase involves the user interface design. What the end-user sees. 3) Construction of Prototype - A basic working program is developed during this phase to present to stakeholders. 4) Deployment Delivery & Feedback - The prototype is given to stakeholders so that they can evaluate the work that has been done thus far, and this process begins again at Step 1) Communication. These steps are repeated (iterations) as many times as necessary until the finished software is made ready.

List three types of classes that may be present in the analysis model.

1) Entity classes 2) Boundary classes 3) Controller classes

List the key issues stressed by an agile philosophy of software engineering.

1) Importance of self-organizing teams that have control over the work they perform. 2) Communication and collaboration between team members and between practitioners and their customers. 3) A recognition that change represents an opportunity. 4) An emphasis on rapid delivery of software that satisfies the customer.

What are the seven steps for requirements engineering?

1) Inception 2) Elicitation 3) Elaboration 4) Negotiation 5) Specification 6) Validation 7) Management

What framework activities are completed when following an evolutionary (or spiral) user interface development process?

1) Interface analysis and modeling 2) Interface design 3) Interface construction 4) Interface validation

What are the goals for any product review?

1) Point out needed improvements in the product 2) Confirm those parts of a product where improvement is not necessary 3) Achieve technical work of a higher quality than could be achieved without reviews. 4) To remove quality problems in software. Namely bugs, faults, errors, or defects. 5) To find errors before they become defects after the release of software.

List the tasks performed by the SQA group.

1) Prepare an SQA plan for a project. 2) Participate in the development of the project's software process description. 3) Review software engineering activities to verify compliance with the defined software process. 4) Audit designated software work products to verify compliance with those defined as part of the software process. 5) Ensure that deviations in software work and work products are documented and handled according to a documented procedure. 6) Record any noncompliance and reports to senior management. 7) Coordinate the control and management of change. 8) Helps to collect and analyze software metrics.

List four types of systems tests.

1) Recovery Testing 2) Security Testing 3) Stress Testing 4) Performance Testing 5) Deployment Testing

What are the goals for the project SQA activities?

1) Requirements Quality 2) Design Quality 3) Code Quality 4) Quality control effictiveness

List four interface design issues presented in the development of most user interfaces.

1) System response time 2) User help facilities 3) Error information handling 4) Command labeling

List three characteristics that can serve as a guide to evaluate design quality.

1) The design should implement all of the explicit requirements contained in the requirements model, and it must accommodate all of the implicit requirements desired by stakeholders. 2) The design should be a readable, understandable guide for those who generate code and for those who test and subsequently support software. 3) The design should provide a complete picture of the software, addressing the data, functional, and behavioral domains from an implementation perspective.

Describe the differences between the software engineering terms coupling and cohesion?

1. Cohesion a. 'Single mindedness of a component' b. Encapsulates only attributes and operations that are closely related to one another and to the class or component itself. c. Easy to implement, test, and maintain. d. The preferred method or way of doing things. 2. Coupling a. Qualitative measure of the degree to which classes are connected to one another. b. More difficult to implement, test, and maintain. c. Results from an increased communication and collaboration amongst classes. d. This should be avoided/reduced as much as possible.

Place the 5 generic software engineering framework activities in the order they would normally occur during a software development project.

1. Communication. 2. Planning 3. Modeling 4. Construction 5. Deployment

List 3 principles for scheduling software projects.

1. Defined responsibilities. 2. Defined outcomes. 3. Defined milestones.

List 4 of the 6 critical software practices required by performance-based management.

1. Metric-based project management. 2. Empirical cost. 3. Schedule estimation. 4. Earned value tracking. 5. Defect tracking against quality targets. 6. People aware management.

List three issues that must be dealt with in an effective strategy for dealing with risk.

1. Risk avoidance. 2. Risk monitoring. 3. Risk management and contingency planning.

List the key attributes of an effective software teams.

1. Sense of purpose 2. Sense of involvement 3. Sense of trust 4. Sense of improvement 5. Diversified skillsets among team members

What practices should software engineers follow to enhance the quality of software produced by their team?

1. Software Engineering Methods 2. Project Management Techniques 3. Quality Control 4. Quality Assurance

What steps can be taken to avoid many of the problems that cause software projects to fail?

1. Start on the right foot. 2. Maintain momentum. 3. Track progress. 4. Make smart decisions. 5. Conduct a postmortem analysis.

What are the four P's of effective project management?

1. The People 2. The Product 3. The Process 4. The Project

Describe how Polya's problem solving principles describe the essence of engineering practice?

1. Understand the problem - In order to write software, engineers have to fully understand the problem the software they are creating will attempt to fix. They must consider all the different variables that will go into the problem. 2. Plan the solution - After brainstorming about the problems their software will solve, engineers must begin a planning phase where the major problem is broken down into smaller sub-problems. These sub-problems can be solved piece by piece and then later put together to form the larger application. 3. Carry out the plan - This step in Polya's problem solving principle refers to the actual writing of code that makes up the software. 4. Examine the result - This step describes the testing phase of software development. After the code is written, it must be tested for bugs and other errors that may be in the code.

What are the primary design objectives of a WebApp interface?

A WebApp interface should answer three questions: 1) Where am I? 2) What can I do now? 3) Where have I been and where can I go? 14 design principles that lead to better usability: 1. An application should be designed so that it anticipates the user's next move. 2. The interface should communicate the status of any activity initiated by the user. 3. The use of navigation controls, menus, icons and aesthetics should be consistent throughout. 4. Controlled Autonomy. The interface should facilitate user movement throughout the application, but it should do so in a manner that enforces navigation conventions that have been established for the application. 5. The design of the application and its interface should optimize the user's work efficiency, not the efficiency of the developer who designs and builds it or the client-server environment that executes it. 6. The interface should be flexible enough to enable some users to accomplish tasks directly and others to explore the application in a somewhat random fashion. 7. The interface (and the content it presents) should stay focused on the user task(s) at hand. 8. A vast library of reusable human interface objects has been developed for both web and mobile apps. Use them. 9. Latency Reduction. Rather than making the user wait for some internal operation to complete, the application should use multitasking in a way that lets the user proceed with work as if the operation has been completed. 10. An application interface should be designed to minimize learning time and, once learned, to minimize relearning required when the app is revisited. 11. An interface that uses an interaction metaphor is easier to learn and easier to use, as long as the metaphor is appropriate for the application and the user. 12. All information presented through the interface should be readable by young and old. 13. When appropriate, the state of the user interaction should be tracked and stored so that user can log off and return later to pick up where she left off. 14. Visible Navigation. A well-designed interface provides "the illusion that users are in the same place, with the work brought to them".

What is an archetype?

A class or pattern that represents a core abstraction that is critical to the design of an architecture for the target system.

Differentiate between defects and errors.

A defect is discovered after the software is released to the public. An error is discovered before the software is released to the public.

The Incremental Model

A good approach when a working core product is required quickly.

In software project scheduling work, what is a task (or activity) network?

A graphic representation of the task flow for a project. It is used as the mechanism through which task sequence and dependencies are input to an automated project scheduling tool.

What is "earned value analysis" as it relates to project scheduling?

A quantitative technique for assessing progress as the software team progresses through the work tasks allocated to the project schedule. It enables developers to see the 'percent of completeness' of a project using quantitative analysis rather than going by 'gut feeling'.

The Waterfall Model

A reasonable approach when requirements are well defined

What are the differences between a review summary report and a review issues list?

A review summary report answers three questions: 6) What was reviewed? 7) Who reviewed it? 8) What were the findings and conclusions A review issues list: 1) Identifies problem areas within the product 2) Serves as an action item checklist that guides the producer as corrections are made.

The best indicator of progress on a software project is the completion

A successful review of a defined software product.

A good software development team always uses the same task set for every project to insure high quality work products.

false

How does software team choose the task set for a particular project?

A task set defines the actual work to be done to accomplish the objectives of a software engineering action. (p34) The software team meets with the stakeholders and gathers information regarding how the software is to work. Then the team communicates with one another and sets specific tasks, goals, and milestones for the project. The task set for each project will vary based upon the scale of the project and the nature of the team.

The Prototyping Model

A useful approach when a customer cannot define requirements quickly

The Spiral Model

A useful approach when large-scale systems and software are developed in a series of evolutionary releases.

At the end of a formal technical review all attendees can decide to

Accept the work without modification Reject the project due to severe errors

Which of the following are attributes of software quality?

Adds value for developers and end users Effective software process creates infrastructure Useful product satisfy stake holder reqs

Hazard analysis focuses on the identification and assessment of potential hazards that can cause

An entire system to fail

Conduct a grammatical parse of the following user story and create a list of potential analysis classes: Citizens can log onto a website and report the location and severity of potholes. As potholes are reported they are logged within a "public works department repair system" and are assigned an identifying number, stored by street address, size (on a scale of 1 to 10), location (middle, curb, etc.), district (determined from street address), and repair priority (determined from the size of the pothole).

Analysis classes (the nouns) manifest themselves in one of the following ways: External entities (e.g., other systems, devices, people) that produce or consume information Things (e.g, reports, displays, letters, signals) that are part of the information domain for the problem Occurrences or events (e.g., a property transfer or the completion of a series of robot movements) that occur within the context of system operation Roles (e.g., manager, engineer, salesperson) played by people who interact with the system Organizational units (e.g., division, group, team) that are relevant to an application Places (e.g., manufacturing floor or loading dock) that establish the context of the problem and the overall function Structures (e.g., sensors, four-wheeled vehicles, or computers) that define a class of objects or related classes of objects A first pass might yield the following potential analysis: citizens, website, location, pothole, repair system, address, district

Which of the following elements to need to be described in detail during component design elaboration?

Attributes Interfaces Operations

Why is regression testing an important part of any integration testing procedure?

Because after changes are made to the software new errors or bugs may be introduced. Regression testing involves the developer running the same tests that were ran before the changes were made. Re testing the software enables the developer to see if any new errors or bugs were introduced to the program.

Describe how test cases are derived from behavior models to facilitate interclass testing?

Behavioral models are used to show how software will respond to external events. Test cases can be made that mimic how one classes actions affect other classes in sequential order. These tests should cover every state.

test cases demonstrate that each program function is called

Black-Box Testing

no stubs need to be written

Bottom-Up

Linear Process Flow

Building a routine product similar to something the team has done before.

Evolutionary Process Flow

Building projects that need to be developed in a rapid but controlled manner that avoids unnecessary rework.

Parallel Process Flow

Building self-contained work products simultaneously for systems that are composed of subsystems.

Iterative Process Flow

Building systems involving technologies that are new to the development team.

What effect do software reviews have on software production costs?

By detecting and removing a large percentage of errors that are found in software reviews, the overall cost of the software development process is reduced.

Identify a characteristic that distinguishes a MobileApp from a WebApp.

Can gain access to the device hardware.

An informal review may consist of which of the following?

Casual meeting Desk Check Pair Programming

The project plan should include explicit techniques for _______ and _______ management?

Change Quality

Differentiate among causes of errors uncovered by requirements validation.

Errors can be in content or interpretation where clarification may be required Missing information Inconsistencies Requirements could be unachievable Requirements could be unrealistic Requirements could conflict with one another Requirements can be too vague Requirements can be impossible to validate or 'quantify'

Software reliability problems can almost always be traced to

Errors in design Errors in implementation

The first step in project planning is to

Establish the objectives and scope

Which of the following management decisions have the potential to impact software quality?

Estimation decisions Risk-Oriented decisions Scheduling decisions

Condition testing is a control structure testing technique where the criteria used to design test cases is that they

Exercise logical conditions in a programming module

Which of the following is likely to be the most expensive cost of quality?

External Failure costs

Explain how program can be correct and not be reliable.

Failure of software is always attributed to design or implementation problems. So where a program may operate and perform a task that is required, it may contain bugs that, over time, cause the program to crash.

In agile process models the only deliverable work product is a working program.

False

Modern WebApps are a mixture of print publishing and software development, making their development outside the realm of software engineering practice.

False

Software is a product and can be manufactured using the same technologies used for other engineering artifacts

False

The communication activity is best handled for small projects using six distinct actions (inception, elicitation, elaboration, negotiation, specification, validation).

False

The software equation can be used to show that by extending the project deadline slightly

Fewer people are required

Describe the process of building a risk table.

First you list all risks in the first column. Then each risk is categorized in the second column. Next the probability value for each risk is entered into the third column. Then the impact of each risk is assessed and entered into the fourth column. Lastly, the table is sorted by probability and impact.

Loop testing is a control structure testing technique where the criteria used to design test cases is that they

Focus on the validity of loop constructs

Explain how effective modular design is achieved through functional independence of the individual modules?

Functional independence is achieved by developing modules with 'single-minded' function and an 'aversion' to excessive interaction with other modules. (p236). By doing this you achieve the essence of modular design: separation of concerns, abstraction, information hiding, and modularity.

The major areas of problem decomposition during the project scoping activity are the

Functionality to be delivered Process used to deliver functionality

One of the best ways to avoid frustration during the software development process is to

Give team members more control over process and technical decisions

Architectural design

House floor plan

What is the most significant attribute that distinguishes an agile team from a conventional software team?

I would say the ability to change with the changing needs of the project. As the development process unfolds, new technologies may emerge, customers may have different requirements for their software, team members may change, etc. This requires everyone to be flexible and able to handle those changes. Agile teams need to be free to adapt their organization to the task at hand. Agile teams are self-organizing and may change their organizational structure during different phases of the project lifetime.

Describe the costs associated with software quality work?

I. Prevention a. Cost of management activities to plan and coordinate all quality control and quality assurance activities b. The cost of added technical activities to develop complete requirements and design models c. Test planning costs d. Cost of all training associated with these activities. II. Appraisal a. Cost of activities to gain insight into product condition the 'first time through' each process b. Cost of technical interviews c. Cost of data collection and metrics evaluation d. Cost of testing and debugging III. Failure a. Costs associated with errors before shipping the product to the customers b. Internal failure costs i. Costs required to perform a repair of an error ii. Costs that occur when repair creates other side effects that need to be repaired iii. Costs associated with the collection of quality metrics that allow an organization to assess the modes of failure. c. External failure costs i. Defects found after the product has shipped ii. Complain resolution iii. Product return and replacement iv. Help line support v. Warranty work

Describe object-oriented unit testing.

In OO Testing, the entire class is to be tested. Unlike traditional unit testing where individual methods are tested. Each class and subsequent subclass must be tested for each operational change because of the subtle differences in how each subclass uses the same method or operation.

How does the object-oriented view of component-level design differ from the traditional view?

In an object-oriented view of component-level design, the component contains a set of collaborating classes or just a single class and each class has all the attributes and methods or operations necessary to implement it. The traditional view is a functional element that contains processing logic, internal data structures and interfaces that enable the component to be invoked and data to be passed to it.

How does unit testing differ for object-oriented testing as compared to conventional software unit testing?

In conventional unit testing, each operation is tested in isolation. However, in object-oriented testing, each operation must be tested as part of the whole class because the operation may have subtle differences depending on which subclass it may be invoked in. This is known as 'class testing'.

The spiral model of software development...

Includes project risks evaluation during each iteration.

Black-box testing attempts to find errors in which of the following categories

Incorrect or missing functions Interface errors Performance errors

Risk projection attempts to rate each risk in which two ways?

Likelihood and consequences

What types of errors are missed by black-box testing and can be uncovered by white-box testing?

Logic errors Typographical errors.

Which of the following is not one of the guiding principles of software project scheduling:

Market assesment

Software safety is a quality assurance activity that focuses on hazards that

May cause an entire system to fail

Software deteriorates rather than wears out because

Multiple change requests introduce errors in component interactions.

Several usability measures can be collected while observing users interacting with a computer system including

Number of user errors time spent using help material

Make a judgment about why it is important to begin testing with object-oriented analysis and design.

Object-oriented analysis and design ensure that the least amount of errors occur in the coding process. If fewer errors occur in the coding process, then less time and money will be required to fix errors that are uncovered in the object-oriented testing phases. Once errors are uncovered in the testing process that pertains to coding, then the software must be edited. This change can lead to even more errors in the software system.

Which of the following are characteristics of testable software?

Observability simplicity stability

Which of the the following are benefits of using agile process models?

Only essential work products are produced Process allows team to streamline tasks Uses incremental product delivery strategy

Which of the following interface design principles does not allow the user to remain in control of the interaction with a computer?

Only provide one rigid method for completeing a task

What is the purpose of fault-based testing?

Operations or classes that are critical or suspect.

How can process patterns assist a development team build software products efficiently?

Patterns give a basic outline of how to solve various problems that may arise in the software development process. Process patterns are solutions to problems that have already been encountered in other software engineering projects. These patterns can be reused to solve the same problems in multiple software projects. The data will vary by project, but the pattern and solution to the problem will stay the same. Having these patterns available to use helps with efficiency because the team will already have a solution to the problem that they encounter.

Software risk impact assessment should focus on consequences affecting

Performance Support Cost Schedule

Three categories of risks are

Project risk technical Risk Business Risk

How are project risks different from technical risks?

Project risks affect the project schedule of the software development. Areas such as budgeting, schedule, personnel, resources, stakeholders. Technical risks affect the internal workings of the software. Areas such as design, implementation, interface, verification, and maintenance.

Which of these words summarizes the importance of the software design process?

Quality

Distinguish between a responsibility and a collaborator in a CRC model.

Responsibility - Attributes and operations that are relevant for the class. Anything the class knows or does. Collaborator - Those classes that are required to provide a class with the information needed to complete a responsibility. Classes collaborate with other classes to fulfill certain responsibilities that it cannot do by itself.

Distinguish between risk components and risk drivers.

Risk components are parts of a program that are affected by Risk Drivers. These include performance, cost, support, and schedule. Each risk driver has a varying level of risk that affects the risk component.

Indicate the umbrella activities that would be applied across the entire software engineering process.

Risk management Software Q&A Project tracking formal technical reviews

What is scenario-based testing?

Scenario based testing tests what the user does, not what the program does. This helps to ensure that the program functions according to what the use cases are.

Which of the following statements indicate the extent of the impact of software on society?

Social media has become pervasive of our everyday activities. Software is embedded in cars and appliances. Services are delivered on demand using the Internet and mobile devices.

How do software characteristics differ from hardware characteristics?

Software characteristics are those that cannot 'break down' over time. They are not affected by decay (although errors can cause issues). Software is what gives hardware it's life. Hardware consists of the physical components of a computer or other device. Over time they can wear out due to external conditions such as dirt or dust and typical 'wear and tear' of usage.

How are tasks, actions, and activities related to software process models?

Software process models consist of various framework activities. Each framework activity has specific tasks, actions, and activities that make up the process flow that determine how the software works.

What is meant by the term software reliability?

Software reliability refers to the probability of software not crashing while using it. "The probability of failure free operation of a computer program in a specified amount of time.

Differentiate the concepts of software reliability from software quality.

Software reliability refers to the probability that the software will run and not crash. Software quality refers to the correctness, completeness, and consistency of the software that was developed. The software could be reliable (meaning that it will rarely crash), but not perform the tasks that are necessary (quality) and vice-versa.

How does a software project manager need to act to minimize the risk of software failure?

Start on the right foot Track Progress

Describe the strengths and weaknesses of the random paradigm team structure?

Strengths - increased innovation due to the individual initiative of team members Weaknesses - struggles with ordinary performance due to the lack of a team structure

Which approaches to user task analysis can be useful in user interface design?

Studying existing computer based solutions Observation of users performing tasks manually

What are the attributes of a good software test?

Test Characteristics - the following are signs that a software test is good. a. A good test has a high probability of finding an error. b. A good test is not redundant. c. A good test should be 'best of breed'. d. A good test should be neither too simple or too complex.

Describe the role of customers and end-users on an agile process team?

The customer takes on the role of the 'end-user' on an agile process team. They develop 'user-stories' that are given to the software developers. The user-stories give the developers ideas on what the finished product is supposed to look like. They can then take those stories and gather a timeline for software development.

Describe the purpose of domain analysis modeling in your own words.

The goal of domain analysis is to find or create analysis classes or patterns that can be reused for multiple projects. Domain analysis modeling is used to increase the speed and efficiency at which software is developed by reusing components of software programs.

Which is a good approach when a working core product is required quickly?

The incremental model of software development

Which is a useful approach when a customer cannot define all requirements clearly but need to release the product quickly?

The incremental model of software development

Which of the following should be considered as candidate objects in a problem space?

events people structures

Explains how a program can be correct but not exhibit high quality.

The software can be developed that will perform as required, which would make it correct. But just because it works it may not have high quality. Software that has high quality conforms to coding standards and exhibits characteristics that will facilitate maintainability.

Describe the relationships among software engineering process, methods, and tools.

The software engineering process provides the foundation for software development. Methods are described as the 'how tos' for building software. They include all the various tasks that go into developing software. Tools are used to support the processes and methods of software development.

Which is a reasonable approach when requirements are well defined?

The waterfall model of software development

Describe the job of the requirements engineer with respect to stakeholder collaboration?

Their job is to find areas of agreement and areas of disagreement between all the stakeholders.

What is the intent of domain engineering in CBSE?

To identify, construct, catalog, and disseminate a set of software components that have applicability to existing and future software in a particular application domain.

major decision points are tested early

Top-Down

An architectural decision is often documented using an architecture decision description template

True

One means of defining user interface objects and actions is to conduct a grammatical parse of the user scenario.

True

Software processes can be constructed out of pre-existing software patterns to best meet the needs of a software project.

True

The essence of software engineering practice might be described as: understand the problem, plan a solution, carry out the plan, and examine the result for accuracy.

True

Software risk always involves two characteristics

Uncertainty and loss

Which UML (unified modeling language) diagrams are useful in scenario-based modeling?

Use cases, activity diagrams, swimlane diagrams.

Which of the following is not one of the major activities of domain engineering?

Validation

A review summary report answers which three questions?

What was reviewed Who reviewed it What were the findings

test cases exercise the internal logic of a software module

White-box Testing

Which question no longer concerns the modern software engineer?

Why does computer hardware cost so much?

What are the elements that make up a software architectural style?

a. A set of components that perform a function required by a system. b. A set of connectors that enable communication, coordination and cooperation among components. c. Constraints that define how components can be integrated to form the system d. Semantic models that enable a designer to understand the overall properties of a system by analyzing the known properties of its constituent parts.

Which of the following are important traits of an effective software engineer?

attentive to detail brutally honest resilient under pressure

Which of these factors complicate decision-making by global software teams?

complexity of problem different views of the problem law of unintended consequences risk associated with decision

An architectural style encompasses which of the following elements?

constraints components semantic models

Which of these software characteristics are used to determine the scope of a software project?

context function information objectives performance

Which of these is not an element of a requirements model?

data elements

In the architecture trade-off analysis method, the architectural style should be described using the

data flow view module view process view

Identify poor reasons for developing a requirements model.

develop an abbreviated solution for the problem

What are the benefits of using analysis patterns during the analysis modeling process?

• Analysis patterns speed up the development of abstract analysis models that capture the main requirements of the concrete problem by providing reusable analysis models with examples as well as a description of advantages and limitations. • They facilitate the transformation of the analysis model into a design model by suggesting design patterns and reliable solutions for common problems.

What types of nouns resulting from a grammatical parse should be considered as potential analysis classes?

• External entities • Things • Occurrences or events • Roles • Organizational units • Places • Structures

What are the tradeoffs proposed by the "Manifesto for Agile Software Development"?

• Individuals and interactions over processes and tools o Communication must be simple • Working software over comprehensive documentation o Software is developed quickly • Customer collaboration over contract negotiation o Customers have a bigger role in the software development process • Responding to change over following a plan o Development plans must be flexible

List three principles that should be applied when building any user interface.

• Place the user in control. • Reduce the user's memory load. • Make the interface consistent.

What are the primary advantages of the component-based process model for software engineering?

• Software Reuse - the ability to reuse software components is one primary advantage • Reduction in development cycle time - because of Software Reuse, less time is spent in creating various aspects of a software program • Decreased Cost - spending less time and resources re-developing software components means that less money is spent on those components, thus saving money

Describe the roles of the three sections of CRC (class responsibility collaborator) cards?

• The top of the card contains the name of the class. • Left side of the body of the card contains the class responsibilities. • Right side of the body of the card contains the collaborators.

Explain the key differences between thin client architectures and a rich client architectures.

• Thin Client Architectures - only UI exists on mobile device. The business and data layer are on the servers. • Rich Client Architectures - All three layers exist on the mobile device.


Related study sets

Ch. 12 Life Insurance Planning T/F

View Set

3) Homonymous Hemianopia & Hemi-neglect

View Set

Quiz: Little Women: Chapters 14-30

View Set

UNIT 6 BASIC DIGITAL Electronics

View Set

CFP 501 - Financial Planning Process and Insurance

View Set