Chpt 7
32 Questions
1 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

What is the main goal of the system design phase?

  • To document user requirements
  • To verify the analysis models only
  • To capture business needs
  • To decide how the system will be built (correct)
  • What is the first step in the system design process?

  • Planning the design
  • Evolving analysis models into design
  • Verifying and validating the analysis model (correct)
  • Construction of the system
  • What does ‘factoring’ involve during the system design process?

  • Creating multiple classes for each module
  • Separating a module into a stand-alone module (correct)
  • Documenting use cases in detail
  • Testing the system design for errors
  • What is the focus when evolving analysis models into design models?

    <p>Performance and security requirements</p> Signup and view all the answers

    Which of the following is NOT a component involved in verifying and validating the analysis model?

    <p>Database schemas</p> Signup and view all the answers

    What role do ‘partitions’ play in system design?

    <p>Grouping similar elements based on interaction patterns</p> Signup and view all the answers

    Which model represents the process of creating a general class from multiple overlapping classes?

    <p>Factoring</p> Signup and view all the answers

    What does the system design phase transition from in the Unified Process perspective?

    <p>Analysis workflow to design workflow</p> Signup and view all the answers

    What is a partition in object-oriented design?

    <p>An equivalent of a subsystem that decomposes a larger system</p> Signup and view all the answers

    Which layer in software architecture is responsible for interfacing with users?

    <p>Human-Computer Interaction</p> Signup and view all the answers

    What is the primary goal of low coupling in a system?

    <p>To allow independent modification of system parts</p> Signup and view all the answers

    Which type of coupling occurs when one object sends a message to another?

    <p>Interaction Coupling</p> Signup and view all the answers

    Which practice is NOT recommended for reducing interaction coupling?

    <p>Inheriting from a parent class without a clear relationship</p> Signup and view all the answers

    What does high cohesion in a module indicate?

    <p>A module serves a well-defined purpose</p> Signup and view all the answers

    Which of the following could lead to fragile systems?

    <p>Overuse of inheritance in class design</p> Signup and view all the answers

    Which layer is an example of the physical architecture in software design?

    <p>Server</p> Signup and view all the answers

    What is a significant disadvantage of custom development?

    <p>Is more costly than packaged software</p> Signup and view all the answers

    Why might packaged development be a suitable choice for common business needs?

    <p>It is usually cheaper and faster to implement.</p> Signup and view all the answers

    What problem can arise from outsourcing the development of a system?

    <p>Potential security risks and dependency</p> Signup and view all the answers

    For a time-sensitive project, which design strategy is most advisable?

    <p>Packaged software or outsourcing for speed</p> Signup and view all the answers

    Which factor should be prioritized if a company has a unique system requirement?

    <p>Opting for custom development</p> Signup and view all the answers

    What does the term 'connascence' refer to in system design?

    <p>Dependency between modules</p> Signup and view all the answers

    What is the primary concern of an IT manager when implementing a new system?

    <p>Ensuring technical feasibility and maintenance</p> Signup and view all the answers

    What is a potential drawback of packaged software for a specific organization?

    <p>Fit with business requirements may vary</p> Signup and view all the answers

    What does high cohesion indicate about a class or method?

    <p>It is focused on a single, well-defined purpose.</p> Signup and view all the answers

    Which of the following is an example of low cohesion?

    <p>A method that calculates a total and then prints a report.</p> Signup and view all the answers

    What is a best practice for maintaining class cohesion?

    <p>Ensure methods focus on a single, well-defined purpose.</p> Signup and view all the answers

    What is the primary aim of minimizing connascence across different modules?

    <p>To reduce the interdependencies between modules.</p> Signup and view all the answers

    What does connascence refer to in software design?

    <p>The need for different modules to change together.</p> Signup and view all the answers

    What best describes the concept of generalization/specialization cohesion?

    <p>A subclass should inherit based on an 'is-a' relationship.</p> Signup and view all the answers

    What is a recommended practice to encapsulate logic and data tightly?

    <p>Limit methods that share behavior to tightly related methods.</p> Signup and view all the answers

    Which of the following is a consequence of low cohesion in a module?

    <p>Increased complexity and difficulty in management.</p> Signup and view all the answers

    Study Notes

    Chapter 7: Moving on to Design

    • The System Design phase follows system analysis.
    • System design involves translating identified requirements into a blueprint for building the system.
    • The goal is to determine the system's structure considering business needs and technical/environmental factors.

    Steps in System Design

    • Verify and Validate Analysis Model: Check if analysis models (use cases, diagrams, etc.) accurately represent the business requirements. This ensures consistency and reduces future development errors. Related diagrams should align to the same functional requirements.
    • Evolving Analysis Models into Design: Analysis models evolve into design models. The focus transitions from capturing business needs to designing how the system operates within its environment (e.g., performance, security). This phase refines classes, attributes, methods, and their interactions. It moves from the analysis workflow towards the elaboration and construction phases.

    Evolving Analysis Models into Design Strategies

    • Factoring: Separating a module into a separate module (new class or method). Useful when multiple classes share similar attributes or methods. For instance, creating an "Employee" class from overlapping parts of "Nurse," "Doctor," and "Receptionist" classes.
    • Partitions and Collaboration: Grouping similar elements in a system based on interactions (object-oriented equivalent of subsystems). A system can be decomposed into component systems (e.g., accounting, accounts payable, payroll). Example: Hospital management systems split into payroll, appointment scheduling, and patient records. This is driven by activity patterns among objects.
    • Layers: Layers represent elements of the evolving software architecture (e.g., problem domain, data management, human-computer interaction, physical architecture). For instance, a system might have layers including DataInputStream, Date, Enumeration, Employee, Customer, Button, Panel, and Server. The primary focus of the design phase shifts from the problem domain to the system's environment including user interface and physical architecture.

    Design Quality

    • Coupling: The level of interdependence between modules (classes, objects, or methods). Tight coupling means changes in one module often necessitate changes in others. Loose coupling is preferred for adaptability and maintainability. Best practices include focusing on sending messages to closely related objects. Reducing the number of classes an object interacts with directly also minimizes interaction coupling. Inheritance coupling needs to be used carefully, as overuse leads to tightly coupled hierarchies.
    • Cohesion: How closely related the responsibilities of a module are. High cohesion occurs when a module has a single, well-defined purpose. Conversely, low cohesion happens when unrelated tasks are combined. Best practices include grouping attributes and methods that directly relate to the module's purpose, ensuring methods have single purposes.
    • Connascence: The degree to which different system parts must change together. Best practices include minimizing dependencies between modules and maximizing connascence within a module for control and limited scope. Encapsulating logic and data can prevent cascading changes across the system.

    Design Strategies

    • Custom Development: Building the system from scratch to fit specific business needs. Provides complete control and flexibility but is time-consuming and costly.
    • Packaged Development: Using pre-built software and customizing for the organization. Faster implementation and cheaper than custom, but flexibility is limited.
    • Outsourcing: Hiring external vendors to build or manage the system. Reduces internal workload, leverages expertise, but may have security risks and limited control.

    Choosing the Right Strategy

    • Consider the unique aspects of the business needs and required skills. Consider in-house expertise, required time frame. If there are common needs, then packaged software may be more efficient.

    Roles in the Development Process

    • IT manager is concerned with technical feasibility, integration, and maintenance.
    • Software developer is focused on innovation and technical aspects.
    • Project manager focuses on deadlines, resource management.
    • Customer service representative focuses on creating user-friendly systems for customer service efficiency.
    • Business owner (CEO) is concerned with overall business growth, cost-effectiveness, and quick implementation.

    Class Exercises

    • Students are asked to compare and contrast different class diagram visualizations, considering issues of cohesion, coupling, and connascence.
    • The scenarios presented involve a retail company seeking a CRM system implementation, including a deadline pressure and resource limitations.
    • Different roles within the organization (IT Manager, Developers, Project Manager) have specific issues and priorities, including budget, technical expertise and deadlines.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    More Like This

    Chpt 7 EMR Patient Assessment: Breathing Quiz
    29 questions
    Chpt 8 Pediatric CP R and Chain of Survival Quiz
    30 questions
    Naloxone Chpt 22 10/7
    40 questions

    Naloxone Chpt 22 10/7

    DecisivePiccoloTrumpet avatar
    DecisivePiccoloTrumpet
    Use Quizgecko on...
    Browser
    Browser