Software Eng Exam 1

Lakukan tugas rumah & ujian kamu dengan baik sekarang menggunakan Quizwiz!

Describe the four problems with the informal 'code and fix' approach to software systems development.

1. Developers start the project with no precise understanding of what the customer needs from the system and what the system is to deliver. No clear understanding of the features to be delivered. 2. No clear agreement between the developers and customer about when the project is finished. Without a precise definition, the customer can add and change the features to be delivered. Equally important, the development team is unable to estimate the time and budget needed to complete the project. 3. Without a precise definition at the start of the project, an adversary relationship between the customer and development team can form. The customer becomes frustrated with problems in delivered system versions and the developers frustrated with the constant changes demanded by the customer. The constant thrashing and code revisions can lead to poorly structured code that is hard to understand and maintain

What are the four problems/characteristics of code & fix development

1. Development (coding) begins without a precise understanding of what the client wants / needs 2. There is no clear agreement of when the project is finished. 3. C&F results in poor relations between the client and developers 4. Poorly designed and unmaintainable implementation (code).

Briefly describe two activities that take place during Post-Delivery Maintenance as described in the text.

1. Identification and repair of defects (bugs) in the delivered system. 2. Extension of the system with new features or enhancing existing features

Describe the importance of detecting defective or missing system requirements early in the project lifecycle.*

A defect in the requirements that is identified early in the lifecycle can be fixed more easily (cheaply). This is because early in the lifecycle the only artifacts are documents and models. However later in the lifecycle, code will be written which represents a serious investment of developer resources. Finally, once the system has been delivered / put in production, any failures may damage the customer's ability to maintain their organization's revenue generating operations.

A Process's Lifecycle is divided into phases that describe...

Activities performed and Artifacts produced

T/F Every use case describes a secondary actor

False

Describe the characteristics of "Programming in the Small" vs "Programming in the Large" as described in the text *

Programming in the Small describes a software project that is being executed by a single or few developers over a period of weeks or few months. The system is relatively simple and there are few requirements. Programming in the small requires little discipline and does not require following a software engineering process. Programming in the Large describes a software project that is being executed by many developers (>5) over a period of several months. The system is complex so there are many requirements whose implementation will involve building a large amount of code. This type of project requires the discipline of a software engineering process.

What are the Generic Lifecycle Phases

Requirements, Analysis, Design, Implementation, Integration Testing & Delivery

What is the Capability Maturity Model Integration (CMMI)

The Capability Maturity Model Integration is a process that helps organizations streamline process improvement and encourage productive, efficient behaviors that decrease risks in software products and service development.

Who is responsible for integration Testing

The QA team

What are the Inception phase deliverables

The decision whether the system will be worth the investment needed to build it (Business Model). The initial version of the system's requirements which will continue to evolve to the end of the Elaboration Phase. A rough idea as to the project's schedule and so its budget. What are the risks and other problems that need to be overcome. The documentation as described in section 3.10.1 of the text.

Explain the significance of figure 2.4 in the book (Slide 27). How does this figure reflect the emphasis of the team's efforts during each iteration (increment) as they move though the project lifecycle?

The figure describes how the emphasis that the team places on SDLC activities changes throughout the project lifecycle. Early in the project lifecycle, the team will likely emphasize requirements and analysis activities. This is because they lack deep knowledge of the problem domain. Later in the project lifecycle, the emphasis shifts to design and construction activities. This is because as the team has become more knowledgeable in the problem domain and they are able to make design decisions without further analysis of the requirements or problem domain.

T/F Actors are usually a person but can be an external system that interacts with the system.

True

T/F Actors describe a user's role when interacting with the system

True

T/F Every use case describes a 'primary actor'

True

Two Application Categories

1. Custom Application 2. Commercial Application

Asking the SME "why" is important when:

A requirement is poorly understood or vaguely defined. A requirement seems unreasonable. A requirement seems inconsistent with other requirements

