Valeo Exam Cafc

17
SWE: v-cycle,SW Requirements Specification, Requirements analysis->Engineering,High level design->Implementation or detailed design->Static test->integration test->validation Validation is to test the whole program and it is called black box test Verification white box, check each part in the program if it complies with the company aspects, optimized , can perform faster,……etc In the Requirements analysis phase, the requirements of the proposed system are collected by analyzing the needs of the user(s). This phase is concerned about establishing what the ideal system has to perform. However it does not determine how the software will be designed or built. Usually, the users are interviewed and a document called the user requirements document is generated. The user requirements document will typically describe the system’s functional, physical, interface, performance, data, security requirements etc as expected by the user. It is one which the business analysts use to communicate their understanding of the system back to the users. The users carefully review this document as this document would serve as the guideline for the system designers in the system design phase. The user acceptance tests are designed in this phase. See also Functional requirements. this is parallel processing [edit]System Design Systems design is the phase where system engineers analyze and understand the business of the proposed system by studying the user requirements document. They figure out possibilities and techniques by which the user requirements can be implemented. If any of the requirements are not feasible, the user is informed of the issue. A resolution is found and the user requirement document is edited accordingly. The software specification document which serves as a blueprint for the development phase is generated. This document contains the general system organization, menu structures, data structures etc. It may also hold example business scenarios, sample windows, reports for the better understanding. Other

Transcript of Valeo Exam Cafc

Page 1: Valeo Exam Cafc

SWE:

v-cycle,SW Requirements Specification,

Requirements analysis->Engineering,High level design->Implementation or detailed design->Static test->integration test->validation

Validation is to test the whole program and it is called black box test

Verification white box, check each part in the program if it complies with the

company aspects, optimized , can perform faster,……etc

In the Requirements analysis phase, the requirements of the proposed system are collected by analyzing the needs of the user(s). This phase is concerned about establishing what the ideal system has to perform. However it does not determine how the software will be designed or built. Usually, the users are interviewed and a document called the user requirements document is generated. The user requirements document will typically describe the system’s functional, physical, interface, performance, data, security requirements etc as expected by the user. It is one which the business analysts use to communicate their understanding of the system back to the users. The users carefully review this document as this document would serve as the guideline for the system designers in the system design phase. The user acceptance tests are designed in this phase. See also Functional requirements. this is parallel processing [edit]System Design Systems design is the phase where system engineers analyze and understand the business of the proposed system by studying the user requirements document. They figure out possibilities and techniques by which the user requirements can be implemented. If any of the requirements are not feasible, the user is informed of the issue. A resolution is found and the user requirement document is edited accordingly. The software specification document which serves as a blueprint for the development phase is generated. This document contains the general system organization, menu structures, data structures etc. It may also hold example business scenarios, sample windows, reports for the better understanding. Other

Page 2: Valeo Exam Cafc

technical documentation like entity diagrams, data dictionary will also be produced in this phase. The documents for system testing are prepared in this phase. [edit]Architecture Design The phase of the design of computer architecture and software architecture can also be referred to as high-level design. The baseline in selecting the architecture is that it should realize all which typically consists of the list of modules, brief functionality of each module, their interface relationships, dependencies, database tables, architecture diagrams, technology details etc. The integration testing design is carried out in the particular phase. [edit]Module Design The module design phase can also be referred to as low-level design. The designed system is broken up into smaller units or modules and each of them is explained so that the programmer can start coding directly. The low level design document or program specifications will contain a detailed functional logic of the module, in pseudocode: database tables, with all elements, including their type and size all interface details with complete API references all dependency issues error message listings complete input and outputs for a module. The unit test design is developed in this stage. [edit]Validation Phases [edit]Unit Testing In computer programming, unit testing is a method by which individual units of source code are tested to determine if they are fit for use. A unit is the smallest testable part of an application. In procedural programming a unit may be an individual function or procedure. Unit tests are created by programmers or occasionally by white box testers. The purpose is to verify the internal logic code by testing every possible branch within the function, also known as test coverage. Static analysis tools are used to facilitate in this process, where variations of input data are passed to the function to test every possible case of execution. [edit]Integration Testing In integration testing the separate modules will be tested together to expose faults in the interfaces and in the interaction between integrated components. Testing is usually black box as the code is not directly checked for errors.

Page 3: Valeo Exam Cafc

