Software Engineering Final

¡Supera tus tareas y exámenes ahora con Quizwiz!

What are the four phases of project management?

-- Planning -- Organization -- Monitoring -- Adjusting

What are the levels of cohesion?

1) Coincidental (Lowest level): performing multiple unrelated tasks 2) Logical: performs a series of similar tasks 3) Temporal: puts together a series of elements that are related by time 4) Procedural: involves actions that are procedurally related, which means that they are related in terms of some control sequence 5) Communicational: the design is related by the sequence of activities 6) Sequential: design unit performs one main activity or achieves one goal; the delineation of a single activity is not as clear as the functional level 7) Functional: design unit performs one main activity or achieves one goal

What are the two general characteristics of a good design that naturally evolve from requirements?

1) Consistency: common terminology used across the system's display screens, reports, database elements, and process logic 2) Completeness: all the requirements are designed and none are left out, the design must be carried out to completion

What are the levels of coupling?

1) Content coupling: the worst coupling, because of heavy interdependence. Coupling two units access each other's internal data 2) Common coupling: If 2 software units refer to the same global variable, this global variable may be used to change the logic of another unit too. It is much better than content coupling. 3) Control coupling: Better than common coupling. One software unit passes the control information to another software unit which influences the logic of the unit 4) Stamp coupling: Better than control coupling. One software unit passes a group of data to another software unit. AKA a lesser version of data coupling 5) Data coupling: The best level of coupling. Only needed data is passed between software units

Describe three different views used in architectural design.

1) Logical view: represents the object-oriented decomposition of a system and how those parts work with each other 2) Physical architectural view: represents the mapping of the software to the hardware 3) Process view: represents the run-time components (process) and how they communicate with each other 4) Subsystem decomposition view: represents the modules and subsystems joined with export and import relationships

Explain some of the characteristics of Agile methodologies.

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 upfront because not enough is known early about the system anyway. 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 usually leads to a better-suited system. 4) Minimal documentation: Do only the necessary amount of documentation, which is just a means to an end. The source code is a big part of the actual documentation 5) Informal communication: Maintain constant communication but not necessarily through formal documents. People communicate better informally. This approach works as long as understanding is achieved 6) Change: Assume that the requirements and environment will change, and try to find good ways to deal with this fact

What are the six C-K metric for OO design?

1) Weighted methods per class (WMC) 2) Depth of Inheritance tree (DIT) 3) Number of children (NOC) 4) Coupling between object classes (CBO) 5) Response for a class (RFC) 6) Lack of cohesion in methods (LCOM)

List three customer support functions that a customer support/service organization performs.

1) taking/recording/checking the name and identification of customer to ensure that the person is a legitimate customer, 2) listen to and record the problem, 3) answer the question if the solution is known or search the FAQ database for an answer, include providing an expected fix data if the problem is yet unresolved.

What are the three components of risk management?

1. Risk identification 2. Risk prioritization 3. Risk mitigation

What are the major concepts that drove the RUP (Rational Unified Process) framework?

1. Use-case and requirements driven 2. Architecture centric 3. Iterative and incremental

List three of the six constraints placed on a networked-based architecture to produce REST

?

From the definition of software engineering, list three areas that software engineering must touch upon.

A broad field that touches on all aspects of developing and supporting a software systems, Technical and business processes, Specific methodologies and techniques, Product characteristics and metrics, People, skills, and teamwork, Tools and training, Project coordination and management

What is a naming model used for?

A naming model is needed for configuration management in order to uniquely identify and control the pieces and parts of the artifacts.

What are glue tokens and superglue tokens? Which contributes more to cohesion and why?

A) Glue tokens: the data tokens in the procedure or program that lie in more than one data slice B) Superglue tokens: the data tokens in the procedure or program that lie in every data slice in the program C) Super glue tokens contribute more to cohesion because they lie in every data slice weak functional cohesion = # of glue tokens/total number of data tokens strong functional cohesion = # of superglue tokens/total number of data tokens

Discuss one advantage and one disadvantage of the waterfall process.

Advantages: Requirements must be specified in the first step, Four main tasks must be completed before the software can be packaged for release: requirements, design, code, and test. The output from each stage is fed into the next stage in sequence The software project may be tracked as it moves sequentially through specified and identifiable stages Disadvantages: There is little task overlap, no coming back to previous stages. There is little user interaction other than in the requirements and integrate/package phase.

