Showing posts with label Advanced Decisions. Show all posts
Showing posts with label Advanced Decisions. Show all posts

Monday, June 4, 2012

Creating Software Requirements Processes

It's hard to perfect your software development process without a solid requirements process in place.

I just finished up this video about software requirements processes that covers

  • How requirements are done in different software processes

  • Proper requirements formats

  • Who should be involved in the requirements writing


Enjoy!

Wednesday, April 25, 2012

User Interfaces for Embedded Systems


I've always been interested in the user's interaction with embedded systems.

My primary embedded design goal is to make the man-machine interaction simple and intuitive. And today, more than ever, technologies are available that enable the creation of rich yet user-friendly experiences.

I recorded this video to introduce some topics I keep in mind when embarking on a new embedded design:


    • Important factors to consider





    • Technology alternatives





    • User involvement



Let me know what you think. Thanks.

-Gary

Wednesday, April 18, 2012

Risk Management in Software Development

 

One of the tenets of many mainstream software development processes is proactively managing risk.

Of course this sounds like a good idea, but the question becomes: how do you do it?


I've learned that addressing the riskiest areas in a project first usually creates the biggest returns. This is difficult, however, because most people gravitate to the easy things first.


The problem with going with our natural tendencies is that we can tackle a lot of easy things without actually accomplishing anything of significance. And if the risky thing doesn’t work out as planned we may have to throw away some of the prior work, which is always a major frustration.


I'm curious how my readers manage risk in a software development process. Let me know!


-Judi


 


 

Wednesday, April 11, 2012

GPUs: The Unsung Hero of Embedded Displays

GPUs, also known as Graphics Processing Units, are the unsung hero of smartphones, tablets, and embedded displays.


The incredible throughput rates of GPUs allows for computation that standard multi-core Central Processing Units cannot provide. 


Companies are also beginning to add application processing to the GPU, known as GPGPU (General-Purpose Graphics Processing Unit). This is not a hardware device as such but is software and hardware working in concert on a GPU.


Since GPUs are not oriented to traditional application programming, various software platforms have evolved. OpenCL is supported by an industry consortium, KhronosGroup.org to promote platform independence.


The competing standard is CUDA which was created and is promoted by NVIDA, a leader in the GPU market.  Some say NVIDIA's  GeForce256 was the first GPU. (At least it was marketed that way.)


Anyway, I'm interested to hear what GPUs my readers are currently using, and if they have any comments on their usefulness or shortcomings. Let me know.


 

-Gary

Wednesday, April 4, 2012

Software Development Process Implementation: Things to Consider



 

I just finished this video explaining the most critical aspects of implementing a software development process.


It's an issue that I'm fanatical about, especially because it involves basic software development process strategies that can save companies tons of money and time. (And who doesn't love extra money and time?)


Anyway, the video is 4:23 long, and introduces the below topics.





    • Requirements





    • Design





    • Testing





    • Source Control



-Judi


 

 

Tuesday, March 13, 2012

Testing Real Time Embedded Systems



 

Gary Felberbaum, the Principal of Advanced Decisions, talks about testing real time embedded systems.

How early should someone consider testing?

The earlier that someone gets involved in setting up the strategy and setting up the architecture to enable testing is really important. You should to start thinking about how you will test an embedded system as soon as you are conceiving a project or an embedded system.

What is needed to get started?

The same steps are needed when starting to test or develop an embedded system. The starting process refers back to the simplest thing which is requirements: sitting down, defining what it is that you want to build, and then thinking about how to test the system (adding special electronics, special software, etc.).

Why is embedded system testing different from other software application testing?

It is different because you are interacting with a lot more real-world, physical processes. You’re measuring things that you may not have control over, while in application testing you can set up a test database and test against the test database. In the real world, for applications you have to think about how you’re going to simulate processes that you can’t control and that may take designing certain types of computer model and simulations that you need to do to make embedding system testing actually work.