Use LEFT and RIGHT arrow keys to navigate between flashcards;
Use UP and DOWN arrow keys to flip the card;
H to show hint;
A reads text to speech;
50 Cards in this Set
- Front
- Back
- 3rd side (hint)
Of the 7 qualities, which two are important to the developers, but not to the clients/user. Brieflyexplain each choice
|
Maintainability and reusability, a software that can be reapplied and easily maintained backend is good for any developer
|
Usability• Efficiency• Compatibility• Reliability• Maintainability• Security• Reusability
|
|
Of the 7 qualities, which two are important to the users, but not to the developer. Briefly explain each choice
|
Usability and compatibility, for user, it needs to be user friendly and is able to be compatible with their device.
|
Usability • Efficiency • Compatibility • Reliability • Maintainability • Security • Reusability
|
|
Select an aspect that is the most important to data processing systems.Briefly explain each choice.
|
Security, most data system are used for businesses to store and analysis data. (Banks)
|
Usability • Efficiency • Compatibility • Reliability • Maintainability • Security • Reusability
|
|
Select an aspect that is the most important to real-time systems. Brieflyexplain each choice.
|
Reliability, must be reliable in delivering data immediately, cannot have no down time.
|
Usability • Efficiency • Compatibility • Reliability • Maintainability • Security • Reusability
|
|
Select an aspect that is the most important to open source projects. Brieflyexplain each choice
|
Reusability, open source are very useful for developer as the code can be reused for future projects.
|
Usability • Efficiency • Compatibility • Reliability • Maintainability • Security • Reusability
|
|
What is the impact of highly coupled code with respect to the sevenaspects of software quality? (i.e. Does undocumented code impact them ornot, and if so, which does it impact and how?)
|
hard to understand the code that interconnects among classes, this leads to decrease in maintainability and reusability/ This interconnection also affects reliability and security, a simple mistake/bug can shut down the entire software.
|
Usability • Efficiency • Compatibility • Reliability • Maintainability • Security • Reusability
|
|
What is the impact of highly cohesive and modular code with respect tothe seven aspects of software quality? (i.e. Does undocumented codeimpact them or not, and if so, which does it impact and how?)
|
Highly cohesive code improves reusability and closely relate all the responsibilities, data, and methods of a class are to each other. This also increase efficiency.
|
Usability • Efficiency • Compatibility • Reliability • Maintainability • Security • Reusability
|
|
What is the impact of undocumented code bases with respect to the sevenaspects of software quality? (i.e. Does undocumented code impact them ornot, and if so, which does it impact and how?)
|
It will decrease maintainability and reusability
|
Usability • Efficiency • Compatibility • Reliability • Maintainability • Security • Reusability
|
|
Why are engineering principles applied to software development?
|
Engineering principles are needed to
-co-ordinate a team so large systems can be understood -development practices have been standardized -engineering is a licensed profession and ethical/personal responsibilities are applied |
|
|
What do the letters represent? Identify the critical path.
|
Letters represent the corresponding task. |
|
|
Given the above PERT chart…
1.what are the dotted lines used for? 2. what is the span of time in which task J could be completed? 3. identify the critical path. |
2.Dotted lines always have a duration of 0 and show the dependency between 2 events where no activity is performed.
3. Span of time, earliest and longest |
|
|
What is the relative strength of a PERT chart compared to a Gantt chart?
|
1.All us to show dependencies explicitly
2.Allow us to calculate critical path 3.Can tell us how one task falling behind affects other tasks |
.
|
|
What is the relative strength of a Gantt chart compared to a PERT chart?
|
1.Allow us to record progress of project
2.Allow us to see what tasks are falling behind 3.Allow us to represent overlapping tasks |
|
|
What is a strength of Pivotal Tracker compared to PERT charts?
|
Pros: 1. Real time collaboration 2. Easy to use with drag and drop user interface Cons: 1.Well-suited only for Agile & Scrum projects 2. Complex with learning curve |
|
|
What are Software Process Models?
|
1. Optimistic approach
2. Waterfall 3. Spiral 4. Agile |
|
|
Compare and contrast the Waterfall process model to the Agile scrum model in two different ways.
|
Compare:
1. Waterfall lack in developer/user interaction vs. Agile 2. Agile is used for high risk, requirement changing projects 3. Waterfall require lots of documents vs agile Contrast: 1. Agile's Sprints and Waterfall's stages 2. Requires testing before each stage, Agile is rapid-test based development |
|
|
What is an appropriate software process model for an individual, undergraduate programming assignment? Explain your answer.
|
Conceptually, waterfall, god documentation and flow of planning (flowcharts) but realistically the optimistic approach (code and fix) is used.
|
|
|
What is an appropriate software process model for a six-person start up ( or the weatherapp)? Explain your answer.
|
Agile software development. It is most suited for teamwork among small groups and it is suited for projects that involve uncertain, changing requirements or other high risks
|
|
|
What is a good software process model for developing the guidance system and analysis software for a space probe? Explain your answer.
|
The spiral model, it requires constant updates performs further requirements, design, implementation and review. Loops.
|
|
|
Explain how a sprint differs from pair programming in two different aspects.
|
1. Pair programming involves two people working closely together while a sprint can be involved with a group of programmers
2.Pair programming is implemented in eXtreme programming while sprint is scrum. |
|
|
Explain how contingency planning differs from risk mitigation.
|
Risk mitigation: you spend resources to reduce the risk prior to it happening while contingency continues with current set of actions and control the impact as risk event looks like occurring.
|
|
|
Define these terms:
1.Requirements inflation 2.Turnover of employees 3.Specification Breakdown |
1.As the project progresses more and more features that were not identified at the beginning of the project emerge that threaten estimates and timelines.
2.Key personnel leave the project taking critical information with them that significantly delays or derails the project. 3.When coding and integration begin it becomes apparent that the specification is incomplete or contains conflicting requirements. |
|
|
For the following, identify if it is an example of a functional or functional-requirement:
1. The program will be developed in Java. 2.The program will require a user to log in. 3.The program needs to be “on brand” – it should match the graphical design of the company in colour choice, fonts and display its logos. 4.The program will save log data to a centralized server. 5.The program development will follow the principles of test-driven development. 6. The program must build using Maven software. 7. Users must be able to interact with the system using eye-tracking software. 8. Data reports generated by the system must be savable in PDF or plain textformats. |
1.Non-functional
2.Functional 3.Functional 4.Functional 5.Non-functional 6.Non-functional 7.Functional 8.Functional |
A functional requirement describes what a software system should do, while non-functional requirements place constraints on how the system will do so.
|
|
How does the requirements gathering and specification differ between waterfall and agile methodologies?
|
Waterfall- generate specification early documents during early stages
Agile - continuously perform requirements engineering |
|
|
What is domain? How is domain analysis valuable to the requirements engineering process?
|
-Faster development
- Improved communication between stakeholders - Better system - Anticipation of extensions |
Domain – the general field of business or technology in which the software will be used
|
|
How does story-driven development differ from test-driven development?
|
Test driven:
-short development cycle -first write test, then write minimum amount of code to pass that test Story driven: -develop through fixed iteration cycle -have a velocity to complete before testing |
Velocity: Developers estimate how much work (in story points) they'llbe able to complete each iteration!
|
|
What are view points? 3 -Viewpoints for: Developing a system like OWL for the managements and release of course material through a website for a University. |
Professors
Developers Students |
View points
|
|
What is an iteration, in the context of software development?
|
In story driven development, iteration are a set timeframe by the developers to complete the required user stories
|
|
|
Independent in INVEST and how to fix
|
Dependent Stories: The customer should be able to pay with Visa – The customer should be able to pay with MasterCard – The customer should be able to pay with AmEx Solution: – A customer can pay with one type of credit card – A customer can pay with two additional types of credit cards |
|
|
Negotiable in INVEST and how to fix
|
Good example: – A company can pay for a job posting with a credit card. Note: accept Visa, MasterCard, AmEx. Consider Discover. Bad: A company can pay for a job posting with a credit card.!– Note: Accept Visa, MasterCard, and AmEx. ConsiderDiscover. On purchases over $100, ask for card ID numberfrom back of card. The system can tell what type of card itis from the first two digits of the card number. The system can store a card number for future use. Collect the expiration month and date of the card. |
Stories are not contracts with too much details.
|
|
Valuable in INVEST and how to fix
|
Good examples:
-Up to fifty users should be able to use the application with a 5-user database license – All errors are presented to the user and logged in a consistent manner. Bad examples: – All connections to the database are through aconnection pool – All error handling and logging is done through aset of common -classes |
User stories should be valuable to the users and customers not the developer
|
|
Estimable in INVEST and how to fix
|
Reason why it is unestimable 2. Developers lack technical knowledge -send a developer on a “spike”! 3. The story is too big - make an “epic”, break it up into substories |
Developers should be able to estimatethe size of a story
|
|
Small in INVEST
|
Small - A Job Seeker can post her resume
Big – A Job Seeker can enter a date for each community service entry on a resume – A Job Seeker can edit the date for each community service entry on a resume – A Job Seeker can enter a date range for each prior job on a resume – A Job Seeker can edit the date range for each prior job on a resume GOOD – A user can create resumes, which include education, prior jobs, salary history, publications,presentations, community service, and an objective - A user can edit a resume – A user can delete a resume – A user can have multiple resumes – A user can activate and inactivate resumes! |
Stories that are too large or small make planning difficult
|
|
Testable in INVEST
|
Untestable stories commonly appearwith nonfunctional requirements
|
|
|
How does software-architecture design differ from object-oriented design?
|
Software-architecture divides project into sub-systems into layers. Communicates only to central database and driven by events.
OOD focuses on identifying classes' functions, attributes, and generalize them |
|
|
In Java, what is the different between an interface and an object?
|
A java object is a class with its own attributes. A interface allow otherwise unrelated classes(objects) to implement the same set of methods |
|
|
Give an example where a generalization would be a better decision than an interface.
|
when you want to expose the complete interface (all public methods no less) of TypeA(parent) such that TypeB(child) can be used where TypeA is expected .
|
|
|
Give an example where an interface would be a better decision than a generalization.
|
Does TypeB only want only some/part of the behavior exposed by TypeA? Indicates need for Composition.
ex. A bird only needs the fly function of a Plane (parent class). |
|
|
Singleton
|
private constructor and make it return nothing (){} empty
have a method call returnObject which return the object created by |
|
|
The Swing libraries for Java belong to which component(s) of the MVC pattern?
|
View and Controller
|
|
|
In UML diagram what does: 1.Open arrow 2.Diamond3.filled in diamond Mean? |
1.Generalization 2.Diamond = aggregate3.Filled in = composition |
Composition is to aggregate as inheritance is to generalization
Composition involved deletion, if A die, B die |
|
In user interface design, there is a difference between the utility of aprogram and the usability of a program. Compare and contrast these two terms.
|
Utility: raw capabilities of the system to allow the user to achieve their goal(s)
Usability: the user can learn and to use the raw capabilities easily |
|
|
Given the main user interface bar of Amazon’s website:
1. list three metaphors they make use of in their conceptual model 2. Identify 2 GUI design principles they adhere to, and 1 they could do better on, citing specific examples in the given GUI components. 3. Identify 2 GUI components that rely on affordance, rather than specific directions to the user. |
1.The search function for the website is like a store search by department, etc..
2.Provide all necessary help, Do no rely on usability guidelines, needs improvement: Simplified information present. Remove ads like try primetime 3. Affordance, the French language setting and the search bar. |
Affordance: user knows from common sense
|
|
Look and feel
|
Look is any graphical design
Feel is the functionality of the components |
|
|
In your group project, you worked with an external API which youcommunicated with using the internet. Many projects rely on externaldata sources for their execution, which can make testing code challenging.During testing, how would creating a stand in of some kind - using stubsor Mock objects for the web service (or any external data source) - havebeen beneficial to the testing process? Give 2 ways, and briefly explain each.
|
1.Test when internet or API is down.
2. Test the interface/GUI when you have not yet written the code to retrieve the data. |
|
|
In what way can GitHub be used to implement continuous integration for a project?
|
GitHub can be used to store certain stages of development after each integration.
|
|
|
Condition Coverage
|
condition must evaluate once totrue and once to false
|
|
|
Node coverage
|
Every part of flow chart have been through, diamond and rectangles
|
|
|
What is an advantage of functional (black-box) testing over structural(white-box) testing?
|
-Ensures program meets requirements
-Test boundaries, etc., explicitly |
|
|
What is an advantage of structural (white-box) testing over functional(black-box) testing?
|
• Tests all code and implementation details
• Coverage metrics can give us an idea of the extent to which our code is tested! |
|