Download process

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Phase-gate process wikipedia , lookup

Software development wikipedia , lookup

Transcript
EMBEDDED SYSTEMS SOFTWARE TRAINING CENTER
SOFTWARE LIFE CYCLE
COPYRIGHT © 2011 DSR CORPORATION
Welcome
 Instructor Introduction
 Objectives and Content
 Class Materials
 Agenda
COPYRIGHT © 2011 DSR CORPORATION
2
Instructor Introduction
 Alexandr Bychkov
 VP of Engineering at DSR
COPYRIGHT © 2011 DSR CORPORATION
3
Objectives
 Understand what we mean by a “process”
 Understand software development products, processes,
and resources
 Understand the various models of the software
development process
 Understand the tools and techniques used for process
modeling
COPYRIGHT © 2011 DSR CORPORATION
4
Class Materials
 Software Engineering Introduction presentation is
available here:
 http://www.estc.dsr-company.com/images/f/f3/Se-l2diagrams.pptx
 Hands-on Exercises are available here:
 http://www.estc.dsr-company.com/images/5/5b/Se-l2exercises.docx
COPYRIGHT © 2011 DSR CORPORATION
5
Agenda
1. The Meaning of Process
2. Software Process Models
3. Tools and Techniques for Process Modelling
4. Practical Process Modelling
COPYRIGHT © 2011 DSR CORPORATION
6
EMBEDDED SYSTEMS SOFTWARE TRAINING CENTER
1. THE MEANING OF PROCESS
1. The Meaning of Process
 A process: a series of steps involving activities,
constraints, and resources that produce an intended
output of some kind
 A process involves a set of tools and techniques
COPYRIGHT © 2011 DSR CORPORATION
8
1. The Meaning of Process
Process Characteristics
 Prescribes all major process activities
 Activities are organized in sequence, so timing is clear
 Each process has guiding principles, including goals of each
activity
 Each process activity has entry and exit criteria
 May be composed of subprocesses with hierarchy or links
 Produces intermediate and final products
 Resources:
 Environment, tools
 Human effort and experience
 Constraints may apply to an activity, resource or product
COPYRIGHT © 2011 DSR CORPORATION
9
1. The Meaning of Process
The Importance of Processes
 Impose consistency and structure on a set of activities
 Guide us to understand, control, examine, and improve
the activities
 Enable us to capture our experiences and pass them
along
COPYRIGHT © 2011 DSR CORPORATION
10
EMBEDDED SYSTEMS SOFTWARE TRAINING CENTER
2. SOFTWARE PROCESS MODELS
2. Software Process Models
Software Life Cycle Process
 When a process involves building a software, the process
may be referred to as a software lifecycle
 Activities (sub-processes):
 Requirements analysis and definition
 System (architecture and high level) design
 Program (low level) design
 Writing programs (coding/implementation)
 Testing:
 unit
 integration
 system
 System delivery (deployment)
 Maintenance
COPYRIGHT © 2011 DSR CORPORATION
12
2. Software Process Models
Software Life Cycle Processes by IEEE/EIA 12207.0

Primary lifecycle processes:






Supporting lifecycle processes:









Development process
Acquisition process
Supply process
Operation process
Maintenance process
Audit process
Configuration Management
Joint review process
Documentation process
Quality assurance process
Problem solving process
Verification process
Validation process
Organizational processes:




Management process
Infrastructure process
Improvement process
Training process
COPYRIGHT © 2011 DSR CORPORATION
13
2. Software Process Models
Software Development Process Models
 Waterfall model
 V model
 Prototyping model
 Spiral model
 Transformational model
 Phased development: increments and iterations
 Agile methods
 Rapid application development (RAD)
 Cowboy coding
COPYRIGHT © 2011 DSR CORPORATION
14
2. Software Process Models
Waterfall Model
COPYRIGHT © 2011 DSR CORPORATION
15
2. Software Process Models
Waterfall Model Specifics
 One of the first process development models proposed
(1970, article by Winston W. Royce)
 Works for well understood problems with minimal or no
changes in the requirements
 Simple and easy to explain to customers
 It presents
 a very high-level view of the development process
 sequence of process activities
 Each major phase is marked by milestones and
