CSE 360 Exam 1

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

deployment plan

Describes how the software and associated hardware (if required) will be deployed in the customer's environment. This should include a plan for migrating data from existing systems.

validation plan

Describes the approach, resources, and schedule used for system validation

quality plan

Describes the quality procedures and standards that will be used in a project.

plan-driven development: cons

Many early decisions have to be revised because of changes to the environment in which the software is to be developed and used.

project plan

created at the start of a project used to communicate how the work will be done to the project team and customers, and to help assess progress on the project

configuration management plan

describes the configuration management procedures and structures to be used

all aspects of software production

not just technical process of development, also project management and the development of tools, methods etc. to support software production

software

not manufactured as other hardware products are, but engineered

planning stages

proposal stage: when you are bidding for a contract to develop or provide a software system during the project startup phase: when you plan who will work on the project, how the project will be broken down into increments, how resources will be allocated across your company, etc. throughout the project: when you modify your plan in the light of experience gained and information from monitoring the progress of the work

plan-driven development

top

WebApps (Web applications)

a set of linked hypertext files

chief programmer team

-5-10 programmers -led by a chief programmer -all supervised by a manager -hierarchical structure -all members active throughout development -One or two programmers responsible for software quality assurance

selecting group members

-A manager or team leader's job is to create a cohesive group and organize their group so that they can work together effectively. -This involves creating a group with the right balance of technical skills and personalities, and organizing that group so that the members work together effectively.

agile planning difficulties

-Agile planning is reliant on customer involvement and availability -This can be difficult to arrange, as customer representatives sometimes have to prioritize other work and are not available for the planning game. -Furthermore, some customers may be more familiar with traditional project plans and may find it difficult to engage in an agile planning process.

Software deteriorates due to

-Changes that degrade the code structure -Changes that degrade the design -Changes that potentially incorporate more bugs

commonly used team models types

-Chief Programmer Team (CPT) -Matrix Management (MM) -Self Directed Work Teams (SDWT)

Rationale for the code of ethics

-Computers have a central and growing role in commerce, industry, government, medicine, education, entertainment and society at large. Software engineers are those who contribute by direct participation or by teaching, to the analysis, specification, design, development, certification, maintenance and testing of software systems. -Because of their roles in developing software systems, software engineers have significant opportunities to do good or cause harm, to enable others to do good or cause harm, or to influence others to do good or cause harm. To ensure, as much as possible, that their efforts will be used for good, software engineers must commit themselves to making software engineering a beneficial and respected profession.

Software Project Management

-Deliver the software to the customer at the agreed time -Keep overall costs within budget -Deliver software that meets the customer's expectations -Maintain a coherent and well-functioning development team

matrix management

-Each member of the group has specified role related to his/her expertise -Remains only in the group only when his services are needed -These members may be moved to other projects when their assigned tasks are completed.

scheduling problems

-Estimating the difficulty of problems and hence the cost of developing solution is hard. -Productivity is not proportional to the number of people working on a task - -Adding people to a late project makes it later because of the communication overheads. -The unexpected always happens - Always allow contingency in planning.

What are the two broader categories of software products

-Generic products -Customized products

group composition

-Group composed of members who share the same motivation can be problematic -Task-oriented - everyone wants to do their own thing; -Self-oriented - everyone wants to be the boss; -Interaction-oriented - too much chatting, not enough work. -An effective group has a balance of all types. -This can be difficult to achieve software engineers are often task-oriented. -Interaction-oriented people are very important as they can detect and defuse tensions that arise.

group cohesiveness

-In a cohesive group, members consider the group to be more important than any individual in it. -The advantages of a cohesive group are: - Group quality standards can be developed by the group members. - Team members learn from each other and get to know each other's work; Inhibitions caused by ignorance are reduced. - Knowledge is shared. Continuity can be maintained if a group member leaves. - Refactoring and continual improvement is encouraged. Group members work collectively to deliver high quality results and fix problems, irrespective of the individuals who originally created the design or program.

teamwork

-Most software engineering is a group activity - The development schedule for most non-trivial software projects is such that they cannot be completed by one person working alone. -A good group is cohesive and has a team spirit. The people involved are motivated by the success of the group as well as by their own personal goals. -Group interaction is a key determinant of group performance. -Flexibility in group composition is limited - Managers must do the best they can with available people.

