Shared Flashcard Set

Details

CompE 460
Software Engineering
75
Engineering
Undergraduate 4
12/12/2006

Additional Engineering Flashcards

 


 

Cards

Term
t1
1. How does software differ from the artifacts produced by other engineering disciplines?
Definition
Software is both a product and a vehicle for delivering a product. As a product, software is an information transformer. As a vehicle for delivering a product, software serves as a basis for computer control, communication, and creation of other programs.
Term
t1
2. How do software characteristics differ from hardware characteristics?
Definition
Software is developed, not manufactured. Software does not wear out, but it can deteriorate when changes are made. Most software is custom built, not assembled out of components.
Term
t1
3. What is the difference between software that is determinate and software that is indeterminate?
Definition
Software is determinate is the order and timing of its inputs, processing, and outputs is predictable and it is indeterminate if the order and timing of its input, processing, and outputs is not predictable in advance.
Term
t1
4. Explain what is wrong with the notion that computer software does not need to evolve over time.
Definition
Computer software must be revised as errors are discovered and corrected. Software must be updated to accommodate changes in the computing environment. Many times a customer will request changes to add new functions to an existing product or to accommodate changes in the business environment. Sometimes an older system will need to be reengineered to provide benefits to the user in a modern context. The bottom line is that software that does not evolve will eventually become unusable
Term
T2

