Lectures for Introduction to Software Engineering
What is Software Engineering?
The engineering field has taken on many new disciplines as our scientific knowledge has grown. The latest discipline is software engineering. According to the Institute of Electrical and Electronics Engineers (IEEE), software engineering means applying the principles of engineering to the software development field. Software engineering differs from other branches of engineering in that professionals are building an intangible structure and not a tangible one. Since software is embedded in the machines used in various industries, though, malfunctioning software can actually have tangible effects. With software used in everything from medical equipment to airplanes, the end result of faulty software can indeed be loss of life.
Software Engineering is applying the principals of engineering to software development. ~ Institute of Electrical and Electronics Engineers (IEEE)
Even non-embedded software impacts many areas of our lives. We routinely trust software with our financial information and passwords. We use it to run our businesses and conduct our work activities. Yet it’s far from foolproof. There may be hackers or system overloads. Then there are the times that the software works from a technical standpoint, but fail to give a good user experience. Too often, routine software is designed from a “code and fix” model when sounder principles at the front end would alleviate problems. Here, too, it’s important to have a thorough grasp of the purpose of the structure and of the many things that structure may be called upon to withstand.
Software engineering often does involve writing code, but this is only one stage in the process. True software engineering has a well-articulated life cycle.
The Software Engineering Process
When software projects require engineering, the process begins long before the product is designed – and it continues long afterward. It begins with a thorough study of the software requirements. Some requirements involve the functions the program needs to carry out. The program may, for example, need to verify that a user is authorized to access it. Other requirements involve constraints, for example, systems already in place.
The next stage is software design. This involves creating algorithms, or instructions for the computer. The actual coding process may be completed by software engineers, who have comprehensive training, or by programmers who are versed only in coding. Later comes validation and maintenance. Stages don’t necessarily proceed in a linear manner; they may be organized in a variety of ways, including spiraling.
What Types of Software Require Engineering?
A systematic and disciplined approach isn’t necessary for every endeavor. You don’t need engineering training to design a simple game or a program that teaches your child to read. You do need it, though, to create high stakes software for the defense department.
Businesses also employ software engineers to create customized software and address vulnerabilities before they happen. This makes sense when we think of the complexity of the tasks that the average professional carries out, tasks like holding meetings in real time with collaborators oceans away. Even when engineering principles aren’t necessary for safety, sound design can increase efficiency and decrease costs.
You’ll find a diverse group of employers advertising for true software engineers. Disney Interactive Media is among the companies seeking software developers who are familiar with the software development life cycle.
.................................................................................................................................................
Lectures (Download Here)
* Lecture-1 (Download Here)
* Lecture-4 (Coming Soon)
Blogger Comment
Facebook Comment