What does aggregation mean in OO? Give an example.

Aggregation is a "part-of" association. For example, a student is part of a class.

What are the build steps of a single program?

Compile and Link-------------------------------- The complete set of artifacts are compiled and linked together into an executable.

What is the difference between data modeling and logical database design?

Data modeling: usually entails creating an entity-relationship (ER) model of the data Logical database design: Taking as input a detailed ER model, a normalized relational schema is produced. The relational schema is a set of tables together with foreign key relationships

List three "bad smells" signaling that your code probably should be refactored.

Duplicated code; long method; large class; switch statements; feature envy; inappropriate intimacy.

Agile methods prefer rigid processes over adapting to the people. (True/False)

False - Agile methods prefer adapting to the people over rigid processes

True or false: You should always optimize your code for performance. Why?

False - Do not worry about the performance of the code at the beginning of development. Correctness and maintainability are the main focus at first. After the program is finished, then turn attention to the performance.

List two of the three strategies cited by the 2004 U.S. General Accounting Office report as key to ensuring delivery of successful software.

Focused attention on the software and development environments Disciplined development processes. Methodical usage of metrics to gauge cost, schedule, and performance targets.

What are the four quadrants in a spiral model? Trace the requirements set of activities through each quadrant.

Four quadrants are: 1. Determine objectives, alternatives, constraints 2. Evaluate alternatives, identify, resolve risks 3. Develop, verify next-level product 4. Plan next phase

List the four core values of XP.

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

When we employ the technique of generalization in design, what are we doing, and which part of OO design is closely related to this concept?

Generalization is an abstraction where we keep only the essentials and suppress the details. In OO, in moving from specific objects to a general class definition is an example of generalization

What is the difference between performance testing and stress testing?

In performance testing, the software is tested against the performance requirements set by the requirements (e.g. x number of transactions/minute)In Stress testing, the software is tested to see how and when it degrades beyond the performance criteria set by the requirements.

What are the four phases of the RUP?

Inception Elaboration Construction Transition

List two techniques you can use to perform validation—that is, to ensure your program meets user requirements.

Inspections and user evaluation test are used for validation of requirements. The confirmation of the correct software by the users of this software is the best validation.

In the MVC style, what does model really model?

It is modelling the data

List the four phases of the debugging process.

Localization, Stabilization (or reproduction), Correction, and Verification.

List five XP practices

Rapid feedback Simplicity Incremental change: Don't try to make big changes; try small changes that add up Embracing change: Try to preserve options for the future while actually solving your most pressing problems Quality work

List and explain in your own words three characteristics of a good software implementation.

Readability; maintainability; performance; traceability; correctness; completeness.

What are the three attributes of a software project that are most often considered for trade-off decisions for project adjustment?

Resources, Schedule, Project content

Give an example of a problem that may occur if a customer stays on a particular release, skips several maintenance/fix releases, and then applies a fix release.

Skipping fix releases may cause a problem, especially if the fixes may be related. Consider a case where a variable is newly defined in a fix "a", then it is again updated in a later fix "b". If one skips these fix releases "a" and "b", but apply a fix "c" that utilizes this newly introduced variable, fix "c" will not work.

Explain the main aspects that open source development shares with Agile methods

Small releases Informal, written communication using Internet tools User involvement Incremental design/development Shared Vision

Compare and contrast Agile and traditional methods

Small vs large projects Assumes change vs can't handle change Minimal documentation vs duplication Incremental design vs non-incremental

List two differences between the state transition diagram and the sequence diagram

State diagram shows the states of the objects and how those states change. Sequence diagram only shows the message and interactions among the objects.

List two reasons that have caused both software project successes and failures.

Success: User involvement, Executive management support, Clear requirement standards, Proper planning Failure: Incomplete requirements, Lack of user involvement, Lack of resources

What is test-driven programming, and which Agile process advocates it?

Test-driven programming is a method of creating software programs by interlacing testing, programming and refactoring on code. It is a software development process that relies on the repetition of a very short development cycle: Requirements are turned into very specific test cases, then the software is improved to pass the new tests, only. The Agile process that advocates it is Extreme Programming or XP.

What are the entry and exit criteria to a process?