[edit]System Testing System testing will compare the system specifications against the actual system.After the integration test is completed, the next test level is the system test. System testing checks if the integrated product meets the specified requirements. Why is this still necessary after the component and integration tests? The reasons for this are as follows: Reasons for system test a) In the lower test levels, the testing was done against technical specifications, i.e., from the technical perspective of the software producer. The system test, though, looks at the system from the perspective of the customer and the future user. The testers validate whether the requirements are completely and appropriately met. Example The customer (who has ordered and paid for the system) and the user (who uses the system) can be different groups of people or organizations with their own specific interests and requirements of the system. b) Many functions and system characteristics result from the interaction of all system components, consequently, they are only visible on the level of the entire system and can only be observed and tested there. [edit]User Acceptance Testing Acceptance testing is the phase of testing used to determine whether a system satisfies the requirements specified in the requirements analysis phase. The acceptance test design is derived from the requirements document. The acceptance test phase is the phase used by the customer to determine whether to accept the system or not. The following description is unacceptable in and overview article Acceptance testing: - To determine whether a system satisfies its acceptance criteria or not. - To enable the customer to determine whether to accept the system or not. - To test the software in the "real world" by the intended audience. Purpose of acceptance testing: - To verify the system or changes according to the original needs. Procedures for conducting the acceptance testing: Define the acceptance criteria: - Functionality requirements. - Performance requirements. - Interface quality requirements. - Overall software quality requirements.

Page 4: Valeo Exam Cafc

Develop an acceptance plan: - Project description. - User responsibilities. - Acceptance description. - Execute the acceptance test plan. - to develop

Customer Requirements saved in a document ->

http://en.wikipedia.org/wiki/V-Model_(software_development)

SW Design,& diff bet both static and dynamic architecture,testing categories,

What is the difference between Static Testing and Dynamic Testing?

Static Testing Static Testing is a White Box testing technique where the developers verify or test their code with the help of checklist to find errors in it, this type of testing is done without running the actually developed application or program. Code Reviews, Inspections, WaStatic Testing

Static Testing is a White Box testing technique where the developers verify or test their code with the help of checklist to find errors in it, this type of testing is done without running the actually developed application or program. Code Reviews, Inspections, Walkthroughs are mostly done in this stage of testing.

Dynamic Testing

Dynamic Testing is done by executing the actual application with valid inputs to check the expected output. Examples of Dynamic Testing methodologies are Unit Testing, Integration Testing, System Testing and Acceptance Testing.

Some differences between Static Testing and Dynamic Testing are,

· Static Testing is more cost effective than Dynamic Testing because Static Testing is done in the initial stage.

Page 5: Valeo Exam Cafc

· In terms of Statement Coverage, the Static Testing covers more areas than Dynamic Testing in shorter time.

· Static Testing is done before the code deployment where the Dynamic Testing is done after the code deployment.

· Static Testing is done in the Verification stage where the Dynamic Testing is done in the Validation stage.lkthroughs are mostly done in this stage of testing

Static and dynamic architecture tests

Static: test memory usages, integration between functions, test the program before running it

Dynamic: test the program while it is running configuration managements

the task of tracking and controlling changes in the software. Configuration management practices include revision control and the establishment of baselines.

PVCS,SVN,CVS

http://en.wikipedia.org/wiki/Software_configuration_management is more cost effective than Dynamic Testing because Static Testing is done in the C & embedded C:

Difference between Embedded C and C

here are differences between C and embedded C, some of them are:

C is for desktop computers, embedded C usually is for microcontroller based

applications.

C use the resources of desktop computers (memory, OS, etc)

Embbeded C use only limited resources available in chip (limited RAM, ROM,

ports, etc).

Embbed C could be a subset of C.

Page 6: Valeo Exam Cafc

embedded C is also same with some diffrent environment. Here u have to take

care about memory. In embedded environment memory is available very less

than desktop computers, where u can't bother about memory. In your program u

have to see that in an instant of time your program is not using more than

available memory of the microcontroller. If it is trying to use then the program 'll

crash.

An embedded system is an application that contains at least one programmable

computer (typically in the form of a microcontroller, a microprocessor or digital

signal processor chip) and which is used by individuals who are, in the main,

unaware that the system is computer-based.

Beside this, also timing constraint also a mesure though optinal but mostly

wanted in embedded C. You have to check the code in real time environment with

