Passer au contenu principal

Software Engineering

Definition of 'Software Engineering'


Definition: Software engineering is a detailed study of engineering to the design, development and maintenance of software. Software engineering was introduced to address the issues of low-quality software projects. Problems arise when a software generally exceeds timelines, budgets, and reduced levels of quality. It ensures that the application is built consistently, correctly, on time and on budget and within requirements. The demand of software engineering also emerged to cater to the immense rate of change in user requirements and environment on which application is supposed to be working.

Description: A software product is judged by how easily it can be used by the end-user and the features it offers to the user. An application must score in the following areas:-

1) Operational: -This tells how good a software works on operations like budget , usability, efficiency, correctness ,functionality , dependability , security and safety.

2) Transitional: - Transitional is important when an application is shifted from one platform to another. So, portability, reusability and adaptability come in this area.

3) Maintenance: - This specifies how good a software works in the changing environment. Modularity, maintainability, flexibility and scalability come in maintenance part.

Software Development Lifecycle or SDLC is a series of stages in software engineering to develop proposed software application, such as:

1) Communication

2) Requirement Gathering

3) Feasibility Study

4) System Analysis

5) Software Design

6) Coding

7) Testing

8) Integration

9) Implementation

10) Operations and maintenance

11) Disposition

Software engineering generally begins with the first step as a user-request initiation for a specific task or an output. He submits his requirement to a service provider organization. The software development team segregates user requirement, system requirement and functional requirements. The requirement is collected by conducting interviews of a user, referring to a database, studying the existing system etc. After requirement gathering, the team analyses if the software can be made to fulfil all the requirements of the user. The developer then decides a roadmap of his plan. System analysis also includes an understanding of software product limitations. As per the requirement and analysis, a software design is made. The implementation of software design starts in terms of writing program code in a suitable programming language. Software testing is done while coding by the developers and thorough testing is conducted by testing experts at various levels of code such as module testing, program testing, product testing, in-house testing and testing the product at user’s engagement and feedback.


Software engineer jobs combine highly complex, technical work with computer science and mathematics

As a software engineer, you'll work in a constantly evolving environment, due to technological advances and the strategic direction of their organisation. You'll create, maintain, audit and improve systems to meet particular needs, often as advised by a systems analyst or architect, testing both hard and software systems to diagnose and resolve system faults.
The role also covers writing diagnostic programs and designing and writing code for operating systems and software to ensure efficiency. When required, you'll make recommendations for future developments.
Job titles and descriptions in IT are not standardised. Instead of a software engineer, you may be called a systems/software/database/web programmer, engineer or developer, depending on the system you're developing. Alternatively, the programming language you use may become part of your title, such as Java or C# developer. The work of a software engineer can also form part of a multimedia programmer role.
Depending on the organisation you work for, you may have a more defined role and work within a group of IT specialists which can include systems analysts, systems designers and systems testers. Nevertheless, as software engineers often manage the support systems required to effectively run an organisation, the role can also require you to communicate effectively and translate the needs of different teams into systems developments.

Responsibilities


Tasks vary according to the type of organisation and size of employer, but may typically involve:
  • analysing user requirements
  • writing and testing code, refining and rewriting it as necessary
  • researching, designing and writing new software programs
  • evaluating the software and systems that make computers and hardware work
  • developing existing programs by analysing and identifying areas for modification
  • integrating existing software products and getting incompatible platforms to work together
  • creating technical specifications
  • writing systems to control the scheduling of jobs or to control the access allowed to users or remote systems
  • writing operational documentation with technical authors
  • maintaining systems by monitoring and correcting software defects
  • working closely with other staff, such as project managers, graphic artists, UX designers, other developers, systems analysts and sales and marketing professionals
  • consulting clients and colleagues concerning the maintenance and performance of software systems with a view to writing or modifying current operating systems
  • investigating new technologies
  • continually updating technical knowledge and skills by attending in-house and external courses, reading manuals and accessing new applications.

Salary

  • Typical graduate software engineer salaries start from £18,000 a year.
  • The average annual salary for a software engineer is between £25,000 and £50,000.
  • At senior or management level, software engineers can earn £45,000 to £70,000 or more per annum. Bonus schemes may be available.
The exact salary you'll receive is dependent upon the company, location and nature of your employer's business. The highest salaries can be found in the finance, pensions and telecoms sectors in London and the South East.
Income figures are intended as a guide only.

Working hours

Working hours are typically 9am to 5pm. However, longer hours are often necessary towards the end of projects as deadlines approach, as well as during the testing stage so that systems can be tested when they're not being used. In some cases, software engineers may be required to be on call to deal with problems. This can involve evening and weekend work in a shift pattern. Allowances may be available in these cases.
Self-employment and freelance or contract work is possible as there is an increasing market for contract software engineers with specialist knowledge. Career breaks, on the other hand, may be difficult due to the need to keep technical knowledge up to date in a rapidly changing environment.

What to expect

  • The job involves spending many hours at the keyboard, so high levels of concentration are required. Regular breaks are essential to minimise potential adverse health effects such as eye strain or back problems.
  • The work is mainly office based or in computer laboratories, although full or part-time remote working is becoming increasingly common.
  • Projects may be undertaken alone or in small teams.
  • Women are currently underrepresented in this profession and gender imbalance across the IT industry as a whole is a recognised issue. Steps are being taken to redress the balance. Women who want to work in technology should visit Women in Technology for information and jobs.
  • Depending on the nature of the business, travel within a working day or absence from home at night may be required. This is more likely with consultancy work. More travel is involved in installation and implementation work.

Qualifications

Although this area of work is open to all graduates, applicants will be expected to have some technical ability. Having studied one of the following subjects may increase your chances of employment:
  • computer science
  • computer software/computer systems engineering
  • electronics
  • information systems
  • mathematics
  • physics.
Many of the larger graduate recruiters will only employ graduates with proven technical skills and a good degree (2:1 or above) in a computing-related discipline.
Smaller companies generally prefer degrees of a computing, scientific or numeric nature. In some cases, however, graduates with an unrelated degree may be considered as long as their technical knowledge and enthusiasm can be demonstrated.
Graduates in non-computer-related subjects may consider taking a postgraduate IT conversion or technical postgraduate course. Many employers will also look for evidence of continuing professional development (CPD) outside of the classroom. Project programming experience can be used as evidence during the application process to show that a candidate is technically adept and also has effective problem-solving skills.
An HND in a computer-related subject may improve chances of entry and candidates with substantial systems development experience may be considered.
Entry without a degree or HND is unlikely, although it may be possible after gaining considerable experience in systems development as an assistant.

Skills

You'll need to show evidence of the following:
  • knowledge of computer systems and technologies
  • technical competency
  • the ability to communicate with clients, colleagues and management to explain complex issues clearly and concisely
  • a meticulous and organised approach to work
  • a logical, analytical and creative approach to problems
  • thoroughness and attention to detail
  • business skills and commercial awareness
  • the ability to work both in a team and alone and to manage your own workload
  • career motivation and a willingness to continue to further your knowledge and skills
  • an ability to learn new skills and technologies quickly
  • an awareness of current issues affecting the industry and its technologies.
Recruiters may measure aptitude for the role via psychometric testing and programming tasks at interviews. Get some pointers on how to prepare for interviews.
Entry is fairly competitive so make sure your CV and cover letter stand out for all the right reasons. Project management and commercial acumen can strengthen an application.

Work experience


Relevant work experience is a good way of demonstrating a genuine interest in computing and is regarded favourably by employers. Gain experience through course-related placements, opportunities to work shadow or a year in industry.

Commentaires