What are umbrella activities

An Umbrella Activity is an activity that is executed by the development team throughout the Project Lifecycle.

The UP is a __________________ process

Incremental (iterative)

Match each of the following UP project deliverables to one of the four Unified Process phases. Final versions of all artifacts

Transition

What is Programing in a Large

1 That contain hundreds of thousands, even millions of lines of code. 2. That is built over the course of several months or years. 3. Containing many dependent and interacting components. 4. That involves the combined contributions of many engineers and technicians (hardware and software).

What are the three arguments against a waterfall process presented in the slides?

1. A waterfall-based process stipulates that each of its phases be executed only once. This means that the development team has a single opportunity to identify and record all of the system's requirements. 2. Waterfall requires that the artifacts produce by each lifecycle phase be 100% correct and complete before moving on to the next phase. 3. Although 100% correct and complete is a worthy goal, is difficult (often impossible) to get this coverage at the project's start when the team is least familiar with the project problem domain.

What are the characteristics of an Agile model process?

1. Agile models eliminate the time and cost of producing and maintaining the artifacts (documents) mandated by a prescriptive process 2. A process based on the Agile model (Scrum) is free of mandated activities and rigid controls 3. Agile models rely on the development team self-organizing and taking responsibility for the project's success free from burdensome oversight.

Fill in the blank with one of the four roles we identified in a software engineering process. 1. The client funds the project for the _________. 2. The SME has the interests of the _______. 3. The SME describes the problem to the _______. 4. The developers explain their solutions to the _______. 5. The developers deliver a system to the _______.

1. Developers 2. Client 3. Developers 4. SME 5. Users

What should be accomplished at the end of each iteration?

1. Each iteration delivers a partially completed system that provides additional functionality over the previous iteration's delivery. 2. Each iteration provides the developers the opportunity to evolve the system's design with a better understanding of the system's problem domain and requirements. 3. Each iteration provides the developers the opportunity to evolve their software development process for the given project.

Provide at least four reasons from the text describing why it is important that a project's documentation be maintained throughout the project lifecycle.

1. Each lifecycle phase relies and builds on the knowledge built by its previous phase. For example, the system will be impossible to design without the knowledge of its requirements and domain analysis. Capturing (documenting) the results of each of the project's phases helps to ensure that the following phases will be correctly / completely executed. 2. It is common for project team members to leave the project throughout the project lifecycle. Current documentation protects the project from losing vital information concerning the project's purpose, goals, requirements, design decisions, etc. with the loss of an individual. 3. It is common for new team members to join the project throughout the project's lifecycle. Correct and up to date documentation provides a means of quickly educating new members joining the project as to the project's purpose, goals, requirements, design, etc. 4. Integration testing of the system must be complete. That is, all aspects of the system's operation must be covered by integration tests that validate the system's implementation. Detailed requirements and the other documents produced by the team give Quality Assurance the information they need to produce complete and correct integration test scenarios. 5. Maintenance includes both fixing problems discovered after the system is in production and adding new features or modifying existing features. Because these activities are often carried out after development ends, it is often the case that developers other than those that originally constructed the system will be assigned the task of fixing or extending the system. Proper documentation will help to ensure that these changes can be made most efficiently and with less change of damaging the existing system

Why is maintaining Documentation Important?

1. Each phase of a project's execution relies on the documents produced by the previous phases. 2. Continuity: Software engineers often leave taking their knowledge of the problem domain and systems design with them. 3. When new team members join the project, they can rely on detailed documentation to aid in their swift and productive integration with the team. 4. Integration Testing is executed by the QA team who needs requirement documents, use cases, and other design documents to produce integration test scenarios that are complete and correct. 5. Future extensions and bug fixes might be carried out years after the completion of a successful system.

List the CMMI Maturity levels and explain what each is