the help of emulators and debuggers.

what makes embedded c so differnt from the regular c is

*abscence of console

*restriction on code size

*and the compiler

regular compilers create os dependent executable file where as embedded c

compilers create a file which are downloaded to controllers to realize

the required task

regular compilers don't give abstraction for all the resources of the system

where as in embedded c compiler give access to all the resources directly so

code efficient

code written in embedded c are though not cross compatible but they are

series compatible

http://www.edaboard.com/thread95626.html

some functions to comment on it as:

switch case(one of the cases without break)

postincrement and preincrement(++i,i++)->Result

Page 7: Valeo Exam Cafc

#define??

#define BIG 512

Similar to find and replace

int arrayObjects[BIG];

#include??

#pragma??

'#pragma' is for compiler directives that are machine-specific or operating-system-specific, i.e. it tells the compiler to do something, set some option, take some action, override some default, etc. that may or may not apply to all machines and operating systems. see msdn for more info Changes some of compiler functions

#asm??

To write assembly code

#ifdef. .#endif?

Text inside an ifdef/endif or ifndef/endif pair will be left in or removed by the pre-

processor depending on the condition. ifdef means "if the following is defined"

while ifndef means "if the following is not defined".

http://stackoverflow.com/questions/3744608/the-role-of-ifdef-and-ifndef

const??

extern??

To make same parameters used in two different file have the same location in the

memory

Page 8: Valeo Exam Cafc

Is one of this parameters is static, extern can’t be used

The "extern" declaration in C is to indicate the existence of, and the type of, a

global variable or function. A global variable, or a global function, is one that is

available to all C modules (a single C module is typically a single .c file). An extern

is something that is defined externally to the current module. In many cases, you

can leave off the extern qualifier and not notice any difference because the linker

can collapse multiple definitions to one. But the intent is then unclear in the code,

and the code is error prone in case of typos. It is much clearer to define the global

in one place, and then declare extern references to it in all the other places.

When refering to globals provided by a library, especially a shared library, this is

even more important in order to ensure you are talking about the correct,

common instance of the variable.

Declaring a variable as extern will result in your program not reserving any

memory for the variable in the scope that it was declared. For instance (as

example) if a program's source code declared the variable var as a global volatile

int in foo.c, to properly use it in bar.c you would declare it as extern volatile int

var.

It is also not uncommon to find function prototypes declared as extern.

A good C manual will certainly answer this more completely.

volatile??

Volatile variables, variables that can be changed by an external process

static??

A variable that retains the same data throughout the execution of a program. In

contrast, a dynamic variable can have different values during the course of a

program. http://www.compeng.dit.ie/staff/tscarff/stack/stack.htm

register??

'int' type?? 'unsigned char' type?? (size)

Int =16 bit

Long int = 32 bit

Page 9: Valeo Exam Cafc

Unsigned int=16 bit

static and dynamic variables

Static variables (should) remain the same e.g. temperature of a water bath, k

constant of a particular spring. Dynamic variables change as the experiment

progresses e.g. air temperature and pressure, amount of natural light.

diff. bet function and Macros

A macro is a bunch of code that gets put inline in the code every time you put it in your program.

A function is compiled once and can be called from anywhere that has visibility to the funciton.

In other words, a macro takes up much more memory than does a function if it is to be used more than once.

http://www.c4learn.com/2010/01/difference-between-macro-and-function.html

some MISRA rules

http://computing.unn.ac.uk/staff/cgam1/teaching/0703/misra%20rules.pdf

specifications of embedded SW

http://www.microtoolsinc.com/Howsrs.php

embedded system:

Real time??

operations is limited with a deadline.

Input capture??

Input capture is a method of dealing with input signals in an embedded system.

Embedded systems using input capture will record a timestamp in memory when

an input signal is received. It will also set a flag indicating that an input has been

captured. This allows the system to continue executing without interruption while

an input is being received while still having the capability to trigger events based

on the exact time when the input was received.

Page 10: Valeo Exam Cafc

The corresponding capability to trigger an output at a specified time, based on a

timestamp in memory, is called output compare.

There are many programmable interrupt controllers that provide dedicated input

capture pins and a programmable counter along with it. These pins generate

interrupts to the controller, which then executes an interrupt service routine. The

interrupts can be programmed to occur at the rising or falling edge of the input