universal management activities

-Project planning -Risk management -People management -Reporting -Proposal writing

During the lectures, we have discussed software engineering as a four layered technology. Which of the following belongs to the four layer technology?

-Quality -Process -Methods -Tools

Which of the following is NOT a major software process activity -Software Validation -Software Evolution -Software Specification -Software Testing

-Software Testing

software engineering ethics

-Software engineering involves wider responsibilities than simply the application of technical skills. -Software engineers must behave in an honest and ethically responsible way if they are to be respected as professionals. -Ethical behaviour is more than simply upholding the law but involves following a set of principles that are morally correct.

effectiveness of a team

-The people in the group -You need a mix of people in a project group as software development involves diverse activities such as negotiating with clients, programming, testing and documentation. -The group organization -A group should be organized so that individuals can contribute to the best of their abilities and tasks can be completed as expected. -Technical and managerial communications -Good communications between group members, and between the software engineering team and other project stakeholders, is essential.

ACM/IEEE Code of Ethics

-The professional societies in the US have cooperated to produce a code of ethical practice. -Members of these organizations sign up to the code of practice when they join. -The Code contains eight Principles related to the behaviour of and decisions made by professional software engineers, including practitioners, educators, managers, supervisors and policy makers, as well as trainees and students of the profession.

self directed work teams

-There is no technical leader -No external management -No matrix groupings -Teams empowered to conduct all activities like hiring, planning, scheduling, tracking, rewarding etc.

software delivery

-a software increment is always delivered at the end of each project iteration -if the features to be included in the increment cannot be completed in the time allowed, the scope of the work is reduced -the delivery schedule is never extended

plan changes are inevitable

-as more information about the system and the project team becomes available during the project, you should regularly revise the plan to reflect requirements, schedule and risk changes -changing business goals also leads to changes in project plans. As business goals change, this could affect all projects, which may then have to be re-planned

Factors influencing project management

-company size -software customers -software size -software type -organizational culture -software development processes

issues of professional responsibility

-confidentiality -competence -intellectual property rights -computer misuse

matrix management disadvantages

-difficult to have a good schedule once delays are induced -lot of communication -accountability is often a problem

self directed work teams disadvantages

-difficult to track

task allocation

-during the task planning stage, the developers break down stories into the development tasks -a development task should take 4-16 hours -all of the tasks that must be completed to implement all of the stories in that iteration are listed -the individual developers then sign up for the specific tasks that they will implement

chief programmer team advantages

-established chain of command -easy accountability

self directed work teams advantages

-good cohesiveness between team members -minimal external influence

schedule presentation

-graphical notations are normally used to illustrate the project schedule -these show the project breakdown into tasks, tasks should not be too small, should take about a week or two -calendar-based -bar charts are the most commonly used representation for project schedules. they show the schedule as activities or resources against time -activity networks -show task dependencies

risk mitigation

-if there are serious problems with the development work that are likely to lead to significant delays, you need to initiate risk mitigation actions to reduce the risks of project failure -in conjunction with these actions, you also have to re-plan the project -this may involve renegotiating the project constraints and deliverables with the customer. A new schedule of when work should be completed also has to be established and agreed with the customer

agile planning

-iterative approaches where the software is developed and delivered to customers in increments -the functionality of these increments is not planned in advance but is decided during the development -the decision on what to include in an increment depends on progress and on the customer's priorities -the customer's priorities and requirements change so it makes sense to have a flexible plan that can accommodate these changes

matrix management advantages

-matrix assures that projects get specially trained people in all activities

agile development - main goals

-program specification, design and implementation are inter-leaved -the system is developed as a series of versions or increments with stakeholders involved in version specification and evaluation -frequent delivery of new versions for evaluation -extensive tool support (e.g. automated testing tools) used to support development -minimal documentation - focus on working code

agile planning stages

-releasing planning -iteration planning

planning assumptions

-should make realistic rather than optimistic assumptions when you are defining a project plan -problems of some description always arise during a project, and these lead to project delays -your initial assumptions and scheduling should therefore take unexpected problems into account -you should include contingency in your plan so that if things go wrong, then your delivery schedule is not seriously disrupted