1. Initial Level: The organization has no development process 2. Repeatable Level: The organization documents a repeatable software development process 3. Defined Level: The organization formalizes the process's execution with procedures to be followed by project teams. 4. Managed Level: Organization monitors the process execution to quantify the quality of its execution by project teams. 5.Optimizing Level: The organization makes adjustments to thier process aimed at improving the quality of the software produced.

Name and describe in your words the five levels of an organization's CMM compliance.

1. Initial. At this level the organization has no software development process. 2. Repeatable. At this level the organization has documented a repeatable development process that can be applied to their projects. 3. Defined. At this level the organization is encouraging (insisting) the use of their process by integrated the development process into its overall business practices. 4. Managed. The process includes monitoring the execution of the process by the development teams in order quantify (measure) the effectiveness of its execution. 5. Optimizing. At this level the organization actively monitors, evaluates, and makes changes to their development process to improve its effectiveness.

What are input/outputs for each generic phase 1. Requirements 2. Analysis 3. Design 4. Implementation 5. Integration Testing

1. Input - SME; output - Formal Requirements/ Use case Documents 2. Input- Formal Requirements/ Use Case Documents; Output - UML Models describing the problem domain 3. Input - UML Models describing the problem domain; Output - Software 4. Input - Software; Output - Executable system 5. Input - Executable system

What are the three common lifecycle models?

1. Prescriptive 2. Incremental 3. Agile

What are the characteristics of a Prescriptive Lifecylce model

1. Prescriptive models describe (prescribe) in detail activities and artifacts the development team produces at every phase in the process. 2. Prescriptive software development is based on the traditional, top-down management of the project lifecycle. 3. Prescriptive models emphasizes monitoring and control of the project lifecycle.

What are three techniques that are used when organizing formal requirements?

1. Requirements can be categorized by service or subsystem e.g. Customer Management. 2. Requirements must be uniquely identified. An ID is needed to facilitate traceability. 3. Requirement can be decomposed from general to specific across multiple iterations in a parent-multiple child (1-N) relationships. That is, a non-specific requirement identified in the first iteration of requirements gathering, can be decomposed into more specific requirements in a second or even third iteration.

What problem does the SME experience when attempting to correctly identify all of the requirements for a system? Hint: There are three.

1. The SME forgets about, or is ignorant of, important details concerning the system's operations. 2. The SME provides information they think is correct but is incorrect. The SME is unable to imagine, or neglects to mention, the system's responses to all possible operating conditions i.e. they problems or errors the system will encounter during normal operations. 3. The customer often wishes to change or add new requirements to the system after the requirements phase activities have completed.

As described in the book (not slides), describe the three system changes described in the Winberg case study? Which of these changes were triggered by the developers and which by the client?

1. The programmer was directed to use double precision variables which it was felt slowed processing down. This was a development issue. 2. The development team identified a more efficient image recognition algorithm and the system was redesigned to accommodate the new algorithm. This was a development issue. 3. The system's requirements were changed by requiring that dollar bill recognition accuracy be increased from 98% to 99.5%. The client triggered this change.

What are the five defining characteristics of an incremental software development workflow? *

1. The system is constructed incrementally in stages called iterations. 2. Each iteration begins by selecting some number of unimplemented features to be completed during the iteration. 3. Each iteration starts with a requirements refinement activity that refines the analysis and design of the features selected for the iteration. 4. During the iteration the team completely implements the selected features. 5. Each iteration ends with an opportunity for the SME/client to evaluate the evolving system and find problems and make recommendations.

Applying 'Engineering Discipline' to software engineering implies problem solving by a repeatable process that involves what four activities?

1. Understanding the problem. 2. Designing and planning a solution to the problem. 3. Executing the solution in a predictable / scheduled lifecycle e.g. writing an application over a predicted period of time. 4. Ensuring that the solution is useful and safe.

What are the three arguments supporting waterfall processes? Hint: Presented in the slides but elaborate with more detail

