In: Computer Science
Discuss why it is important for organizations to use a a model for communication, such as the 'Entity-Relationship' model. Furthermore, explain why companies use 'Unified Modeling Language' (UML) to diagramatically represent the various concepts presented in ER models.250 words
Solution:
Topic: Why software Companies use Modeling for communication among the components(Objects ) of the given system Like ER modeling? Why UML is more appropriate for Modeling Software Elements:
Modeling is the simplification of Reality. Modeling is useful to better understand the system we are developing. Modeling is used while building complex systems since it is not possible to build complex systems in its entirety in a single step.
Modeling Objectives:
Modeling shows representation of a system with few basic requirements in a diagrammatic manner with proper connections (links) among the entities(Objects), with relationship names, Cardinality. So Normal uneducated(need not be programming Experts) stake holders can easily understand the project requirements captured by the developers, if any deviation is there stake holders feed back will be taken to correct the requirements then design become perfect so product meets the customer acceptance criteria.
Software Companies First transform the Problem statements into Diagramatic Models. Models can be developed at different abstractions(levels) so different stake holders can have different accessing rights. Requirements model can be developed by ER Models or Use Case Models which shows functional requirements. Data Flow /Control flow of the system can be modeled using DFD/ CFG diagrams both are specialized to model Data and control flow respectively.
Design can be modeled using Class/Object/Activity/Interaction/Component/Deployment/State chart diagrams to show both static and dynamic features of the system.
Why UML is More Preferred:
UML is Unified Modeling language, It is Graphical language useful to model blue prints of the Software as well as Non software things also. UML is more expressive with syntactic and semantic richness. It has Grammar rules and Extendibility mechanism with common mechanism system.
UML is a standard by IEEE with consortium of IBM,Intas,OMT etc companies by consolidating the best features of OOSE/Booch/OMT methodologies to provide a Common Modeling Solution.
UML has total 9 diagrams and Four Relationships:
Diagrams are Classified into Static and Dynamic (or Structural/Behavioral) diagrams used to model different views ( from the perspective of various stake holders) of the system.
Use Case,Class, Object,Comonent and Deployment diagrams are Static diagrams where as Sequence/Collaboration/Activity and State Chart are Dynamic diagrams.
Association/Dependency/Generalization/Realization are four relationships used to connect the elements.
ER model also rich with information but UML is more Expressive diagrammatic Language able to model both static and dynamic aspects of the system.
Most Important feature of UML is Forward Engineering and Reverse Engineering:
Forward Engineering converts(Tranforms) a UML Diagram(model) into source code of a choosed Programming Language( C/Basic/Cobol/Fortran/Pascal/C++/Java/C#/Python/Ruby etc).
Reverse Engineering converts(Tranforms) any source code of a Programming language into Diagrams(Models)
Ie Models for Understanding and Code is for creating software.
UML also allows Re-Engineering of Software( A software from One Platform to another Platform can be transform with same Requirements/Design/Test suits only Data base/OS/PL varies).