Software Engineering

Construction of Quality Software!

  • Dr.Y.Srinivas

    GITAM, University.

         Computing is the main driving force behind recent progress in science, health care, engineering, business, agriculture, and almost every other industry. Computers have become an important element in the industry and is considered as a time- saving device that helps in executing complex, long, repeated processes in a very short time with a high speed. Tiny computers are making their way into surprising places such as the inside of washing machines and individual components of cars. At the other extreme, businesses and government are using large systems with integrated services and data to run factories, deliver services, and to connect everyone across the globe. These changes will require more computing experts with a mastery of various aspects of computing.

    What is Software Engineering?
         Software Engineering is the discipline providing methods and tools for the construction of quality software with a limited budget and a given deadline, in the context of constant requirements change.
         Software consists of documents and programs that contain a collection that has been established to be a part of software engineering procedures. The tasks performed by workers known as Computer software engineers apply the principles and techniques of computer science, engineering, and mathematical analysis to the design development, testing, and evaluation of the software and systems that enable computers to perform their many applications. Software engineers working in applications or systems development analyze users' needs and design, construct, test, and maintain computer applications software or systems. In other words, Software engineering involves the specification, design, construction and verification of large software systems. Moreover, the aim of software engineering is to create a suitable work that constructs programs of high quality
         Working alongside programmers who have in-depth knowledge of writing code, software engineers understand and oversee the development of these systems, requiring strong computing science, project-management and problem-solving skills.
         Software Engineering is all about creating software – computer programs. It involves learning and using programming languages such as Java and C++, but that’s just the beginning – it’s also about deciding what a software system needs to do to solve a real-world problem, designing a solution that fulfils these needs, developing, testing and maintaining it. For software solutions to be useful to business they need to be well engineered, ensuring robustness is one of the main concerns of software engineering. This award includes a study of all the processes involved with the production of well-engineered computer applications. Subjects studied include all aspects of software development processes. You will obtain a firm foundation in computing topics such as: procedural and object-oriented programming, algorithms, systems analysis and design, computer architecture, operating systems, networks and underpinning mathematics.
    Software engineering overview
         Software engineering is an engineering discipline that is concerned with all aspects of software development and implementation. It is a systematic Approach to the design, development, operation, and maintenance of a software system. Software engineers should adopt a systematic and organized approach to their work and use appropriate technology platforms and tools depending on the problem to be solved, the development constraints and resource availability.
         Computer science is concerned with theory and fundamentals whereas software engineering is concerned with the practicalities of developing and delivering useful software.
    Objectives of Software Engineering
    * Maintainability – the ease with which changes in a functional unit or software support can be performed in order to meet prescribed requirements.
    * Correctness – the extent to which software meets its specified requirements
    * Reusability – the extent to which a module or a software component can be used in multiple applications.
    * Testability – the extent to which software facilitates both the establishment of test criteria and the evaluation of the software with respect to those criteria.
    * Reliability – an attribute of software quality. The extent to which a program can be expected to perform its intended function, over an arbitrary time period.
    * Portability – the ease with which software can be transferred from one computer system or environment to another.
    * Adaptability – the ease with which software allows differing system constraints and user needs to be satisfied by making changes to the software.
    Why is Software Engineering Important?
         In most systems, including telecommunication systems, software is the overriding component in terms of cost and complexity. Good software engineering practices and tools can therefore make a substantial difference, even to the extent that they may be the driving force of the project success. The ultimate aim of any software engineering principle is to develop Reliable software. Reliability is that is what bothers from the embedded systems that make a washing machine work to the flight controllers on a passenger jet.
    What does Software Engineering Involve?
         It involves the elicitation of the system’s requirements, the specification of the system, its architectural and detailed design. In addition, the system needs to be verified and validated, a set of activities that commonly take more than 50% of all development resources. Testing techniques and tools, at different levels (unit, integration, system) are needed. Software development being a human intensive process, management and quality control techniques are also required to run successful projects and construct quality systems.
    Benefits of learning Software Engineering:
    Students graduated with knowledge in software Engineering, will be capable of gathering specifications of the software to be developed or modified by meeting with clients. They will able to specify, develop, and maintain software systems that behave reliably and efficiently, are affordable to develop and maintain, and satisfy all the requirements that customers have defined for them.
    What kinds of questions do software engineers investigate?
    Generally speaking, software engineering students seek better ways to develop and evaluate software. Development includes all the synthetic activities that involve creating and modifying the software, including the code, design documents, documentation, etc. Evaluation includes all the analytic activities associated with predicting, determining, and estimating properties of the software systems, including both functionality and extra-functional properties such as performance or reliability
    The general questions which will be analyzed by software engineer include:
    1. How to automate the current process / /modify the existing methods
    2. What is the better design that suits the process
    3. How to implement, maintain the product
    4. How to evaluate the developed model
    Role of a Software Engineer
    In addition to learning how to program and how to architect great software, the role of a software engineer is to develop a reliability software with minimum maintenance cost. This program focuses more on techniques for developing and maintaining software that is correct from its inception. Software engineers assess customer needs and develop usable software that meets those needs. Knowing how to provide genuinely useful and usable software is of paramount importance. The software engineering profession seeks to integrate the principles of mathematics and computer science with engineering practices developed for tangible, physical artifacts

Industry      Interaction

Higher Education

Job Skills

Soft Skills

Comm. English

Mock Test