Tuesday, October 27, 2015

So you want to be a Software Engineer?

Software Engineering is a subject that catches the eyes of most of the young generation today, if you ask what they want to become when they grow up, most may say software engineer. When people talk about software engineering they often talk about programming. yes programming is one of the major parts in software engineering but there are more important things like analysis and design and a lot more. So what does it take to be a good software engineer?

Every job requires certain skills and abilities and they differ from person to person depending on their background, personality, behavior, education, and some even acquire by birth. In your interview most of the company will not check your Knowledge since they already know you have learned them, a simple paper perhaps to know that you understand the concepts well. but most of all they will test your ability to handle that job, which is the skills and talents required to do it perfectly. just like soldiers are tested for physical fitness. you will be tested for the required skills, if you have them well you will get the job if not you will fail. Sometimes if they find out that you have the necessary skills but not the knowledge they may hire you yet and train you. since you can teach subjects like software engineering to people, you cannot teach them how to develop software, i.e. the skills and talents needed to do it. since most of the private sector are well aware of this, they will do it. but for government, well their HR is different, So as the workload of IT and their definitions of some fields, so they may not have such a criterion for selection. (in Sri Lanka Only)

Software or a program is a problem that you or developers get because one who has it could not solve it. so you have to go through several steps in order to solve it.

So what will it take to build a good software? What do you have to go through to get a finalized product? In software engineering theory there is a life cycle that you may already hear of they are "Iterative", "Waterfall" and so on. Which requires you to do some steps when building software.

---------------------------------------------------------------------------------------------------------------------
Feasibility study- to figure out whether you have the necessary skills and technology, or have the budget to solve it
Requirement Gathering - to find out what the problem is
Requirement Analysis- understand the problem
Design- give solution to the problem
Coding- implement the solution
Testing- find out is this the right solution
Maintenance- make sure the solution will continue to be used, and adjust it as necessary
---------------------------------------------------------------------------------------------------------------------

which you may have learned under the waterfall model, but what it will take to do all of this, what makes you a good software engineer. will you be able to climb the ladder up as being the best or end up without a clue when it comes to software

You see all these are things that require a certain amount of skills, how much skill you have will define how good you are at developing software.

Feasibility Study and Requirement Gathering
this makes you go through the existing computer system or a manual which will force you to talk to many people to get their idea, find out what is necessary to do. but you may find out even when you talk to them you may not get the right requirement from them, they will keep on talking things, but most of them will not be relevant to your software. The people you design your software for are not experts in software engineering and they do not know what you need to develop your software. so you need to listen to them carefully, let them talk and try to get the necessary information from them. Patience is a must. If you have to interact with them, ask questions when necessary, to understand what they need and not to build what you think they need, they are your end-users even what they ask may seem wrong to you but never the less if you deliver what they never ask they will not use it. most of this phrase goes with interviewing employees, giving them questionnaires. so communication skill is a must, this part play lot with personality, negotiation and more of social skills.

at the end of the feasibility study it generates feasibility report which will tell that the system is economically or technically feasible (i.e. can we do it with the allocated budget and do we have the necessary equipment and skilled people to do it) or not and at the end of requirement gathering it will produce a document with requirements.

Requirement Analysis 
OK now you have everything that you need to know, so it seems, or will it be enough to develop your software? Well, you need to analyze the software which requires analytical skills see software or program is a problem that a person gives it to us which he can not solve on his own, so he asks us to solve it for him. bottom line you must get to know constraints, boundaries understand the problem why and what needs to be done what are the inputs what are the outputs what are the processes so on and so forth. In this phrase you may find that data that you collected is not enough so you need to go back and ask the necessary questions and get what you require of them. you must have a way of solving problems, must be a good thinker and have the ability to grasp things easily and understand them. this is considered the most tedious and hardest thing of Software Engineering since all the other phases depend on this one. Mistakes made to this that uncover later phases will require adjusting this, which makes the process to come back here and start all over again. problem-solving skill is a must for this to work. at the end of requirement analysis, it creates a software requirement specification document(SRS).

