I am looking for a good textbook to teach freshman (or some sophomores) introductory to software engineering. Specially, need that the textbook has example labs/projects for the whole semester included in instructor resources. There are many good software engineering books but they do not have labs/project examples. Since these students might not have adequate programming ability yet, I plan to focus on more abstract level assignments and do not expect them to code the projects. The main purpose is to teach them how a software product could be developed and designed.

So could anyone suggest a textbook of introductory software engineering that has abstract level level labs/projects ?
Labs/projects at abstract level using UML could be an option but hopefully, it cover only basic UML ideas/concepts since students might not have enough OOP concepts yet. If so, could anyone also suggest simple UML reference books ? Thanks

  • 1
    $\begingroup$ I don't have an answer, but I second the question! $\endgroup$
    – Ben I.
    Commented Oct 29, 2022 at 13:16
  • $\begingroup$ Look up Dijkstra's Cruelty of teaching CS (search for "engineering"). ⚠ not a hope giving article. But describes the problem accurately. $\endgroup$
    – Rushi
    Commented Oct 31, 2022 at 16:05
  • $\begingroup$ Regarding "simple UML references books" in the context of Software Engineering, how about books about business modeling with UML like Business Modeling with UML: Business Patterns at Work $\endgroup$
    – Rubén
    Commented Nov 7, 2022 at 16:05
  • $\begingroup$ Thanks! I will check it out. But I am wondering if there is any new reference book within 10 years. $\endgroup$
    – Nerdy Girl
    Commented Jan 27, 2023 at 6:03
  • 1
    $\begingroup$ Sorry, this whole question rubs me the wrong way. What's the point of designing without a spec? Should you perhaps start with motivating requirement elicitation followed by carving out a more rigorous specification from the gathered requirements before indulging in drawing diagrams? $\endgroup$
    – Kai
    Commented Feb 8, 2023 at 8:46

2 Answers 2


We have added a course at Colorado State University called "Software Construction". It is typically taken by second year students after two semesters of courses taught using Java (intro and data structures). It is a prequel to the "software Engineering" course. Both feature semester long projects of different complexities. The difference is that the first course, all assignments are individual. In the second course, all assignments are done by a group.

We have chosen to use two books "Clean Code" and "Clean Architecture", both by Robert C Martin, for these courses. We feel that they give a excellent overview of topics we wish to cover. Unfortunately, the books don't contain complete projects.

For a semester long project, we have adapted project ideas from other courses, simplifying structure, and providing some chunks of functionality. We assume a certain level of programming capability for students enrolled in the course.

You might also look at the book "Polymorphism: As It Is Played" by Joseph Bergin. It really details test driven development in the context of writing a calculator program. This would make a nice project having students complete the code, or implement a RPN calculator.

  • $\begingroup$ That's a fantastic set of books. $\endgroup$
    – Ben I.
    Commented Feb 21 at 19:05

The book to learn UML concepts sis by side with software engineering:

Ambler, S. W. (2005). The Elements of UML 2.0 Style. United Kingdom: Cambridge University Press.

  • $\begingroup$ Thanks! I will also check it out. Do you happen to know any new reference book within 10 years ? $\endgroup$
    – Nerdy Girl
    Commented Jan 27, 2023 at 6:05
  • 1
    $\begingroup$ @NerdyGirl, as a practising programmer, I would not recommend a textbook on UML, unless it's as a prelude to burning them on a bonfire. As Ambler says in the book introduction, "a lot of the communicative value in a UML diagram, is still due to the layout skill of the modeller". I would be even more emphatic, and say that all the communicative value of diagrams arise from their non-systematic aspects and the skill of the diagrammer, which is rather contrary to the basic tenet of UML. $\endgroup$
    – Steve
    Commented Jan 28, 2023 at 13:09
  • $\begingroup$ Regarding UML, you may refer to this discussion cseducators.stackexchange.com/questions/6862/… $\endgroup$ Commented Jun 28, 2023 at 5:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.