What is reuse based software engineering?

Model based on component stages

In a few words, when we think about what a software engineer does, we can say that his job consists of identifying a problem or need in the market, sketching the project, planning its development and performing all the necessary tests until it works without errors.

Now that you know what this branch of engineering consists of, you may wonder what exactly does a software engineer do? As a software engineer, your job will focus on defining the structure, visibility and efficiency of any software you develop. Remember that technology is advancing every day and we can now find software in all kinds of devices, such as laptops, televisions, cell phones and even home appliances.

Software is present in almost everything we use and has facilitated many tasks such as purchasing products remotely, teleconsultations, virtual classes, among others. So if you can imagine yourself creating new functions that adapt to modern needs, this career is for you.

Component-based software engineering example

Component-based software development allows the reuse of pre-built pieces of code to perform various tasks, leading to several benefits such as quality improvements, development cycle reduction and higher return on investment.

See also  How many countries use recycled water?

“A component is a unit of composition of software applications, which has a set of interfaces and a set of requirements, and which must be able to be developed, acquired, incorporated into the system and composed with other components independently, in time and space.”

The engineering activity begins with the identification of candidate classes. This is done by examining the data to be handled by the application and the algorithm to be applied to achieve the processing. The data and the corresponding algorithms are packaged into a class.

Once the candidate classes have been identified, the class library is examined to determine if these classes already exist. If so, they are extracted from the library and reused. If a candidate class does not reside in the library, object-oriented methods are applied.

Reuse-oriented software engineering

4 CC-BY-NC-ND PID_ Reuse-based software development Framework for the implementation of user interfaces Persistence frameworks for object-relational mapping Framework for the development of web applications Services Introduction to web services Web services development Web services development Client development Data types Large-scale reuse / Reuse methodological solutions Introduction Model-driven software engineering Different approaches: proprietary metamodels and standard metamodels UML as a modeling language in MDE Automatic support Domain-specific languages (DSL) Definition of DSL Software product line Domain engineering Software engineering for product lines based on UML Generative programming Domain engineering Technologies Software factories Summary Activities Self-assessment exercises Solver Glossary Bibliography

See also  How does Python send data over wifi?

6 CC-BY-NC-ND PID_ Software development based on reuse Objectives At the end of this course, the student should: 1. be aware of the convenience of reusing software and developing reusable software. 2. Know the main techniques for reusable software development. 3. Know the techniques to integrate reusable software in new projects. 4. Know methodologies that allow the development of projects that make an intensive use of reusability.

What is software reuse?

Component-based software engineering (CBSE), also known as component-based development (CBD), is a branch of software engineering that emphasizes separation of concerns (SoC), as it refers to the broad range of functionality available throughout a given software system. It is a reuse-based approach to defining, implementing, and composing loosely coupled software components into systems. This practice pursues a wide degree of benefits in both the short and long term, for the software itself and for the organizations that sponsor such software.

See also  How do I export a certificate?

Software engineers consider components as part of the initial platform for service-orientation. Components play this role, for example, in web services and, more recently, in service-oriented architectures (SOA), whereby a component is converted by the web service into a service and consequently inherits other features beyond those of an ordinary component.