Design
now you have a sense of what you have to do, you need a design. It's just like an architect to design a house. Just like he knows where to put windows and where not to, how to connect rooms and other parts, and have integrity (this is why people who do software design is known as software architects) which you may know as a plan. software design is more than a house plan, but you get the idea. So in this phase, you need to put it all together and build a visual diagram of the system. there are many tools that give you the ability to do this. DFD is one, UML is another. UML gives you the ability to design 15+ diagrams, which will help you to design your system, with each giving different views of the system. This requires the person to have the ability of gradually working through problems that he understands, to a solution that he may think the best. (which is the best) you must be a good thinker and have the ability to understand problems and good at giving logical solutions to them. problem-solving skill is a mustat the end of this phrase, you will generate a bunch of diagrams like DFD or UML, which tell the functionality and behavior of the system.

there are tools that help people to do this. Some of them could even be converted to cording, making the developer's job easy. It can generate code to the functional level so developers only need to code what's within the functions.

Cording
this is the programming part of the system. which the developer code according to the design to get a finished product. since the programming is a logic base thing, logical thinking is a must. The design that you build must be coded to match the needs, you must think of a way to achieve what the picture describes. it is like solving a logic puzzle. if you have a good design i.e. UML diagrams like The Class diagram there are many tools that Convert it to cording languages. java, .net are some common platforms. You have to draw the diagram in the software and have to use the foreword engineering which is converting UML to code. Most of the diagramming programs support it. The code is incomplete, it creates all the classes of the program, their private and public variables, and all public-private functions you only have to code what's in the function that is all. logical thinking is a must for this to work. at the end of this phase, you will get a working product.

Testing
this is a phrase that undergoes checking of the bugs of the developed system. You test it unit by unit to see everything work as expected and not go in a silly way that you may never expect. this can be divided into two sub-phrase unit testing and integrated testing, unit testing, which is testing each component alone. Integrated Testing is the test done after combining them all. This is done by black-box testing, white-box testing, alpha testing, beta testing, and so on. this requires you to understand the system and its behavior, build test cases with each having 2 or more data, and gradually putting them through the system and finding out whether we get the expected result. It is testing all cases, that is even things that are not relevant since users can do anything, a negative number where positive is needed, a character where an integer is expected, what happens if you give some data that does not match your business criteria like giving 300 to an age of a person and so on, patient is a must. this requires most of the allocated time of the software engineering life cycle. if a problem is found during the test it will make you code again, if it is a programming problem or you have to send it to design if it is a problem of design and work from there or analysis if it is the problem. In the end you may even have to go back and collect data if it is a problem with your data making you to do it all over again.

Maintenance
this is the biggest part of the system now you have built a system, so you have to maintain it, you have to correct the bugs that never were found at the testing and change it to the future needs get backups and make sure that nothing unnecessary will happen to it. which need dedication to the system as long as it functions. a user manual is created and software is documented for future reference, which makes it easy for future changes even if your current developers leave the organization. 



Friday, October 2, 2015

RPG Maker VX Ace

C++ For Beginers

Monday, December 5, 2011

පරිගණක ඉතිහාසය


පරිගණක ඉතිහාසය

ඈත අතීතයේදී මිනිසා ගණනයන් කිරීම සඳහා අතහි හා පාදයෙහි අගිලි යොදාගන්නා ලදි නමුත් කල්යාමත් සමගම සංඛ්‍යාවලට සංකේත ආදේශ කිරීමත් සමග තමන්ට වඩාපුළුල් පරාසයක වැඩකිරීමේ හැකියාවක් ඇතිබව තේරැම්ගන්නා ලදි. ඒමනිසා සංඛ්‍යා හා ඉලක්කම් ලෝකයට බිහිවිය. මෙවායින් හින්දු අරාබි ඉ‍ලක්කම් හා රෝම ඉලක්කම් අදවනවිටද භාවිතයේ ඇත. අංක ක්‍රමයත් සමග මිනිසා විශාල පරිමාණයේ ගණිත කර්ම (Mathematical Operations) කිරීම ආරමභ කරණලදි. ඒ වානම් එකතුකිරීම, අඩුකිරීම, බෙදීම, ගුණකිරීම ලෙසවේ. මෙම ගණිත කර්ම දියුණුවත්ම මිනිසා මේවා පහසුකර ගැනීම සදහා විවිධ උපකරණ නිර්මාණයට උනන්දුවිය. මෙලෙස අවුරැදු 5000 පමණ ඈත අතීතයේ දී ඇබකසය (ABACUS) නමි උපකරණය බිහිවිය. මෙහි Beads නමින් හදුන්වන කුඩා කොටස් සිරස් කූරු මත ඇති අතර යම් ක්‍රමවේදයක් අනුගමණය කරමින් ඉතා ඉක්මනින් ගණනය කිරීම් කරගත හැක. මෙ මගින් එකතුකිරීම, අඩුකිරීම, බෙදීම, ගුණකිරීම කිරීමට සමත්විය.


