Chapter 9_ Architecting and Designing Software.docx - The...

This preview shows page 1 - 4 out of 18 pages.

The Process of Design Definition A problem solving process whose objective is to find and describe a way: - To implement system’s functional requirements while respecting the constraints imposed by the nonfunctional requirements and while adhering to general principles of good quality Design as a series of decisions A designer is faced with a series of design issues - There are sub problems of the overall design problem - Each issue normally has several design options (alternative solutions) - Designer makes a design decision to resolve each issue (chooses the best option among the alternatives) Making Decisions To make each design decision, the software engineer uses the knowledge of - Requirements - Design created so far - Tech available - Software design principles - What has worked well in the past Design Space The space of possible designs that could be archived by choosing different sets of alternatives is often called the design space Component Any piece of software or hardware that has a role - Component can be isolated, allows you to replace it with a different component that has equivalent functionality - Many components are designed to be reusable - Conversely, others perform special-purpose functions Module A component that is defined at the programming language level System Logical entity having a set of definable responsibilities or objectives and consisting of hardware, software or both - System can have specification which is then implemented by a collection of components - System continues to exist, even if components are changed or replaced
Image of page 1

Subscribe to view the full document.

- Goal of requirements analysis is to determine responsibilities of system Subsystem: System that is part of a larger system which has a definite interface Top-Down and Bottom-Up Design Top Down Design - First design the very high level structure of system - Then work down to detailed decisions about low level constructs - Finally arrive at detailed decisions such as - Format of particular data items - Individuals algorithms that will be used Bottom Up Design - Make decisions about reusable low level utilities - Then decide how these things will be put together to create high-level constructs Mixture of the two approaches are normally used - Top down is almost always needed to give system good structure - Bottom up is useful so that reusable components can be created Different Aspects of Design Software architecture - Division into subsystems and components - How these will be connected - How they will interact - Their interfaces - Class design - Various features of classes - User interface design - Algorithm design - Design of computational mechanisms - Protocol Design - Design of communications protocol Principles Leading to Good Design Overall goals of good design Increase profits Ensure that we actually conform with requirements Accelerate development Increase qualities
Image of page 2
Design Principle 1: Divide and Conquer Divide the work among the team and have each team member specialize and perform the task Ways of Dividing a Software System -
Image of page 3

Subscribe to view the full document.

Image of page 4
  • Fall '19

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

Ask Expert Tutors You can ask 0 bonus questions You can ask 0 questions (0 expire soon) You can ask 0 questions (will expire )
Answers in as fast as 15 minutes