Analysis and Design
A lot compressed into this one course, but there is some that overlaps with other subjects.
It will help you better your career.
We're talking about being methodical. Distinction between computer programming and software Engineering. It's not hard to write easy programs.
Analysis. It's hard to do this part well. This course is about coming up with the specifications. This is hard.
There is a lot of ancient software out there that needs to be maintained.
Design. OO using UML. Interaction diagrams etc.
There is a temptation to think about soft eng as about how to specify a diagram. But doing this is generally the easy bit. Knowing what is in the diagrams is the hard bit, and isn't told well in the soft eng books.
Affordances, awareness of mental models, visibility, mapping and feedback.
This course has everything junked into it!
How do I pass?
Exam %40
Assignments 60% (Group 45%, indi 15%)
There is a 50% hurdle for both.
Often there aren't clearly right and wrong answers to your analysis. People don't necesarily agree on what is a good analysis or design.
There are two practice classes each week (on Friday).
These are important to learn why there are more important answers to an analysis.
You will find that people write thick books, probably because other people have, and that then they can justify selling them for around $100. Really you don't need these, and the thickness of the book isn't a good indication of how good the book is.
Work collaboratively, don't copy.
Group work is going to be interesting because you have to interact with human beings and not computers. And human beings are more complex than computers. So you will probably run into problems.
You can look at the material from 2005, it is still all relevant.
So what is software Engineering?
Designing, bulding and maintaing large software systems in a cost-effective way.
Every man and his dog has his own definition though.
Engineering is about solving problems. If you can solve problems, you are employable. Many engineers don't work in software, but in management. Because they are good with solving problems.
So soft eng is about solving problems about software.
There are problems that we need software engineers for. This is good for us!
You don't need to be a soft engineer to be sucessful. (Microsoft, ID Doom, etc etc). But they are not repeatable. It's because these people got lucky. But with engineering, we want to get things right, but not because it's an accident. So we can increace our chances.
If you practice your programming, you will get better at it.
This coure gives you a chance to become a better programmer. To think about how to become a better programmer. You might not be a good programmer, but a better programmer than before.
Projects often fail because they are so much bigger than they were before. Or because they made something that the user didn't want. Or something else comes in that makes the project obsolete.
There are classic disasters. The problem is that there were needed large numbers of people to write these softwares.
Sometimes there are problems with real time systems. A 10 year old with VB isn't necessearily going to get that right.
Mission critical software: pacemakers.
These are fairly large software systems.
Large systems take years to develop.
Product and Process
Both key aspects of SE.
We move from emphasis on product to process, and back and forth.
A software product is not the same as a hardware product. mIt is developed, not manufactured.
In the real world, your software exists for a long time, and as the world changes, you're going to have to keep fixing it.
0 Responses to “Lecture 1: Inroduction to Software Engineering”
Leave a Reply