1642 දී Blaise Pascal, Adding Machine නැමැති උපකරණය නිපදවාගන්නා ලදි මෙය ලොව පලමුවන යාන්ත්‍රීක ගණික කර්ම කරන උපකරණය වෙයි. මෙහිදී පැස්කල් රෝද වැනි උපාංග භාවිතා කරමින් ගණනය කිරීමි කර ඇත 1674 Gottfried Wilhelm Von Leibnitz, Pascal ගේ මෙම උපකරණය වැඩිදියුණු කර ඇත. මෙම වැඩිදියුණු කිරීමත් සමගම බෙදීම, ගුණකිරීම වඩා පහසුවෙන් කරගත හැකි විය. කාර්මීකරණ විමත් සමග Joseph Jacquard නම් ප්‍රංශ ජාතික විද්‍යාඥයා Punch Card System මගින් ක්‍රියාකරණු ලබන රෙදිවියන යන්ත්‍රයක් නිර්මාණය කරණ ලදි. මෙහි Punch Card වෙනස් කිරීම මගින් රෙදි විවීමේ රටාව වෙනස් කිරීමේ හැකියාවක් තිබුනි. මෙම Punch Card මත සිදුරු තිබූ අතර ඒවා වෙනස් කිරීම මගින් රටාව වෙනස් කරගැනීමට හැකි විය. මෙය Jacquard loom ලෙස නම් කරණ ලදි. මෙම පන්ච් කාර්ඩි සංකල්පය ඉංග්‍රීසි ගණිතඥයකුවන Charles Babbage ට අසන්නට ලැබුනි ඔහු එම සංකල්පය භාවිත කර Analytical Engine නමි උපකරණය නිර්මානය කිරීම පටන්ගන්නා ලදි. නමුත් එම වකවානුවතුල තාකෂනය පහල මට්ටමකට පිහිටි බැවින් මෙම උපකරණය නිමාකිරීමට ඔහුට නොහැකි විය. මෙම උපකරණයට ගණිතකර්ම කිරීම ඒවා මතකයේ තැමිපත් කර තබාගැනීම හා තාර්කිකව සැසදීම කිරීමේ හැකියාව තිබිනි. මෙහුගේ මෙම සංකල්පය පරිගණකයේ දියුණුවට ඉවහල් වීම නිසා මොහු පරිගණකයේ පියා ලෙස හදුන්වයි.
1600-1900 දක්වා.


1900-1945

