Software Model and Design

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

COLLEGE OF COMPUTER STUDIES

SYSTEMS INTEGRATION AND


ARCHITECTURE 1

EXERCISE

4
SOFTWARE MODEL AND DESIGN

Student Name / Group Ramos, Elijah F.


Name:
Name Role
Members (if Group):

AW31
Section:
Mr. Renjun Orain
Professor:
I. PROGRAM OUTCOME/S (PO) ADDRESSED BY THE LABORATORY EXERCISE
 Apply knowledge through the use of current techniques and tools necessary for the IT profession . [PO: I]

II. COURSE LEARNING OUTCOME/S (CLO) ADDRESSED BY THE LABORATORY EXERCISE


 Implement and enterprise integration middle platform [CLO: 3]
 Define and use the software engineering principles. [CLO: 4]
III. INTENDED LEARNING OUTCOME/S (ILO) OF THE LABORATORY EXERCISE
 At the end of this exercise, students must be able to:

 Apply the principles of software model and design.

IV. BACKGROUND INFORMATION

Software design is the process of defining software methods, functions, objects, and the overall
structure and interaction of your code so that the resulting functionality will satisfy your users
requirements. See our Requirements page to learn how to write requirements. There are many different
ways of designing software, almost all of which involve coming up with an initial design and refining it as
necessary. Different developers prefer different amounts of design up front or during implementation phase.

Generally, the overall design should be well thought out and reviewed before coding starts. Refer to our section on
Design reviews to learn how to review your design. It is easier to try out different designs up front and discover
problems early in the development cycle than to make a major design change after much of the code has been
written.

Software design is the process by which an agent creates a specification of a software artifact, intended to
accomplish goals, using a set of primitive components and subject to constraints.

Software design may refer to either "all the activity involved in conceptualizing, framing,
implementing, commissioning, and ultimately modifying complex systems" or "the activity following
requirements specification and before programming, as ... [in] a stylized software engineering process."

Software design usually involves problem solving and planning a software solution. This includes both a low-level
component and algorithm design and a high-level, architecture design.

Systems Integration and Architecture 1 Page 2 of 5


V. GRADING SYSTEM / RUBRIC (please see separate sheet)

VI. LABORATORY ACTIVITY

Background: A good object oriented design not only meets the specified requirements but also addresses
implicit requirements. There are five design principles which address most of the implicit requirements:

Software Design Principles:

1. Abstraction: Focus on solving a problem by considering the relevant details and ignoring the
irrelevant.
2. Encapsulation: Wrapping the internal details, thereby making these details inaccessible. Encapsulation
separates interface and implementation, specifying only the public interface to the clients, hiding the
details of implementation.
3. Decomposition and Modularization: Dividing the problem into smaller, independent, interactive subtasks
for placing different functionalities in different components
4. Coupling & Cohesion: Coupling is the degree to which modules are dependent on each other. Cohesion is
the degree to which a module has a single, well defined task or responsibility. A good design is one with
loose coupling and strong cohesion.
5. Sufficiency, Completeness and Primitiveness: Design should ensure the completeness and sufficiency
with respect to the given specifications in a very simple way as possible.

VII. QUESTION AND ANSWER


Problem Description:

Systems Integration and Architecture 1 Page 3 of 5


Which of the following design principle(s) have been violated in the following scenarios?

1. Abstraction

Scenario 3: Code breaks in unexpected places

2. Decomposition and Modularization

Scenario 6: Huge class doing too many unrelated operations Scenario 9:


Design resulting in spaghetti code

3. Coupling & Cohesion

Scenario 2: Too many global variables in the program after implementing the design (Coupling) Scenario 5:
Cyclic dependency among classes (Coupling)
Scenario 7: Several un-related functionalities/tasks are carried out by a single module (Cohesion)

4. Encapsulation

Scenario 1: Important information of a module is directly accessible by other modules Scenario 8: All
data of all classes in public

5. Sufficiency, Completeness and Primitiveness

Scenario 3: Code breaks in unexpected places (Primitiveness)


Scenario 4: Unfulfilled requirements in the code after the design has been implemented (Sufficiency and
completeness)
Scenario 9: Design resulting in spaghetti code (Primitiveness)
Scenario 10: An algorithm documented as part of design is not understandable by the programmers (Primitiveness)

6. Al

None

VIII. REFERENCES

Systems Integration and Architecture 1 Page 4 of 5


 Imani, M and Radziwill, N. (2020). Computerized Maintenance and Asset Management: Improving
Quality Through Systems Integration. Software Quality Professional.
 Dube, M. et. al (20202). Preventing Harm: Testing and Implementing Health Care Protocols
Using Systems Integration and Learner-Focused Simulations: A Case Study of a New Postcardiac
Surgery, Cardiac Arrest Protocol.Clinical Simulation

Systems Integration and Architecture 1 Page 5 of 5

You might also like