Concept explainers
Soft Skills
44. Your company’s software is a market leader but is proving difficult to maintain because it was written in C without using object-oriented concepts. Customers have identified problems with the software that must be fixed immediately and have pointed out features in competitors’ products that they want you to support. The best solution will require a complete OOP redesign and subsequent implementation but will take three years. Write a memo to company management outlining your recommendation for the course of action the company should pursue.
Want to see the full answer?
Check out a sample textbook solutionChapter 11 Solutions
STARTING OUT WITH C++ MPL
Additional Engineering Textbook Solutions
Objects First with Java: A Practical Introduction Using BlueJ (6th Edition)
Java How To Program (Early Objects)
Starting Out With Visual Basic (7th Edition)
Starting Out with Python (3rd Edition)
Artificial Intelligence: A Modern Approach
Starting Out with Java: Early Objects (6th Edition)
- Part 3 After you submit our technical assessment, the next step in the interview is a skype call. with senior software engineering from the company, inthis interview, they will ask you the following questions, make sure to prepare and draft all answers to be well prepared. 1. Clarify the following programming paradigms: Object oriented programming, Event driven programming, and Procedural programming. 2. Show the interviewers how you can distinguish between the three programming paradigms in terms of code. 3. Finally, review a source code example for every programming paradigm and list 3 characteristics of your findings for every programming paradigm.arrow_forwardFacts: Software design is the process of defining software methods, functions, objects, and the overall structure and interaction of your code so that the resulting functionality will satisfy your user's requirements. There are many different ways of designing software, almost all of which involve coming up with an initial design and refining it as necessary. Different developers prefer different amounts of design upfront or during the implementation phase. Generally, the overall design should be well thought out and reviewed before coding starts. Refer to our section on Design reviews to learn how to review your design. It is easier to try out different designs upfront and discover problems early in the development cycle than to make a major design change after much of the code has been written. Your software design should include a description of the overall architecture. This should include the hardware, databases, and third-party frameworks your software will use or interact with.…arrow_forwardOne of the advantages of writing a program that is subdivided into methods is that such a structure provides the opportunity for different programmers to write separate methods, thus dividing the work. With this concept in mind, answer the following questions: Would you prefer to write a large program by yourself or work in a team in which each programmer produces one or more modules? Why? What challenges would you foresee in working with a large development team? What methods might you employ to overcome or manage these challenges?arrow_forward
- The ability to delegate specific tasks to individual programmers is a key benefit of a program's structure that uses methods. Consider this idea carefully when you respond to the following questions: Do you prefer working in a team where each programmer creates one or more modules, or would you rather design a massive piece of software by yourself? Why? How do you think you'll deal with the difficulties of a huge development team? How may you handle or get beyond these obstacles?arrow_forwardYour argument should not be based just on performance; rather, you should explain why it is useful for a software developer to have deep access rather than shallow access.arrow_forwardWould it be feasible for you to discuss the metrics that are used throughout the process of developing software? To find a comprehensive solution to the problem, it is necessary to examine all of its elements.arrow_forward
- The Issue: Some people are adamant about their programming approach and refuse to accept that another system may be superior. Many people believe that object oriented programming is the only way to go and that if everyone used it, all of the world's programming issues would be solved. As a long-time hacker, I've seen many trends come and go, such as expert programming, artificial intelligence, extreme programming, structured design, and many others. They all claimed to solve the world's programming problems. None of them have ever done so.A proponent of object oriented programming once issued a dare. "There isn't a single program that can't be improved with the use of objects," he says. The problem is to locate such a program.arrow_forwardDo programmers have a moral or ethical commitment to create code that can be easily maintained, even if the client organization doesn't want it?arrow_forwardThe topic of whether programmers have an obligation to create code that can be maintained regardless of the choice made by the company in which they work is brought up by this.arrow_forward
- I was wondering if you could provide any concrete examples of the phases involved in the software structure review process that you described.arrow_forwardThis raises the question of whether or not programmers have a moral or ethical duty to write code that can be maintained even if the corporation that employs them decides not to.arrow_forwardThe software industry interchangeably uses the terms "cohesion" and "coupling."arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education