What is Automotive Software Engineering?
•
Process models:
• Capability Maturity Model Integration® (CMMI)
• Software Process Improvement and Capability
Determination (SPICE) Determination (SPICE)
• V-Model
•
Standards:
• MISRA-C standard
• AUTOSAR
/ Faculteit Wiskunde en Informatica 25-11-2009 PAGE 0
What is Automotive Software Engineering?
•
Configuration management
g
g
• Product and Life Cycle
− development
− productionproduction
− operation and service
• Variants and Scalability
− components variantscomponents variants
− scalable system architecture
• Versions and Configurations
versions of a configuration evolve over time
− versions of a configuration evolve over time
− separation of hardware characteristics from software
/ Faculteit Wiskunde en Informatica 25-11-2009 PAGE 1
What is Automotive Software Engineering?
•
Configuration management facilitates the
g
g
administration of relations between systems and
components
•
Managed items:
•
Managed items:
• Requirements
• Specifications
• Implementations, such program versions and data versions
• Description files, such as for diagnostics, software updates,
and software parameterizationp
• Documentation
What is Automotive Software Engineering?
•
Project management, because
j
g
• Limitation in time
• Limitation in resources
Fi t i f i ti l t t t it
• Fine-tuning of organizational structure to suit
objectives
• Cross references with other projects
Quality
• Objectives:
− Quality
C t
− Costs
What is Automotive Software Engineering?
Project planning
• Phases:
• definition • planning • implementation • Completion
• Quality planningy p g
• Cost planning
• Project scheduling
/ Faculteit Wiskunde en Informatica 25-11-2009 PAGE 4
What is Automotive Software Engineering?
Project planning (continued)
• Development roles and Responsibilities
Role Responsibilities
Function development Analysis of user requirements, specification of logical system Function development Analysis of user requirements, specification of logical system
architecture
System development Analysis of logical system architecture, specification of technical system architecture
Software development Analysis of software requirements plus software specification design Software development Analysis of software requirements, plus software specification, design,
implementation and testing
Hardware development Analysis of hardware requirements, plus hardware specification, design, physical implementation and testing
f f f
Peripheral development Analysis of peripheral specific requirements, plus their specification, design, physical implementation and testing
Integration, testing and calibration
Integration, testing and calibration of onboard vehicle systems and their functions
/ Faculteit Wiskunde en Informatica 25-11-2009 PAGE 5
What is Automotive Software Engineering?
Subcontractor management
• System and component responsibility
• Interfaces for specification and integration
• Defining the cross-corporation development processDefining the cross corporation development process
/ Faculteit Wiskunde en Informatica 25-11-2009 PAGE 6
Activities Common to Software Projects
•
Requirements and specification includes:
• domain analysis
• defining the problem
i t th i
• requirements gathering
− obtaining input from as many sources as possible
• requirements analysisq y
− organizing the information
• requirements specification
writing detailed instructions about how the software
− writing detailed instructions about how the software
should behave
Activities Common to Software Projects
•
Design
• Deciding how the requirements should be implemented,
using the available technology
• Includes:
− Systems engineering: Deciding what should be in
hardware and what in software
− Software architecture: Dividing the system intoSoftware architecture: Dividing the system into
subsystems and deciding how the subsystems will interact
− Detailed design of the internals of a subsystemDetailed design of the internals of a subsystem − User interface design (probably less important) − Design of databases (probably less inportant)
/ Faculteit Wiskunde en Informatica 25-11-2009 PAGE 8
Activities Common to Software Projects
•
Modeling
• Creating representations of the domain or the software
− Use case modeling
− Structural modelingStructural modeling
− Dynamic and behavioral modeling
•
Programming
•
Quality assurance
• Reviews and inspections
• Testingg
•
Deployment
•
Managing the process
/ Faculteit Wiskunde en Informatica 25-11-2009 PAGE 9
Requirements Engineering
•
Domain analysis
y
• The process by which a software engineer learns about
the domain to better understand the problem:
− The domain is the general field of business or
− The domain is the general field of business or
technology in which the clients will use the software
− A domain expert is a person who has a deep
k l d f h d i
knowledge of the domain
• Benefits of performing domain analysis:
− Faster developmentFaster development
− Better system
− Anticipation of extensions
Requirements Engineering
Starting point for software projects
Requirements must be determined
Clients have produced requirements q New
development
A
B
development Evolution of
i i
A
B
C
D
green field project
Requirements Engineering
• Problem and scope:
• A problem can be expressed as:
− A difficulty the users or customers are facing,
− Or as an opportunity that will result in some benefit such
i d d ti it l
as improved productivity or sales.
• The solution to the problem normally will entail developing
software software
• A good problem statement is short and succinct
N th b d fi i i bl
• Narrow the scope by defining a more precise problem
− Exclude some of these things if too broad
− Determine high-level goals if too narrow
/ Faculteit Wiskunde en Informatica 25-11-2009 PAGE 12
What is a Requirement ?
•
It is a statement describing either
g
• 1) an aspect of what the proposed system must do,
• or 2) a constraint on the system’s development.
I ith it t t ib t i t d
• In either case it must contribute in some way towards
adequately solving the customer’s problem;
• the set of requirements as a whole represents a
negotiated agreement among the stakeholders.
•
A collection of requirements is a requirements
•
A collection of requirements is a requirements
document.
/ Faculteit Wiskunde en Informatica 25-11-2009 PAGE 13
Types of Requirements
•
Functional requirements
• Describe what the system should do
•
Quality requirements
• Constraints on the design to meet specified levels of
• Constraints on the design to meet specified levels of
quality
•
Platform requirements
C t i t th i t d t h l f th
• Constraints on the environment and technology of the
system
•
Process requirements
• Constraints on the project plan and development
methods in relation to suppliers
/ Faculteit Wiskunde en Informatica 25-11-2009 PAGE 14
Functional Requirements
• What inputs the system should accept
• What outputs the system should produce
• What data the system should store that other systems
might use might use
• What computations the system should perform
• The timing and synchronization of the above
• Use cases very suited to describe functional
requirements requirements
Quality Requirements
•
All must be verifiable
•
Examples: constraints on
• Response time
• Throughput
• Throughput
• Resource usage
• Reliabilityy
• Availability
• Recovery from failure
All f i t i bilit d h t
• Allowances for maintainability and enhancement
• Allowances for reusability