Lecturer 1 - Introduction To Software Engineering
Lecturer 1 - Introduction To Software Engineering
After finishing the course, you will achieve the following goals:
CLO3: To use the techniques, skills, processes and modern engineering tools
necessary for software engineering practice.
Generic products
Stand-alone systems that are marketed and sold to any customer
who wishes to buy them.
Examples – PC software such as editing, graphics programs, project
management tools; CAD software; software for specific markets
such as appointments systems for dentists.
Customized products
Software that is commissioned by a specific customer to meet their
own needs.
Examples – embedded control systems, air traffic control software,
traffic monitoring systems.
Engineering is ...
The application of scientific principles and methods to the
construction of useful structures and machines
Examples:
Mechanical Engineering
Civil Engineering
Electrical Engineering
Chemical Engineering
Software Engineering is one of our most complex things that humans have
ever done
Suppose some civil engineers think about building a Dam.
It's an incredible thing. It's an incredible amount of work.
But if they got halfway through building it, and they saw a huge
crack in the concrete, they'd be able to identify and fix that.
people would know it's not working.
The thing about software is that, it's intangible. We can't see it, we can't see
when we've made mistakes;
And that is why it's so important to learn about the software engineering
and follow it. It gives you the roadmap to success
Then, builder is going to go back, and going to create a floor plan. And
then, he's going to show it to you the floor plan, and you might make so
me adjustment.
And, as they are building the home, they're going to call the inspection
people to come, and inspect the house. For example, let's say the foundation
is done, they're going to get the foundation approved. When the plumbing is
done, they can get the plumbing approved. And so on.
Then comes the architects and the software developers. They're going to
design the system, they're going to architect the system, and say, what are
the different components that they need to build? And how they're going
to work together?
Once the design is done, they're going to start coding, and start doing
unit testing. So, each of the sub-teams are going to start building their
components and test it
Once all the components are ready, they're going to bring all of these
components together, and do integration testing or card verification. And,
they will do functional testing.
And when the software is ready from the developer point of view, then
they're going to invite the user, and they will do a testing called, UAT, User
Acceptance Testing, in which a user says, "Yup, this is what I was looking
for." or "No, this is not what I was looking for."