Software Design

From Computer Science Wiki
Revision as of 11:57, 3 January 2023 by Bmackenty (talk | contribs) (Created page with "'''Students must be able to discuss the iterative nature of the design and development stages of SDLC, and the extent to which key stakeholders are involved in the process.'''...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Students must be able to discuss the iterative nature of the design and development stages of SDLC, and the extent to which key stakeholders are involved in the process.

The software development life cycle (SDLC) is a process that is used to develop software systems. It is an iterative process, which means that it consists of a series of repeated cycles or steps that are followed in a specific order to create a working software system.

The design and development stages of the SDLC are typically iterative in nature because they involve a series of activities that are repeated until the desired result is achieved. During these stages, the software is designed, implemented, and tested, and any issues or problems that are identified are addressed and resolved.

Key stakeholders are involved in the process throughout the SDLC, as they have a vested interest in the outcome of the project and can provide valuable input and guidance. Some of the key stakeholders that may be involved in the design and development stages of the SDLC include the software developers, project managers, customers, and end users.

During the design stage, stakeholders may be involved in defining the requirements for the software, determining the overall architecture and design of the system, and identifying any potential risks or issues that may need to be addressed. In the development stage, stakeholders may be involved in reviewing and approving the design, providing feedback on the implementation, and testing the software to ensure that it meets the required specifications.

Overall, the extent to which key stakeholders are involved in the design and development stages of the SDLC will depend on the specific needs and requirements of the project, as well as the roles and responsibilities of the stakeholders.

Students must be able to apply computational thinking concepts to design and develop a model of a system, including abstraction, decomposition, algorithm design, and pattern recognition.

Computational thinking is a way of thinking about and solving problems that involves breaking complex problems down into smaller, more manageable pieces and using logical reasoning to develop solutions. It involves several key concepts that can be applied when designing and developing a model of a system, including:

Abstraction: This involves identifying the key features and characteristics of a problem or system and focusing on those aspects while ignoring unnecessary details.

Decomposition: This involves breaking a complex problem or system down into smaller, more manageable pieces that can be more easily understood and solved.

Algorithm design: This involves developing a step-by-step plan or set of instructions for solving a problem or achieving a specific goal.

Pattern recognition: This involves identifying patterns or trends in data or information that can be used to make predictions or inform decision-making.

To apply these concepts when designing and developing a model of a system, it is important to first identify the problem or goal that the model is intended to solve. This may involve using abstraction to identify the key features and characteristics of the problem or system. Once the problem or goal is clearly defined, it can be broken down into smaller, more manageable pieces using decomposition. This can help to simplify the problem and make it easier to develop a solution.

Next, an algorithm can be designed to provide a step-by-step plan for solving the problem or achieving the goal. This may involve identifying patterns or trends in the data or information that can be used to inform the algorithm. Finally, the model can be tested and refined as needed to ensure that it is effective at solving the problem or achieving the desired result.


Students must be able to discuss the advantages of using diagrams rather than a text-based description of a system.

There are several advantages to using diagrams rather than a text-based description when representing a system:

Visual representation: Diagrams provide a visual representation of a system, which can make it easier for people to understand and interpret the information. This is particularly helpful when the system is complex or has many interconnected parts.

Increased clarity: Diagrams can clearly show the relationships and connections between different parts of a system, which can help to make the information more organized and easier to understand.

Improved communication: Diagrams can be an effective tool for communicating information about a system to others, as they can provide a clear and concise overview of the system's structure and function.

Enhanced problem-solving: Diagrams can be useful for identifying and solving problems within a system, as they provide a visual representation of the system that can help to highlight any issues or weaknesses.

Overall, using diagrams to represent a system can be a more effective way of communicating and understanding complex information than using a text-based description alone.


Students must be able to interpret system overview diagrams that provide a technical blueprint of how a system works, including UML, UI System flow, Component design, ERD diagrams, and System mapping.


There are several types of system overview diagrams that can provide a technical blueprint of how a system works:

UML (Unified Modeling Language) diagrams: These are a type of diagram that is used to represent the structure and behavior of a system. They can include a variety of different diagram types, such as class diagrams, activity diagrams, and sequence diagrams, which can be used to represent different aspects of the system.

UI (User Interface) System flow diagrams: These diagrams provide a visual representation of the flow of information and interactions between the user and the system. They can be used to design and document the user interface of a system.

Component design diagrams: These diagrams show the relationships and interactions between the different components or modules of a system. They can be used to design and document the architecture of a system.

ERD (Entity Relationship Diagram) diagrams: These diagrams show the relationships between different entities in a database or system. They can be used to design and document the database structure of a system.

System mapping diagrams: These diagrams provide an overview of the overall structure and organization of a system. They can be used to document the various components and their relationships to each other.

To interpret these diagrams, it is important to understand the purpose and meaning of each type of diagram, as well as the conventions and symbols that are used to represent different aspects of the system. By examining the diagram and understanding the relationships and interactions between the different elements, it is possible to gain a better understanding of how the system works.


Students must be able to describe the following diagrams and their use: UML, UI system flow, Component design; ERD; System mapping; Data Flow (DFD); User Interface.