1. Waterfall Processes bring discipline to software development. Developers are encouraged to understand the problem to be solved, analyze its properties of the solution, and consider alternative solution's design before starting implementation. Management likes the idea of planning and scheduling the project deliverables i.e. knowing when to expect the system. 2. Waterfall processes require a detailed recording of the requirements, analysis and design models. The documents themselves have value as management, maintenance, testing, and training materials. 3. Producing requirements and design artifacts that are 100% correct is a worthy goal. The effort put into perfecting requirements, analysis, and design 'seems' professional and in-line with disciplined engineering.

What are other arguements against the waterfall process?

1. Waterfall does not recognize the need to accommodate changes in the system's requirements after the requirements phase ends. 2. Error in requirements tend to be caught late in the project lifecycle where they are most expensive to fix i.e. during construction or integration testing. 3. Waterfall formally delays system integration until late in the project lifecycle where problems are the most expensive to fix. 4. Waterfall does not recognize the benefits of integration testing of the system throughout the project lifecycle. 5. Customer must be patient to see what they are buying as the system is delivered late in the project lifecycle.

Describe the two considerations an organization takes into account when defining their unique software development process

1. What effect will the process have on the development team's productivity? The time the dev team spends producing artifacts and monitoring their process extends the project's schedule and budget. 2. How critical are the organizations systems? How much will a bug or failure cost e.g. loss of brand loyalty vs loss of life? The greater the costs, the more the organization will be willing to spend to reduce risk.

What are the "What" questions requirements should answer concerning the system's features

1. What objects are known to, and manipulated by, the system? 2. What services does the system provides to its users? 3. What are the system's non-functional requirements?

Examples of Software Project Failures

1. Working systems delivered but late and over budget 2. Systems delivered with missing features needed by the client 3. Systems delivered containing bugs 4. Systems not delivered at all

Engineering Discipline means developing software system by a repeatable process that involves these four activities:

1.Understanding the problem to be addressed by the new system. 2.Designing and planning a software-based solution to the problem. 3.Building the solution in a predicted / scheduled project lifecycle. executing a project over a predicted period of time. 4. Ensuring that the resulting system is useful and reliable

What three qualities describe a software development process that is based on the Prescriptive Model?

A Prescriptive Process prescribes (describes) a development process that guides the construction of software-based systems. A Prescriptive Process describes a set of distinct set of activities executed during each phase of the process and the set of artifacts produced by each activity. A Prescriptive Process provides the development team a set of Umbrella Activities used to monitor and manage the project's execution

Rephrase the definition of a Software Development Process given in the slides. Describe the differences between the Waterfall and Unified Process processes.

A Software Development Process is a specific set of phases, activities, and artifacts (deliverables) that an organization adopts as "our process for building software systems". The waterfall process provides a series of phases, each of which describe a number of activities and artifacts to be produced during each phase. The waterfall process mandates that each phase be executed in a specific order and only once. The Unified Process is also a prescriptive process provides the same phases, activities, and artifacts. The difference is that UP is an agile process that divides the project into a number of iterations and executes its activities during each iteration.

What is a system?

A collection of software and hardware services that when combined solves a problem / provides a service. Systems are often composed of many applications that execute independently and communicate over a network or other IPC.

What is the difference between a lifecycle model and a development process? Describe the two models presented in the first few slides?

A lifecycle model describes an approach executing a software development project. A model describes a philosophy towards building software systems. The two models are Prescriptive and Agile. Prescriptive model 'prescribes' a series of activities and artifacts that the development team produces while executing a project. The Agile model minimizes the overhead of a prescriptive process by substituting the management of the team with a team that self organizes and executes the project to a successful conclusion.

What is the role / responsibility of the SME and Customer at the end of each iteration in an incremental lifecycle model? What is the advantage of this approach as compared to a waterfall-based lifecycle model?

