COMP 3223

Réussis tes devoirs et examens dès maintenant avec Quizwiz!

What is software engineering code of ethics?

A set of principles that set out, in a general way, standards of expected behavior for professional software engineers.

What is a Scrum sprint?

A short (3-4 weeks) planning unit in which work to be done is assessed, features are selected for development, the software is implemented and delivered to system stakeholders

What is a software process model?

A simplified representation of a software process, presented from a specific perspective

What is software process?

A set of activities and associated results which produce a software product

Who or what is at the center of the design thinking model?

Ideate

Briefly describe the advantages of pair programming?

1. It supports the idea of collective ownership and responsibility for the system. This reflects Weinberg's idea of egoless programming (Weinberg 1971) where the software is owned by the team as a whole and individuals are not held responsible for problems with the code. Instead, the team has collective responsibility for resolving these problems. 2. It acts as an informal review process because each line of code is looked at by at least two people. Code inspections and reviews (Chapter 24) are effective in discovering a high percentage of software errors. However, they are time consuming to organize and, typically, introduce delays into the development process. Pair programming is a less formal process that probably doesn't find as many errors as code inspections. However, it is cheaper and easier to organize than formal program inspections. 3. It encourages refactoring to improve the software structure. The problem with ask- ing programmers to refactor in a normal development environment is that effort involved is expended for long-term benefit. An developer who spends time refactoring may be judged to be less efficient than one who simply carries on developing code. Where pair programming and collective ownership are used, others benefit immediately from the refactoring so they are likely to support the process.

How are bar charts used in project scheduling?

Bar-charts are a calendar based representation that show the duration of activities against time or show the times when individuals are assigned to work on particular activities against time. They show the expected start date, duration and end date of activities.

What are the four critical factors of people management?

Consistency: team members should all be treated in a comparable way without favorites or discrimination. Respect: Different team members have different skills and these differences should be respected. Inclusion: involve all team members and make sure that people's views are considered. Honesty: you should always be honest about what is going well and what is going badly in a project.

List the 5 principles of agile methods.

Customer involvement Incremental delivery People not process Embrace change Maintain simplicity

When members of the IDEO team took photographs of kids and parents using grocery carts at supermarkets, what activity of the design thinking process were they engaging in?

Empathize

Briefly describe two types of cost estimation techniques?

Experience-based techniques:The estimate of future effort requirements is based on the manager's experience of past projects and the application domain. Essentially, the manager makes an informed judgment of what the effort requirements are likely to be. Algorithmic cost modeling: In this approach, a formulaic approach is used to compute the project effort based on estimates of product attributes, such as size, and process characteristics, such as experience of staff involved.

Each life cycle phase in the Rational Unified Process is marked by milestones. Discuss the difference between a milestone and a deliverable.

Milestones are points in the schedule against which you can assess progress, for example, the handover of the system for testing. Deliverables are work products that are delivered to the customer, e.g. a requirements document for the system.

Is it ethical for a software engineer to deliver a software system with known errors to a customer? Does it make any difference if the customer is told of the existence of these errors in advance? (explain your answer)

No, these faults should be cited or made aware before distributing the item.

What are the possible problems for test-first development?

Programmers prefer programming to testing, and sometimes they take shortcuts when writing tests. For example, they may write incomplete tests that do not check for all possible exceptions that may occur. Some tests can be very difficult to write incrementally. For example, in a complex user interface, it is often difficult to write unit tests for the code that implements the "display logic" and workflow between screens.

What is software engineering?

Software engineering is an engineering discipline that is concerned with all aspects of software production.

What are the principal activities in the project scheduling process?

Split project into tasks and estimate time and resources required to complete each task. Organize tasks concurrently to make optimal use of workforce. Minimize task dependencies to avoid delays caused by one task waiting for another to complete. Dependent on project managers intuition and experience.

What are three important characteristics of extreme programming?

Test-first development, pair programming, requirements expressed as scenarios

What are important differences between software project management and other types of project management?

The product is intangible, Large software projects are often "one-off" projects , Software processes are variable and organization-specific

What is test-first development?

When a system feature is identified, the tests of the code implementing that feature are written before the code. Tests are automated and all tests are run when a new increment is added to the system

What are the two fundamental types of software product?

generic products and customized products

What are essential attributes of good software?

good software should deliver the required functionality and

What are the key factors that influence the effectiveness of group communications?

group size, group structure, group composition, and the physical work environment.

What factors might be considered when selecting people for a software development team?

involves creating a group with the right balance of technical skills and personalities, and organizing that group so that the members work together effectively.

What are the four fundamental activities in software processes?

software specification, software development, software validation, & software evolution

Suggest 4 risks that may threaten the success of a software project?

staff turnover, management change, hardware unavailability, requirements change, specification delays, and size underestimate

What activities take place during the Ideate phase of the Design Thinking Process?

uses a "think outside the box" method to identify new solutions to the problem statement. Looks for alternative ways of viewing the problem

List 4 fundamental project management activities.

~Project planning ~Reporting, Risk management ~People management ~Proposal writing


Ensembles d'études connexes

chp 10 drug therapy for dyslipidemia pharm

View Set

CHAPTER 24: An intro to Macroeconomics

View Set

WORLD HISTORY: Chapter 5: Egypt-The Gift of the Nile

View Set

PCEP - Certified Entry-Level Python Programmer Study Cards

View Set

ATI Testbank Questions- OB Exam #2 part V

View Set

National FFA Food Science 2009 Test

View Set

PC Illness Women Final Exam Module 7 and Study Guide

View Set