chapter1_M_2 - CHAPTER 1 Introduction to Software Design...

Info icon This preview shows pages 1–14. Sign up to view the full content.

View Full Document Right Arrow Icon
CHAPTER 1 Introduction to Software Design
Image of page 1

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

View Full Document Right Arrow Icon
Chapter Objectives To become familiar with the software challenge and the software life cycle To understand what activities take place in each phase of the software life cycle To learn how to use top-down design and object-oriented design To learn to use data abstraction, procedural abstraction, and information hiding to manage complexity To learn how to design our own classes To learn how to draw class diagrams, which document the interaction between classes
Image of page 2
Chapter Objectives (cont.) To learn the role of abstract data types in building models of computer systems and how to implement them using classes and interfaces To become familiar with use cases as a tool to document a system's interaction with the user To understand the software design process by following the design and implementation of an array-based telephone directory To become familiar with sequence diagrams as a tool for documenting the interaction between multiple classes used in a program
Image of page 3

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

View Full Document Right Arrow Icon
Section 1.1 The Software Life Cycle
Image of page 4
The Software Life Cycle The purpose of a programming assignment in a college course typically is to provide experience with a particular programming concept In contrast, an industrial software product is likely to be used over an extended period by individuals other than the creator(s) of the product It is created in response to an existing or anticipated need
Image of page 5

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

View Full Document Right Arrow Icon
The Software Life Cycle (cont.) A software product goes through several stages This sequence of stages is called the software life cycle
Image of page 6
Software Life Cycle Models The waterfall model is one of the simplest software life cycle models In the waterfall model, activities are performed in sequence and the result of one flows into the next
Image of page 7

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

View Full Document Right Arrow Icon
Software Life Cycle Models (cont.)
Image of page 8
Software Life Cycle Models (cont.) While simple in concept, the waterfall method proves to be unworkable in practice The model requires each stage to be completed before the next stage is started Rarely, in actual practice, does this occur Misunderstandings of user specifications, incomplete design specifications, and/or incomplete implementations require reworking stages
Image of page 9

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

View Full Document Right Arrow Icon
Software Life Cycle Models (cont.) The unified model attempts to resolve problems of the waterfall model The unified model divides the problem into cycles (called phases or iterations) similar to mini-versions of the waterfall model At the end of each cycle there is a review with the users to obtain feedback which is taken into account in the next cycle
Image of page 10
Software Life Cycle Models (cont.)
Image of page 11

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

View Full Document Right Arrow Icon
Software Life Cycle Activities We will consider activities 1 through 5 in this chapter
Image of page 12
Requirements Specifications To clarify exactly what the users of the software want, it is imperative that a complete, written description of the requirements—a requirements specification —be generated at the beginning of the project A requirements specification requires extensive interaction between the user(s) and the system analyst(s)
Image of page 13

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

View Full Document Right Arrow Icon
Image of page 14
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern