.: Latest News :. .:News in Pictures:.




Horoscope Recipes

Weekly SectionMarker



Pakistan's Internet Magazine
Herald




Weather

Dawn Classified

Cowasjee Ayaz Mazdak Review Dawn Magazine Young World Images

Previous Story DAWN - the Internet Edition Next Story



Science.com

November 15, 2003



Getting real with software development



By S. Zohair Abbas Ali


As a young enthusiast of computer science (a time before it came to be known as information technology) I used to think of the term software engineering as a reference to programming, although I was at that time was merely programming in GW-BASIC language but had the idea of the power of C.

For the next seven years I lived with such a notion about software engineering although by that time I had the experience of working on C\C++, Java, PERL and a few other web programming/scripting languages. But does it matter that how may languages I have done? Or I much experience I have in them?

Well the answer to these questions was a singular and definitive “NO”. This I realized when I actually came across the documentation and analysis and designing elements of the software engineering in a BCS course. After doing that and some other related courses I realized the importance of documentation and design, practices whose importance I questioned in the start.

The concept

To accomplish software engineering, methodologies have been developed to produce more effective software by practicing steps and procedures in organization and with respect to time and other constraints whose relevance governs the quality marks achievement in the final product . Each methodology presents its own set of project evaluation techniques. But the generic steps of analysis, design, development and testing will always be present amongst the methodologies but might vary in their representation in the methodology.

In a software development process we tend to perform the act of documenting everything, from start till the end, even after the complete thing is complete. Even the process of testing, which is performed on the actual thing, requires predefined schedule along with written documents directing and evaluating the process of testing.

The need

Why the so much documentation, designing and analysis? Why can’t we just write the coding and deliver it? This intermediate thinking has always been the most common question amongst the developers who tend to think more towards development , writing code, then to first look around and understand the actual need and the environment in which he forced by the constraints of he client to work. The reason, if looked carefully into the small programming modules written previously by the developers will be promptly suggested, is governed by the notion of A developer spends more time in debugging. Better design and analysis will initiate better development, since the needs of the client and requirements will be better understood along with more questions answered before start of the development then more queries emerging at the testing stage or even after deployment.

Object oriented

The advent of the object oriented concept has evolved for us the more sublime approaches to software engineering namely object-oriented design, analysis and programming and from these emerged UML (unified modeling language). A standard targeted for software engineering UML has become a classic for designing software and hence forth proved to be a definitive force in the software development process.

All this can be referred to as the object oriented software engineering or the component based software development, which are in reference to the modular programming and reusable software components for easy management and more versatility in usage of the code. At the times of revision and updating only software components will have to be added by such practices and their will neither be any need to get the entire software remade.

Estimations

In software engineering there are estimations for almost everything and all of these must be proficiently brought into action by the development team along with the management or the responsible wing on the client side. Business applications might be intricate and hence might result in more complex estimations of cost, schedule and the support procedures.

All of the estimations are in pre-development stage as to understand every need and to get the requirements in place to set mark on the starting line of the project. All the estimations might be the result of the joint meetings between the developer and the client as to get an agreed upon mutual understanding on the project cycle and hence to the initiation process in place.

The scheduling of the software development will be with consent with the interested party since that will define their desired constraints and needs along with drawing boundaries for the developers. Time is in its abstract form is the most critical factor in development cycle since the surveys and experiences suggest that bulk of the projects are effected in a negative sense. This tends to mean that most of the softwares are incomplete or complete but not error free despite the fact that the durations are lengthy, between six months to eighteen months, but changes in the environment, un-cooperative client and incomplete analysis will lead to massive breakdowns and hence revisions will follow consuming more time and taking an extra bit out of the developers. Even the ignorance of minute details, statements and factors will result in such a way that it might seem that the gap is slender between the details but its impact will follow with an interval.

Someone who must have read the operational research course in their institutional level would definitely have the idea what lies under the hood of the scheduling process. Containing figures and structures, charts will be available to evaluate more effective scheduling schemes without making a coil out of the practices that will come under the pretext of these constraints since every member of the development team will be actually awarded the time and resources via these acts. PERT analysis and CPM are the most common terms used in this respect where the former is probability based evaluation of scenarios and latter being the measurement of the project’s total duration.

Resource allocation which attributes to the monetary, time and material also come under this wing. This sub stage of scheduling guarantees the fulfillment of the needs and requirements of each individual member of the software development team.

The tools

Every major software vendor has got something to offer on the software engineering side besides the software development utilities and tools. From analysis and design to scheduling to testing, everything is their to be used and applied upon the software development techniques providing stage by stage usage in more user friendly way.

UML tools are also available, providing diagrammatical notations and forward and reverse engineering capabilities for more efficient integration of design and the product. Major scheduling software tools are also available to keep in check the schedule of the project and to enable the developers organize the project with respect to the time constraints that may challenge the principles of the developers who would have to deviate from the common practices which they habitually perform in more independent environments.

Further readings

Despite the extensive resources available on the internet the comprehensive literature in the field will undoubtedly will come from the works of pros who have reproduced their experiences in black and white for the better understanding of the methodologies that govern this vast field. The most common books available today are targeted towards the object-oriented software development since it is gradually but surely replacing the conventional approach.

Online resources

The most comprehensive online resource can be attributed to software engineering institute which provides us with case studies and relevant information on diverse software related topics.

Another prominent site is from the Queens University
engineering>. This site provides us with archives on the subject along with a comprehensive list of CASE tools.

Other sites that provides links to software engineering resources are:









The writer is an IT professional



Click to learn more...
Please Visit our Sponsor (Ads open in separate window)

Previous Story Top of Page Next Story

Seprater
Contributions
Privacy Policy
© DAWN Group of Newspapers, 2005