SE Unit 1 Part 1
SE Unit 1 Part 1
Presenting by:
B.Pranalini
INDEX
Unit 1 Part 1:
INTRODUCTION TO SOFTWARE ENGINEERING:
Software
Software Engineering
Software Myths
CMMI
SOFTWARE
What is Software?
The task sets for Requirements gathering action for a simple project
may include:
1. Make a list of stakeholders for the project.
2. Invite all stakeholders to an informal meeting.
3. Ask each stakeholder to make a list of features and functions
required.
4. Discuss requirements and build a final list.
5. Prioritize requirements.
6. Note areas of uncertainty.
EXAMPLE OF A TASK SET FOR
ELICITATION
The task sets for Requirements gathering action for a big project may
include:
1. Make a list of stakeholders for the project.
2. Interview each stakeholders separately to determine overall wants and
needs.
3. Build a preliminary list of functions and features based on stakeholder
input.
4. Schedule a series of facilitated application specification meetings.
5. Conduct meetings.
6. Produce informal user scenarios as part of each meeting.
7. Refine user scenarios based on stakeholder feedback.
8. Build a revised list of stakeholder requirements.
9. Use quality function deployment techniques to prioritize requirements.
10. Package requirements so that they can be delivered incrementally.
11. Note constraints and restrictions that will be placed on the system.
12. Discuss methods for validating the system.
Both do the same work with different depth and formality. Choose the task
sets that achieve the goal and still maintain quality and agility.
PROCESS PATTERNS
• A process pattern
• describes a process-related problem that is encountered
during software engineering work,
• identifies the environment in which the problem has been
encountered, and
• suggests one or more proven solutions to the problem.
• Stated in more general terms, a process pattern provides you with a
template [Amb98]—a consistent method for describing problem
solutions within the context of the software process.
( defined at different levels of abstraction)
1. Problems and solutions associated with a complete process model
(e.g. prototyping).
2. Problems and solutions associated with a framework
activity (e.g. planning) or
3. an action with a framework activity (e.g. project estimating).
PROCESS PATTERN TYPES
• Stage patterns—defines a problem associated with a
framework activity for the process. It includes multiple task
patterns as well. For example, Establishing Communication
would incorporate the task pattern Requirements Gathering and
others.
• Task patterns—defines a problem associated with a software
engineering action or work task and relevant to successful
software engineering practice
• Phase patterns—define the sequence of framework activities
that occur with the process, even when the overall flow of
activities is iterative in nature.
Example includes SprialModel or Prototyping.
AN EXAMPLE OF PROCESS PATTERN
• Describes an approach that may be applicable when stakeholders have a
general idea of what must be done but are unsure of specific software
requirements.
• Pattern name. Requirements Unclear
• Intent. This pattern describes an approach for building a model that can
be assessed iteratively by stakeholders in an effort to identify or solidify
software requirements.
• Type. Phase pattern
• Initial context. Conditions must be met
(1)stakeholders have been identified;
(2) a mode of communication between stakeholders and the software
team has been established;
(3) the overriding software problem to be solved has been identified
by stakeholders ;
(4) an initial understanding of project scope, basic business
requirements and project constraints has been developed.
• Problem. Requirements are hazy or nonexistent. stakeholders
are unsure of what they want.
• Solution. A description of the prototyping process would be
presented here.
• Resulting context. A software prototype that identifies basic
requirements. (modes of interaction, computational features,
processing functions) is approved by stakeholders. Following
this,
1. This prototype may evolve through a series of increments to
become the production software or
2. the prototype may be discarded.
• Related patterns. CustomerCommunication, IterativeDesign,
IterativeDevelopment, CustomerAssessment,
RequirementExtraction.
PROCESS ASSESSMENT AND IMPROVEMENT
SP cannot guarantee that software will be delivered on time, meet the needs, or
has the desired technical characteristics. However, the process can be assessed to
ensure that it meets a set of basic process criteria that have been shown to be
essential for a successful software engineering.
• Standard CMMI Assessment Method for Process Improvement (SCAMPI) —
provides a five step process assessment model that incorporates five phases:
initiating, diagnosing, establishing, acting and learning.
• CMM-Based Appraisal for Internal Process Improvement (CBA IPI)—provides
a diagnostic technique for assessing the relative maturity of a software
organization; uses the SEI CMM as the basis for the assessment [Dun01]
• SPICE—The SPICE (ISO/IEC15504) standard defines a set of requirements for
software process assessment. The intent of the standard is to assist organizations
in developing an objective evaluation of the efficacy of any defined software
process. [ISO08]
• ISO 9001:2000 for Software—a generic standard that applies to any
organization that wants to improve the overall quality of the products, systems,
or services that it provides. Therefore, the standard is directly applicable to
software organizations and companies. [Ant06]!
PRODUCT AND PROCESS
Product:
Software engineering methods, tools and techniques for creating a
collection of similar software systems from a shared set of software
assets using a common means of production.
Process:
Main functionalities of the software and the constrains around
them.
If the process is weak, the end product will undoubtedly suffer.
But an obsessive over- reliable on process is also dangerous. In a
brief essay, Margaret davis (DAV95) comments on the duality of the
product and process.
About every ten years give or take five, The software
community redefines “the problem” by shifting its focus from
product issues to process issues. Thus, we have embraced structured
programming languages (product) followed by structured analysis
methods (process) followed by data encapsulation (product)
followed by the current emphasis on the software engineering
institutes software development capability maturity model (process)
[followed by object-oriented methods, followed by agile software
development].
CAPABILITY MATURITY MODEL INTEGRATION (CMMI)
CMMI
• Six levels of CMMI
– Level 0:Incomplete
– Level 1:Performed
– Level 2:Managed
– Level 3:Defined
– Level 4:Quantitatively managed
– Level 5:Optimized
• Incomplete -Process is adhoc . Objective and goal of process areas are
not known
• Performed –Goal, objective, work tasks, work products and other
activities of software process are carried out
• Managed -Activities are monitored, reviewed, evaluated and controlled
• Defined -Activities are standardized, integrated and documented
• Quantitatively Managed -Metrics and indicators are available to
measure the process and quality
• Optimized - Continuous process improvement based on quantitative
feed back from the user
-Use of innovative ideas and techniques, statistical quality control and
other methods for process improvement.
Staged model:
- This model is used if you have no clue of how to improve the process
for quality software.
- It gives a suggestion of what things other organizations have found
helpful to work first
- Levels are called maturity levels
CAPABILITY AND MATURITY LEVELS OF
CMMI
CMMI MODEL – TWO
REPRESENTATIONS
THANK YOU