deliverables (artefacts)
COPYRIGHT © 2011 DSR CORPORATION
16
2. Software Process Models
Drawbacks of the Waterfall Model
 Provides no guidance on how to handle changes to products and
activities during development (assumes requirements can be frozen)
 Doesn’t allow to evaluate the requirements feasibility
 Doesn’t contain the bug fixing activity
 Views software development as a manufacturing process rather
than as a creative process
 There are no iterative activities that lead to creating a final product
 Long wait before the final product
COPYRIGHT © 2011 DSR CORPORATION
17
2. Software Process Models
V Model
COPYRIGHT © 2011 DSR CORPORATION
18
2. Software Process Models
Specific of Embedded System Development Process
System Requirements
Definition
System Architecture Design
SYSTEM ENGINEERING PROCESS
System Integration and System
Integration Test
Software Requirements
Definition
Comprehensive Software
Testing
Software Architecture
Design
Detailed Software Design
SOFTWARE ENGINEERING PROCESS
COPYRIGHT © 2011 DSR CORPORATION
System Test
Integration and Software Testing
and Software Integration
Unit Test
Implementation
19
2. Software Process Models
Prototyping Model
 Allows repeated investigation of the requirements or
design
 Reduces risk and uncertainty in the development
 Very helpful for
 UI specification
 Proof-of-concept
COPYRIGHT © 2011 DSR CORPORATION
20
2. Software Process Models
Spiral Model – Minimization and Control of Risk
COPYRIGHT © 2011 DSR CORPORATION
21
2 Software Process Models
Transformational Model
COPYRIGHT © 2011 DSR CORPORATION
22
2. Software Process Models
Phased Development: Increments and Iterations
COPYRIGHT © 2011 DSR CORPORATION
23
2. Software Process Models
Phased Development: Increments and Iterations (cont.)
 Incremental development: starts with a small functional subsystem
and adds functionality with each new release
 Iterative development: starts with a full system, then changes
functionality of each subsystem with each new release
COPYRIGHT © 2011 DSR CORPORATION
24
2. Software Process Models
Phased Development
 Phased development is desirable for several reasons:
 It enables customers to have some functionality while the rest is
being developed
 Training can begin early, even though some functions are still in
progress
 Frequent releases allow developers to fix unanticipated
problems globally and quickly
 The development team can focus on different areas of expertise
with different releases
COPYRIGHT © 2011 DSR CORPORATION
25
2. Software Process Models
Agile Methods
 Emphasis on flexibility in producing software quickly and capably
 Agile manifesto:
 Value individuals and interactions over process and tools
 Prefer to invest time in producing working software rather than in
producing comprehensive documentation
 Focus on customer collaboration rather than contract negotiation
 Concentrate on responding to change rather than on creating a plan
and then following it
COPYRIGHT © 2011 DSR CORPORATION
26
2. Software Process Models
Agile Methods: Examples of Agile Process
 Extreme programming (XP)
 Scrum: 30-day iterations; multiple self-organizing teams; daily
“scrum” coordination
 Feature-driven development (FDD): driven from a client-valued
functionality (feature) perspective
 Adaptive software development (ASD)
COPYRIGHT © 2011 DSR CORPORATION
27
2. Software Process Models
Agile Methods: Twelve Facets of XP
 The planning game (customer defines
value)
 Small releases
 Metaphor (common vision, common
names)
 Simple design
 Writing tests first
 Refactoring
COPYRIGHT © 2011 DSR CORPORATION
 Pair programming
 Collective ownership
 Continuous integration (small
increments)
 Sustainable pace (40 hours/week)
 On-site customer
 Coding standards
28
2. Software Process Models
Agile Methods: Scrum
 Roles: “Scrum Master”, “Product Owner”, “Team”
 A sprint is the basic unit of development in Scrum
 “backlog”, which is a prioritized set of high level requirements of
work to be performed
 Meetings: Daily Stand-ups, Sprint Planning Meeting, Sprint Review
Meeting
COPYRIGHT © 2011 DSR CORPORATION
29
2. Software Process Models
Agile Methods: RAD
 RAD uses minimal planning in favor of rapid prototyping
 It involves methods like iterative development and software