After the construction phase of each iteration, the SME and Customer perform an evaluation of the partially completed system. During this System Evaluation activity, the SME identifies any problems with the design or faults in the implementation. These issues will be addressed at the start of the next iteration. In a strictly traditional waterfall development process, the SME would not have access to the system until near the end of the project lifecycle during Integration Testing. At this point, the effects of bad requirements or design decisions will be expensive to resolve.

What sets Umbrella Activities apart from the activities executed during each of the six generic SDLC phases?

An Umbrella Activity is executed throughout the entire project i.e. across all phases of the generic SDLC.

Describe the role auditing plays in determining an organization's CMMI level. What is an advantages of a high (3-5) level of CMMI compliance?

An organization's CMMI level is determined by audit performed by an independent third party hired to perform the audit. The CMMI auditing team examines the organization process and (more importantly) their execution of their process. They visit, observe and evaluate, and independently determine what CMM level compliance the organization is operating at. An organization that obtains a high CMMI compliance level is able to assure their customers that the systems produced by the organization are likely to be free of defects. This can be an advantage over the organization's competitors in the marketplace. Another advantage may be that the organization is able to obtain insurance from damages caused by defects in their products

Requirements should focus on describing the problem and solution using terms found in the _______________ domain.

Application

Why is asking the SME "why" important when gathering requirements

Asking why may uncover faulty reasoning by the SME. Asking why also helps to improve the developer's understanding of the system's problem domain

Features of the Unified process include

Based on traditional OO Analysis and Design. Is prescriptive but incorporates an incremental approach to system development. Is tightly coupled with UML as its analysis and design notation.

What do Features and Requirements share in common? What is the difference between Features and Requirements?

Both features and requirements provide a means of capturing (recording) the services that a system is to deliver (implement). The difference lies in the how formally the services are described. A feature is a general, broad statement that informally describes a system's service e.g. Customer Management, Inventory Management, Order Processing, are all features of an ecommerce application. Each feature may be described in a few paragraphs to give the reader a general impression of the feature's purpose. Requirements are formal and detailed descriptions of the system's features. A requirement will describe in detail how a feature is to look or behave for the user. For example, one or more requirements will describe how a Customer is to be represented in the system i.e. its attributes, etc. Several requirements may be required to explain how Orders are to be created and tracked through the system. Features lack the detail expected in requirements. Features are often used to categorize the requirements that address the feature i.e. the many requirements describing in detail the feature Customer Management

The transition phase deliverables

By the end of the Transition Phase the team should have delivered a complete and correct system including updated design models and other documentation.

When does Code and Fix work ( SE without discipline)

Code and Fix can be made to work for small projects involving a few developers

Match each of the following UP project deliverables to one of the four Unified Process phases. Beta versions of all the artifacts

Construction

Match each of the following UP project deliverables to one of the four Unified Process phases. The completed architecture

Construction

Match each of the following UP project deliverables to one of the four Unified Process phases. The initial user manual

Construction

What is the meaning of 'criticality' when describing a system i.e. the system's criticality? What is the relationship between criticality of their applications and the resources an organization is willing to invest in their software development process?

Criticality describes how severe the consequences of a system failure. A critical system (a system with high criticality) is one whose failure can cause major revenue loss, infrastructure failure, or even loss of life. Organizations whose system failures can result in expensive penalties will be willing to spend more to support a rigorous development process that attempts to remove all possible defects from their systems before they ship. However, the more rigorous a process, the more resources (time and personnel) will be needed to support and execute.

Match each of the following UP project deliverables to one of the four Unified Process phases. The completed analysis artifacts

Elaboration

Match each of the following UP project deliverables to one of the four Unified Process phases. The completed requirements artifacts

Elaboration

Match each of the following UP project deliverables to one of the four Unified Process phases. The nearly completed analysis artifacts

Elaboration

TRUE/FALSE Requirements Should describe "how" the system is designed / implemented

FALSE

T\F Actors identify individual system users.

False

T|F A properly managed project will employ either formal requirements or use cases exclusively. If this is not true, under what circumstances is each type of requirement best suited? Is it safe to say that the use of non-functional requirements is needed regardless of use case or formal requirements?

