201 Car Fax

Pataasin ang iyong marka sa homework at exams ngayon gamit ang Quizwiz!

What does it mean if you are plotting below the "Ideal task-burn down rate" line in a Burn Down Chart?

If you are below the ideal task burn down rate line that means you are ahead of schedule. You are accomplishing more work than it was expected in that amount of time.

Describe the purpose of integration testing. Assume you have development components D1, D2, D3 and D4. What bugs do integration testing finds?

Integration testing makes sure there are no bugs when assembling pieces. For example if you are piecing together components of d1, d2, d3, and d4 and there are no bugs in them then integration testing is used to make sure that there are no bugs when you put them all together.

What are the three components that comprise Continuous Integration?

Integration, Compilation, Testing 2/3???????????

What are the three reasons we identified for (always) using a version control?

It is essential to sharing work and working with other programmers It always has a back up of the work You can use previous versions to compare to current version to help debug.

Quantitatively speaking, why is it important to catch bugs early

It is important to catch bugs early because the earlier you catch them the cheaper they are to fix.

Why must we keep use case diagrams on separate diagrams from abuse case diagrams?

It is important to keep use case diagrams on separate diagrams from abuse case diagrams because they are so similar it is incredibly east to get them mixed up and you can not allow something as negative as an abuse case to go through as a feature.

What are 3 benefits of using TDD

It keeps the code organized Code that is created during TDD always does the same thing from creation to end TDD encourages/enforces/makes the project have low coupling with few dependencies.

What is the same between an abuse case and a use diagram? What is the differnce?

An abuse case and use case both describe what would happen, but an abuse case specifically focusses on the negative part of it. An abuse case is a use case that is for the negative or harm inducing parts.

What is a asynchronous message?

An asynchronous message is a message that is not relied on or is not relying on something else for it to operate. Nothing is waiting on it or it is waiting on nothing to be delivered.

What is the purpose of an automatic build system? In your description of its purpose, include at least one example of an automatic build system. What is a scenario where build systems help?

An automatic build system is a system that can create a project (which is comprised of many tasks that are identical and repetitive). An automatic build systems allows for all of the identical and repetitive tasks to be automated in an efficient and simple manner, an example of this would be ANT. A scenario where build systems help are when a new developer joins, they don't know how to create the project or get it to compile, so the ANT does it for them.

Define the term incremental in the context of a software development process

An incremental software development process is a process that works on a small part of a much larger project and then works on it until it is completely done and fully tested. Then it moves on to the next small part of the much larger project. This is like paining the Mona Lisa one small square at a time.

Give an example of an external coding standard. Give an example of an internal coding standard.

An internal coding standard would be Miami's Coding Standards, it is a document that explains the formatting and what not of how code should be typed at Miami University. An external coding standard is Java's coding standards, this explains how all java code should be typed and formatted.

Define the term iterative in the context of a software development process

An iterative software development process is a process that works on the whole project and then keeps refining until it is fully complete. Sketching the Mona Lisa, Painting it, and then refining it until complete.

Name another type/form of requirement elicitation other than Blue Skying

Another type is Observation. This is where you observe how the client would perform the task without the software.

Define architectural Design and detailed design. What is the difference between the two?

Architectural design is more abstract where detailed design is more concrete idea. Architectural design states how something will work or be done, where detailed design states how something will work or be but with heavy details that ground it.

Version control systems may attempt to automatically merge changes from two or more sources. Automatic merging is not always possible. Describe a specific situation that would cause automatic merge to fail.

Automatic merging will fail if the same method is uploaded with lines that conflict. Most systems "Punt" the commit in this situation, punting means that it send it back to the user and tells them to fix the errors.

What is blue Skying in the context of the requirement elicitation?

Blue Skying is the act of brainstorming. This is where ideas are thrown out and everything is "let loose"

Give an example of a bug tracking software.

Bugzilla and Clearquest

Which of the following is true about Use Case Diagrams? A. Describes ONE THING that the software needs to do B. More detailed than a user story C. Not written by the customer D. All of the above

C. Not written by the customer

Define both a Centralized and a Distributed version control system (VCS). Provide an example of a Centralized VCS and Distributed VCS in your definition of each.

Centralized Version Control System is defined as a more traditional version control system. An example of CVCS is Apache Subversion. A distributed version control system is more of a "peer to peer" version control system. An example of DVCS is git. Provides all the information from the repository.

Define Check Out and Check in

Checking out is more than viewing, it create the working copy of a project on your local machine, and checking in involves committing and automatic merging Checking in means entering/inserting something into the repository. You would use this command when you wan to enter information into the repository.

Why should we not write clever code?

Code should be written simply so debugging and co operation can occur without error. Cleverness makes the code too complex to read and understand. Too difficult to debug. We should strive to write elegant and simple code.

