CSC1301 Homework 2.PDF
CSC1301 Homework 2.PDF
Student Name
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.
Students must not share any part of their work with each other.
• Use case diagrams, class diagrams, sequence diagrams, activity diagrams, and state diagrams.
• 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.
• 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.
• Event-driven modeling assumes that systems respond to external or internal events, triggering specific actions or changes in state.
• 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).
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?
• 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.
• Separation of concerns between client and server, allowing easier updates and maintenance.
• A series of processing components (filters) connected by data flows (pipes), where each filter processes data and passes it to the
next.
• 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?
• Identify objects, define classes, specify interfaces, establish relationships, and implement the design.
• The system context defines the system boundary, while the interaction model shows interactions within and outside the system.
• 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?
• They provide reusable solutions to common design problems, saving time and effort in the development process.
• A development model where source code is made publicly available for anyone to use, modify, and distribute.
Chapter 8: Testing
• Verification checks if the product was built correctly (meets specifications); validation checks if it fulfills user requirements.
• 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).
• Focus on inputs likely to cause errors, boundary values, and areas known to be error-prone.
• Dividing input data into valid/invalid partitions; e.g., for age input, valid could be 18–65, invalid outside this range.).
• Write tests before code, then write code to pass tests, ensuring incremental and testable development.
• Testing based on real-world scenarios to ensure the system performs under realistic conditions.
• Testing under extreme conditions to ensure the system can handle high loads.
• Alpha (in-house), beta (with selected users), and acceptance testing (final approval by the client).