customized products

-software that is commissioned by a specific customer to meet their own needs -examples - embedded control systems, air traffic control software, traffic monitoring systems

generic products

-stand-alone systems that are marketed and sold to any customer who wishes to buy them -examples - PC software such as graphics programs, project management tools; CAD software; software for specific markets such as appointments systems for dentists

chief programmer team disadvantages

-success dependent upon competence of chief programmer -non-specialist programmers for each task

agile teams (small, highly motivated teams)

-team members must have trust in one another -the distribution of skills must be appropriate to the problem -mavericks may have to be excluded from the team, if team cohesiveness is to be maintained -team is "self-organizing" -an adaptive team structure -uses elements of Constantine's random, open, and synchronous paradigms

story-based planning

-the planning game is based on user stories that reflect the features that should be included in the system -the project team read and discuss the stories and rank them in order of the amount of time they think it will take to implement the story -the project team read and discuss the stories and rank them in order of the amount of time they think it will take to implement the story -stories are assigned 'effort points' reflecting their size and difficulty of implementation -the number of effort points implemented per day is measured giving an estimate of the team's 'velocity' -this allows the total effort required to implement the system to be estimated

Software Management Distinction

-the product is intangible -many software projects are 'one-off' projects -software processes are variable and organization specific

benefits of task allocation

-the whole team gets an overview of the tasks to be completed in an iteration -developers have a sense of ownership in these tasks and this is likely to motivate them to complete the task

Software Project Management

Concerned with activities involved in ensuring that software is delivered on time and on schedule and in accordance with the requirements of the organizations developing and procuring the software. Project management is needed because software development is always subject to budget and schedule constraints that are set by the organization developing the software

intellectual property rights

Engineers should be aware of local laws governing the use of intellectual property such as patents, copyright, etc. They should be careful to ensure that the intellectual property of employers and clients is protected.

confidentiality

Engineers should normally respect the confidentiality of their employers or clients irrespective of whether or not a formal confidentiality agreement has been signed.

competence

Engineers should not misrepresent their level of competence. They should not knowingly accept work which is out with their competence.

many software projects are 'one-off' projects

Large software projects are unusually different in some ways from previous projects. Even managers who have lots of previous experience may find it difficult to anticipate problems

maintenance plan

Predicts the maintenance requirements, costs, and effort.

team leader

Project management is a people-intensive activity. Practitioners often don't have the right mix of people skills. -The MOI Model of leadership -Motivation.The ability to encourage (by "push or pull") technical people to produce to their best ability. -Organization.The ability to mold existing processes (or invent new ones) that will enable the initial concept to be translated into a final product. -Ideas or Innovation.The ability to encourage people to create and feel creative even when they must work within bounds established for a particular software product or application.

project planning

Project managers are responsible for planning. estimating and scheduling project development and assigning people to tasks.

project scheduling

Project scheduling is the process of deciding how the work in a project will be organized as separate tasks, and when and how these tasks will be executed. You estimate the calendar time needed to complete each task, the effort required and who will work on the tasks that have been identified you also have to estimate the resources needed to complete each task, such as the disk space required on a server, the time required on specialized hardware, such as a simulator, and what the travel budget will be

iteration planning

Shorter term outlook, focuses on planning the next increment of a system, typically 2-4 weeks of work for the team

the project is intangible

Software cannot be seen or touched. Software project managers cannot see progress by simply looking at the artefact that is being constructed

computer misuse

Software engineers should not use their technical skills to misuse other people's computers. Computer misuse ranges from relatively trivial (game playing on an employer's machine, say) to extremely serious (dissemination of viruses).

software teams - composition

The following factors must be considered when selecting a software project team structure: -the difficulty of the problem to be solved -the sizeof the resultant program(s) in lines of code or function points -the time that the team will stay together (team lifetime) -the degree to which the problem can be modularized -the required quality and reliability of the system to be built -the rigidity of the delivery date -the degree of sociability (communication) required for the project

software processes are variable and organization specific

We still cannot reliably predict when a particular software process is likely to lead to development problems

plan-driven or plan-based development