Define coupling and cohesion. What do you strive to achieve?

Cohesion calls for everything inside a class to be about one specific thing. If it is not vital for the class it could be better else where. Coupling is the dependence classes have on each other. High coupling means classes are dependent on other classes a lot, where low coupling means that few classes are dependent on other classes. We want high cohesion and low coupling in our ideally designed projects.

What is a draw back of the prototyping process?

One drawback of the prototyping model is that there is a lot of wasted work. The other issue is not knowing when to stop.

What are one of the two drawbacks of the waterfall method?

One drawback of the waterfall method is that it is easy to experience early freezing.

Which phase of the software development process/steps (such as waterfall) does prototyping occur in?

Prototyping fits in the requirements steps.

What is regression testing? When should it be done?

Regression testing is retesting your piece after modification to make sure there are no defect that occurred while fixing the defects earlier. It should be done when you have fixed a bug in the system so you can make sure that no new bugs have appeared because of the modification.

A software development process is "the process by which user needs are translated into a software product". The software development processes discussed in class and the text book have at least four steps/phases in common. Name the four steps and briefly describe them.

Requirements: It is important to communicate with the customer in order to understand what they want and how they want them so you can relay them to your team in order to make the product correctly. Design: This is the step where you will design the product Specifications: This step is to understand what the resources will be available when running the program. Implementation and testing: Getting ready to release the product and testing it to make sure it works properly, efferently, and reliably.

Describe the differences between science and engineering.

Science is the study of a certain thing while engineering is the application of the science.

Refactoring means to change the ______ but not the _____.

Semantics, Syntax

Why is software engineering different than other engineering disciplines in its need to adapt and change?

Software engineering is different than other engineering disciplines in its need to change or adapt because the way to do things and the actual work is always changing where as in another engineering field the numbers and formulas always will be the same.

What is spike testing? What are the 3 steps involved in spike testing?

Spike testing is working in a burst of activity, stepping back and evaluating the work that was completed in that burst, and then using that information to estimate how long it will take top finish the work. The three steps are : Burst of activity > Evaluate work that was completed > Estimate future work

What is tacit knowledge?

Tacit knowledge is knowledge that is difficult to explain but can be learned by doing

When estimating how long a requirement will take to complete, is it better to estimate the requirement as User Stories or as Tasks? Why?

Tasks are better to create time estimates for because user stories are comprised of one task or possibly multiple tasks. A task is written for and by a developers as well as being a single piece that needs to be completed with it being specifically written for and by developers and being simple it is much easier to get a time estimate from a task.

What is test coverage? What are two forms of test coverage? Why not strive for "perfect 100".

Test coverage and how much of the functionality and of the system has been tested. Two forms of the test coverages are Branch, Line, or complexity. It is not recommended to strive for perfect 100% because exhaustive testing is not possible, test everything that is important and effects functionality and user stories.

What is the MVP/Milestone 1.0?

The MVP is the smallest possible example that can be used to demonstrate power.

Pick 3 of the 4 agile Manifesto value priories we discussed in class. Pick one of those and explain why waterfall does not meet those value priorities, and this is not agile.

The agile manifesto says individuals/interactions over process/tools, working software over comprehensive docs, customer collabs over contract negotiation, and responding to change over following a plan

When is a good time/place to use waterfall methods, name two of the three cases discussed in class where waterfall might be preferred?

The best times to use waterfall development methods is for large teams and teams experienced in waterfall

What is meant by the Big Bang approach to software development? What is the main risk involved with the Big Bang approach?

The big bang approach is to gather all the requirement and specification, then the next time you communicate with the customer the product is completed and ready. The main risk of doing this is the that product might not come out as expected due to a lack of requirements or specification of requirements. Or if the requirements change, this may mean that the project has to be re done.

Ideally, who should not be performing your system tests? Why not?

The developers of the system should not be performing the tests. Devs know the code too well and would be biased, and testers bring a different mindset to the testing process.

What is the highest priority in the agile manifesto? How is it achieved?

The highest priority of the agile manifesto is keeping your customer happy. This is achieved by delivering your valuable code on time and on budget.

Pick and describe one key challenge facing software engineering today?

The key challenges facing software engineering are heterogeneity, delivery, and trust

What are diminishing returns

The law of diminished returns is a law that states when adding resources there will not be a 100% increase on efficiency or output, in fact the more resources you add to it the less and less gains there are going to be.

Based on our discussions, what is the most important (and required) property of a requirement? What must the property be and why?

The most important proerty of a requiremnt is the behavior property. This property decscribes how the requirement should act and what it should do. The property must be verifiable.

When you or a tester finds a bug, what is the most important thing to do? In other word, what is the most important thing about dealing with bugs?

The most important thing to do is track the bug.

If you are using inherited code, you need to test only the functionality you require. There is one exception to this. What is it?

