Computer aided software engineering

Computer Aided Software Engineering (CASE)

What is CASE?
Computer-Aided Software Engineering (CASE) is the use of software tools to assist in the development and maintenance of software. Tools used to assist in this way are known as CASE Tools.

What is CASE Tool?
A CASE tool is a computer-based product aimed at supporting one or more software engineering activities within a software development process.
Computer-Aided Software Engineering tools are those software which are used in any and all phases of developing an information system, including analysis, design and programming. For example, data dictionaries and diagramming tools aid in the analysis and design phases, while application generators speed up the programming phase.
CASE tools provide automated methods for designing and documenting traditional structured programming techniques. The ultimate goal of CASE is to provide a language for describing the overall system that is sufficient to generate all the necessary programs needed.

Components of CASE Tools
CASE Tool are used to support a wide variety of SDLC. CASE Tools are used to help in the project identification and selection, project initiation and planning, and design phacss, and in the implementation and maintenance phases. The components of CASE Tools are categorized into 3 mainly;

  • UpperCASE Tool
    UpperCASE Tool is a Computer-Aided Software Engineering (CASE) software tool that supports the software development activities upstream from implementation. Uppercase tool focus on the analysis phase (but sometimes also the design phase) of the software development lifecycle (diagramming tools, report and form generators, and analysis tools)
  • LowerCASE Tool
    LowerCASE Tool Computer-Aided Software Engineering (CASE) software tool that directly supports the implementation (programming) and integration tasks. LowerCASE tools support database schema generation, program generation, implementation, testing, and configuration management.
  • I CASE
    Tools that integrate both upper and lower CASE, for example making it possible to design a form and build the database to support it at the same time. An automated system development environment that provides numerous tools to create diagrams, forms and reports. It also offers analysis, reporting, and code generation facilities and seamlessly shares and integrates data across and between tools.

Types of CASE Tools
The general types of CASE tools are listed below:

  1. Diagramming tools: enable system process, data and control structures to be represented graphically.
  2. Computer display and report generators: help prototype how systems look and feel. It makes it easier for the systems analyst to identify data requirements and relationship.
  3. Analysis tools: automatically check for importance, inconsistent, or incorrect specifications in diagrams, forms, and reports.
  4. Central repository: enables the integrated storage of specifications, diagrams, reports and project management information.
  5. Documentation Generators: produce technical and user documentation in standard formats.
  6. Code generators: enable the automatic generation of program and data base definition code directly from the design documents, diagrams, forms, and reports.

What is Quality to CASE Tool?
The reason for using case may be very straight forward and practical decision such as being easier to use and makes life better. However from a broader perspective, Quality to using case implies how Case tools have improved the quality of software development. Case tool has improved software development in the following;

  • Improve the quality of the system developed.
  • Increase the speed with which systems are designed and developed.
  • Ease and improve the testing process through the use of automated checking.
  • Improve the integration of development activities via common methodologies.
  • Improve the quality and completeness to documentation.
  • Help standardize the development process.
  • Improve the management of the project.
  • Simplify program maintenance.
  • Promote reusability of modules and documentation.
  • Improve software portability across environments.

What is productivity to CASE Tool? And how it helps Software Development.
Productivity can be said to be the state or quality of producing something. Or the effectiveness of the productive efforts. Therefore productivity to case can be the achievements gained or the effectiveness of using the CASE technology. Productivity has helped in the development of software in the following ways;

  • Provide new systems with shorter development time.
  • Improve the productivity of the systems development process.
  • Improve the quality of the systems development process.
  • Improve worker skills.
  • Improve portability of new systems.
  • Improve the management of the systems development process.

Functions of a CASE Tool

  1. Analysis
    CASE analysis tools automatically check for incomplete, inconsistent, or in correct specifications in diagrams, forms and reports.
  2. Design
    This is where the technical blueprint of the system is created by designing the technical architecture – choosing amongst the architectural designs of telecommunications, hardware and software that will best suit the organization’s system and future needs. Also designing the systems model – graphically creating a model from graphical user interface, screen design, and databases, to placement of objects on screen
  3. Code generation
    CASE Tool has code generators which enable the automatic generation of program and data base definition code directly from the documents, diagrams, forms, and reports.
  4. Documentation
    CASE Tool has documentation generators to produce technical and user documentation in standard forms. Each phase of the SDLC produces documentation. The types of documentation that flow from one face to the next vary depending upon the organization, methodologies employed and type of system being built.

