Software Engineering is the systematic development and application of techniques which lead to the creation of correct and reliable computer software. To achieve that, you need a wide understanding of the general principles which underpin not only computer software but also computer hardware and computer communications.
As our daily lives become more dependent on computer systems, it is vital that such systems are error-free and totally reliable. This reliability is particularly impor-tant when computers are used in safety-critical situations such as hospitals, or controlling aircraft or industrial plants. Software Engineering focuses on challenging problems in industry and commerce concerned with software development and reliability. With concern for software reliability, correct-ness, safety and cost, such concern being the hallmark of Software Engineering.
The principles and knowledge of computer science, engineering, and mathematical analysis are employed by computer software engineers for designing, developing, testing, and evaluating the software and the systems that computers use to carry out various applications.
Software engineers are engaged in analyzing user needs and designing, constructing, testing, and maintaining computer applications software or systems. Various kinds of software like software for operating systems and network distribution, and compilers, which convert programs for execution
on a computer, are developed by a software engineer.
In the programming or coding fields, software engineers give instructions to a computer, line by line; on how on perform a function or operation.
These engineers are also geared to tackle technical problems and hitches. Although these engineers need to possess string programming skills, they are more occupied with the development of algorithms and in analyzing and solving problems in programming than with writing codes. Computer software engineers are usually a part of the team that designs and develops advanced hardware, software, and systems. Thus, until a finished product is developed and released, workers from various branches including those of engineering, marketing, production and design collaborate with each other, of which software engineers are a basic part.
1. Computer applications software engineers – are engaged in analyzing user needs as well as designing, constructing, and maintaining computer applications software and specialized utility programs. Various programming languages are used by these engineers, which are chosen regarding the required purpose for which a computer program would be used. C and C++ are the programming languages that are most commonly while Java, with Fortran and COBOL are used less extensively. Either packaged systems and software systems or specific customized applications are designed and developed by software engineers.
2. Computer systems software engineers – are involved in coordinating the construction of the computer systems of an organization, maintaining them and planning their future growth.They work with a particular company and coordinate the needs and demands of the computer needs of every department by ordering, inventory, billing, and payroll recordkeeping. Sug-gestions are also made about a computer systems’ technical direction. A company’s intranet (the network which links computers inside a organization and ease communication among the various departments) is also constructed by these engineers. Systems software engineers work for companies that need configuration, implementation, and installation of complete computer systems. These engineers may also be part of the marketing or sales staff, and serve as the
The objectives of the B.Sc. in Software Engineering programme are: -
1. To produce graduates who are well-educated in the fundamental concepts of software engineer-ing and able to continue their professional development throughout their careers. The course
combines theory with consideration of its application in software engineering practice.
2. To build human resource capacity in the Software engineering discipline in both the public and
private sectors to students who wish to become proficient in developing software in a variety
of languages, platforms and applications using a methodical approach.
3. To produce graduates with good communication skills capable of functioning responsibly in
diverse environments and able to work in teams.
4. To produce graduates who are innovative and are capable of creating jobs;