False The use of functional requirements is mandated by the organization's process when the semi-formal nature of use cases is not sufficient for the criticality of the organization's products or services. Use cases are not well suited for describing systems that lack the user-system interactions described by use case scenarios. Use cases are best at describing functional requirements that describe the interaction between the system's users and the system itself. Use cases are not as specific as functional requirements, but are consider easier for the team to identify and record. Yes. Non-functional requirements describe quantifiable aspects of the system such as performance metrics, constraints on the implementation, and others. These types of requirements cannot be described with use cases and by definition are not functional requirements.

What are the Requirements Workflow Artifacts

Formal Requirements: A document containing written declarative statements that (more or less) precisely describes what the system knows and does. Use Cases: Descriptions of the interactions between the system and its users indirectly describing what the system knows and does. UML Activity Diagrams: UML diagrams that describes graphically the actions taken by the system when interacting with the user. Glossary: A document that describes the domain-specific terms used to describe the system. Prototypes: Simple mockups of some aspect of the system.

what are Formal Requirements

Formal requirements are short declarative statements that states a responsibility or constraint on the system's implementation.

Match each of the following UP project deliverables to one of the four Unified Process phases. The initial use cases

Inception

Match each of the following UP project deliverables to one of the four Unified Process phases. A preliminary version of the architecture

Inception

Match each of the following UP project deliverables to one of the four Unified Process phases. The initial version of the business model.

Inception

What is an application?

Individual software programs (executables) that operate stand-alone or contribute to overall systems Systems are often composed of many applications that execute independently and communicate over a network or other IPC.

what are difficulties in applying Formal Requirements

It is difficult for the SMEs to produce the level of detail required to successfully apply formal requirements It is difficult for the developers to effectively internalize and apply such a large volume of information. It is expensive to maintain a large set of requirements. With large numbers of requirements, there is often duplication of the same feature multiple times. With large numbers of requirements, there is often conflicting requirements that state different goals for the system The SME becomes unavailable after the requirement gathering activities have finished

List the UP defined workflows

Iteration Planning Requirements Workflow Analysis Workflow Design Workflow Implementation Workflow Test Workflow

Describe the three types of Use Case Scenarios presented in the slides? Which of these scenarios is described as the 'Happy Path'? *

Main Success Scenario: The scenario where the actor / users obtains their goal using the defaults presented by the system. Alternative Failure Scenario: Scenarios in which the actor fails to obtain their goal. Alternative Success Scenario: A scenario where the actor executes alternative tasks/actions but still obtains their goal. Happy path is another name for the MSS.

Provide An example of a Main Success, Alternative success and Alternative failure scenario

N/A

What is the relationship between phases, activities, and the artifacts produced during each phase of the generic waterfall model? What is the input into the first phase of the generic waterfall model? *

Phases define periods of the project lifecycle during which specific activities are executed by the development team. Each phase's activities support specific aspects of the development of the system e.g. during the Requirements Phase, requirements gathering activities are executed. Activities describe specific software development tasks to be executed and associated documents (artifacts) to be produced by the software development team. The organization defines activities which they feel best supports and assures the successful delivery of systems in their domain. Artifacts are the documents, code, screens, schema, and other 'work products' produced by the development team as defined by their organization's process and activities. The first phase of the generic lifecycle model is Requirements and input comes from the project SME. For the exam: Know all of the generic phases and the outputs / inputs to the next phase.

Name and describe in your own words the five umbrella activities described in the slides.