Harvard University හි Howard Aiken නම් පුද්ගලයා විසින් 1937දී Babbage ගේ උපකරණය නිපදවීමට කාලය එලඹ ඇති බව තීරණය කරණ ලදි. Harvard විශ්ව විද්‍යාලයේ තම සගයන් සමග හා IBM සමාගමේ සහය ඇතිව Automatic Sequence Control Calculator යන උපකරණය 1944 දී නිපදවන ලදි මෙය MARK I ලෙස නම් කෙරිනි. MARK I හට මූලික ගණිත කර්ම 4 සිදුකිරීමේ හැකියාව තිබිනි. මෙහි පාළනය සදහා යතුරු තිබුණු අතර යතුරු පුවරු වකට සමිබන්ධ කිරීම මගින් Punch Card මත පිලිතුරු සටහන් කරණ ලදි. මෙහි විද්‍යුත් යාන්ත්‍රික රිලේස් ((Electro Mechanical Relays) 3000 ක් පමණ පැවති අතර ටොන් 50 ක් පමණ බර විය. අවු:15 ක් පමණ මෙය භාවිතයේ පැවතුනි.


1946-1960

ENIAC (Electronic Numerical Integrator and Computer) යනු පලමු ඩිජිටල් පරිගණකය වේ. ඒය 1946 පෙන්සිල්වේනියා විශ්ව විද්‍යාලයේ Moore School of Electrical Engineering මගින් නිර්මාණය කරණ ලදි. මෙහි යාන්ත්‍රිකව චලනය වන කොටස් නොතිබුනු අතර කේතනය කිරීමේ හැකියාව තිබිනි. තවද මෙහි ගණනය කරණ පියවර (Calculation Steps) ගබඩාකර තබා ගැනීමෙ හැකියාව තිබිනි. මෙම උපකරණය Vacuum Tubes භාවිත කරණ ලද අතර ඒවා 18,000 ක් පමණ මෙහි දක්නට තිබුනි. මෙය පලමු යුගයේ (First Generation ) පරිගණකයක් යැයි කියනු ලැබේ. මෙය තත්පරයට ගණනය කිරීම් 5,000 ක් පමණ සිදුකරනූ ලැබේ. ඒකතුකිරීම මිලි තත්පර 0.2 කදී සිදුකරණු ලබයි. මෙහි ප්‍රධානම ගැටළුවනමි එහි විශාලත්වය හා දත්ත විෂ්ලේෂනය කිරීමේ ( Data Processing) හැකියාව වෙයි. ඒය වර්ග අඩි 1,500 ක් පමන ඉඩ ප්‍රමාණයක් ගන්නාලද අතර එකවර එක කාර්යයක් කිරීමේ හැකියාවෙන් යුක්ත විය. 1960 දී ° Remington Rand නැමැත්තා UNIVAC I (Universal Automated Calculator) යන උපකරණය නිපදවන ලදි මෙම උපකරණයට තත්පරයට එකතු කිරීම් 10,000 ක් පමණ කරගැනීමේ හැකියාව තිබිණි. 1957 දී IBM(International Business Machine) සමාගම විසින් IBM 704 යන උපකරණය නිපදවන ලදි. මෙයට තත්පරයට එකතුකිරීම් 100,000 ක් පමණ කිරීමේ හැකියාව තිබිනි.


ට්‍රාන්සිස්ටර් යුගය(Transistor)

1950 දී ට්‍රාන්සිස්ටර් බිහිවිය, මෙත් සමගම මෙපමන කල් තිබූ Vacuum Tubes දහස් ගණනින් ට්‍රාන්සිස්ටර් මගින් ප්‍රතිස්තාපනය විය. එනම් Vacuum Tubes දහස් ගණනකින් කරන කාර්යය එක් ට්‍රාන්සිස්ටර් එකක් මගින් කරගත හැකිවිය. ට්‍රාන්සිස්ටර් සමන්විත පරිගණකයක් තත්පරයට ගණිතකර්ම 200,000 – 250,000 අතර ප්‍රමාණයක් සිදුකරණ ලදි. මෙය පරිගණකයේ දෙවන යුගය (Second Generation) ලෙස හැදින්වෙයි.


මයික්‍රෝකම්පියුටර් යුගය(Microcomputer)

1975 MITS ආයතනය විසින් ALTAIR 8800 හදුන්වාදීමත් සමග මෙය ආරම්භවිය. මෙය යතුරු (Switches) මගින් Program කිරීමෙ හැකියාව තිබිණූඅතර ඩොලර් දහස් ගනනින් අලවිවිය. එබැවින් සාමාන්‍ය ජනතාවට ලබාගැනීමට ඉතා අපහසුවිය. 1977 දී Commodore හා Radio Shack යන සමාගමි වලින් පුද්ගලික පරිගණක (Personal Computers) නිපදවනබවට ප්‍රකාෂකරණ ලදි. 1979 දී Apple පරිගණකය විෂාල වෂයෙන් නිපදවූ අතර 1981 දී එය හොදින් අලවිවන පුද්ගලික පරිගණකය විය.


පරිගණක යුගයන්(Computer Generations)


පලමුයුගයේ පරිගණක(First Generation Computers) (1940-1956) - Vacuum Tube

පලමු යුගයේ පරිගණක සදහා Vacuum Tubes යොදා ගන්නා ලදි මතකය(Memory) සදහා magnetic Drums යොදා ගන්නා ලදි. මෙය ඉතා විශාල වු අතර එක කාමරයක ඉඩකඩ ගන්නාලදි, විද්‍යුත් පරි බෝජනය ඉතා ඉහල විය. එමනිසා ඉතා ඉහල මුදලක් විදුලිය සදහා වැයවිය. ඉතා විශාල තාප ප්‍රමානයක් පිටකරණ ලදි Program කිරීම සදහා machine Language බාවිත කරණ ලදි. එක් වරකට එක ගැටළුවක් පමණක් විසදීමේ හැකියාව තිබිනි. දත්ත ඇතුලත් කිරීමට Punch Cards හා Tape භාවිතා කරණ ලදි. මෙහි ප්‍රතිදානය (Output) මුදිත මාද්‍යයෙන් ලාබාදෙන ලදි. (Printouts)


දෙවන යුගයේ පරිගණක (Second Generation)(1956-1963) Transistors

ට්‍රාන්සිස්ටර් හි පැමිණීමත් සමග Vacuum Tubes අභාවයට යන ලදි. ට්‍රාන්සිස්ටර් ඒකක් මගින් vacuum Tubes විශාල සංඛ්‍යාවක කාර්යයන් ඉටුකරගැනීමට හැකිවිය. එබැවින් Vacuum Tubes වෙනුවට ට්‍රාන්සිස්ටර් ආදේෂවිය. මෙවා පලමු යුගයේ පරිගණකවලට වඩා වේගවත් විය, ලාබදායීවිය, විදුලි පරිබෝජලය සාපේකෂව අඩු විය. විස්වාසය (Reliable ) ඉහල අගයක් විය. නමුත් විෂාල ප්‍රමාණයෙන් තාපය පිටකරණ ලදි. Punch Card භාවිතා කරණ ලදි Assembly Language පරිගණක කේතනය සදහා භාවිතා කරණ ලදි. High Level Programing Language වල පලමු වැඩසටහන් බිහිවිය. (FORTRAN, COBOL). උපදෙස් (Instructions) මතකයේ ගබඩාකල පලමු පරිගණකය විය.


තුන්වන යුගයේ පරිගණක (Third Generation)(1964-1971) Integrated Circuits

ට්‍රාන්සිස්ටර් කිහිපයකින් සැදු පරිපතයක් කුඩා සිලිකන් චිපයක් මත ඇදගැනිමෙන් Integrated Circuits (IC) බිහිවිය. මෙසේ ඒක සිලිකන් චිපයක් මත ට්‍රාන්සිස්ටර් මත දහස් ගනනක් නිර්මාණය කිරීමට හැකිවිය. ඒමනිසා ට්‍රාන්සිස්ටර් ඉවත්වි IC කරලියට පැමිනෙන ලදි. මෙමගින් පරිගණකය වඩා වෙගවත් විය. Punch Card වෙනුවට යතුරුපුවරුව (Keyboard) හා මූසිකය (Mouse) පැමිනෙනලදි. පරිගණකය ක්‍රියා කරවීම සදහා ‍මෙහෙයුම් පද්ධති(Operating Systems) බිහිවිය. මෙමගින් විවිධ වර්ගයේ මෘදුකාංග පරිගනකය තුල ධාවනය (Run) කරගැනීමේ හැකියාව ලැබුනි. ඉතා කුඩා වූ අතර ලාභදායී විය.


හතරවන යුගයේ පරිගණක (Fourth Generation)(1971-Present) Microprocessor

IC කල්යත්ම ඉතා කුඩා වන්නට විය LSIC ( Large Scale Integrated Circuits) හා VLSIC (Very Large Scale Integrated Circuits බිහි විය. මෙමගින් පරිගණකය වඩවඩා කුඩාවූ අතර එහි වේගය වැඩිවිය. අත්ල මත තබා පරිහරණය කිරීමට තරමි කුඩාවිය. මේ සමගම GUI (Graphical User Interface) බිහිවිය. ඒනම් පරිගණකයෙන් කාර්යයක් කරගැනීම සදහා විදාන Type කිරීම වෙනුවට කුඩා පින්තුර මත මවුසය මගින් ක්ලික් කිරීමෙන් කාර්යය කරගැනී මේ හැකියාව ලැබින.


පස්වන යුගයේ පරිගණක Fifth Generation(Present - Beyond ) Artificial Intelligence

මෙය AI (Artificial Intelligence ) කෘතිම බුද්ධිය මත පදනම්වී ඇත සමහර මෘදුකාංගවල දැනට සුළුවශයෙන් යොදා ගැනෙයි. ඒවා නමි හඩ හදුනාගැනිම (Voice Recognition),අකුරු හදුනාගැනීම (Character Recognition ), අකුරු කියවීමට (Text To Speech), අත්අකුරු හදුනාගැනීම සදහා (Hand writing Recognition Systems) වේ. Knowledge Base, Neural Networks වැනි තාක්ෂන භාවිත කරයි.

Friday, September 10, 2010

VAKOG (The Representation System)

Have you ever wonder about people that is not your type. Why they are so different? Why can’t they would be like you? Have you ever has trouble getting along with people. This is because we as every individual see the world differently than each other.
According to experts people describe their world in different ways form each other. We can find out how they see from their eye movement and how they internalize information. People sense information different from each other.
So how can we begin to recognize how each person makes sense of the unique world in which they live?
The simplest way to determine is to look at the words they speak. Experts devise these people to five categories that is known as VAKOG
So what is VAKOG? For simplicity VAKOG is the first letters of the categories of the five basic types of the persons. They are.
• Visual
• Auditory
• Kinesthetic
• Olfactory
• Gustatory
If we get into for more details the people see the world using five senses which is
• By seen
• By hearing (listening)
• By touching
• By smelling
• By tasting
And every person use one of these than other to understand the world that he or she lives. And they are categories as VAKORG
Visual
Visual are the people that get the sensation by seen things (ex Dresses at the party and Faces of People) Visual People stand strait and sit keeping their body strait. They put their eyes upward and Breath from the top of their lungs. These are very organized people very concern with how it is looks they are neat and orderly memorize things by seen pictures and not normally disturbed by noise. They have trouble remembering verbal instructions. And they would like how your program LOOKS.

Auditory
Auditory are the people who get sensation by hearing (Ex. The songs that play at the party) People who are auditory will move their eyes sideways they breathe from the middle of their chest and typically talk to themselves. They are easily distracted by noise. They can repeat things back to you easily. They learn by listening. Usually likes music and taking on the phone. They memorize by steps, Procedures and sequences. They like to be told how they are doing and they respond to certain tone of voice or set of words. They are interested in what you have to say about your Program.
Kinesthetic
Kinesthetic people are the one who get the sensation by touch. (Ex. Games you play at the party) the Kinesthetic people are typically be berating from the bottom of their lungs. So you can see their stomach go in and out. They move very slowly and talk very slowly. And like physical rewords and touching. They stand closer to people than others they memorize by doing things. They will be interested of your program if it is feels right.
Olfactory
Olfactory people are the one who get the sensation by smelling things (Ex. Smells of food) they remember things by smelling and likes to smell things. And will be interested in how it smells on your program.
Gustatory
Gustatory are the people who get the sensation by taste (Ex. Tasty Food at party) they remember things by tasting. They like to taste things. They like your story if it has a good taste and will be interested of your program if taste right.

So see where you are and which type you are the most. And which type your friends are you will be amazed that most of your friends are of your type.

Cycle of Destiny!!!!


Destiny what is it? Many people believe that it is the will of god, and god decides for us what we should be and what we will become. Or it is written in somewhere and we need to find it. Some say that when we are born our destiny is astrologically marked at sky. Is this true? Or is there anything wrong in it? Destiny can we change it? Is what our horoscope say about us is true? Is it going to happen the same way as told? These are the questions that come across many people. The answer to this is not simple but I will give you an answer. The answer is yes if you believe them.
Destiny is a cycle if you believe them it will happen so believing becomes destiny those who break the cycle of destiny steer there life as much as they like. And others remain trapped to their own cycle.
So what is destiny? And what is the cycle of it? To your amusement it starts with “words”. The words we speak have a power. That is the power to create “Thoughts” and if you speaks the same thing your thoughts will be the same.
Thought has a power again that is convert itself into “actions” and same thought makes same actions
The actions you do becomes your habits that is if you do something for a long period of time it will become a habit 21 days is experts says is exact time for create a habit and once you create it. It is hard to break.
The habit is the way of doing things which makes your character. So your character is made by collection of habits you gain from the life.
And ultimately the character becomes your destiny, that is who you are and who you should be.
And who you are will decide the word s you speak so it will come back to words again.


So remember cycle of destiny my friends it starts with words. So to break this you needs to change the words and your destiny will change too.

Friday, August 20, 2010

දත්ත සමුදාය කළමනාකරණ පද්ධතිය

හැදින්වීම


අද ලෝකයේ විශාල වශයෙන් දත්ත සමග කාර්යයන් කරයි මෙම දත්ත නොයෙක් අයුරින් සැකසීමට හා එවා නැවත ලබාගැනීමට අවශ්‍ය වේ මෙලෙස දත්ත හැසුරවීමට ත් එවා නැවත සකස්කර ලබාගැනීමටත් දත්ත සමුදාය කලමණාකරණ පද්ධතීන් වැදගත් වෙයි.
එනම් බැංකු කළමනාකරණ වැඩසටහනක් මගින් බැංකුවෙහි ගිනුම් ඇති පුද්ගලයන්ගේ බැංකු ගිනුම් ඉතා ඉක්මනින් ලබාගතහැකි වෙයි. තවද බැංකුවහි සේවයකරණ පුද්ගලයන්ගේ විස්තර ඉතා ඉක්මනින් ලබා ගැනීමේ හැකියාවක්ද ලැබේ.
Online airline reservation පද්ධති මගින් පුද්ගලයන්ට නිවසේ සිටම ගුවන් හානා ටිකටිපත් මිලදීගැනීමට හැකියාව ‍ලැබේ. තවද අවශ්‍යපරිදි ගුවන් යානා සමාගමට දත්ත ලබාගනිමින් තමන්ගේ ගුවන් යානා ටිකටි විකිණීමේ හැකියාව ලැබේ. මෙවැනි පද්දතීන් ට දත්ත ගබඩාකර තබාගැනීම හා අවශ්‍ය අවස්තාවලදී දත්ත සකසා ලබාගැනීමේ හැකියාව අත්‍යාවශ්‍ය වේ. එමෙන්ම ඉතා විෂාල දත්ත ප්‍රමාණයක් පවතින විට ඉතා ඉක්මනින් හා ඉතා පහසුවෙන් දත්ත ලබා ගැනීම අත්‍යාවශ්‍ය වේ.
ඈත අතීතයේදී මේ සදහා File භාවිතා කරණු ලැබූ අතර ඒවා ඉතා මන්දගාමී විය. තවද එකක් පසුපස එකක් වනපරිදි (sequential ) ප්‍රවේශයක් ලබාදෙනලදි. තවද දත්ත හා පරිගණක වැඩසටහන එකාබද්ධව කටයුතු කල බැවින් දත්ත වෙනස්කිරීමේදී හෝ දත්ත යන් මත තවත් දත්ත වර්ග ඇතුලත් කිරීමේදී විශාල වශයෙන් පරිගණක වැඩසටහන වෙනස්කිරීමට සිදුවිය.
නමුත් දත්ත සමුදාය කලමණාකරණ පද්ධතියක් මගින් තමන්ට අවශ්‍ය රෙකෝඩ අවශ්‍ය ස්ථානයෙන් ඉතා පහසුවෙන් ලබාගැනීමේ හැකියාව පවතියි.
දත්ත සමුදායක් ගත් කල එමගින්

දත්ත හා ස්ථානයේ ස්වාදීන බව - එනම් දත්ත සමුදාය හා සම්බන්ධවන වැඩසටහන දත්ත හා ඒවාතැම්පත් කර ඇති ස්ථානයෙන් ස්වාදිනව කටයුතුකල හැක.
කාර්යක්ෂමව දත්ත වෙත ඇතුලුවීමේ හැකියාව - එනම් දත්ත විශාල ‍වශයෙන් පවතින විට පවා අවශ්‍ය දත්ත ඉතා ඉක්මනින් කාර්යක්ෂමව ඉක්මනින් ලබා ගැනීමේ හැකියාව.

දත්ත ආරක්ෂාව - දත්ත වලට ප්‍ර‍වේෂවීම කවර මට්ටමකින්දදන්න තීරණය කරගතහැක. එනම් එක් එක් දත්ත වලට ප්‍රවේෂවීමට එක් එක් පුද්ගලයන්ට වෙනවෙනම ප්‍රවේෂ අංක ලබාදියහැක එමගින් දත්ත වල ආරක්ශාව සැලසේ.

දත්ත කළමණාකරණය - දත්ත ඉතා පහසුවෙන් කලමණාකරණය කිරීමේ හැකියාවක් ලැබේ. එනම දත්ත සමදාය කලමණාකරැවන්ට දත්ත මත විවිද කියාකාරකම් කරමින් දත්ත වල ප්‍රයෝජනවත් බව වැඩ්කිරීමටද Back up ලබාගැනිමට වැනි කාර්යයන් කිරිම පහසුවෙන් කරගැනීමටද දත්ත වලට ඇතුලත් වන්නන්ට වෙනවෙනම ප්‍රවේශලබාදීම මගින් දත්ත වල ආරක්ෂාව වැඩිකිරීමද සිදුවේ.

එකවරදත්ත හැසිරවීමේ හැකියාව - එනම් එකවර කිහිවදෙනෙකුනට දත්ත වලට ඇතුල්වී තමන්ට අවශ්‍ය පරිදි දත්ත වෙනස්කිරීමෙ හැකියාව ලැබේ.

දත්ත සමුදායක් නිර්මාණය කිරීමේදී. පහත පරිදි පියවර අන්‍රගමණය කරණු ලැබේ.
• අවශ්‍යතා විෂ්ලේෂණය කිරීම.(requirement analysis)
• සංකල්පමය දත්ත සමුදායක් ගොඩනැගීම.(conceptual Database Design)
• තාර්කික දත්ත සමුදායක් නිර්මාණය.(Logical Database Design)
• සංශිප්ත ලෙස නිරූපනය කිරීම.(Schema Refinement)
• භෙතිකලෙස දත්ත සමුදාය නිර්මාණ්‍ය කිරීම.(Physical Design)
• දත්ත ආරකෂාව යෙදීම.(Security Design)

අවශ්‍යතා විෂ්ලේෂණය කිරීම


මෙමගින් අවශ්‍යතාවයන් විෂ්ලේෂණය කරන්‍ර ලබයි. එනම් වැඩසටහන නිර්මාණය කිරීමට ඇති අවෂ්‍යතාවය පරිශීලකයාට කුමක් අවශ්‍යද යන්න සොයා බැලීම කරණු ලැබෙයි. මෙම ක්‍රීයාවලියේ ප්‍රතිධානය අවශ්‍යතා ලියවිල්ලයි. (Requirement Document)

සංකල්පමය දත්ත සමුදායක් ගොඩනැගීම.


‍මෙම අවදියේදී සංකල්පමය ආදර්ෂයක් ගොඩනගනු ලබයි. එමගින් දත්ත සමුදායට ඇතුලත් වියයුතු සියඵම දත්ත විස්තර කරණු ලබයි මෙහි ප්‍රතිධානය ER Diagram (Entity Relationship) වේ.

තාර්කික දත්ත සමුදාය නිර්මාණය කිරීම.


මෙමගින් ER රූපසටහන Relational Schema වලට පරිවර්තනය කිරීම සිදුකරයි.

සංශිප්ත ලෙස නිරූපනය කිරීම



ඉහත පියවර වලින් ලබාගත් දත්ත තවදුරටත් විෂ්ලේෂනය කිරීම මෙහිදී සිදුකරයි මෙහිදී ඇතිවන redundancy ඉවත් කිරීම සිදුකරයි. මේ සදහා Normalization භාවිත කරයි. මෙමගින් එකම දත්තය නැවත නැවතත් දත්ත සමුදායට ඇතුලත් කිරීම වැලැක්වීම සිදුකරයි.