Software Engineering vs. System Engineering

1.What is the difference between Software Engineering and System engineering using a Car Dealership Application  as an example?

5 thoughts on “Software Engineering vs. System Engineering

  1. jmoser1

    Software engineering is largely focused on developing quality software that meets the software requirements specification. Systems engineering works at a higher level of abstraction, and is typically responsible for determining the needs of the clients and end users to develop the software requirement specifications themselves. A software engineer may still be involved in designing the specifications, but they typically focus more on the implementation and ensuring that the code itself fulfills the requirements. In a car dealership application, systems engineering would involve canvassing the dealership owner and user base to determine what their software needs are, and translating their requests into a set of formal specifications. A software engineer would then take over and develop an application to meet those requirements. The requirements are not set in stone and are often changed throughout the process, frequently as a result of feedback from both the software engineer and client.

  2. ShayanMukherjee

    Systems Engineering is more broad form of Software Engineering. In this case, it would include the Car Dealership Application AND the non-software components that go into making a successful dealership. Such things would include salespeople, mechanics, facilities, and suppliers. While Software Engineering would just concern itself with optimizing the Dealership Application to fit the broader system.

  3. msahagun

    According to Ian Sommerville, the difference between Software Engineering and System engineering is that “system engineering is concerned with all aspects of the development and evolution of complex systems…whereas software engineering is concerned with the practical problems of producing software” (7). Software is a major component of system development. System engineering involves hardware, software, and process engineering. System engineer concern themselves with system specifications, architectural design, implementation, and deployment. “They are less concerned with the engineering of the system components (hardware, software, etc.)” (Sommerville, 8). To demonstrate the difference between the software and system engineering, a car dealership application will be used as an example system.
    A car dealership application would require mechanical, electrical, and software engineering disciplines to be designed. Mechanical engineers would be required to provide the specifications of the cars the dealership has and to provide service and repairs to malfunctioning vehicles. Software engineers would be required to create the application and user interface design. Available cars must have the most up to date specifications, should any changes have been made. Electrical engineers might be needed should any car have its electrical systems modified. The system engineering team would have to specify system requirements to be partitioned (GUI, database, allowed repairs, service, etc.). The software engineer would have to develop the GUI and maintain the database of cars sold or available. The system engineers would have to assign requirements to sub-systems such as the databases i.e. what functions it should have. System engineers should also design the functions of the interface for subsystems such as the database. The interface’s functions should be agreed upon by the collective disciplines and the software engineer would develop this GUI (guided user interface).

  4. rpyka

    In the Car Dealership example, System Engineering would involve determining how to best help connect the customers and dealership, designing a product which works well for both customers and employees, determining the hardware and resources necessary, etc. Software Engineering would involve working mostly with the code though, actually writing and testing the product.

  5. fstefani

    To make a functional system that supports and manages a car dealership one must assure that a lot of aspects are covered.
    As a start, a car dealership has a physical location somewhere, with its limitations and perks. Such location will probably have to be analyzed in order to decide which kind of power source can be used in the area, and thus the power source will probably result in a choice of specific machinery, which on the other hand will have to be connected with all the other machineries in the facility, and so on. All these problems together, which aggregate areas such as electronic engineering, mechanical engineering, structural engineering, etc; are part of the System Engineering subject. I.e., system engineering is a macro scope when solving the car dealership scenario and aggregate multiple fields.
    Within this multiple fields, at some point all the hardware and infrastructure listed above will have to be ran by a software developed with the objective of fulfilling the dealership needs, such as keeping track of cars, sells, clients, giving space to advertise in the web and so on. This smaller portion of the system engineering is what’s called software engineering, which aims to make sure that the software developed is functional and executes all the necessary actions presented by the client needs in an efficient way, is easily maintainable once the software is fully developed, is usable by the people who are suppose to operate it and, finally, to make sure that the software is reliable and won’n cause any breaks or damages to the other components of the system.

Leave a Reply