Object Oriented Software Engineering - MCA-104

 



MCA Semester -2 IPU Syllabus - MCA-104 -  Object Oriented Analysis - Software Engineering 








Object-Oriented Analysis and Design is at the core of software development processes. Hence all software development companies have a need for the same. These include – Microsoft, Samsung, Xerox, Yahoo, Google, IBM, TCS, Infosys, Amazon, Flipkart, etc.



ABOUT THE COURSE :

The complexity of software systems is ever on the rise – more complex problem domains being attempted (complex embedded systems), ever growing number of developers engaged in increasingly intricate development processes to turnaround in shorter and shorter time, flexibility of software and models of implementation being stretched to the limit with XaaS (XaaS stands for “anything as a service), platforms getting challenging with widely expanding distribution, cloud computation etc.

 Hence the analysis and design of software require well-organized and structured approaches to manage the challenges of complexity – even more than ever before. 

Over the past two decades, methods of Object-Oriented Analysis, Design and Programming have proved to be effective solutions in handling the inherent complexity of software design, development, testing and maintenance.

Concepts of OOAD like Abstraction, Encapsulation, Modularity, Hierarchy, Object, State, Behavior, Identity, Class, Operation, Interface, Inheritance, Association, Aggregation, Decomposition, Use-case, etc. have become the lingua franca for the software developers; ubiquitous notation of UML (Unified Modeling Language) has firmly established itself as the vehicular language for design; and many object-based as well as object-oriented languages have become available and have been widely adopted (based on TIOBE Index [The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. ] for May 2019) – Java (16%), C++ (8%), Python (8%), VB / VB.NET (5.5%), C# (4%), Perl (1.5%), Ruby (1.5%), Objective-C (1.5%), Delphi/Object Pascal (1.5%), D (1%) – to name a few. Even out of C (14%) developers, a large section today adheres to OOAD / OOP principles in design and disciplined modular implementation. 

The subject  introduces OOAD grounds up – starting with breaking down the root causes of inherent software complexity. After an in-depth exposure to Object Models, Classes and their interactions, the course takes a thorough tour of the diagrams of UML . Several systems examples help students understand the concept and  offer quick practice. 

While this course can be followed independently (with some programming background), it would help in practicing OOP in C++ or Java. 

PRE-REQUISITES  :

1. Basic Knowledge of Programming & Data Structure 

2. Experience of Programming Projects would help; but is not mandatory 

3. Attending a course on C++ with this course will help


1) Object Oriented Analysis and Design (OOAD) is an approach for developing

software systems using object-oriented software engineering concepts.


2) OOAD is about having lots of options. There is never only one right way to

solve a problem; more options may exist. The more options you have, the

better chance you will find a good solution to every problem. 


3) Requirements are those things which your system must do to work correctly. Object Oriented

Analysis (OOA) is the primary technical step in developing a software system using the object oriented approach. 


4) OOA is based on a set of basic principles that include modeling the problem domain, representing behaviour and describing functions of the system.


5) In Object-Oriented Design(OOD), the model created using OOA is transformed into a design model that works as a plan for software development.


 6) Object-oriented analysis methods emerged during the 1990s. In the early stage, object orientation was primarily associated with developing graphical user interfaces (GUIs), and a few other applications.


 7) In OOAD, a very basic concept followed is "one should model software systems

as collections of cooperating objects, treating individual objects as instances of

a class within a hierarchy of classes".


8) Most popular OOAD approaches was Object Modelling Technique( OMT) for software modelling and designing. In 1991 James Rambaugh suggested three types of models: Object, Dynamic and Functional Model for software modelling.

9) Another approach was Booch methodology of Object Oriented Analysis and Design, which was proposed by Grady Booch proposed.

10) The OOAD approach is sequential in nature. The analysis phase establishes the system requirements and performs domain analysis from the customer perspective. Once the analysis phase is complete, the design phase ( which is iterative in nature ) maps the logic design to the physical design. The prototype is created and tested. It is one of the widely used approaches in Object Oriented Software Engineering.


11) Object-oriented analysis and design (OOAD) is one of the very important concept as it

helps in developing a conceptual understanding of the Analysis and Design of the system.


12) The study of OOAD, one needs to study a lot of problems and analyse them. Object

oriented (OO) approach is though very challenging but it is very powerful approach for

system development. 


13) Basic concepts like class, object, inheritance, polymorphism etc. help in

designing of the system. A class in the system serve as a model for which we create objects.

The interaction of objects with each other makes the system functional. 


14) Systems developed using the OO approach provide systems reusability, reliability, robustness, and extensibility. 