Project Tracking is a project management activity that compares project's current progress (percentage complete) against the expected progress suggested by the project's schedule. The goal is to understand if the project is behind schedule and to take corrective actions. This comparison occurs many times over the project lifecycle. Risk Management is the identification and management of project risks. A risk is any foreseeable problem such as weak requirements, unknown technologies, etc. that threatens the successful completion of the project. Risk are recorded in a Risk List and addressed by the development team ASAP. Development Artifact Management is the activity of maintain the development artifacts from loss or corruption. These are the artifacts produced by the dev team during implementation. Artifacts include source code, HTML and CSS documents, SQL schema, build scripts and others. These artifacts are stored in the project's source repository e.g. GIT. Project Document Management is the activity of protecting project documents against loss or corruption. These documents are typically the artifacts describe and mandated by the team's process. They can include schedules, requirements, analysis and design models, meeting notes, etc. Project documents are usually maintained in a document management system such as Microsoft SharePoint or its alternatives. Testing is the activities of building and executing tests that confirm the correct implementation of the system. There are two basic test types: Unit Tests are tests written by the software developer and test at the class level. Integration Tests are tests executed against the operational system usually by a separate Quality Assurance team.

From the slides, what does the 80-20 rule tell us about the efficiency of collecting correct & complete requirements in a waterfall process?

Recall that when practicing a Waterfall Process, the requirements are expected to be 100% complete before moving to analysis, design, etc. The 80-20 Rule says that capturing the last 20% of a complete set of requirements will take 80% of the requirements gathering effort. In this diagram, the initial 50-60% of the requirements will be captured relatively quickly and so cheaply. But, as the graph illustrates, the remaining percentage becomes increasingly expensive to capture. This is especially true of the waterfall-mandated big-up-front-design which requires that a complete set of requirements be defined before analysis can begin.

What is Requirements Traceability? What purpose does traceability serve? How is traceability accomplished? *

Requirements traceability is the ability to track the implementation of every individual requirement through analysis, design, construction, and testing phases of the SDLC. Traceability's purpose is to ensure that all of the requirements identified for the system are actually implemented and tested for correctness. Traceability is typically accomplished by identifying for each requirement, the component(s) in our software design that are responsible for implementing the requirement. Unassigned requirements indicate 'holes' in our analysis and design that must be filled. Each requirement should also be traced to an integration test that determines its correct implementation

List and briefly describe what is accomplished by the development team during each of the six generic lifecycle phases described in the slides.

Requirements: Builds documents that list in varying levels of detail, the system's responsibilities i.e. what it needs to know and do. Analysis: Builds an in-depth understanding of the system's problem domain. Design: Builds models of the system's software structure. The design includes the classes and components to be build implementing the system. Implementation: Builds (code), integrate, and test the system's implementation. Includes both software and hardware components. Integration Testing: Tests the system as a functional whole. Testing performed after implementation, but before the system is delivered or put into production. Delivery: The delivery of the system to the customer or installing the software in the production environment making it available to its users.

What are three metrics can be used to measure the quality of the requirements workflow activities?

Something like... 1. The number of additions or changes made to the requirements during elaboration provides an indicator of how well the team is converging on a stable set of requirements. 2. The number of changes made by the development team after elaboration is an indication of the quality of the job performed by the team. This can also indicate a problem with the SME's understanding of the problem domain. 3. Changes to, or new requirements added by the customer after elaboration indicate the possibility that budgets and deadlines will not be met due to design and code changes.

What are features?

Statements that informally categorize and describe the services to be delivered

What are the common types of project failures caused by an undisciplined approach to building systems?

Systems delivered late and over budget, or even canceled. Systems delivered with missing features, bugs, and other defects that are addressed by never-ending releases (versions).

what is integration testing

Testing the system as a whole

Describe in a paragraph some reasons why requirements should answer the what questions, the why questions, but not the how questions

The 'what' questions describe the features / services the system needs to provide. The 'why' questions can help: 1) Uncover underlying concepts or requirements that may be missing. 2) Uncover faulty reasoning on the part of the SME or the developers. 3) Clarify and reinforce the dev team's understanding of the problem domain. 4) Expand on requirements that are vague i.e. not specific enough. The 'how' questions concern how a requirement is to be implemented in the system and should be answered in the system's design.

