The structured paradigm is a development strategy based on the concept that a system should be separated into two parts: data and functionality where on the other hand, the main concept behind the object oriented paradigm is that instead of defining systems as two separate parts, you now define systems as collection of interacting objects.
What is the essence of reusability and why cant it be achieved in structured systems development? What is the advantage of reusability? How does each of the stated concepts increase reusability? See if you can find examples in each of your projects.
Provide examples to the application of extensibility, an advantage of OO
Bulk requirement definitions? Find examples
What were the technical benefits? How would the technical benefits lead to business benefits?
Why do you thing the legacy systems are poorly built? How would maintenance burden and application backlog create problem in a system development lifecycle?
Explain the figure in this slide.
Why is requirement analysis ignored in reality? Why are developers and users far apart in the system development process? Describe the change in mindset that is expected from individuals in OO Describe how the benefits are assumed to be in the long run? Up front investments?
Why do we need more testing in OO?
Explain the figure?
What other software processes are there?
Object Oriented Systems Analysis and Design Chapter 1
The Potential Benefits of Object Orientation• Popularized in the late 1980’s• Became the standard in mid – 1990s• Benefits – Increased reusability – Increased extensibility – Improved quality – Financial benefits – Increased chance of project success – Reduced maintenance burden – Reduced application backlog – Managed complexity
Increased Reusability• Through the concepts – Inheritance – Polymorphism – Encapsulation – Modularity – Coupling – Cohesion
Increased Extensibility• Because classes have both data and functionality when you add new features to the system, you only need to make changes in one place: the applicable class• Structured – change in single business rule could affect many programs• Objects encapsulate both functionality and data, making it easier to maintain your software• Inheritance enables you to reuse existing behaviors, making it easier to enhance your software
Improved Quality• On time, on budget, meet user expectations• OO devt techniques provide greater opportunity for users to participate in the development process.• Bulk requirement definitions – Essential Use Case and CRC models
Financial Benefits• The previous benefits are all technical benefits – giving business benefits of OO• Better Faster Cheaper (BFC)• The less code the less effort to maintain• A system that is easily extensible is easy to maintain• System that meets user needs receive fewer changes• Benefits of OO are realized throughout the entire development lifecycle, not just during programming• Therefore, because Technical Benefits are achieved BFC can be achieved
Increased Chance of Project Success• Success - On time, On budget, meeting user needs• OO is the way to develop systems quickly and inexpensively
Reduced Maintenance Burden• Problems – Maintenance Burden – Spending Significant Resources maintaining software – Application Backlog – Long waiting list of things to be done making new projects not to start• The Maintenance Burden exists for several reasons – Many systems were developed in the past that are still in use – System documentation is poor, if it exists at all – Compared to the standards of today, legacy systems are poorly built
Reduced Application Backlog• 2-5 year AB exists Project Project System Idea Proposed Begins Released Application Backlog Development time Total Implementation Time• Because OO techniques are more productive, organizations are able to free up resources sooner to tackle new projects
Managed Complexity• You can build complex software from well designed reusable objects• Expect the software you build today will need to be changed tomorrow• Well designed object oriented software enables you to react quickly to changes in your environment
Drawbacks of OO• Requires a greater concentration on requirement analysis which is often ignored in reality• Developers must work closely with users, which is easier said than done• Requires a complete change in mindset on the part of individuals• Is more than just programming, not easy and not that quick• Benefits are on the long run• Demands up-front investments in training, education and tools
Drawbacks …• Techniques do not guarantee you will build the right system• Necessitates increased testing• OO is only part of the solution – not a silver bullet or a panacea – Need CASE tools – Quality Assurance Tasks – Develop user interface tasks
The Object Oriented Software Process Lifecycle Deliver Deliver Maintain and Support Maintain and Support Initiate Initiate Construct Construct Define and Test in validate Model Test in the Large Release Justify initial requirement the Small Support sDefine Initial Identity DefectsManagement Define Infrastructure Generalize Program Rework Assess andDocuments Enhancements Assure quality, Manage the Project, Train and Educate, Manage People, Manage Risk, Manage Reuse, Manage Metrics, Manage Deliverables, Manage Infrastructure
The Object Oriented Software Process• Software process – Set of project phases, stages, methods, techniques, and practices that people employ to develop and maintain software and its associated artifacts – Enables orgns to increase productivity when developing software