Ch1 - Chapter1 CHAPTERGOALS To be able to describe the...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
Chapter 1 Software Engineering Principles C H A P T E R   G O A L S To be able to describe the general activities in the software life cycle To be able to describe the goals for "quality" software To be able to explain the following terms: software requirements, software specifications, algorithm, information hiding, abstraction To be able to understand the fundamental ideas of top-down design and object-oriented design To be able to identify several sources of program errors To be able to describe strategies to prevent various categories of software errors To be able to specify the preconditions and postconditions of a program segment or function To be able to show how deskchecking, code walk-throughs, and design and code inspections can improve software quality and reduce software effort To be able to state several testing goals and to indicate when each would be appropriate To be able to describe several integration-testing strategies and to indicate when each would be appropriate To be able to explain how program verification techniques can be applied throughout the software development process 1
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
2   Chapter  1   Software Engineering Principles Chapter  Outline Beyond Programming In their first programming course, most students see a very narrow section of the software process. They are given the detailed specifications of a small programming problem to be designed, coded, and tested. In this course, the programming assignments are generally larger and more complex, so the use of a software development methodology is stressed. The term "programming" often conjures the image of someone writing a C++ program—emphasizing the coding aspect. We suggest that the term "software engineering" reflects a disciplined approach to the broader software development process, using hardware, software, and "ideaware” tools. The primary goal, of course, is to produce good programs. What are "Good" Programs? "Good" is a very vague term in itself. It may be difficult for students to conceptualize the importance of software quality in real-world applications. Workout One way to introduce this subject is to suggest several applications, and to ask the students to identify some ways that the software could be "bad." Start with software that the students have first-hand experience using, such as a text editor or C++ compiler; then suggest other types of software applications: an adventure game, a greeting card maker, a hospital patient database system, the software that controls the launch of a manned spacecraft. For each software application, ask the students, "What would make this software bad?" The students very likely focus on incorrectness in their responses. Programs that do not work correctly or that crash easily are obviously bad. You can relate such answers to Goal 1 in the text: Quality software works. Students always want to know, at the beginning of the semester, what they have to do to get a good grade in the course. This is a good opportunity to relate the
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 06/13/2011 for the course CSC 280 taught by Professor Lebre during the Spring '04 term at Moraine Valley Community College.

Page1 / 12

Ch1 - Chapter1 CHAPTERGOALS To be able to describe the...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online