0% found this document useful (0 votes)
4 views7 pages

SW midterm keypoints

Uploaded by

aljm68019
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views7 pages

SW midterm keypoints

Uploaded by

aljm68019
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Chapter 1: Introduction

• Software engineering is an engineering discipline that


is concerned with all aspects of software production.
• Essential software product attributes are
maintainability, Dependability, and security, efficiency
and acceptability.
• The high-level activities of specification, development,
validation and evolution are part of all software
processes.
• The fundamental notions of software engineering are
universally applicable to all types of system
development.
• There are many different types of system, and each
requires appropriate software engineering tools and
techniques for their development.
• The fundamental ideas of software engineering are
applicable to all types of software system.
• Software engineers have responsibilities to the
engineering profession and society.
• Professional societies publish codes of conduct which
set out the standards of behavior expected of their
members.
Chapter 2 : Software processes

• Software processes are the activities involved in


producing a software system, Software process models
are abstract representation of these processes.
• General process models describe the organization of
software processes. Examples of these general models
include the “Waterfall” model, incremental
development, and reuse-oriented development.
• Requirements engineering is the process of developing
software specification.
• Design and implementation processes are concerned
with transforming requirements specification into an
executable software system.
• Software Validation is the process of checking that the
system conforms to its specification and that it meets
the real needs of the user of the system.
• Software evolution takes place when you change
existing software systems to meet new requirements.
The software must evolve to remain useful.
• Processes should include activities such as prototyping
and incremental delivery to cope with change
• Processes may be structured for iterative development
and delivery so that changes may be made without
disturbing the system as a whole.
• The principal approaches to process improvement are
agile approaches, geared to reducing process
overheads, and maturity-based approaches based on
better process management and the use of good
software engineering practice.
• The SEI process maturity framework identifies maturity
levels that essentially correspond to the use of good
software engineering practice.

Chapter 22 : Project management

• Good project management is essential if software


engineering projects are to be developed on schedule
and within budget.
• Software management is distinct from other
engineering management. Software is intangible.
Projects may be novel or innovative with no body of
experience to guide their management. Software
processes are not as mature as traditional engineering
processes.
• Risk management involves identifying and assessing
project risks to establish the probability that they will
occur and the consequences for the project if that risk
does arise. You should make plans to avoid, manage or
deal with likely risks of or when they arise.
• People management involves choosing the right people
to work on a project and organizing the teams and their
working environment.
• People are motivated by interaction with other people,
the recognition of management and their peers, and by
being given opportunities for personal development.
• Software development groups should be fairly small
and cohesive. The key factors that influence the
effectiveness of a group are the people in that group,
the way that it is organized and the communication
between group members.
• Communications within a group are influenced by
factors such as the status of group members, the size of
the group, the gender composition of the group,
personalities and available communication channels.

Chapter 23 : Project planning

• The price charged for a system does not just depend on


its estimated development costs and the profit required
by the development company. Organizational factors
may mean that the price is increased to compensate for
increased risk or decreased to gain competitive
advantage.
• Software is often priced to gain contact, and the
functionality of the system is then adjusted to meet the
estimate price.
• Plan-driven development is organized around a
complete project plan that defines the project
activities, the planned effort, the activity schedule and
who is responsible for each activity.
• Project scheduling involves the creation of various
graphical representations of part of the project plan. Bar
charts, which show the activity duration and staffing
timelines, are the most commonly used schedule
representation.
• A project milestone is a predictable outcome of an
activity or set of activities. At each milestone, a formal
report of progress should be presented to management.
A deliverable is a work product that is delivered to the
project costumer.
• The agile planning game involves the whole team in
project planning. The plan is developed incrementally
and, if problems arise, it is adjusted so that software
functionality is reduced instead of delaying the delivery
of increment.
• Estimation techniques for software may be experience-
based, where managers judge the effort required, or
algorithmic, where the effort required is computed from
other estimated project parameters.
• The COCOMO II costing model is a mature algorithmic
cost model that takes project, product, hardware and
personnel attributes into account when formulating a
cost estimate.

Chapter 3 : agile software development

• Agile methods are incremental development methods


that focus on rapid software development, frequent
releases of the software, reducing process overheads
by minimizing documentation and producing high-
quality code.
• Agile development practices include
o User stories for system specifications
o Frequent releases of the software
o Continuous software improvement
o Test-first development
o Customer participation in the development team.
• Scrum in an agile method that provides a project
management framework. It is centered around a set of
sprints, which are fixed time periods when a system
increment is development.
• Many practical development methods are a mixture of
plan-based and agile development.
• Scaling agile methods for large systems are difficult.
Large systems need up-front design, and some
documentation and organizational practice may
conflict with the informality of agile approaches.

You might also like