
“If you want to know the value of milliseconds then ask an Olympic silver medalist who lost to his opponent by just a millisecond” – this is an adage used to show the importance of time. In the same manner, if you want to know the importance of software correctness then ask the engineers that blew up a US$370 million worth space rocket, 37 seconds after it was launched, because a 16-bit signed integer value that could not hold some converted data from 64-bit floating point was used.
That said, if you want to know the importance of software correctness then ask Thales Group (formerly The THOMSON Corporation) who have long been involved in Software development in major projects in Europe such as the Aerospatiale. With this experience, Thales Group undoubtedly would specify more strict principles for its Software Development Methodology in order to ensure software correctness in their systems.
It is based on these principles that Center for Advanced Software Engineering (CASE) was established in 1996 in affiliation with Thales Universite, a part of Thales Group that provides its training ground. Today, CASE as an independent centre of excellence in software engineering under the auspices of Universiti Teknologi Malaysia nurtures its Msc and Phd students into world class Software Engineers.
If you want to be a world-class programmer, you can program every day for ten years, or you can program every day for two years and take an algorithms class, says Prof. Charles E. Leiserson of MIT. It is no surprise then that in CASE the first drills you get is on Algorithms and Data structures. Efficient and optimized codes are the end results.
Algorithms on their own do not give you a system; you need programming skills to implement them. In CASE, you get refreshed in reputable languages including C/C++ and Java and then dive into advanced programming in them.
To solve complex problems of today’s business needs, highly responsive software operating under Real Time constraints is not an option; in CASE therefore you are taught to design real time systems using a tested and trusted model – the UML Realtime (UML-RT). And to achieve these design goals, your system must mimic the real nature of processes taking place simultaneously and interacting with one another. Fully grasping the theory of Concurrency makes a Software Engineer from CASE write multi-threaded applications and ensure that they do not deadlock.
The accuracy and high quality of your system begins in the analysis stage. You get exposed to intensive software analysis using SART and UML. Your documentation must be industry standards-based, you therefore learn how to produce a Software Requirement Specification (SRS) in DoD, MIL and IEEE standards.
Your code must not just be accurate but also efficient and maintainable. In the Design class you learn just that starting from the high level architecture to the bits of software design. You get to learn how to design re-usable codes using Object Oriented Programming (OOP) and design patterns with modeling in UML. You also ‘well-document’ your design in Software Design Document (SDD) using the industry standards.
A CASE Software Engineer can neither afford hard nor soft faults as far as software development is concerned. He therefore learns all the bolts and nuts about Software Quality and Testing. He gets to learn Software Quality Management (SQM) and Software Quality Assurance (SQA), he also learns to evaluate the software product in order to ascertain that it has indeed acquired the level of quality based on the criteria defined for it. Defects and problems must be identified and corrected through the disciplined process of Software Testing.
Life is too short, so you got to deliver your systems as fast as possible. You learn how to do that in CASE using automated tools for systems development. You get experience in tools for specification, design, configuration management and testing using Rational Rose Enterprise, Clearcase, Manual Tester and Functional Tester.
Managing changes of your software product as it evolves has never been easy. You are taught how to setup your project since startup in order to maintain consistency of your system’s functionality during development and easily manage changes as it (the system) evolves. Simply, in CASE you are a Configuration Manager.
You better ensure that your software is extremely secured in this age of high cyber-security threats. Sitting close with his sister students in IT security gives a CASE Software Engineer the opportunity to learn that. He gets exposed to the importance of security from the IT Security guys and through seminars organized. He understands why a system should go through a ‘Secure Software Development Lifecyle’.
In CASE, you are also a Project and Risk Manager. A CASE Software Engineer knows how to manage people and resources, he is good in identifying risks and providing mitigation and contingency plans for such risks. His well prepared Software Development Plan (SDP) ensures that he provides the most optimum management for the project.
Special topics that expose you on how to deliver business systems from object modeling to data modeling are undertaken. You get introduced to recent technologies like Business Intelligence (BI) to help your business better understand its context.
To ensure that all these skills become part of a CASE Software Engineer, he got to go through two projects that cover the whole process of software methodology. In these projects he learns how to maintain an existing system and also builds a system from scratch in a team. An 8-months industrial attachment (split into 3 and 5 months) in reputable Software firms gives him the opportunity to get the feel of Software Engineering in the real world.
A Software Engineer from CASE graduates as a confident and exceptional engineer who perfectly suits the highly reputable Software firms. He is also capable of driving a growing organization into a matured and world-class firm by introducing and implementing a full stack of standardized software methodology, and stable, predictable and repeatable processes.
Generally, a Software Engineer from CASE is awe-inspiring.
Share this Post