Explore chapters and articles related to this topic
Managing Software Facilities, Reuse and Tools
Published in Marvin Gechman, Project Management of Large Software-Intensive Systems, 2019
The use of Object-Oriented Design naturally produces cohesive objects that encapsulate functionality and data have well-defined interfaces and are therefore suitable for reuse in many instances. In addition, class hierarchies and design patterns capture commonality and provide for abstractions that can lead to reuse. Specific activities in software analysis and design processes identify opportunities for not only design and code reuse but also use case and scenario reuse for requirements traceability and testing. These opportunities for reuse should be recorded in the design documentation.
Supporting Software Design: Integrating Design Methods and Design Rationale
Published in Thomas P. Moran, John M. Carroll, Design Rationale, 2020
Despite their many differences, software development methods have three things in common: Every method has a design philosophy or strategy with which the practitioner is supposed to attack the problem. This is nothing other than a view, usually an implicit view, of what software design is. Structured analysis, for example, is predicated on the simple philosophy that design is the recursive process by which a designer refines a functional description of the problem into smaller subproblems. Object-oriented design requires the adoption of the belief that software design is the process by which a system is divided into a number of "objects," each of which stands for some concrete thing in the problem domain with its own responsibilities and interfaces to other objects.In addition to the grand strategy provided by a method's design philosophy, methods also have "tactics" or heuristics that the method's authors recommend to practitioners in different situations. Methods vary widely in the quantity and prescriptiveness of the tactics they contain.Methods differ in the kinds of artifacts they assume will be produced by applying the method's strategy and tactics. Eventually, of course, all software development will yield executable program code. There are big differences, however, in the intermediate, nonexecutable representations, models, descriptions, or specifications of the system that are produced before the executable code. We refer to these products as artifacts. Because different artifacts contain different types of information at different levels of detail, artifacts should be produced in a rational order. Thus the artifacts are related to the strategy and tactics of the method.
Assessing Students’ Object-Oriented Programming Skills with Java: The “Department-Employee” Project
Published in Journal of Computer Information Systems, 2020
Xihui Zhang, John D. Crabtree, Mark G. Terwilliger, Tyler T. Redman
Java is an object-oriented programming (OOP) language. Compared to structured programming techniques, object-oriented design and programming provides a more natural and intuitive way to describe real-world objects by creating classes and their runtime objects (also called instances). People possessing strong OOP skills with Java are in high demand in industry. Nine out of today’s 10 most popular programming languages support OOP.1 Although there are over 100 programming languages in existence today, research has shown that language adoption follows a power law, and the top six languages account for 75% of the software projects at SourceForge.2 As such, it is imperative that institutions of higher learning teach their students OOP skills so that the students are well prepared for their prospective careers in the field of information technology.
Object-oriented systems engineering for networked infrastructure projects
Published in Australian Journal of Multi-Disciplinary Engineering, 2020
Object-oriented design exploits modern software tools to implement key concepts, such as abstraction and inheritance. Within the systems engineering community there are a range of Model-Based Systems Engineering (MBSE) tools that support object-oriented design, some of them by implementing the SysML standard. SysML is a natural companion to Model-Based Systems Engineering (MBSE) but it is not analogous to it.