1. List three areas in which process models may differ from one another.
Definition
Overall flow and level of interdependencies among tasks
Degree to which work tasks are defined within each framework activity
Degree to which work products are identified and required
Manner in which quality assurance activities are applied
Manner in which project tracking and control activities are applied
Overall degree of detail and rigor of process description
Degree to which stakeholders are involved in the project
Level of autonomy given to project team
Degree to which team organization and roles are prescribed
Term
T2
2. What are the names of the six levels of the SEI Capability Maturity Model Integration (CMMI)? In your own words, briefly describe each.
Definition
Level 0 - incomplete, process area not performed or does not achieve Level 1 goals and objectives
Level 1 - performed, all work tasks required to produce work products are being conducted
Level 2 - managed, people doing work have access to adequate resources to get job done, stakeholders are actively involved, work tasks and products are monitored, reviewed, and evaluated
Level 3 – defined, management and engineering processes documented, standardized, and integrated into organization-wide software process
Level 4 – quantitatively managed, there is a serious emphasis on measurements and also a serious attempt to use this data to manage the process
Level 5 - optimized, best practices exist at almost all levels and there is a continuing attempt to improve
Term
t2
3. Why has the Personal Software Process has not been widely adopted by industry?
Definition
PSP is intellectually challenging and demands a level of commitment (e.g. lengthy and costly training required) that is not always possible to obtain. In addition the required level of measurement is culturally hard for many software practitioners.
Term
t2
4. Describe the “plan-do-check-act” cycle from in the ISO 9001:2000 standard as it is applied to assessing the quality management elements of a software project.
Definition
Plan – establishes the process objectives, activities, and tasks needed to create high quality software and customer satisfaction
Do – implements the software framework and umbrella activities
Check – monitors and measure process to ensure quality management requirements are met
Act – initiates continuous software process improvement activities
Term
t3
1. Describe the phases of the prototyping model for software development?
Definition
Requirements are gathered by having the customer and developer meet and identify whatever objectives and requirements they can. Quick design follows, focusing on representation of the software that will be visible to the customer. A prototype is constructed by the developer and evaluated by the customer and used to refine the requirements. Iteration occurs and the prototype is tuned to satisfy the customer's needs.
Term
t3
2. Describe the role of risk analysis in evolutionary process models like the spiral model.
Definition
During each iteration through the process steps, both the technical and management risks are assessed to see if it is still possible to complete the project which its required functionality with acceptable time and cost constraints.
Term
t3
3. What are the primary advantages of the component-based process model for software engineering?
Definition
Component-based process models promote software reuse and reusability and can result in: 70% reduction in development cycle times, 84% reduction in project costs, and 70% increase in productivity.
Term
t3
4. Why are incremental process models considered by many to be the best approach to software development in a modern context?
Definition
Because time lines for the development of modern software are getting shorter and shorter, customers are becoming more diverse (making the understanding of requirements even harder), and changes to requirements are becoming even more common (before delivery), we need a way to provide incremental or evolutionary delivery. The incremental process accommodates uncertainty better than most process models, allows the delivery of partial solutions in an orderly and planned manner, and most importantly, reflects what really happens when complex systems are built.
Term
t3
5. Describe the 5 phases of the Unified Process model for software engineering?
Definition
Inception phase (customer communication, planning, use-case creation)
Elaboration phase (creation of analysis and design models)
Construction phase (translates design model into software components)
Transition phase (software transferred from developer to end user for acceptance testing)
Production (on-going monitoring and support of software during active use)
Term
t4
1. List the key issues stressed by an agile philosophy of software engineering.
Definition
• The importance of self-organizing teams
• Communication and collaboration between team members and customers
• Recognition that change represents opportunity
• Emphasis on rapid delivery of software that satisfies the customer
Term
t4
2. What are the tradeoffs (values) proposed by the “Manifesto for Agile Software Development”?
Definition
Individuals and interactions valued over processes and tools
Working software valued over comprehensive documentation
Customer collaboration valued over contract negotiation
Responding to change valued over following a plan
Term
t4
3. Describe the role of customers and end-users on an agile process team?
Definition
Customers and end-users participate as full collaborators on agile process teams. They are the source of information used to create use cases and provided needed information on the business value of proposed software feature and functionality. They also provide much needed feedback on operational prototypes during incremental delivery of software increments.
Term
t4
5. Describe the three key assumptions regarding software projects that every agile software process must address.
Definition
• It is difficult to predict in advance which software requirements and customer priorities will change and which will not.
• For many types of software design and construction must be interleaved, it is difficult to predict how much design is needed before construction can be used to prove the design.
• Analysis, design, construction, and testing are not always predictable processes and this makes planning difficult.
Term
t5
1. What is the purpose of asking context-free questions as a means of beginning the software engineering communications activity?
Definition
Gain a basic understanding of the problem, the people who want a solution, the nature of the solution desired, and the effectiveness of the communications activity itself.
Term
t5
2. What questions make up Boehm’s W5HH principle?
Definition
Why is the system being developed?
What will be done?
When will it be accomplished?
Who is responsible for a function?
Where will they organizationally be located?
How will the job be done technically and managerially?
How much of each resource is needed?
Term
t5
3. Describe the key elements of construction practice
Definition
Construction practice is made up of the coding and testing tasks that lead to the delivery of operational software to the customer or end-user. Coding is concerned with the selection of the programming languages, tools, standards, and environments needed to implement the design. Testing involves validation of individual components, verifying the successful integration of components into the system, and acceptance of the completed system by the customer.
Term
t5
4. Describe the differences between software construction and software deployment.
Definition
Software construction is concerned with coding and testing of a software increment. Deployment is concerned with the delivery of an operation software product to the end-user, supporting the product during active use, and processing user feedback concerning the product usefulness
Term
t6
1. What are the six elements that are present in most computer-based systems?
Definition
software, hardware, people, database, documentation, procedures
Term
t6
2. What is the goal of business process engineering?
Definition
To define architectures (data, applications, technology infrastructure) that enable a business to use information effectively.
Term
t6
3. In the context of systems engineering what is product engineering?
Definition
To goal of product engineering is to translate the customer’s desires into a working product. To achieve this goal product engineering must derive a system architecture and infrastructure. The architecture encompasses four distinct system components (software, hardware, databases, and people).
Term
t6
4. Describe the activities for a generic system modeling process.
Definition
A systems model template is used to initially allocate the system elements to each of the five processing regions (user interface, input, system function and control, output, maintenance and self-test). A system context diagram (SCD) is created to establish the boundary between the system and the environment. A system flow diagram (SFD) is then created from the SCD to define the major subsystems and to show the lines of information (data and control) flow. Writing an SCD and SFD then refines each subsystem, as if it were a stand-alone system. The system specification is developed by writing a narrative description for each subsystem and definitions for the data that flow between subsystems.
Term
t7
1. What are the six steps for requirements engineering?
Definition
Inception
Elicitation
Elaboration
Negotiation
Specification
Requirements validation
Term
t7
2. What three deployments are used in Quality Function Deployment (QFD)?
Definition
Function deployment
Information deployment
Task deployment
Term
t7
3. Which UML diagrams are useful for analysis modeling? Provide an example of each.
Definition
Use-case diagram
Activity diagram
Class diagram
State diagram
See figures in SEPA for typical examples
Term
t7
4. Describe the weaknesses of use-cases as part of the requirements engineering process.
Definition
Lack of formality in use-case descriptions
Not all systems have explicitly defined actors
Use-cases are not inherently object-oriented
Developers have a tendency to functionally decompose use-cases.
Term
t8
1. What are the data modeling elements represented in the entity relationship diagram (ERD)?
Definition
Data objects - any entity producing or consuming information
Attributes - data characteristics associated with a data object instance
Relationships - indicate manner in which data objects are connected
Term
t8
2. Describe the general process of creating a data flow diagram (DFD).
Definition
Level 0 DFD depicts system as single bubble, with system-level input and output noted. Refinement begins by consolidating candidate processes, data objects, and data stores to be represented at the next level. Arcs are labeled with meaningful names and information flow is maintained from one level to another. Refine one bubble at a time. Write the narrative (PSPEC) for each bubble in the final (lowest level) DFD.
Term
t8
3. How is an object-relationship model built from a set of CRC (class responsibility collaborator) cards?
Definition
• The network of collaborating objects is drawn using the CRC card names for objects and unlabeled lines to indicate collaborators.
• Unlabeled connecting lines are named, based on the collaborators and relationships listed on the CRC cards.
• Once the named relationships have been established, each connecting line end is evaluated to determine its cardinality.
Term
t8
4. Which UML (unified modeling language) diagrams are useful in object-oriented analysis modeling?
Definition
• Scenario-based models – use-case diagrams, activitiy diagrams, swimlane diagrams
• Class-based models – class diagrams
• State-based models – state diagrams, sequence diagrams
Term
t8
5. List the elements of the structured analysis model and explain the role of each element.
Definition
• Data dictionary - contains descriptions of all data objects produced or consumed by the software
• Entity relationship diagram (ERD) - depicts data object relationships
• Data flow diagram (DFD) - provides an indication of how data are transformed as they move through the system and the functions that transform the data flow
• State transition diagram (STD) - indicates system responses to external events
Term
t8
6. Explain why encapsulation, inheritance, and polymorphism are three important characteristics of object-oriented systems.
Definition
Classes provide an encapsulation (information hiding) mechanism by which data (attributes) have their access controlled by a set of operations. When properly implemented this yields systems with low coupling and high modularity. Inheritance provides a mechanism by which changes to higher level classes can be propagated to lower level classes quickly. Polymorphism reduces the effort required to extend an object system by enabling a number of different operations to share the same name.
Term
t8
7. What are the steps needed to build an object-behavior model?
Definition
• Evaluate the use-cases to understand the interaction sequence within the system.
• Identify events that drive the interaction sequence and how the events relate to specific objects.
• Create an event trace for each use-case.
• Build a state transition diagram for the system.
• Review the object-behavior model to verify accuracy and consistency.
Term
t9
1. List three characteristics that can serve as a guide to evaluate design quality
Definition
• Design implements all explicit requirements from the analysis model, as well as accommodating implicit customer requirements.
• Design must be understandable to the people who generate the code to implement design, those who test it, and those who support it.
• Design must provide a complete picture of the software, addressing the data, functional, and behavioral domains from an implementation perspective.
Term
t9
2. Describe the principle of information hiding as it applies to software design.
Definition
The principle of information hiding implies that modules only share information with each other on a "need to know" basis to achieve some specific software function. Hiding enforces the procedural constraints to both the module procedural detail and any data structures local to the module.
Term
t9
3. Explain how effective modular design is achieved through functional independence of the individual modules?
Definition
Functional independence of modules is achieved by making modules single-minded (high cohesion) and preventing excessive interaction (low coupling) with other modules or system elements. Independent modules are easier to develop, maintain, and test, because the impact of side effects is reduced (as is the propagation of errors). This also makes it easier to perform parallel implementation of modules.
Term
t9
4. Describe the differences between a design pattern and a framework
Definition
Design patterns are more abstract than frameworks. Frameworks are often code-based. Frameworks can contain design patterns, but design patterns cannot contain frameworks. Design patterns are less specialized than frameworks.
Term
t9
5 List the four design models required for a complete specification of a software design and the role of each.
Definition
• Data design - high level model depicting user’s view of the data or information.
• Architecture design – shows relationships and collaborations among specific analysis model software and hardware elements
• Interface design - interface depicts a set of operations that describe the externally observable behavior of a class and provides access to its operations
• Component-level design - Describes the internal detail of each software component
Term
t10
1. What is the goal of data design?
Definition
To create a model of the data/information that is represented at a high level of abstraction (user's view). This model is successively refined into more implementation specific representations that can be processed by the computer-based system.
Term
t10
2. What are the elements that make up a software architectural style?
Definition
• Set of components that perform required system functions.
• Set of connectors allowing communications among the components.
• Constraints describing how the components maybe integrated to form a system.
• Semantic models that enable the designer to understand the overall system properties by analyzing the known properties of its components
Term
t10
3. How is a transaction center different from a transform center in a data flow diagram?
Definition
Transaction centers convert an external information flow into one of many action paths inside the system. Transform centers map the incoming external information into outgoing external world information.
Term
t10
5. Describe the types of dependencies that can exist in an architectural design.
Definition
• Sharing dependencies - represent the dependence relationships among consumers whose use the same source or producers who have the same consumers.
• Flow dependencies - represent dependence relationships between producers and consumers of resources
• Constrained dependencies - represent constraints on the relative flow of control among a set of activities
Term
t11
1. How does the object-oriented view of component-level design differ from the conventional view?
Definition
The object-oriented view focuses on the elaboration of design classes that come from both the problem and infrastructure domains. Classes are elaborated by specifying messaging details, identifying interfaces, defining attribute data structures, and describing process flow for operations. In the traditional view, three of components are refined: control modules, domain modules, and infrastructure modules. This requires representations to be created for data structures, interfaces, and algorithms for each program module in enough detail to generate programming language source code.
Term
t11
2. Describe the differences between the software engineering terms coupling and cohesion?
Definition
Cohesion implies that a component or class encapsulates only the attributes and operations closely related to one another and to the class itself. Coupling is a qualitative measure of the degree to which components are connected to one another.
Term
t11
3. List three characteristics that can be to assess the quality of a design notation.
Definition
Modularity, simplicity, ease of editing, machine readability, maintainability, structure enforcement, automatic processing, data representation, logic verification, "code-to" ability
Term
t11
4. What are the steps used to complete the component-level design for a software development project?
Definition
• Identify all design classes that correspond to the problem domain.
• Identify all design classes that correspond to the infrastructure domain.
• Elaborate all design classes that are not acquired as reusable components.
• Identify persistent data sources (databases and files) and identify the classes required to manage them.
• Develop and elaborate behavioral representations for each class or component.
• Elaborate deployment diagrams to provide additional implementation detail.
• Factor every component-level diagram representation and consider alternatives.
Term
t15
1. List three characteristics of a good software metric.
Definition
Simple and computable, empirically and intuitively persuasive, consistent use of units and dimensions, programming language independent, provides effective mechanism for quality feedback
Term
t15
2. Component-level design metrics focus on what three internal characteristics of software components?
Definition
Module cohesion, coupling, and complexity
Term
t15
3. Technical testing metrics fall into two major categories. What are they?
Definition
Metrics that focus on test coverage and metrics that focus on the duration of the testing process.
Term
t15
4. Describe the five activities associated with the software measurement process.
Definition
Formulation - derivation of metrics and measures that are appropriate for the software representation being considered

Collection - mechanism used to gather the data used to derive the metrics

Analysis - metric computation and use of mathematical tools

Interpretation - evaluation of metrics results to gain insight into the quality of the software representation

Feedback - recommendations derived from the interpretation are transmitted to the software team
Term
t15
5. Describe the role of class-oriented metrics in assessing the quality of an OO system.
Definition
The class is the fundamental unit of an OO system. The number of methods and their complexity are directly related to the effort required to test a class. The depth of the inheritance tree can be used to estimate the complexity of the class hierarchy. It is important to strive to have low coupling between classes and high cohesion within each class. If large class sizes are detected during OOA review, the classes should partitioned to improve the modularity of the system and make it easier to maintain.
Term
t20
1. Summarize the steps used in a WebApp testing strategy
Definition
• WebApp content model is reviewed to uncover errors.
• Interface model is reviewed to ensure all use-cases are accommodated.
• Design model for WebApp is reviewed to uncover navigation errors.
• User interface is tested to uncover presentation errors and/or navigation mechanics problems.
• Selected functional components are unit tested.
• Navigation throughout the architecture is tested.
• WebApp is implemented in a variety of different environmental configurations and the compatibility of WebApp with each is assessed.
• Security tests are conducted.
• Performance tests are conducted.
• WebApp is tested by a controlled and monitored group of end-users (looking for content errors, navigation errors, usability concerns, compatibility issues, reliability, and performance).
Term
t20
2. What are the objectives for content testing?
Definition
• Uncover syntactic errors in all media (e.g. typos)
• Uncover semantic errors (e.g. errors in completeness or accuracy)
• Find errors in organization or structure of content presented to end-user
Term
t20
3. What is the difference between load testing and stress testing?
Definition
Load testing attempts to determine how the WebApp and its server-side environments respond to various load conditions. Stress testing is a continuation of load testing that seeks to have the number of user, transactions, and data load meet and exceed operational limits.
Term
t20
4. Describe the WebApp interface testing strategy.
Definition
• Interface features are tested to ensure that design rules, aesthetics, and related visual content is available for user without error.
• Individual interface mechanisms are tested using unit testing strategies.
• Each interface mechanism is tested in the context of a use-case of navigation semantic unit (e.g. thread) for a specific user category
• Complete interface is tested against selected use-cases and navigation semantic unit to uncover interface semantic errors
• Interface is tested in a variety of environments to ensure compatibility
Term
t21
1. What are the four P's of effective project management?
Definition
people, product, process, and project
Term
t21
2. What steps can be taken to avoid many of the problems that cause software projects to fail?
Definition
• Start on the right foot (using adequate planning, scheduling and risk analysis)
• Maintain momentum
• Track progress
• Make smart decisions
• Conduct a postmortem analysis
Term
t21
3. List 4 of the 6 critical software practices required by performance-based management.
Definition
formal risk management
empirical cost and schedule estimation
metric-based project management
earned value tracking
defect tracking against quality targets
people-aware program management
Term
t21
4. How is software scope defined?
Definition
By defining how the software to be built fits into a larger systems, product, or business context and the constraints imposed by the context. Determining what visible objects the customer expects to see as output and what input objects are required to produce them. Determining the required software functions transform input to output and any special performance characteristics. Attempting to bound all information quantitatively, when possible, and descriptively, when numbers cannot be used.
Term
t22
1. How do software process metrics differ from software project metrics?
Definition
Process metrics are used to make strategic decisions about how to complete (and ultimately, improve) common process framework activities while project metrics are used to monitor progress during a software development project and to control product quality.
Term
t22
2. What are the goals for using object-oriented software metrics?
Definition
• To better understand product quality
• To assess effectiveness of the process
• To improve the quality of work performed at the project level
Term
t22
3. What are four useful indicators of software quality that should have measures defined and monitored by the software project team?
Definition
correctness, maintainability, integrity, usability
Term
t22
4. Why is it important for software developers to make use of measurement to guide their work?
Definition
Developers need to measure so that they can tell whether they are improving or not. Without measurements this is extremely difficult to achieve. Measurement can also provide an indication of product quality and the effectiveness of the project team.
Term
t22
5. Explain how size-oriented metrics differ from function-oriented metrics. Discuss the pros and cons of each.
Definition
Size-oriented measures are computed by normalizing direct measures of the software engineering process (e.g. effort or defects) over the product size, measured in lines of code. Function-oriented measures are indirect measures that are computed from measures of the information domain of a business application and an assessment of its complexity. Size-oriented metrics are relatively easy to collect, but can present problems when component-based or visual programming methods are applied. Function-oriented metrics can be determined much earlier in the software cycle, but are an abstraction that is open to interpretation.
Term
t23
1. What is the objective of project planning?
Definition
To provide managers with a framework to make reasonable estimates of the resources and time required for building a software product.
Term
t23
2. Why is a feasibility assessment part of the planning process?
Definition
If a project is not technically possible, there is no point in trying to build it. But technical feasibility is not the whole story. The project must also fulfill a business need to avoid building a high tech product that does not have any customers.
Term
t23
3. What resources are typically included in the project estimation process?
Definition
Human resources (number of people and skills needed)
Reusable software resources (off-the-shelf components, work products from past projects, new components that must be built)
Environmental resources (availability and scheduling needed development hardware and software).
Term
t23
4. Why is the "make-buy" decision and deciding whether or not to outsource software development an important part of the software planning process?
Definition
It maybe more cost effective to acquire a piece of software, rather than develop it. Similarly, deciding to outsource software development frees resources for other purposes (or reduces expenses) but it makes outsourcing can make it harder to control and manage delivery times and development costs.
Term
t24
1. List 3 principles for scheduling software projects
Definition
Compartmentalization, interdependency, time allocation, effort validation, defined responsibilities, defined outcomes, defined milestones
Term
t24
2. In software project scheduling work, what is a task (or activity) network?
Definition
A graphic representation depicting software engineering task dependencies and the workflow for a project.
Term
t24
3. What is "time-boxing" as it relates to project scheduling?
Definition
Time-boxing is the practice of deciding a priori the fixed amount of time that can be spent on each project task. When the task limit is exceeded, development moves on to the next task.
Term
t24
4. Approximately what percent of the project time line should be devoted to each of the activities listed below?

Planning ______
Analysis ______
Design ______
Coding ______
Testing ______

If you could expend more time in one activity, which
Definition
Planning 2-3%
Analysis 10-25%
Design 20-25%
Coding 15-20%
Testing 30-40%

Expend more time in design because design is the place where quality is built into a product.
Supporting users have an ad free experience!