Sei sulla pagina 1di 23

is the collection of computer programs and related

data that provide the instructions telling a computer


what to do.
It also refers to one or more computer programs and
data held in the storage of the computer for some
purposes.
Software products may be developed for a particular
customer or may be developed for a general market.

The costs of software are often higher than the hardware


cost.
Software costs more to be maintained than it does to be
developed. For systems with long life, maintenance cost
may be several times development cost.

Software with a principal role of interacting with the


physical world must, of necessity, acquire some properties
of the physical world.

It takes time, consumes power. It does not terminate


(unless it fails).

The software should deliver the required functionality and


performance to user and should be maintainable,
reliable and usable.
Maintainability
Software must evolve to meet changing needs.
Reliability
Software must be trustworthy.

Efficiency
Software should not make the best use of the system
resources.
Usability
Software must be usable by the users for which it was
designed. This means it must be understandable, easy
intractable and compatible with other systems.

The software-development life-cycle is used to facilitate


the development of a large software product in a
systematic, well-defined, and cost-effective way.
The software development life-cycle consists of several
phases which are needed to be identifiable along with
defining the entry and exit criteria for every phase.

Analysis

Planning

Maintenance

design

Implementation

Requirement analysis
and definition

Operation and
maintenance
System verification
and validation

System design
Detailed design

Integration, Test, and


Verification

IMPLEMENTATION
10

The software architecture of a program or a computing


system is the structure or structures of the system, which
comprise software components ,the externally visible

properties of those components and the relationships


among them.

11

Layered Architecture

12

Maps the identified modules of the Basic Software


module list to software layers and shows their
relationship.

Our target is the static view of a conceptual layered


software architecture and discussions of AUTOSAR as
example.

13

Isolate Application in upper layers from HW changes.


Reusability of HW driver among different

applications.

Easier in Testing.

14

Integration of functional modules from multiple suppliers.


Easier Software updates and upgrades.

Reduction of total SW
development costs.

15

Distinguishes on the highest abstraction level between


three software layers: Application, Runtime Environment
and Basic Software which run on a Microcontroller.

16

AUTOSAR Basic Software is further divided in the layers:


Services layer, ECU Abstraction layer, Microcontroller
Abstraction layer and Complex Drivers.

17

The Microcontroller Abstraction Layer is the nearest


software layer to the microcontroller.
It contains internal drivers, which are software modules
with direct access to the C and internal peripherals.

18

The ECU Abstraction Layer interfaces the drivers of the


Microcontroller Abstraction Layer. It also contains drivers
for external devices.
It offers an API to access the peripherals and devices
regardless their location (port pins, type of interface).

19

The Services Layer is the highest layer of the Basic


Software which also applies for its relevance for the
application software: while access to I/O signals is covered
by the ECU Abstraction Layer.

20

The Complex Drivers Layer spans from the hardware to


the RTE.
Provides the possibility of integrating special purpose
functionality, e.g. drivers for devices, which are not
specified within AUTOSAR.

21

Thank you for


your attention!
Any Questions?

22

Contact Details
Eng.Mohamed El Sobky
Embedded Software Engineer

Tel: 01019429937
mohamed.elsobky@embeddedfab.com

23

Potrebbero piacerti anche