Unit1 Intro and Prescriptive Model
Unit1 Intro and Prescriptive Model
Process Engineering
1
Recap
A software process is a goal-oriented activity in the context of
engineering-style software development.
2
Recap (contd.)
A project is a unique endeavor, which is limited by a start date and an end date
and should achieve a goal.
A project phase (short: phase) is a collection of logically separated project
activities, usually culminating in the completion of a major deliverable or the
achievement of a major milestone
Typical characteristics of project phases are:
– Phases are mainly completed sequentially, but can overlap in some project
situations
– Phases can be subdivided into sub phases
– Unlike a process, a phase is always defined by a start date and an end date. If this
period is finished, the phase is finished. Typically, processes can be activated
multiple times
– Typical examples of phases are the elaboration phase, the construction phase, or
the transition phase. Phases are usually used when looking at a project from a
management perspective
3
Recap (contd.)
4
Software Model with Product flow
5
• A process agent (synonym: process performer ) is a person or machine that
enacts/executes the process in order to reach the process goal(s). Humans interpret
process scripts, machines interpret process programs.
• A process engineer is a person who pursues one or several goals of process modeling
(e.g., defining, extending, maintaining, improving process models).
• A role is a set of processes belonging together that are assigned to one or several
agents. A role combines the functional responsibility for the enactment of a process.
6
Example for a ROLE
7
Software Process Modeling and Improvement
Process models can be used for different purposes, e.g., for coordinating,
synchronizing, monitoring, and improving software development, maintenance, and
operation activities
Choosing appropriate process models and tailoring them for a specific project and
development environment, is important and requires sufficient understanding of
the effects of the processes in this very environment
The need for Software Process Improvement (SPI) is being widely recognized
nowadays. Due to the fact that software development processes are usually human
based and depend on the development 8 context, changes to these processes
typically cause significant costs and should be considered carefully.
The field of software process modeling, analysis, and evolution is also an important
research area
• Software engineering methods, techniques, and tools are being used in
processes. Hence, research on methods, techniques, and tools requires an
understanding of how they are being used. Researchers who are not familiar with
processes in which their research results are being used will likely fail to produce
beneficial results.
• Processes need to be investigated in order to identify and assess strengths and
weaknesses and to identify and evaluate improvements. Due to the fact that
many processes are human-based activities, their behavior is nondeterministic,
and the effects of processes need to be studied empirically for specific contexts.
• There are still many problems and challenges related to process management
that lead to fundamental research questions (e.g., how to support the re-planning
of human-based processes, how to provide process models for reuse, how to
define the degree of allowed flexibility).
9
Process Modeling Goals
11
Process Modeling Benefits
– Better transparency of software engineering activities.
– The ability to perform process measurement (i.e., process models that are used in
practice are a prerequisite for process measurement and, in consequence, for
process improvement).
1
2
Prescriptive vs. Descriptive Models
1
3
Pre requisites to opt for Prescriptive Models
1
4
• The scope of validity should be known
1
5
• The impact of a process should be known
1
6
• The degree of confidence should be known
1
7
• The process should be tailorable
Since the context for which a process model has been developed rarely
presents a perfect match for the context it is supposed to be applied in next,
and since goals may also differ, it should be possible to adapt the process
and its corresponding model to the new context.
1
8
Prescriptive Process Model Classes
1
9
Waterfall Model
Advantages. Typically, waterfall-like projects face only few
problems during integration. Version and configuration
management is also simplified.
The waterfall approach does not scale very well for large projects
and long cycle times. The waterfall process model is often
referenced, but rarely applied in its strict form.
Iterative enhancement model (three iterations)
Advantages. Iterative projects support efficient learning. With iterations
designed properly, the core of the final product is available very early,
thus featuring essential properties of the complete product
• Integration testing is supported due to relatively small increments being
added at a time. In case of fixed delivery dates, incremental
development helps to ensure that the most important functionality can
actually be delivered—and the customer can decide what is most
important to him
Challenges. Since the product design is based on the current set of
requirements, there is a risk that requirements showing up later may be
expensive to fulfill, due to design decisions made earlier
• Integration may become increasingly difficult with the number of
iterations, depending on how well requirements may be partitioned and
on the system architecture.
• Many modern software process models, such as the Unified
Process, Extreme Programming, or Scrum follow an iterative
pattern.
Prototyping Model
Advantages. A prototype can be developed when the final properties
are not entirely clear. The direct contact between customer and
developer reduces misunderstandings.
• In some cases, prototypes may even be used for evaluating business
models, before a lot of money is spent on developing the real software.
• Inconsistent requirements are discovered earlier, either by the
developer or by the customer who evaluates the prototype
Challenges. There is an inherent risk that side effects are not sufficiently
considered, especially nonfunctional requirements such as reliability or
safety
• A prototype is a great way to clarify ambiguous or unknown
requirements; however, don’t ever confuse it with the first version of the
actual system
• Another risk is that the customer (or the developer) considers the
prototype as the first version of the system, and that the system will be
evolved from the prototype, potentially leading to poorly documented,
badly architected systems.
Boehm’s Spiral Model
Advantages. The third step accommodates features of other lifecycle
process models as needed.The spiral model is therefore very flexible
• The spiral model forms a single approach for software development and
maintenance, whereas other models often concentrate on one or the other.
• The explicit consideration of risks avoids many of the difficulties of other
process models.
• The ICSM was developed for very large, very risky projects where one
does not know at the beginning whether and to what extent the goal can
be reached.
Unified Process
31
Cleanroom
Development
Process
Engineering Models
Model-based statistical testing process overview
3
4
Example system usage model of a telephone
Process for Hybrid Cost Estimation( CoBRA)
The method involves four major steps: develop causal model, quanti
causal model, determine nominal project costs, and generate cost
overhead model
An example CoBRA causal model
®
Past project details will be used to Determine the nominal project cost
Extreme Programming (XP)
XP features these practices that should be obeyed in daily work
• Sit together
• Whole team
• Informative workspace
• Energized work
• Pair programming
• Slack
• Ten-minute build
• Continuous integration
• Test-first programming
• Incremental design
Interaction of XP’s weekly and quarterly cycles
Process Standards
Standard Software Life Cycle – ISO/IEC 12207:2008
Overall Safety Lifecycle of IEC-61508 for E/E/PESs
Software Safety Life Cycle – IEC 61508
Part 1: Glossary
Part 2: Management of functional safety
Part 3: Concept phase.
Part 4: Product development: system level.
Part 5: Product development: hardware level.
Part 6: Product development: software level.
Part 7: Production and operation
Part 8: Supporting processes.
Part 9: ASIL-oriented and safety-oriented analyses.
Part 10: Guideline.
ISO 26262 – Functional Safety of Road Vehicles
Split ups
ISO 26262 – Functional Safety of Road Vehicles
Split ups
ISO 26262 – Functional Safety of Road Vehicles - Split ups
Software Lifecycle for Medical Device – IEC 62304
1. Consistency
2. Up-to-date-ness
3. Design
4. Accessibility
59
Electronic Process Guides(EPG)
An EPG is typically generated by a process modeling environment, i.e., it uses the process
model as input and generates a Web-based representation, i.e., a set of interlinked Web
pages – Static Web Guide
Big-bang:
The complete organization is switched from the old to the new
process at the same time. In this case, there will be no confusion resulting
from people working in different projects/departments using different
processes. However, this strategy requires a large amount of support
capability for educating and coaching the employees. An intensified
version of the big-bang strategy also switches running projects to the new
process. However, this creates a lot of overhead; therefore, this is rarely
done.
6
6
A phased process deployment approach
An Exemplary Deployment Approach - Phases
1. Process Development
2. Quality Gate 1: Piloting Maturity
3. Infrastructure
4. Process Performer Education and Support
5. Piloting
6. Quality Gate 2: Rollout Maturity
7. Rollout
8. Operation
1. Process Development
During this phase, the changed process is developed, i.e., its model
is created and the necessary documentation (handbooks, EPGs, etc.)
is prepared. A typical approach is to create a descriptive model of the
current process, analyze it for weaknesses, and modify the model to
remove these weaknesses. However, this activity is not considered
part of process deployment, and therefore is not detailed here.
2 - Quality Gate 1: Piloting Maturity
Goal achievement
• Are the goals of the changed process documented in a verifiable form?
• Which problems are addressed?
• Does a cost/benefit analysis justify changing the process?
Process handbook (presentation and contents)
• Are the essential elements included (cf. Sect. 2.5.1.2)?
• Are the presentation and contents okay for the target audience?
• Is the process handbook complete and correct?
Quality assurance
• Was the changed process reviewed? By whom? Was the review documented?
• Was the process reworked according to the review results?
• Were all stakeholders identified and involved?
Context factors
• What is the environment (technical/social) of the target audience?
• Are document templates available?
• Is there a definition of when the process is “successful”? What are the success
criteria?
• Has a deployment strategy been defined?
3. Infrastructure
Process performer support before project start, during project runtime, and after
the project finishes.
• Provision of education materials
• Electronic newsletters
• Community building: forum, wiki, blog
• Coaching of process performers during the project
• Provision of helpdesk service
4. Process Performer Education and Support
Feedback mechanisms before project start, during project runtime, and after the
project finishes
• To decrease the process performers’ fear
• To identify process problems (“you missed a step here”)
• To identify potentially problematic areas (“this is never going to work”)
• To check when the project is over: Was the education adequate? Tool
• support? Process handbook?
• To create a “Wishlist” for future changes to the process
5. Piloting
During a pilot project, the changed process is tested, i.e., it is applied in a realistic
setting and the effects of its application are recorded. The goal of such a pilot project is
to evaluate whether the changed process is fit for organization-wide deployment
Pilot project selection
• Project type (representative for the organization?)
• What is the influence of the changed process? Parallelization/elimination/
acceleration/. . .
• Are fallback scenarios necessary? If yes, are they defined and realistic?
• Are context factors considered (e.g., higher-level management attention, or
an expected new standard, or new technologies)?
Identification of stakeholder classes within the organization
• Promoters
• Supporters
• Hoppers
• Opponents
Success evaluation
• Along the previously defined success criteria
• Organization-wide rollout only if successful as defined by the criteria!
5. Piloting