The one exception is when you get the code from somewhere else or it effects security of the system, You always need to test the functionality of the code if you have not seen it working before. You should always assume it does not work if you haven't seen it work.

What are the three steps within the test-driven development cycle? Identify, Define, and say what you do in each of the 3 steps

The three steps in the test-Driven Development Cycle are Red, Green, Refactor. Red: Write tests that fail, these tests are meant to fail and should be written before the code for them Green: Write the simplest code possible to pass the tests Refactor: Clean up the code, remove duplications, dependencies, ugly code, etc. Then after these are done you repeat for the remainder of the project.

Is the waterfall software development process a predictive or adaptive software development approach?

The waterfall software development process is a predictive software development approach.

When ending an iteration, what are some activities we went over in class that you can perform if you have some left over time? List at least 4 and elaborate on two of those.

There are always things to do. Somethings you can do are: System Testing - Create dedicated time to test the system. Try to get as close to a real world simulation for the testing. Writing documentation Refactoring Code - Re-writing parts of the code after learning lessons after initially create this code. Cleaning up code

True or false, UML is a language

True

Not including class diagrams, what is the most commonly used UML diagram in industry.

Use Case or Sequence

What is the difference between User Stories and Tasks? What is the relationship between the two?

User Stories are comprised of tasks, tasks are made by and for developers. Both tell us what to do.

Define both verification and validation.

Validation asks if we are building the correct model, Verification asks if we are building the model correctly.

The ________ Relationship in a Use Case Diagram represents exceptional or seldom invoked cases. The ________ relationship in a Use Case Diagram represents behavior that is factored out of the use case.

Extends, Includes

What is a build script? What are the four aspects/components that comprise (make up) Ant build scripts?

A build script is code you type in XML that will tell an automatic Build system (like ANT) what to do and how to do it. The four aspects that comprise ANT build scripts are: Properties, Projects, Tasks, and Targets.

Describe both "functional requirement" and "non-functional requirement". Include an example of each.

A functional requirement is a requirement that tells how the product will function, an example would be "The software has to record the number of apples sold" A non-functional Requirement is a requirement that does not effect the functionality of the product, an example would be "The button to enter the number of apples sold needs to be red"

What is a software design pattern?

A software design pattern is the a pattern that many software solutions follow. They are common occurrences in solutions throughout the industry. One of the more famous ones is the iterator, there is an iterator in java because it is so popular. The Gang of Four were a group of 4 computer scientists that identified and wrote about 23 of these patterns.

What is the difference in scope between a state and sequence diagram? Think about the focus (quantity of things within scope) of each diagram.

A state diagram focuses on the actions and steps of a method when asked to change or interacted with an outside agent. An example of this would be the steps it takes in order to change the time on a watch. The process it goes through in order to change each component that makes up the time it displays and how that is done and what the options are. A sequence diagram focuses on the interactions between an actor and objects. It shows how the objects interact with one another and the actor when the actor acts upon it. An example of this would be a person retrieving money from an ATM. The actor has to go thru many steps and enter information prompted by several objects then the objects must interact with each other to relay information and complete the task successfully.

We identified eight properties that "good" build scripts have and do. name three of them

Generating documentation, Compiling code, running code

Provide an example of "Domain Knowledge". Why is it important?

Domain knowledge is the knowledge of a specific subject. It is important because it provides tacit knowledge. A specific example could be knowledge about planes or cars for someone developing self driving AI

Name 3 and decribe three main attributes of "good software", according to Ian Sommerville. Hint - There are four of them

Efficient: It has to make good use of the resources Maintainable: It must be able to be adaptable and fixed after it is released Acceptable: Must be accepted by the users, must be understandable and easy to use

The spiral model is a version of the waterfall model that is centered/focused on two main aspects. What are they?

Continuous documentation and risk analysis

In an agile methodology, who estimates (comes up with) the time estimates for how much time each feature will take to code? Why? Who Prioritizes each feature? Why?

You (the worker) come up with the time estimates for how long each feature will take to complete. This is because you have the best idea of how long it will take. The customer prioritizes each feature, this is because they know what they want and how badly the want/need it.

Give an example of both when you should branch and when you should not branch

You should branch when it is an addition to a feature that has already been created. You shouldn't branch to give struggling developers a sandbox.

Test 2 Use Cases and burn down charts.

Yuh


Kaugnay na mga set ng pag-aaral

Chapter 16 Mood Diorders: Depression

View Set

Pharm Final Quiz/Practice Questions-Antibiotics

View Set

Case Study: Look- and Sound-Alike Medications Exam

View Set

Anatomy (previous test/quiz answers)

View Set

Chapter 2: Conceptual Framework for Financial Reporting (Questions)

View Set

Менеджмент і маркетинг в ЗМІ

View Set