Scope of this document
This document mainly focuses on the importance of Architectural design used in Embedded Project. It shows the significance of Architectural design. It lights on the side effect of bad or no design in the project. This document mainly divided into 2 Parts –
Part I mainly targeted for beginner. This portion is designed to groom the mindset of new entry into embedded field and seeking guidance to understand what & how basic design of Embedded Project done in companies. It also answers about why such designs are needed.
Part II mainly targeted for Intermediate. Since at this level user almost acquaint with most of the basics. But seek guidance in channelizing those skill set for better embedded project design. Pending
Software Designing – Concept & Importance
As in our real world without a design blueprint or a plan we cannot construct infrastructure, R&D projects remain directionless, Governmental organization cannot run economical bodies.
Similarly, Software domain is the one which has multi-applications. It deals with People in their day-to-day life. In today’s world any kind of intelligent machines are just a piece of junk without software. Hence, software needs to be designed elegantly to make best use of the piece of iron.
Any existing software which challenges designer for following –
- Restriction for feature expansion
- Maintenance Overhead
Not considered as good quality software.
How it affect industry?? It affect mainly because of followings –
- Time to Market will be large
- Competitor Overrun
- Product stability not guaranteed
- Cost of the product
That is the main reason why Software designing concept introduced. It helps designers and hence the stake holder to give futuristic optimizations. It means one can easily be able to identify what are the basic capabilities of the software & the hardware associated with. And hence the timely Scope of product improvement/enhancement can be decided. It provides a pictorial view of whole system. And seeing a pictorial representation is more creative then imaginary analysis.
Every Product when designed, manufacturer main intent is to maintain it for long run. Hence the basic philosophy behind end-to-end design is –
- Scalability
- Maintenance
- Easy-to-Understand
Scalability – Meaning to facilitate extension/contraction. When it comes to Software designing it holds true. One of the attribute of Software design is scalability. Market environment changes very rapidly. Based on market requirement the product needs to add new features time-to-time. And also old/obsolete features need to be eradicated or deactivated. This further entitled portability, modularity, Reusability.
Maintenance – Bug tracing & Bug Fixing
Users are the actual end-tester of the product. So, bug could occur from any corner of the design. Hence, Software design must facilitate bug traceability and then the bug fixing.
Easy-to-Understand – Based on the workload team-size may vary. Based on the commonality among products, different teams in an organization do use same software design. All new members must find the design easy to understand, easy to work on.
Basic Foundation Architectural layer for Embedded Software –
Fig. 1) Basic Architecture Layer
Above arrangement is the core hierarchy arrangement of Firmware design. Hardware Layer remains as the bottom act as a source of needful parameter. System Software act as an intermediate layer helps to translate the parameter to a format which allows application to use it. Application Layer is the one which interact with user, allows a command interface to user for communicating with the machine/device. It facilitates basic feature implementation of the product. And also controls underlying layer by configuring and providing appropriate user input.
This is commonly known as Layered Architecture Design. Such designs form the core structure of software in many areas. Automotive Sector, Electrical & Electronic Sector, Lighting Sector etc.