This write up introduces the use of automated tools to support the systems development process. First, it started by defining CASE and What is CASE tool, the components of CASE tool which include upper CASE, lower CASE and Integrated CASE , each covering different stages of the SDLC. The types of CASE tools were also discussed. Secondly in the contents it stated what quality means to CASE tool, what is productivity to CASE tool and how it helps to the development of software. Function of CASE tools which include: analysis, design, code generation, and documentation.


  1. computer aided software engineering
    Date accessed: 11th February, 2007.
  2. Case tool.
    Date accessed: 11th February, 2007.
  3. what is case
    Date accessed: 12th February, 2007.
  4. Upper Case tool.
    Date accessed: 11th February, 2007.
  5. Lowercase tool
    Date accessed: 11th February, 2007.
  6. Jefferey A. Hoffer, Joey F. George, and Joseph S. Valacich. Modern Systems Analysis and Design. Fourth edition .2005. New Jersey. Pg 602-617.

Connection Strings for MS SQL Server

I find it helpful to have these stored in a file so i don’t have to keep missing out silly keywords when am writing a connection string.  Hope you find them handy too 🙂

Standard Security

Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

Don’t forget to use SERVERNAME\INSTANCENAME as Data Source to connect to a specific SQL Server instance.
Are you using an EXPRESS Edition? use SERVERNAME\EXPRESS as Datasource

Standard Security alternative syntax
This connection string is similar the previous, just some keyword changes which means the same thing.

Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;

Trusted Connection

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

Trusted Connection alternative syntax
This connection string produce the same result as the previous one. The reason to include it is to point out that some connection string keywords have many equivalents.


Connecting to an SQL Server instance
The syntax of specifying the server instance in the value of the server key is the same for all connection strings for SQL Server.


For more about connection string visit

address contact

A Simple Java XML Address Book

This is a simple address book written in java with XML storage. The essence is to demonstrate how to save and query an XML file in java. This program have the following features;

  1. Add a new contact
  2. Delete a contact
  3. Edit a contact
  4. Search contacts

The program uses an XML library called JDOM.

Click here to download source code: XML Address Book (1582)

Feel free to download and modify as you wish. If you have any questions or comment, make sure you drop it in the comment box below.

How to determine service is using a port in Windows 7

I always have a lot of services running on my machine, so i find my self having port clashes and need to know what service uses what. I end up spending lots of time googling for solution, but i now know how its done and hope it help you too.

You can use the “netstat” command from command prompt to determine which program is using any port.

Follow these steps:

1. Click Start, type cmd in the Start Search box, and then press ENTER.
If you are prompted for an administrator password or for a confirmation, type the password, or click Continue.
2. Type netstat –o and hit enter.
This will provide a list of ports, along with the PID (process ID) that has those ports open.
3. To determine what executable is running as a process ID, open Windows Task Manager and switch to the Processes tab.
4. Now click on View->Select Columns.
5. On the screen that opens, make sure “PID (Process Identifier)” is checked and then click OK.
6. Now click on the PID heading to sort the entries by PID.
7. Get the PID numbers from command prompt and verify from task manager.

If it doesn’t work for you, don’t forget to keep google-ing! 🙂



Install Android 4 ICS Update On Nexus S

I just did this on my Nexus S and decided to share. The ICS for nexus has begun rolling out from Google. It’s annoying that this has to be done manually for now. I did a lot of googling to find an real way of going around it. So if you have a Nexus S and want the new Ice Cream Sandwich OS on it here’s a way.

The update is for the GSM version of the Nexus S, not the CDMA one. Please note that if you are rooted or even running a rooted stock ROM, this update may not work for you. It is advised that you to revert to a completely stock Gingerbread ROM on the device and then proceed with flashing the update.



  1. To begin, download the update form the link above, rename it to and copy it to the root of your SD card.
  2. Power the phone off and reboot into bootloader mode. (Hold Volume up and the Power button.)
  3. Select Recovery from the menu to boot into recovery.
  4. When you see the warning triangle and arrow, hold the power button and tap volume up. You’ll see a menu.
  5. Select apply update from /sdcard and select the
  6. Once the update is flashed, simply reboot your device and cross your fingers.

Your Nexus S should boot into the new ICS firmware if all goes well.

happy-new-year 2012

Welcome 2012

Happy New Year! Its 2012 and I’m back on my keyboard again trying to do what I’m not good at (writing). I have a lot of ideas and good stuff running on my mind which I want to share but I find it really exhausting. It is one of my new year resolution to engage in active blogging, I have found it difficult before but now it seems more necessary and important to boost my career.

This year is going to be a more challenging one, I’m now in the job market and no more a student. This is where wise decisions are important and critical, it is not a matter of course work and exam anymore. I see it more about what you have to contribute back to the society. I’m grateful for where I  find myself right now, it was never an easy ride and I have always looked forward to this point of my life. All I have to do is sit back, relax, and do what I do best to the best of ability and the sky will only be starting point.

