0% found this document useful (0 votes)
7 views

CSC1301 Homework 2.PDF

Uploaded by

xy4bmkcn8f
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

CSC1301 Homework 2.PDF

Uploaded by

xy4bmkcn8f
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

University of Tabuk

Faculty of Computers & Information Technology


Department (s): Computer Science & Information Technology

Homework 2 – Semester I (1446H)

Subject: CSC1301-Software Engineering Homework-2(10%)


Due Date:23-11-2024
Instructor Name (s): Dr. Narmatha C Sections: 116/135

Student Name

Raniya saeed alghamdi


Student ID

441000839
Serial Number

Note:

The name of the assessment method is Homework 2 (from Ch5 Ch6 Ch7 and Ch8) and 10 marks are allotted
for it.
The due date for submission is on or before 23-11-2024at 11.59 pm.
Late submissions will not be accepted, and marks will be reduced.
You may feel free to contact Dr. Narmatha via [email protected] for further information.
Students carry out the assignment individually (but include group member names) and submit via Blackboard.

Note: Document should be submitted only in either MS Word or PDF format.

Students must not share any part of their work with each other.

Chapter 5: System Modeling

1. What perspectives may be used for system modeling?

• External (context), interaction, structural, and behavioral perspectives.


2. What UML diagram types may be used to represent the essential features of a system?

• Use case diagrams, class diagrams, sequence diagrams, activity diagrams, and state diagrams.

3. What is described in a context model?

• A context model shows the boundaries of the system, illustrating how it interacts with external entities.

4. How are activity diagrams used in describing the context of use of a system?

• Activity diagrams describe the flow of activities within the system and interactions with users or other systems.

5. What are the principal components of a textual use-case description?

• Actors, preconditions, postconditions, main flow, alternative flows, and exceptions.

6. What is illustrated in a UML sequence diagram?

• A sequence diagram illustrates the interactions between objects or components in a specific sequence to perform a function.

7. How is generalization used to simplify the models of a system with many similar objects?

• Generalization allows for grouping similar objects into a common superclass, simplifying the model by reducing redundancy.

8. What is the basic assumption that underlies event-driven modeling?

• Event-driven modeling assumes that systems respond to external or internal events, triggering specific actions or changes in state.

9. What are the claimed benefits of model-driven engineering?

• Improved consistency, easier maintenance, automatic code generation, and higher-level design focus.

10. What are the three types of abstract system models recommended by the MDA method?

• Computation-independent model (CIM), platform-independent model (PIM), and platform-specific model (PSM).

Chapter 6: Architectural Design

1. What are the advantages of explicitly designing and documenting software architecture?

• Provides a clear structure, facilitates understanding, aids in managing complexity, and supports system evolution.

2. What are the two ways in which an architectural model of a system may be used?

• As a blueprint for development and as a way to communicate structure to stakeholders.

3. List 4 fundamental questions that should be addressed in architectural design.

• What are the main components? How do components interact? What are the major system constraints? What are the system’s
quality attributes?

4. What are the fundamental architectural views proposed in Krutchen’s 4+1 model?

• Logical view, process view, development view, physical view, and scenarios.

5. What is an architectural pattern?

• A general reusable solution to a common problem in software architecture.


6. What is the fundamental characteristic of a repository architecture?

• All data is managed in a central repository, accessed by various components.

7. What is the most important advantage of a client-server architecture?

• Separation of concerns between client and server, allowing easier updates and maintenance.

8. Briefly describe pipe and filter architecture.

• A series of processing components (filters) connected by data flows (pipes), where each filter processes data and passes it to the
next.

9. What are transaction-processing applications?

• Systems that handle a large number of transactions, focusing on data consistency and integrity.

10. What are the principal functions of the 4 layers in a generic information system architecture?

• Presentation, logic, data access, and storage layers.

Chapter 7: Design and Implementation

1. What are the 5 key activities in an object-oriented design process?

• Identify objects, define classes, specify interfaces, establish relationships, and implement the design.

2. What do you understand by the system context and interaction model?

• The system context defines the system boundary, while the interaction model shows interactions within and outside the system.

3.Briefly describe 3 approaches that may be used to identify object classes.

• Use case analysis, grammatical analysis, and CRC (Class, Responsibility, Collaborator) cards.

4. Why is it important to specify the interfaces of components that are being developed by a software engineering team?

• Interfaces define how components interact, ensuring consistent communication and easier integration.

5. What do Gamma et al. suggest are the four essential elements of a design pattern?

• Pattern name, problem, solution, and consequences.

6. How do design patterns contribute to reuse?

• They provide reusable solutions to common design problems, saving time and effort in the development process.

7. What are the 4 levels at which software reuse is possible?

• Code, design, architecture, and application.

8. What are the principal aims of software configuration management?

• Control changes, maintain version integrity, and ensure consistency.

9. What are essential tools in a software development platform?

• Version control, build tools, debuggers, and testing tools.


10. Briefly describe the idea of open-source development.

• A development model where source code is made publicly available for anyone to use, modify, and distribute.

Chapter 8: Testing

1. What is the distinction between validation and verification?

• Verification checks if the product was built correctly (meets specifications); validation checks if it fulfills user requirements.

2. What are the advantages of inspections over testing?

• Inspections can find issues early, are cost-effective, and improve code quality without execution.

3. Briefly describe the three principal stages of testing for a commercial software system.

• Unit testing (individual components), integration testing (combined components), and system testing (complete system).

4. What tests should be included in object class testing?

• Tests for constructors, methods, and interactions with other classes.

5. What guidelines does Whittaker suggest for defect testing?

• Focus on inputs likely to cause errors, boundary values, and areas known to be error-prone.

6. What is an equivalence partition? Give an example.

• Dividing input data into valid/invalid partitions; e.g., for age input, valid could be 18–65, invalid outside this range.).

7. What are the three important classes of interface errors?

• Interface misuse, misunderstanding, and timing errors.

8. What should be the principal concerns of system testing?

• Functionality, performance, reliability, and security.

9. Briefly summarize the test-driven development process.

• Write tests before code, then write code to pass tests, ensuring incremental and testable development.

10. What is scenario testing?

• Testing based on real-world scenarios to ensure the system performs under realistic conditions.

11. What is stress testing and why is it useful?

• Testing under extreme conditions to ensure the system can handle high loads.

12. What are the three types of user testing?

• Alpha (in-house), beta (with selected users), and acceptance testing (final approval by the client).

You might also like