15) The concepts of abstraction, encapsulation, inheritance and polymorphism. These are the basic constructs of object orientation which makes it possible to develop systems in such a way that the system is flexible and open for reusability.

 

16) Some of the tools/software that may be used to draw UML diagrams are AgroUML, StarUML,

BOUML, Dia, Visual Paradigm, Edraw-Max, Smart Draw, MS-Visio, Rational UML and

IBM Rational.


UML is ready to use, expressive visual modelling language. It provides extensibility and is

independent of any particular programming language. UML is used for designing Object

Oriented Systems. 


UML is used as a documentation language. It is used for modelling the activities of project planning and related activities. 

UML diagrams are used to graphically represent the related artifacts and elements such as

actors, roles, classes, actions etc. of the system. 


UML includes the following nine diagrams which are used to represent different aspects of the systems model. 

Nine UML Diagrams:

1. Class Diagram

2. Object Diagram

3. Use Case Diagram

4. Sequence Diagram

5. Collaboration Diagram

6. Statechart Diagram

7. Activity Diagram

8. Component Diagram

9. Deployment Diagram








Explore :  https://www.uml.org/

Look into the Examples of UML here


 you should write problems description in about 300-500 words and also list the basic

assumptions related to the problem. This will help you to limit your solution within the

specified scope.

Session-1

1. Draw Class Diagram for Online Shopping System (First, list the assumptions of the

shopping system and then identify classes, and then draw the diagram).

2. Draw Class Diagram for Online Examination System.

3. Draw Object Diagram for Online Banking System.

Session-2

4. Draw Use Case Diagram for Online Shopping System.

5. Draw Use Case Diagram for Library Management System.

Session-3

6. Draw Sequence Diagram for Online Shopping System.

7. Draw Sequence Diagram for Online Examination System.

8. Draw a Sequence diagram for Employee Management System.

Session-4

9. Draw Collaboration Diagram for Student Registration Process in Masters Program of

a University.

10. Draw Collaboration Diagram for Online Banking System.

11. Draw a Collaboration diagram for Employee Management System.

Session-5

12. Activity Diagram Online Banking System.

13. Draw Activity Diagram for Online Examination System.

Session-6

14. State Chart Diagram for Online Examination System.

15. State Chart Diagram for Online Fund Transfer through Netbanking Banking System.

Session-7

16. Draw Component Diagram for Online Examination System.

17. Draw Component Diagram for Order Processing Application.

18. Diagram Deployment Diagram for Online Student Admission System.

Session-8

19. Implement the following Class Diagram in C++/Java.



Figure 1.15: Class Diagram for Student Registration

20. Implement the Class Diagram of figure 1.18, in C++ or Java.


Session-9

21. Implement the following Associations using C++/Java.



Figure1.16: Train-Journey Association

22. Implement the following Associations using C++/Java.



Figure 1.17: Person and Bank Account


Session-10

23. Do mapping of the following Classes into database tables



Figure1.18: Customer Order Association Class


REFERENCES/FURTHER READINGS


1.6 REFERENCES/FURTHER READINGS

 Grady Booch, James Rumbaugh and Ivar Jacobson, “The Unified Modeling Language

User Guide”, Pearson Education,2004.

 https://argouml.en.softonic.com/

 https://argouml-tigris-org.github.io/tigris/argouml/

 https://staruml.io/

 https://docs.staruml.io/

 https://docs.staruml.io/user-guide/editing-elements

 http://staruml.sourceforge.net/docs/user-guide(en)/toc.html

 https://www.bouml.fr/

 https://docplayer.net/21262400-Staruml-documentation.html

 https://en.wikipedia.org/wiki/List_of_Unified_Modeling_Language_tools

 https://www.uml.org/

 https://www.uml-diagrams.org/index-examples.html

 https://www.uml-diagrams.org/classifier.html

 https://www.uml-diagrams.org/dependency.html

 https://www.uml-diagrams.org/association.html

 https://www.uml-diagrams.org/package-diagrams-overview.html

 https://www.uml-diagrams.org/package-diagrams.html


Access Content for Object oriented Analysis and Design


Object Oriented Analysis and Design Guide . Download here.

IGNOU Blocks 

No comments:

Post a Comment

If you have any query or doubt, please let me know. I will try my level best to resolve the same at earliest.

Resources That will Make You Better at IT, Education and specifically in Digital Marketing.: Build career in Medical coding in 2021

Resources That will Make You Better at IT, Education and specifically in Digital Marketing.: Build career in Medical coding in 2021 :  As He...