The entry criteria must be met before the activity can start. The exit criteria must be met before the activity can be considered completed. Entry: The conditions for initiating the activity define the entry criteria Required artifacts, required people, required tools, and required definition of the activity to be performed. When the requirement specifications have attained these condition, they are considered complete and have met the entry criteria for the design task. 1. All specifications have been reviewed by the customers and other stakeholders 2. All exceptions found during the review are changed. 3. The modified specifications are accepted by all parties. The main purpose of the exit criteria is to describe the artifacts that must be available for the next activity. 1. All the artifacts are reviewed 2. All or some pre specified percentage of the errors are corrected 3. People in the downstream activities have concurred and accepted the artifacts.

List the four techniques discussed to perform verification and validation.

The four fundamental ones are: inspection/review, testing, formal prove of correctness, and static analysis.

What is the goal of a software process model?

The goal of a software process model is to provide guidance for systematically coordinating and controlling the tasks that must be performed in order to achieve the end product and the project objectives.

What motivated software engineers to move from the waterfall model to the incremental or spiral model?

The need to deal with changes, develop multiple components, to overlap the development activities, and to be more evolutionary lead to incremental process and spiral process.

Explain the role of requirements in architectural design. Explain the role of requirements in detail design.

The role of requirements in architectural design can be described as: A) A transformational step where the requirements are the input and become the reasons for how the software is to be structured B) The requirements influence the architecture choice for the system and/or C) The high level requirements posed as software elements require interaction, which is defined in the architectural design of the system. The role of requirements in detail design is more direct than in architectural design. There is a one-to-one mapping between each functional requirement and a module in detail design.

What is meant by the term principles of software engineering?

The rules and assumptions in software engineering derived from extensive observations.

Agile methods prefer working programs over comprehensive documentation. (TRUE / FALSE)

True - working software is more useful than just presenting documents

Briefly discuss the issues associated with naming variables and procedures in a program.

Try to highlight the meaning of your code in the name of the variables and procedures for good identification of their purpose and to communicate to the reader of the code.

List and briefly explain three of the refactorings mentioned in this chapter

a) Extract method - A process that turns a code fragment into its own method; b) substitute algorithm - A process that replaces the body of a method; c) move method - A process that moves an algorithm from one class to another where it makes more sense; d) extract class - a process that divides into two.

List three concerns you may need to look into before choosing a configuration management tool.

a) is the tool easy to learn and what kind of education is provided by the tool vendor, b) does the tool have all the needed functionalities to accommodate the organization's naming model and access model and c) can the tool accommodate geographically separate, multi-site development and support.

Describe the steps involved when a customer problem is passed from the customer service/support representative to the technical problem/fix analyst until the problem is resolved.

a) problem description and related information is summarized in a problem report and submitted to the problem/fix group; b) the problem/fix analyst will explore and analyze the problem; c) the problem/fix analyst will then accept or reject the problem based on the analysis; d) if the problem is rejected then the customer support representative is notified; otherwise, the problem is accepted, a change request is generated and the problem enters a fix cycle of design/code/test;e) the fix may be individually packaged and immediately released or may be integrated into a fix-release package, depending on the problem priority level; f) the support FAQ database is then updated to reflect the closure status of this problem.

List the four major activities associated with software configuration management.

a) understand and agree on organization's policies, process activities, and the resulting artifacts that need to be managed, b) determine and define the framework that needs to be used to manage the artifacts, c) determine and bring in any tool that is needed to facilitate the management, and d) train and ensure that the agreed upon configuration management process is practiced and adhered to.

When and where was the term software engineering first introduced?

in 1968 at a North Atlantic Treaty Organization (NATO) conference held in Germany

List and discuss the elements of a project plan.

� Brief description of the project requirements and deliverables � Set of project estimations � Work effort � Needed resources � Schedule � Set of project goals to be achieved � Set of assumptions and risks


Conjuntos de estudio relacionados

Marketing Segmentation and Target Market

View Set

Sport Management Exam 1 Chapters 1-5

View Set

Lacharity Chapter 5: Safety and Infection

View Set

Dispensing from ADS Cabinets (Ch 9)

View Set

Maternal Newborn Success: High Risk Antepartum Reveiw Questions

View Set

University Academic Integrity Quiz

View Set