an approach to software engineering where the development process is planned in detail -based on engineering project management techniques and is the 'traditional' way of managing large software developing projects a project plan is created that records the work to be done, who will do it, the development schedule, and the work projects managers use the plan to support project decision making and as a way of measuring progress

software engineering

an engineering discipline that is concerned with all aspects of software productions from the early stages of system specification through to maintaining the system after it has gone into use

engineering/scientific software

astronomy software, molecular biology

project startup planning

at this stage, you know more about the system requirements but do not have design or implementation information create a plan with enough detail to make decisions about the project budge and staffing -the plan is the basis for project resource allocation the startup plan should also define project monitoring mechanisms a startup plan is still needed for agile development to allow resources to be allocated to the project

project activities

basic planning element, each has: -a duration in calendar days or months -an effort estimate, which shows the number of person-days or person months to complete the work -a deadline by which the activity should be complete -a defined end-point, which might be a document, the holding of a review meeting, the successful execution of all tests, etc.

agile development

bottom

project planning

breaking down the work into parts and assign these to project team members, anticipate problems that might arise and prepare tentative solutions to those problems

system software

compiler, networking

embedded software

control for a microwave

body of knowledge

establish knowledge

project pricing

estimating how much the software will cost to develop, taking factors such as staff costs, hardware costs, software costs, etc. into account

product-line software

focus on a limited marketplace -- inventory control, word processing, spread sheets

project planning

iterative process that starts when you create an initial project plan during the project plan during the project startup phase

release planning

looks ahead for several months and decides on the features that should be included in a release of a system

proposal planning

planning may be necessary with only outline software requirements the aim of planning at this stage is to provide information that will be used in setting a price for the system to customers project pricing

milestones

points in the schedule against which you can assess progress, for example, the handover of the system for testing

software

product, similarities and differences from other hardware products does not wear out but deteriorate

reporting

project managers are usually responsible for reporting on the progress of a project to customers and to the managers of the company developing the software

risk management

project managers assess the risks that may affect a project, monitor these risks and take action when problems arise

people management

project managers have to choose people for their team and establish ways of working that leads to effective team performance

AI software

robotics, expert systems, pattern recognition, game playing

project plans in a plan-driven development project

sets out the resources available to the project, the work breakdown and a schedule for carrying out the work plan sections: -introduction -project organization -risk analysis -hardware and software resource requirements -work breakdown -project schedule -monitoring and reporting mechanisms

application software

stand alone for a specific need, sale transaction processing

software development process

systematic application of software process activities (software engineering activities) to build state-of-the-art software systems

engineering

the application of scientific principles towards practical ends

proposal writing

the first stage in a software projects may involve writing a proposal to win a contract to carry out an item of work. The proposal describes the objectives of the project and how it will be carried out

development planning

the project plan should be regularly amended as the project progresses and you know more about the software and its development the project schedule, cost-estimate and risks have to be regularly revised project planning also depends on software development strategy: plan driven or agile

customized products

the specification of what the software should do is owned by the customer for the software and they make decisions on software changes that are required

generic products

the specification of what the software should do is owned by the software developer and decisions on software change are made by the developer

engineering discipline

using appropriate theories and methods to solve problems bearing in mind organizational and financial constraints

software specification

where customers and engineers define the software that is to be produced and the constraints on its operation

software validation

where the software is checked to ensure that it what the customer requires

software development

where the software is designed and programmed

software evolution

where the software is modified to reflect changing customer and market requirements

deliverables

work products that are delivered to the customer, e.g. a requirements document for the system

plan-driven development: pros

• Early planning allows organizational issues (availability of staff, other projects, etc.) to be closely taken into account • Potential problems and dependencies are discovered before project starts, rather than once project is underway

project scheduling activities

• 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.


Set pelajaran terkait

Abnormal Psychology Chapters 13, 14, & 15 Review Questions

View Set

Insurance questions i hella dont know

View Set

Chapter 5 - Life Insurance Policies

View Set

Astronomy Test 2 - Jupiter & Galilean Moons

View Set

International Business Exam 1-Multiple Choice

View Set

Skills Lab and Pharmacology Final

View Set

saunder's comprehensive NCLEX review- RN

View Set