Wish you all a wonderful year ahead. Cheers


My first Java program

Class sleeping in style

Am sure i looked like this in my first Java class!

My first encounter with programming wasn’t a good one. My first lesson for my computer science course was systematic programming. I didn’t know what it meant then so i was looking forward to it. I walked in to the computer lab all excited, got my machine up and running waiting for class to start. Little have i known about what i was about to encounter. The lecturer walked in and first instruction was to open NOTE PAD, well it sounded familiar to me but i was wondering why do we need it because it was just basic with no special functions. Next instruction came up to open Command Prompt and  setup JVM class path, wow! it sounded like the lecturer was speaking Alien language because i never knew what command prompt was used for and what the hell is JVM and class path? . At this point i was barely on track,  but managed to cope with the help of my Chinese classmates. I wondered why we had to do all those stuff and i was asking “are we not supposed to be making applications?”. What i could remember next was looking at the lecturer typing some characters and words with some bracket and telling us to run our program. At this point i have had enough, i opened facebook and updated my status to “What the hell is this java?”.

For a few lessons later, all i did in the class was browse facebook. I wasn’t interested in the agenda of the class. Then came an announcement “First lab test next week!” I was in deep trouble and failure wasn’t in my dictionary, That meant i had to learn. Thank God for one week Chinese new year break, i used this opportunity to learn my first java program. Thanks to Ahmed El-Yakub (Babi) and Mohammed Bello(Primes) for helping me during that period to understand my first java program.