Describe the purpose the Capability Maturity Model serves in an organization's efforts to execute their own software development process. Hint: Does CMMI describe the team's process?

The CMM does not describe or even suggest a process e.g. Unified Process. Rather the CMM describes strategies for describing a process, monitoring the execution, and improving how well an organization executes their individual process, irrespective of the organization's specific process. For example, the CMM suggests that an organization collects metrics describing the effectiveness of an organization's process but not which metrics should be collected.

The Elaboration Phase Deliverables

The completed requirements (or 90% anyway). The "Risk List" document that identifies the risk items that threaten the project's success. The 'completed' schedule and budget (Project Management Plan). The mostly completed (80-90%) system's architecture (high-level system design). The mostly completed (70-80%) the analysis artifacts. Other documents and models as described in section 3.10.2.

What is the goal of the requirements workflow

The general goal of the requirements workflow is understanding and capturing the client's problems / needs

What is the goal in the Analysis workflow

The goal of the analysis workflow is to refine the requirements and develop detailed knowledge of the problem domain

What are Requirements?

The mechanism used to formally describe the features to be delivered with the system

The construction phase deliverables

The system's design should be complete i.e. no major design changes. All items on the Risk List should be addressed. A release of the system with most (if not all) of its features completed i.e. a beta release. Initial versions of the user's manual, installation manual, etc. Other items as described in section 3.10.3.

Describe the Project Management Triangle. Describe an example of a compromise dictated by the management triangle.

The team can deliver a quality system, or an inexpensive system quickly, or a system with many complex features, but we can deliver only two. This illustrates a tradeoff of cost vs. reliability vs. scope (complexity or number of features). For example a system can be delivered cheaply and with many features, but because we delivered so much in a short amount of time, it is likely that the system will of poor quality contain many bugs and problems.

What does the waterfall process contribute to the Incremental Model of software development?

The waterfall process describes a number of generic lifecycle phases that are executed while building a software system. Within each phase, waterfall suggests activities to be performed and artifacts to be produced. The incremental model suggests that the system can be built incrementally over several iterations. The activities performed during each iteration are suggested by the waterfall process. Thus, the incremental model suggests the execution of a mini-waterfall during each iteration.

What is the Waterfall process based on? What is the Waterfall process strongest characteristic?

The waterfall process is based on the prescriptive model Its strongest characteristic is that each phase is executed only once.

What are the Project Management Tradeoffs

There is a tradeoff between these three qualities. If they want to increase scope (features), they will have to increase budget or decrease quality. If they want to decrease costs, they must reduce scope or decrease quality. If they want quality systems, they must decrease scope or increase cost (schedule).

What is the Unified Process

Unified Process (UP) is an iterative (incremental) process whose execution involves iterations of N weeks.

What is unit testing?

Unit testing is way to test individual unit for their functionality instead of testing whole application

What is a Problem Domain?

it is the knowledge needed by the dev team to build a system that is useful to the client and users. Before the dev team can successfully build a system, they must become mini-experts in the concepts, roles, terminology, business rules, operations and other aspects of the system's problem domain

Provide three reasons from the book (Section 10.1) why determining what the customer needs from the system can be difficult.

· The client many not have a clear & concise understanding of what is needed from the system. · Describing in detail all of the 'things' the system needs to provide is difficult i.e. all of the behaviors and non-functional aspects of the system. · The client many have difficulty describing what they want i.e. they do not appreciate what technology can offer them in the way of a solution. · The client may be unaware of the true nature of their problem i.e. working under a set of incorrect assumptions.


Set pelajaran terkait

Qualys Vulnerability Management v1

View Set

RN Concept-Based Assessment Level 2 Online Practice B

View Set

Organic Chemistry Ch. 8 study guide

View Set

Unit Test review- English "How Sugar Changed the World"

View Set

CH. 11 Treatment of Psychological Disorders Smartbook

View Set