You are on page 1of 4

Ex 1 p 18

1) There are numerous design methods out there, each with its own approach and focus. Here
are a few:
User-Centered Design (UCD): This method involves understanding the needs and preferences of the
end-users throughout the design process, ensuring that the final product meets their expectations.
Iterative Design: This approach involves repeating cycles of prototyping, testing, and refining the
design based on user feedback. It's all about continuous improvement.
Agile Design: Often used in software development, Agile emphasizes collaboration, flexibility, and
customer feedback, allowing for adaptability and quick iterations.
Design Thinking: This human-centered approach encourages empathy, ideation, and
experimentation to solve complex problems. It often involves understanding users, defining
problems, brainstorming, and prototyping solutions.
Scrum: Commonly used in software development, Scrum is an agile framework that divides a
project into short development cycles called sprints, with frequent reassessment and adaptation.
Lean Design: Inspired by lean manufacturing principles, this method aims to eliminate waste and
focus on delivering value to the customer. It often involves rapid prototyping and iteration.
Storyboarding: Particularly common in film and animation, storyboarding helps visualize a
sequence of events or a user's interaction with a product before it's fully developed.
Prototyping: Creating a simplified version of a product to test and gather feedback before investing
more time and resources into full-scale development.
Responsive Design: Primarily applied in web design, this method ensures that a website or
application provides an optimal user experience across various devices and screen sizes.
Universal Design: This approach focuses on creating products and environments that are accessible
and usable by people of all abilities, without the need for adaptation or specialized design.
Remember, the choice of design method often depends on the nature of the project and the specific
goals you're aiming to achieve!

2) Managing problems in software design is a crucial skill for programmers. Here are some
strategies:
Identify and Understand the Problem:
Clearly define the problem at hand. Understand the root cause and its impact on the overall design.
Break Down the Problem:
Divide the problem into smaller, more manageable parts. This makes it easier to analyze and
address specific issues without feeling overwhelmed.
Prioritize Issues:
Not all problems are equal. Prioritize them based on their impact on the system and the user
experience. Address critical issues first.
Collaborate with Others;
Use Design Patterns;
Refactor Code;
Version Control;
Test Thoroughly;
Document Changes;
Continuous Learning;
Feedback Loop;
Adopt Agile Practices;

Ex 2 p 18
1) A
2) B
3) A
Ex 3 p 18
1) A
2) A
3) A
4) B
5) A
Ex 4 19
1) A) A top-down design begins with the main user functions.
B) A bottom-up design begins with the most primitive functions.
2)
A) A(n) idealistic person ignores possible problems that may arise.
B) If a software is primitive, it is very simple.
3)
A) A subfunction is combined with others to make a function.
B) A philosophy provides a means of viewing the world.

Ex 1 p 20
1) Software engineers often use various visualization techniques to understand and
communicate software structures. Here are a few common approaches:
UML Diagrams, Flowcharts, Hierarchy Charts, Dependency Graphs, Entity-Relationship Diagrams
(ERD), Architectural Diagrams, Code Visualization Tools, Mind Maps (Engineers might use mind
maps to brainstorm and organize their thoughts about the software structure. It's a more free-form
and creative way to explore and represent ideas.)
2) The Jackson System Development (JSD) is a structured systems development methodology
that was developed by Michael A. Jackson. It consists of several stages to guide the
development process. The typical stages of Jackson System Development include:
Problem Definition:
In this stage, the project team defines and understands the problem that the system is intended to
solve. This involves gathering requirements and identifying the goals and objectives of the system.
System Specification:
The system specification stage involves creating a detailed specification of the system based on the
defined problem. This includes defining data structures, processes, and the overall system
architecture.
System Design:
In the system design stage, the detailed specifications are transformed into a design for the system.
This includes designing the database, defining algorithms, and planning the overall system
architecture.
Implementation:
The implementation stage involves coding and building the system based on the design
specifications. This is where the actual development of software components takes place.
Testing:
Testing is a crucial stage to ensure that the system functions as intended. It involves various testing
activities, such as unit testing, integration testing, and system testing, to identify and fix any defects.
Documentation:
Throughout the development process, documentation is created to describe the system, its
components, and how it operates. This documentation serves as a reference for future maintenance
and enhancements.
Training and Evaluation:
Users and stakeholders are trained on how to use the system effectively. Additionally, the system is
evaluated to ensure that it meets the specified requirements and satisfies the needs of the users.
Maintenance:
After the system is deployed, ongoing maintenance is performed to address any issues, make
enhancements, and ensure that the system continues to meet the evolving needs of the users.
Ex 2 p 20
1) B
2) C
3) A
Ex 3 p 20
1) C
2) B
3) E
4) D
5) A
Ex 4 p 21
1) schematic diagram
2) JSD
3) Code Semantic Logic
4) Structured Chart
5) Data Flow designs
6) JSP
7) DFD
Ex 9 p 21
Begin with the modeling stage. This involves creating a conceptual model of the software system,
defining its structure and components.
Continue to the networking stage. In this stage, the conceptual model is transformed into a network
of communicating processes, defining how data flows between them.
Finally, execute the implementation stage. This is when the actual coding and development of the
software take place, turning the designed model into a functional and executable system.

You might also like