CS504 Software Engineering GDB Solution Fall 2013

For designing a complex nature embedded system one group of thought said that object oriented modeling will be used and another group of thought said that structured oriented modeling will be used. As a software engineer you are required to analyze and design models for this system, so out of these two approaches which approach is suitable and why? Justify your answer with logical reasons.

Structured programming can be seen as a subset or subdiscipline of procedural programming, one of the major programming paradigms. It is most famous for removing or reducing reliance on the GOTO statement .

The rise of the Object Oriented concept brought us debugging comfort as well as expandability as the programs were getting larger and larger and it became difficult to debug. There were functions to reduce the size of the programs and improve readability but it was never enough.

Object-oriented programming (OOP) is a programming language model organized around “objects” rather than “actions” and data rather than logic. Historically, a program has been viewed as a logical procedure that takes input data, processes it, and produces output data. The programming challenge was seen as how to write the logic, not how to define the data. Object-oriented programming takes the view that what we really care about are the objects we want to manipulate rather than the logic required to manipulate them .

Object Oriented Programming has many benefits over Structured programming. Some of them are reusability, extensibility, reliability and maintainability. OOP also helps to reduce large problems to smaller, more manageable problems. In terms of extensibility and reusability, for instance: “Encapsulation allows the internal implementation of a class to be modified without requiring changes to its services (i.e. methods). It also allows new classes to be added to a system, without major modifications to the system. Inheritance allows the class hierarchy to be further refined, and combined with polymorphism, the superclass does not have to “know” about the new class, i.e. modifications do not have to be made at the superclass