This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
"Software engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines" (Pressman, 2005). It can be seen as the process of creation, implementation and modification of software to get a higher quality of software which is cheaper and easily maintainable. The process of software engineering helps the technical people to identify how the software will be built. It provides solution to the real world problems through the implementation of software (Liu, 2003).
The process of software engineering is done through the use of specific tools known as the CASE (computer aided software engineering) tools. "CASE tools have generated much interest among researchers and practitioners as potential means of easing the software development and maintenance burden threatening to overwhelm information systems departments." (Orlikowski, 1993)
CASE tools are not considered as a replacement for the manual methods of software engineering but are considered to be the supplements for the process which enhance the quality of the software products. It is required to use the tool that is right for a particular application to get the desired result therefore the person using the tool should be skilled to get the most efficient output from the tool used (Sodhi, 1991).
One of the main features of MySQL workbench is that is connects to the SQL database and manages the database instantly. It covers all the MySQL features including every type of rindexing to be used. The layout of the tables holding the database queries are similar to that of MS Access. The main advantage with it is that it is an open source tool i.e. it is free to use. There is also an option to set up a default encoding for the database and when the user selects it all the tables are created in that encoding. (Source: http://programmersnotes.info/2009/03/01/mysql-workbench-the-database-modeling-tool-for-mysql/ )
There are various features in MySQL workbench that allows the tool to create the right database design the very first time. Special features known as the model validation utility helps to find all the errors and report it to the user. Workbench also provides the feature of change management to the developers or the database administrators i.e. with the help of synchronization utility workbench compares the MySQL server with the data model created and provides synchronization between the two. (Sun microsystems, 2008)
NetBeans as an Integrated Development Environment
TheÂ NetBeans platformÂ is a reusableÂ frameworkÂ which simplifies the development process of desktop applications. On the execution of application on the NetBeans based platform theÂ mainÂ class of the platform is executed. The modules available are located and then are placed in an in-memory registry. The modules' startup tasks are then executed, the code of the module is loaded into memory only when it is required.
Features of NetBeans:
NetBeans provides services that are common to desktop applications which allow developers to focus on the logic of their application. Some of the features of NetBeans are:
Management of user interface
Management of user settings
Management of window
Wizard framework (supporting dialogs step-by-step)
TheÂ NetBeans IDEÂ is anÂ open-sourceÂ integrated development environment which is written entirely in Java using its own platform. NetBeans IDE has the feature to support development of all types of Java applications (Java SE,Â web, EJBÂ andÂ mobileÂ applications) out of the box. Some of the different are anÂ Ant-based project system, version control and refactoring. Modules are responsible for providing all the features of NetBeans. Every module has a well-defined function like support for theÂ Java language, editing, or support for theÂ CVSÂ versioning system, and SVN.
Advantages of using NetBeans:
Out of the box experience:Â Â
The technologies and features that NetBeans offers cannot be compared to others. It provides all the features without making the user search for plugins seperately. Â The latest development daily builds running in NetBeans are very less as compared to Eclipse. It is a good editor but out-of-the-box experience of NetBeans has made the users of eclipse to use it.
NetBeans' technology plugin ecosystem:Â
The NetBeansÂ pluginÂ ecosystem provides a healthy ecosystem for RCP technologies to survive. New NetBeans update centers run around the net and bring a large amount of plugins from it. Some examples are theÂ .NET to Java pluginÂ which can convert the c# and vb.net sources to Java, the newÂ jMakiÂ plugin that provides a huge amount of AJAX support and also theÂ BeanNetterÂ web start application converting JavaBeans to NetBeans plugins allowing them to be imported into the Matisse graphical user interface builder palette. Update Centers likeÂ nbextrasÂ host lots of plugins which has made the creation ofÂ plugins simple.
Â The Developer CollaborationÂ modulesÂ allow developers at different locations to review and change the code through code-aware instant messaging, remote session sharing, document sharing and the use of server known as the java .net collaboration.
This is an exciting next generationÂ projectÂ for code transformation.Â It is a technology that can safely modify source code with the use of rules and transformation. Â It also provides features that can extend the audit operators, transformation classes and custom rule sets.
Matisse graphical user interface builder.
This is the best open sourceÂ GUI builder available in the market. It is so good that the present commercial companies are making use of it and even selling duplicates of it on Eclipse. Use of the builder is like drawing on paper, very easy. It is convenient to use due to easy internationalization, drag-and-drop component support, guidelines about the platform on which work is done and extensible component palettes
StarUML as a tool for modelling functional and structural aspects
StarUML is an open source platform for modelling flexible, fast and freely available MDA (model driven architecture) platform that supports UML. It provides for 11 different types of diagrams to be modelled which can be customized according to the requirement of the users to maximize the productivity. The most critical process in the software development is the software architecture which can take years to complete, so the OMG (object management group) decided to use MDA technology to create models that are platform independent. StarUML follows all the standards of UML 1.4 and creates models that are platform independent and can be easily converted into the user end product with the use of template documents. (Source: http://staruml.sourceforge.net/en/about.php)
Features of StarUML
Accurate UML standard model
StarUML sticks to the UML standards specified by the OMG (object management group) for modelling the software requirements. It follows the UML 1.4 standard and also allow for the UML 2.0 modelling.
Open software model format
StarUML follows the XML format for the management of the files unlike other products available in the market which follow their own legacy format to produce inefficient results.
True MDA support
It supports UML profile to full extent thus maximising the extensibility of UML. It can also create models in areas like finance, e-business, defence and insurance. PIM (truly platform independent models) as well as PSM (platform specific models) can be created through StarUML and the resultant code can be generated easily.
Applicability and extensibility of platforms
The tool can change the approach concept according to the ease of user thereby creating environments which may be suitable for running on any type of platform. The functionality of the tools is automated according to the Microsoft COM so any language supporting COM can be used to control this platform.
Software model verification function
There is a very high chance of user making mistakes during the modelling. If the errors are left uncorrected then they may result in very high cost maintenance, therefore StarUML verifies the model created by the user automatically so find the errors made in the early stages and hence prevent huge expenditure later on.
There are many useful add-ins in StarUML with various functionalities such as it can generate code as well as create models from a code, can import Rational Rose files, can also exchange information regarding modelling with other tools based on XMI. These functionalities result in increased flexibility, reusability, interoperability and productivity for software modelling.
(Gum et al, 2005)
According to Gum et al (2005) there are various diagrams which can be modelled through StarUML. Table 2 shows the list of all the diagrams available:
It is a visual expression of different static relations of a class. Class diagram also contains enumerations, packages, interface, instances, various relations and their links.
Use case diagram
It expresses the relation between the external actors and the use case of a specific object or system. The diagram provides the functionality of the system and describes the interaction between system functions and external actors.
The diagram describes the interactions between different instances. It expresses directly the interaction instance set, which is the set of the stimuli exchanging between the instances within a collaboration instance set. It is an expression that is instance oriented.
Sequence diagram (Role)
The diagram expresses the direct interactions between the role concepts. It describes a set of the messages that are exchanged between the classifier roles within collaboration. Sequence role diagram is an expression that is role oriented.
Collaboration diagram shows the collaboration between various instances, giving a direct expression of the collaboration model of the instances within a collaboration instance set. Collaboration diagram is an expression that is instance oriented.
Collaboration diagram (Role)
Collaboration role diagram shows the collaboration between the role concepts. It is a direct expression of the collaboration model of the classifier roles within a collaboration. It is an expression that is classifier role-oriented.
Statechart diagram displays the static behaviours of a specific object through states and their transitions. Although statechart diagram is generally used to express the behaviours for instances of classes, it can also be used to express behaviours of other elements.
It is a special form of statechart diagram, suitable for expressing the activity execution flow. Activity diagram is commonly used for expressing workflow, and it is frequently used for objects like classes, packages, and operations.
It expresses the relation between the software components i.e. the manner they are dependent on each other. The elements consisting of the software components and those implementing them can all be expressed by Component diagram.
The diagram expresses the hardware components of the computer and various devices and the software processes, objects and components assigned to them.
Composite structure diagram
It is a diagram that expresses the internal structure of a classifier. It is included in the point where other parts of system interact with each other.
Table 2. List of diagrams available in StarUML (Gum et al, 2005)