signal, depending on requirements.

on activating an interrupt??

Hardware and Software

There are two types of interrupts: Hardware and Software. Software interrupts

are called from software, using a specified command. Hardware interrupts are

triggered by peripheral devices outside the microcontroller. For instance, your

embedded system may contain a timer that sends a pulse to the controller every

second. Your microcontroller would wait until this pulse is received, and when the

pulse comes, an interrupt would be triggered that would handle the signal. Interrupt Service Routines

Interrupt Service Routines (ISR) are the portions of the program code that handle

the interrupt requests. When an Interrupt is triggered (either a hardware or

software interrupt), the processor breaks away from the current task, moves the

instruction pointer to the ISR, and then continues operation. When the ISR has

completed, the processor returns execution to the previous location.

Many embedded systems are called interrupt driven systems, because most of

the processing occurs in ISRs, and the embedded system spends most of it's time

in a low-power mode.

Sometimes ISR may be split into two parts: top-half (fast interrupt handler, First-

Level Interrupt Handler (FLIH)) and bottom-half (slow interrupt handler, Second-

Level Interrupt Handlers (SLIH)). Top-half is a faster part of ISR which should

quickly store minimal information about interrupt and schedule slower bottom-

half at a later time. Interrupt Vector Table

Page 11: Valeo Exam Cafc

The "Interrupt Vector Table" is a list of every interrupt service routine. It is located

at a fixed location in program memory.

(Some processors expect the interrupt vector table to be a series of "call"

instructions, each one followed by the address of the ISR. Other processors expect

the interrupt vector table to hold just the ISR addresses alone.)

You must make sure that every entry in the interrupt vector table is filled with the

address of some actual ISR, even if it means making most of them point to the "do

nothing and return from interrupt" ISR.

http://en.wikibooks.org/wiki/Embedded_Systems/Interrupts

synchronous and asynchronous??

certain freq->pll*4,divider by 2=??

http://en.wikipedia.org/wiki/Phase-locked_loop

PWM?? (what parameters specify PWM?)

difference between microprocessor and microcontroller??

http://www.allinterview.com/showanswers/1332.html

CAN and LIN?? (CAN is multi-master and Lin is single master)

http://en.wikipedia.org/wiki/Local_Interconnect_Network

deadlock??

In computer science, Coffman deadlock refers to a specific condition when two or

more processes are each waiting for each other to release a resource, or more

than two processes are waiting for resources in a circular chain (see Necessary

conditions). Deadlock is a common problem in multiprocessing where many

processes share a specific type of mutually exclusive resource known as

a software lock or soft lock. Computers intended for the time-sharing and/or real-

time markets are often equipped with a hardware lock (or hard lock) which

guarantees exclusive access to processes, forcing serialized access. Deadlocks are

particularly troubling because there is no general solution to avoid (soft)

deadlocks.

http://en.wikipedia.org/wiki/Deadlock

Page 12: Valeo Exam Cafc

simulator and emulator??

A simulator is a software that duplicates some processor in almost all the possible

ways.

An emulator is a hardware which duplicates the features and functions of a real

system, so that it can behave like the actual system.

Usually the emulators and simulators are used for the testing of new

architectures and also to give training in some complex systems.

A most famous example for a simulator is the flight simulator that simulates the

functonalities of an aircraft.

http://stackoverflow.com/questions/1584617/simulator-or-emulator-what-is-the-difference

CPU load??

Intuitively, the load average is an average over time of the number of processes in

the run queue. uptime reports load averages over 1-, 5- and 15-minute intervals.

Typically, load averages are divided by the number of CPU cores to find the load

per CPU. Load averages above 1 per CPU indicate that the CPUs are fully utilized.

Depending on the type of load and the I/O requirements, user-visible

performance may not be affected until levels of 2 per CPU are reached. A general

rule of thumb is that load averages that are persistently above 4 times the

number of CPUs will result in sluggish performance.

stack??

Stacks in computing architectures are regions of memory where data is added or

removed in a last-in-first-out manner.

In most modern computer systems, each thread has a reserved region of memory

referred to as its stack. When a function executes, it may add some of its state

data to the top of the stack; when the function exits it is responsible for removing

that data from the stack. At a minimum, a thread's stack is used to store the

location of function calls in order to allow return statements to return to the

correct location, but programmers may further choose to explicitly use the stack.

