Reverse Engineering
Student Name: Zhen Lu
CIS 350 – Introduction to Software Engineering
Summer 2017 Intro: In recent decades, there is a significant increase of complexity in our daily life, which includes electronic devices, mechanic equipment, computer program, or biological, chemical, or organic matter, etc. To extracting knowledge, design information or to improve the products and maintain the process, reverse engineering is used in these areas, so that based on the extracted information the product can be reproduced or the information can be gathered. There are a lot of reason to use reverse engineer, as mentioned above, information can be gathered for reproducing products, it also can be using for criminal actions or socially
…show more content…
There are two types of engineering, forward engineering, and reverse engineering. According to Vinesh’s describe, “The process of duplicating an existing part, subassembly, or product, without drawings, documentation, or a computer model is known as reverse engineering.” (p. 2) he also defined it as “the process of obtaining a geometric CAD model from 3-D points acquired by scanning/ digitizing existing parts/products.” (p. 2) Reverse engineering is very common in such diverse fields as software engineering, entertainment, automotive, consumer products, microchips, chemicals, electronics, and mechanical designs.
Why we need reverse engineering?
Vignesh's also listed the reason for why using reverse engineering, here are some:
• The original manufacturer no longer exists, but a customer needs the product
• Some bad features of a product need to be eliminated
• Strengthening the good features of a product based on long-term usage
• Generating data to create dental or surgical prosthetics, tissue engineered body parts, or for surgical planning.
• Documentation and reproduction of crime
…show more content…
Software: “Software reverse engineering is a broad term that encompasses an array of methods and tools to derive information and knowledge from existing software artifacts and leverage it into software engineering processes” (Gerardo, Massimiliano & Luigi, 2011), according to what they described, reverse engineering is a process of examination rather than a process of change.
Software reverse engineering originated in software maintenance, it has been successfully solving numerous software engineering problems, such as recovering architectures and design patterns, documenting programs and database, computing change impacts, re-modularizing existing systems, etc.
Successful usage of reverse engineering in software has also listed by Gerardo, here are some:
• Keep organizations’ development costs under control by integrating commercial-off-the-shelf;
• Components of existing software systems;
• Maintain software systems in line with the business evolution by preparing existing systems for fruition as a set of services within a service oriented infrastructure;
(Gerardo, Massimiliano & Luigi,
The IT department needs to collaborate with the business to better understand how organization changes impact applications and systems. Moreover, IT needs to strengthen the IT-business alignment to stay abreast of future changes. One methodology that may assist here is business architecture, a blueprint of the business that supports aligning strategic objectives and tactical demands. 7. There are limits to customer-centric responsiveness.
3.) Explain why incremental development is the most effective approach for developing business software systems. Why is this model less appropriate for real-time systems?
The process starts with a concept or idea.(Mashable) The first stage of 3D printing is planning out this concept with either computer aided design or animation modeling software. There are tons of programs out there today with these capabilities. Google SketchUp for example is known for being easy to use.(3ders) Using some easy tools that can be learned quickly, edges and faces can come together to make very intricate models. It can even be used with Google Earth. All those models of the world in that software are made in what is basically the same process digitally. Blender is the free 3D creation program that exists for the needs of major operating systems.(3ders) It is a high end software containing features that are much more capable than Google SketchUp. Tinkercad is a newer way of creating designs for 3D printers and works slightly faster than the others.(3ders) Containing only three simple tools, it’s effectiveness for creating models is among the best..
In programming, computer engineers instruct computers how, to do their jobs or desired functions line by line. There are many forms of computer software engineers. There are computer applications software engineers who analyse user needs and designs and then build, maintain, or perfect specialized utility systems or applications already within the system. Computer applications engineers have a multitude of computer programming languages they have to use on a daily basis. Generally the favorite languages used are C, C++, and Java. The less popular languages that are used are Fortran and COBOL. Software engineers may also also develop packaged systems, systems software, or even create personalized applications. Computer systems software engineers are responsible for designing the maintenance and construction of a company's computer systems, while also planning the systems future growth. Computer systems software engineers analyse the needs of each specific department while working with a company and advise the company on which technical direction to follow. Computer systems software engineers often help set up the technical systems of the company within the departments. The computer systems software engineers will also sometimes set up the companies intranets systems. Specifically the ones that link the company's computer systems with the organization and make communications between departments run faster and smoother. Computer
1.0 IntroductionIn this report I will be concentrating on the failure of software systems. To understand why software systems fail we need to understand what are software systems. Software systems are a type of information system. This is because a software system is basically a means for hardware to process information. Flynn’s definition of an information system is:"An information system provides procedures to record and make available information, concerning part of an organization, to assist organization-related activities."Humans have been processing information manually for thousands of years, but with the vast increase of demand for knowledge this century has meant that a new method of information processing has been needed. Software systems have provided a new means that is much faster and efficient.
While developing a software many complex activities are required which in turn have dependencies along them. Large software projects require the involvement of programmers, documentation specialists, program managers, architects, database analysts, system analysts, , and trainers and last but not the least testers. Along with their independent responsibilities these persons are also responsible to maintain and keep a check on the software system quality as well.
Artificial intelligence in medicine would provide medical professionals with a method of guaranteed analysis across different stages of disease development. There are robots already in operation that sew sutures and close surgical wounds with perfection. The mechanical hands performing the skill are a fraction of the size of a human finger, helping to remove the potential for mistakes.
Reverse supply chain refers to the movement of goods from customer to vendor. This is the reverse of the traditional supply chain movement of goods from vendor to customer. Reverse logistics is the process of planning, implementing and controlling the efficient and effective inbound flow and storage of secondary goods and related information for the purpose of recovering value or proper disposal. There are various types of reverse supply chains, and they arise at different stages of the product cycle; however, most return supply chains are organized to carry out five key processes:
Decomposition is one of the cornerstones when it comes to computer science. Decomposition is breaking down a problem or system into smaller, more manageable parts that can be solved or fixed separately. An example of this would be a software company having a team that work on the same project all together but working on different parts at the same time to get it completed in a much faster rate. Problems are much easier to understand once they are split apart e.g. if you wanted to know how a car works it would take a much longer time if it was all built, however, if the car was split into different parts you would understand how it works quicker and most importantly easier.
The process by which the software is conceptualized developed and maintained this process is known as Software Development Lifecycle. There are seven key points to understanding Software Development Lifecycle.
Requirements engineering begins during the communication activity, continues into the modeling activity, and builds a bridge from the system requirements into software design and construction. Through requirements engineering, there is an examination of the context of software work performed. It is essential for the software engineering team to understand all requirements of a problem before the team tries to solve the problem. An identification of specific needs that the design and construction must address is also included. Further is a need for the identification of the priorities that guides the order for the completion of work. This i...
For example, the following originate from a mechanical engineer: space shuttles, aircrafts, automobiles, pumps, HVAC (air conditioning), and factories. They can also recreate, redesign, or innovate something to make it cheaper or more functional.
The first and biggest positive impact on engineering has been the use of Computer Numerical Control machines (CNC); computers were first introduced to these controls in the early 1970’s. CNC machines typically replace or work in conjunction with some existing manufacturing process. For example before CNC machines a person using a drill press to machine holes would have to do a lot of work for themselves. They would have to place a drill in the drill chuck is secured in the spindle of the drill press. They can then select the desired speed for rotation, and activate the spindle. Then they manually pull on the quill lever to drive the drill into the work piece being machined. As you can see, there are a lot of manual steps required to use a drill press to drill holes. While this way may be acceptable for a small number of holes or parts. However, as quantities grow, so dose the likelihood for fatigue due to the tediousness of the operation. There are also more complicated machining operations that would require a much higher skill level of the person running the machining tool. The CNC machining center can be programmed to perform this operation in a much more automatic fashion. Everything that the drill press operator was doing manually will now be done by the CNC machine, including: placing the drill in the spindle, activating the spindle, positioning the work piece under the drill, machining the hole, and turning off the spindle. CNC works from a source code made on a computer that you just save as a file on your disk and insert it into the machine. The code can be made using two different ways, the first is just understanding the code, and by using the notepad program on you computer, you can just type it right out. This is the easiest way for very simple process, which doesn’t require much code.
Engineering has evolved since the beginning of time. Most engineers have been successful due to trial and error. Thomas Jefferson, for instance, failed many times before creating the light bulb, which he is now famous for. Another popular trial and error procedure is the scientific method. Most researchers use the scientific method in order to get a successful result, or a not so successful outcome.
Some examples of mechanical engineering is bridges, dams, buildings, solar energy, and many more. So basically mechanical engineering