10.1 : software Engineering Case Study




 Source: N.L. Sarda, Umesh Bellur, R.K. Joshi, and Shashi Kelkar,

https://www.youtube.com/watch?v=KhTvqCqln5M&feature=emb_logo

Activity Overview:

In this task, you're asked to analyze a case study (from a previous lesson) and walk through the process of developing a software solution. You’ll apply what you’ve learned about requirements, design, analysis, and testing. Each step should be documented, and if you need to make assumptions to complete a part, be sure to note them.

Step-by-Step Instructions (Simplified):

  1. Identify the Process to Automate or Improve

    • Look at the system in the case study. What manual or inefficient processes could be improved or automated using software?

  2. Define the System Output

    • What kind of information or results does the system need to produce for users?

  3. Determine What the System Must Track or Calculate

    • What data needs to be remembered or computed by the system as it runs?

  4. Identify the Stakeholders and Their Needs

    • Who are the key people involved (like users, managers, or developers)? What information or reports does each of them need from the system?

  5. Create Your Project Plan

    • Plan how you’ll complete each part of this activity.

    • Document any extra information or assumptions you need to make the plan work.

Project Development Tasks:

  1. Make a Project Timeline

    • Outline when key parts of the project will be completed (like analysis, design, testing, etc.).

  2. Perform Requirements Analysis

    • Elicitation: Gather what the users want.

    • Analysis: Understand and organize those needs.

    • Specification: Clearly document the requirements.

    • Verification: Make sure the requirements are correct and complete.

    • Management: Keep track of changes and versions of requirements.

  3. Do Object-Oriented Analysis

    • Look at the system in terms of "objects" (like users, orders, or reports) and figure out how they interact.

  4. Write a Summary

    • Summarize the main objects and the processes in your system.

    • Explain what each object does.

  5. List Attributes for Each Object and Process

  • For example, a "User" object might have attributes like name, ID, and login status.

  1. Create a Class Analysis and State-Transition Diagram

  • Design a simple diagram showing how objects (classes) behave and change state (e.g., from “inactive” to “active”).

Design and Testing:

  1. Complete Your Software Design

  • Decide how the system will be structured overall (architecture).

  • Break it into modules (modular decomposition).

  • Define how data and control flow through the system.

  1. Develop UML Diagrams

  • Create:

    • Sequence diagrams (showing step-by-step interactions),

    • Collaboration diagrams (how objects work together), and

    • Class diagrams (object types and their relationships).

  • Use any tools you're comfortable with. Fancy software is optional.

  1. Create a Test Plan

  • Cover unit testing (small pieces), integration testing (how pieces work together), and system testing (whole system).

  • Use different testing approaches:

    • Black-box: Focus on inputs/outputs, not internal code.

    • White-box: Focus on internal logic and paths.

    • Top-down: Start testing from the main functions first.

    • Bottom-up: Start testing from the smallest components first.

  • Include both valid and invalid input scenarios.

  1. Evaluate System Quality

  • Assess the system in terms of:

    • Functionality

    • Reliability

    • Usability

    • Efficiency

    • Maintainability

    • Portability

Final Review:

  1. Put Yourself in the Role of Operations Manager

  • Review everything you've done.

  • Ask: “If I were managing this project, how could each part be improved?”


Comments