Shared Flashcard Set


CompE 460
Final Questions
Undergraduate 4

Additional Engineering Flashcards




Explain what is wrong with the notion that computer software does not need to evolve over time.
Correct errors. Changing environment. Add new functions. Reengineered. Not evolve will eventually become unusable.
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.
Plan – set tasks for high quality software
Do – implements the software framework and umbrella activities
Check – monitors requirements are met
Act – improvement activities
Why are incremental process models considered by many to be the best approach to software development in a modern context?
deadlines shorter, diverse customers, more changes to requirements. The incremental process allows the delivery of partial solutions in an orderly manner, and reflects complex systems are built.
Describe the 5 phases of the Unified Process model for software engineering?
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)
Describe the three key assumptions regarding software projects that every agile software process must address.
• difficult to predict requirements and priorities
• difficult to predict how much design is needed
• difficult to predict Analysis, design, construction, and testing and this makes planning difficult.
Describe the differences between software construction and software deployment.
Construction - coding and testing of a software
Deployment - delivery, support, user feedback.
Describe the activities for a generic system modeling process.
•Allocate the system elements to five processing regions.
•A SCD to establish the boundary between the system and the environment.
•SFD to define the major subsystems and information flow.
•Develop system specification
Describe the weaknesses of use-cases as part of the requirements engineering process.
Lack of formality in descriptions
Not explicitly defined actors
Not inherently object-oriented
Developers decompose use-cases.
List the elements of the structured analysis model and explain the role of each element.
• Data dictionary - descriptions of all data objects
• ERD - data object relationships
• DFD - data are transformed through system and the functions of transform
• State transition diagram - indicates system responses to external events
Explain why encapsulation, inheritance, and polymorphism are three important characteristics of object-oriented systems.
Encapsulation - information hiding that gives low coupling and high modularity.
Inheritance - higher level classes propagated to lower level quickly. Polymorphism - number of different operations share the same name.
What are the steps needed to build an object-behavior model?
• Evaluate the use-cases for interaction sequence in sys.
• Identify events interaction sequence and relation 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 consistency.
List the four design models required for a complete specification of a software design and the role of each.
• Data - high level model user’s view data.
• Architecture – relationships among software model and hardware elements
• Interface - externally observable behavior of a class and access to its operations
• Component - internal detail of each software component
Describe the types of dependencies that can exist in an architectural design.
• Sharing - consumers use the same source or producers have the same consumers.
• Flow - relationships between producers and consumers of resources
• Constrained - relative flow of control among a set of activities
Describe the five activities associated with the software measurement process.
Formulation – derivation of metrics and measures for software representation

Collection – how to gather data used for metrics

Analysis – metric computation

Interpretation – evaluation of metrics results to see quality

Feedback – results interpretation are transmitted to the software team
Describe the role of class-oriented metrics in assessing the quality of an OO system.
Number of methods and complexity are related to the effort to test class.
Inheritance tree used to estimate the complexity of the class hierarchy.
Low coupling and high cohesion is important
large class should be partitioned to improve the modularity
Describe the WebApp interface testing strategy.
•Int. Visual content has no error.
•Int. Unit testing strategies.
•Int. test specific use-case and navigation
•Int. test complete use-cases and navigation
•Int. tested in many environments for compatibility
How is software scope defined?
•Define how the software fits into a larger systems by the context.
•Determine customer visible output and input.
•Determine input and output functions and performance.
•Represent all information quantitatively or descriptively.
Explain how size-oriented metrics differ from function-oriented metrics. Discuss the pros and cons of each.
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.
Why is the "make-buy" decision and deciding whether or not to outsource software development an important part of the software planning process?
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.
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 would h
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!