Class Hello{

  • public static void main (String args[]){
    String s=”Abdulsalam”;
    System.out.print(“My name is :”+s);


This was the first ever java code i wrote that ran successfully. When i look at it today, it gives me a big smile on my face because little had i known at that time what this little piece of code would make me today. At the end of my course, i had gone through a process and become a Sun Certified Java Programmer (SCJP). Today, i have done quite a lot with java with my largest piece of java code being about 19,000 lines of code.

Monopoly game code statistics

Sun Tech day

Me and James Gosling "Father of Java"

Another wonderful experience to share is when I met James Gosling, the man regarded as the father of Java. I went for a Sun technology Conference in Kuala Lumpur Convention Center (KLCC) in march 2007, there and then was a man standing who caught attention of everyone. I dint know him then, one of my mates whispered “I think I’ve seen his picture before, he’s James Gosling”. We all rushed to get his autographs and say hello, he was kind to us and exchanged a few words. At same event i watched the awesome things which Java could do, I saw the “Mission impossible” screen done right in front of me. There and then i became so interested in Java and  it became my passion in programming.

The moral is that one should be open to events in life as they unfold. Do not sit back and imagine what is going to happen, try to have a go at it and make an effort towards it. You never know could become of it, Mark Zuckerberg never new what Facebook was going to be when he started it. Know you passion and keep believing it it!

Thanks,  Salamtura.


My Who Hub Q & A

Hello guys! here is my Q & A session on I want to share my experience with everyone, you might find answers to questions you wanted to ask me. Hope you find it interesting and have fun reading! Thanks
INTERVIEW (Web address for this interview:

How did you begin programming and at what age?

I began coding in my first year at university, by the age of 20, although i have a previous knowledge of writing scripts in Access which i learnt in high school.

What languages do you code, and in what platforms?

I love coding in JAVA! That’s my main passion. I’ve met James Gosling in 2007 at a Java tech session in Kuala Lumpur which till today is my main inspiration to get go with Java. I also code VB/C# on ASP.NET platform, php, Visual Prolog, Java Servlets/JSP, frameworks like Hibernate, Spring, Acegi, Wicket, SWIFT and more.

What machine configuration and operating system do you use?

Hard question to answer, My main machine is a quad-core AMD Athlon II 3.2ghz with 6GB RAM, 2 x 500GB hard drive and 2 X 24″ LCD monitors, windows 7 OS and Ubuntu Linux partition as well. I also run Ubuntu Linux on a laptop.

Please list web addresses where we can see some of your work
What motivates you to undertake a new project?

To create a simple solution to a problem that seems complex

What part of project development is most gratifying to you?

Gathering user requirements and coding

From the outside, it seems a rational job, but is creativity necessary for programming?

Affirmative! you have to be creative while programming. An open and creative mind is necessary when trying to solve a problem, one has to be able to adapt to situations as they unfold

What conditions do you need to concentrate when programming?

I need to be alone with Cool music, red bull, and a fast internet connection.

After working for long periods of time, have you ever felt as though you were in a bubble?

Not really. When i feel tired i take some fresh air, play with rubiks cube, play with a punch bag, or take some time off.

When you check out code you wrote time ago, what’s the main difference with respect to code that you write nowadays?

With programming you gain experience daily as you progress. I code better now than i used to when i started, my past code seems rowdy and insecure, i often laugh at myself. Now i code with fewer lines, better logic and approach, good documentation.

Do you still buy programming books, or do you learn everything from online sources?

Well i do when i need references to specific aspects because they are better source of reference. But i really prefer a developer community and support forums.

Do you think programming should be taught at the basic education level?

Yes i do. We are in a technology age which most things depend on it, it’s necessary for one to have at least a basic idea about it.

What has been your experience in marketing your software?

Very difficult. End users normally takes software development for granted. They want to perform tasks with the minimum number of clicks and simple GUI for interaction.

What do you learn from software users?

User feedback makes your software better. Gives you an idea on how to improve your software.

What would be your solution against piracy?

Open Source!

Would you consider yourself rigorous in the organization of the coding that you write and on commenting it?

I try as much to be organized

How do you calculate the budget for a software project?

Value of final product, time spent, resource used… these are some of the matrix i use but sometimes its differs.

What are your favourite games and on what platform do you play them?

I don’t have time to play games anymore, but i enjoy playing pro evo/fifa on PS3

How often do you clean dirt-buildup on your keyboard?

Not often to be honest. When i found out i pressed a key and it didn’t work well!

How do you feel when friends or family ask for your help in solving domestic computer problems?

I try as much as i could to help then. It makes me feel like a geek but actually am not!

As machines for development, what opinion do Macs deserve?

Macs are great! but they lack variety of tools which you could find on Windows

How do you protect your computer from viruses?

Internet Security, firewall, proxy, self caution…

In social settings, do people become interested when you tell them you are a software developer?

Yes people thinks it’s cool, they look at me as if am from space!

Do you work alone or in a team? Which do you prefer?

Well i mostly work alone, but i don’t mind working in a team because its save you time and you share better ideas

Are you one of the first to update to new software when it comes out, or do you normally wait until more stable versions appear?

I do both! i think is better when you wait for a stable version! its saves you much trouble

What is your main reason for not meeting project deadlines?

Change in requirements!

In your opinion, which company helps software developers the most?


How many breaks per day do you normally take?

I take my time off when i get tired… sometimes none.

At this point in your career, what would be the project of your dreams?

To own Google!

What is your next project?

Developing a Third-Party Payment platform

Which websites or forums for programmers do you frequently visit?
What advice would you give to someone who wants to become a programmer?

Learn programming only if you have passion for it.


Abdulsalam Umar

Salamtura – “The Inception”

Abdulsalam Umar

BSc Computer Science (First Class)

At long last my blog is live, i have procrastinated for 3yrs on setting up a blog. I am not a very good writer I guess but I have a lot to share. Well before I start posting my boring stuff, let me give little bio about myself.

I come from the Northern part of Nigeria. I attended Mary Travis nursery and primary school for primary education, and Zamani College Kaduna for my secondary school. After secondary school, I studied Business Administration at Ahmadu Bello University Zaria for a year before i transferred to INTI International University Malaysia, a franchise university to Coventry University UK, to study Computer Science in 2007. After my first degree, I went on for the National Youth Service Corp (NYSC) for one year in 2009 which i worked for Chams Plc for one year. Currently, i am pursuing my masters degree in Msc Internet Software Systems at the University of Birmingham in the UK.

I have a belief that success in life is not about making good choices but also having the belief and passion for choices that you make. For me, I started grooming my career in Business Administration which I thought was a good choice for me. It would have been a disaster if I had kept myself in that line. My first degree was  in Computer Science , which I graduated with a BSc (Hons) in Computer Science with a First Class Honours. I was good with computers since my young age and I have met a vast computer world which I fell in love with. The passion I have for computing has been the key factor for the excellence in my academics. I happen to be very good practically and technically especially with the major programming languages. I am a Sun Certified Java Programmer (SCJP), a Cisco Certified Network Associate (CCNA), Oracle Certified SQL Expert, and well more to come ;).

A career in computing has been my dream ever since I came into meaningful contact with this latest tool that science has put into man’s hands. Having found computing to be my hobby and passion, I am looking forward to having a successful and influential career in the Information Technology world and also intend to make effort to improve the current backward situation of the IT industry of my home country.

At my leisure times, I play polo! Yes I love horses. They put a smile on my face and I can ride on them all day. I am a football fan (Red Devil :p), I like keeping myself current with the major football leagues in Europe. I love hanging out with friends going for movies, eating out, playing pool, and playing video games (I woop asses in soccer games so beware). When am not doing any of these, I will definitely be in front of my computer(Work Station) doing what I do best (code).

Well I hope I have planted an idea in your brain of who am I and what to expect from me! 🙂