prototyping
 Rad involves Joint Application Development (JAD) techniques and
CASE tools to translate user needs into working model
COPYRIGHT © 2011 DSR CORPORATION
30
EMBEDDED SYSTEMS SOFTWARE TRAINING CENTER
3. TOOLS AND TECHNIQUES FOR PROCESS MODELING
31
3. Tools and Techniques for Process Modeling
 Notation depends on what we want to capture in the
model
 The two major notation categories:
 Static model: depicts the process
 Example: Lai notation
 Dynamic model: enacts the process
 Marvel Specification Language
COPYRIGHT © 2011 DSR CORPORATION
32
EMBEDDED SYSTEMS SOFTWARE TRAINING CENTER
4. PRACTICAL PROCESS MODELING
35
4. Practical Process Modeling
Example 1: Control Panel
Sensor
data
Sensor
data
Collector
Data
processor
Network
bridge
Summary
Data
CDMS
Reports
UI
Web Service
Control
DB
Operating System
COPYRIGHT © 2011 DSR CORPORATION
Hardware
3rd party SW
36
4. Practical Process Modeling
Example 1: Control Panel (cont.)
 Chosen Process model: Waterfall-based with prototyping and
early delivery
 Prototyping for:
 DBMS choice
 Feasibility evaluation
 HW limitations
 3rd party compatibility
 Performance requirements understanding
 LLD and implementation in parallel
 Early delivery
 After unit testing to start system integration
COPYRIGHT © 2011 DSR CORPORATION
37
4. Practical Process Modelling
Example 1: Control Panel (cont.)
REQUIREMENTS ANALYSIS
SYSTEM DESIGN
PROGRAM DESIGN
PROTOTYPING
CODING
EARLY DELIVERY
UNIT TESTING
INTEGRATION TESTING
SYSTEM TESTING
FINAL DELIVERY
MAINTENANCE
COPYRIGHT © 2011 DSR CORPORATION
38
4. Practical Process Modeling
Example 2: Porting
 Tasks:
 Porting to a new platform
 Hardware
 OS
 New features implementation
 Process model:
 Iterative
 Phase 1
 Porting to anew platform
 Phase 2
 New feature implementation
COPYRIGHT © 2011 DSR CORPORATION
39
4. Practical Process Modeling
Example 3: Huge Innovative Web-based System
 Details:
 The work requires 2 years to implement
 Set of main features is clear
 Set of supplementary features is not clear
 Process model: Iterative
 Phase 1: Development of the operable prototype
 Engine with basic functions
 Basic UI
 Phase 2:
 Development of the sellable version 1.0 with basic functionality
 Phases 3…n
 Enhancement of functionality using Scrum
COPYRIGHT © 2011 DSR CORPORATION
40
4. Practical Process Modeling
Example 4: Ariane-5
 Reuse process model presentation
COPYRIGHT © 2011 DSR CORPORATION
41
4. Practical Process Modeling
Typical Issues
 Customer was not satisfied with results
 System developed and tested well on Windows 2008 Server, but
customer uses Windows 2008 R2 Server where the main functionality
does not work. Issue: incomplete requirements.
 Wrong test results
 QA team wrongly interpreted design specification so all of the tests
failed. Issue: incomplete design.
 A developed SW system has good quality but cannot operate
on the user’s site because the feature that supports their
workflow is not supported.
 Issue: incomplete requirements
COPYRIGHT © 2011 DSR CORPORATION
42
Summary
 Process development involves activities, resources, and
products
 Process model includes organizational, functional,
behavioural, and other perspectives
 A process model must be chosen for every project and
product
 A process model is useful for guiding team behaviour,
coordination, and collaboration
COPYRIGHT © 2011 DSR CORPORATION
43
References
1. Software Engineering: Theory and Practice / Shari Lawrence
Pfleeger
2. SWEBOK. Guide to the Software Engineering. Body of Knowledge.
2004 Version / A project of the IEEE Computer Society Professional
Practices Committee
3. IEEE Std 610.12-1990, IEEE Standard Glossary of Software
Engineering Terminology
4. IEEE Std 1074-1997. IEEE Standard for Developing Software Life
Cycle Processes
COPYRIGHT © 2011 DSR CORPORATION
44