If a region of memory lies on the thread's stack, that memory is said to have been

allocated on the stack.

Page 13: Valeo Exam Cafc

Because the data is added and removed in a last-in-first-out manner, stack

allocation is very simple and typically faster than heap-based memory allocation

(also known as dynamic memory allocation). Another feature is that memory on

the stack is automatically, and very efficiently, reclaimed when the function exits,

which can be convenient for the programmer if the data is no longer required. If

however, the data needs to be kept in some form, then it must be copied from

the stack before the function exits. Therefore, stack based allocation is suitable

for temporary data or data which is no longer required after the creating function

exits.

A disadvantage of stack-based memory allocation is that a thread's stack size can

be as small as a few dozen kilobytes. Allocating more memory on the stack than is

available can result in a crash due to stack overflow.

HR Interview(in Engilsh):

introduce yourself

an achievement in your life

point of strength and weakness in you

hard situation

leader member situation

do you see yourself a successful leader?

Page 14: Valeo Exam Cafc

team member situation

graduation projects

why do you want to work in our company?

what do you think you will add to our company?

http://www.c4learn.com/2010/01/switch-case-objective-interview-mcq.html

Difference between SIP and UART or UASRT.

Is the Array can be passed by reference?

Is the structure can be passed by reference?

Array of pointers can be passed by value or by reference?

Protocols used with EEPROM?

Page size of EEPROM and Flash? Which one is larger?

Software Quality Assurance!

Software Quality Control!

Software Development Plan!

What are the measurements of Software?

What is the role of Measurements team?

Where do we save Local varaiables?

You have to study all these topics well and focus on the pointers, you must read

anything about it!

Page 15: Valeo Exam Cafc

C / Embedded C:

- A number of Multiple Choice Questions containing small programs to trace that

test your knowledge of the C-language, for example:

A small program that contains a switch case where one of the cases doesn't

include a "break" instruction, in this question for example you have to be able to

find out that the following case will also be executed .. etc ..

A small program that tests your ability to differentiate between the post

increment and the pre increment (i++ and ++i)

- The usage of keywords like extern, static, volatile, const

- The difference between macros and functions

- The advantages of using static variables over global variables

- The usage of operators like #ifdef, #endif, #pragma, #asm

Software Engineering:

- Difference between white box testing and black box testing

- Difference between Software Static and Dynamic architectures

- What is meant by configuration management

Embedded Systems Concepts:

- The difference between micro-controllers and micro-processors

- The difference between synchronous operations and asynchronous operations

- What's meant by PWM and its usage

- What's meant by CPU load

- Clock Frequency and PLL

- Difference between Flash, RAM, EEPROM, Stack, etc ..

HR Interview (In English):

Page 16: Valeo Exam Cafc

- Introduce yourself

- Talk about an achievement in your life

- Points of strength and weakness in your character

- Do you see yourself as a successful leader? prove with a situation

- Mention a hard situation that you faced before and how did you solve it.

- Are you a team player and you can work among a team ? Mention a situation

that proves your answer.

- why do you want to work in Valeo?

- what do you think you will add to Valeo?

C / embedded C - Important

You need to read a complete reference book for C. Skip the info which you

already know , and concentrate on the points which you don't know. Ignore any

chapters speaking about strings, reading or writing to files or C built-in libraries.

Concentrate on: Different C Types and their sizes & Type casting & Use of Volatile

keyword & Use of # preprocessor operator

Embedded Systems Concepts

Review the main concepts of Real time embedded systems and Real time OS

(RTOS) - Imp.

Study the SW Life Cycle (named V Cycle) - Imp.

Study the difference between Validation and Verification - Imp.

Study the difference between the different types of testing, (unit testing,

integration testing and validation) - Imp.

Difference between Simulator, Debugger and Emulator - Imp.

Read about Model based development - Just know the idea

Pre-compile , Link time and post build configuration

Benefits of XML

You need to have an experience with one microcontroller atleast

Automotive

Page 17: Valeo Exam Cafc

Understand the need of multiple ECUs in cars and check some examples of ECUs

(ex. Climate control, Wipers, Engine management)

Know how different ECUs communicate and make a brief reading of the different

bus used in the cars (LIN and CAN) - Imp.

Read about the car diagnostics (UDS and OBD) - Just know the idea

Read about AUTOSAR standard (Benefits and Architecture)