0% found this document useful (0 votes)
28 views11 pages

DCIT26 Activity 2

The document discusses requirements and principles for modeling application software, including functional, performance, usability, security, and maintainability requirements. It also describes principles like modularity, abstraction, encapsulation, separation of concerns, testability, flexibility, and documentation. Managing capabilities for software analysis and modeling involves ensuring skills and expertise through training, using appropriate tools to support requirements gathering, modeling, and selecting the right tools to enhance capabilities and streamline the process.

Uploaded by

Zin Del
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views11 pages

DCIT26 Activity 2

The document discusses requirements and principles for modeling application software, including functional, performance, usability, security, and maintainability requirements. It also describes principles like modularity, abstraction, encapsulation, separation of concerns, testability, flexibility, and documentation. Managing capabilities for software analysis and modeling involves ensuring skills and expertise through training, using appropriate tools to support requirements gathering, modeling, and selecting the right tools to enhance capabilities and streamline the process.

Uploaded by

Zin Del
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

DCIT26 APPLICATION DEVELOPMENT AND EMERGING TECHNOLOGIES

Asynchronous Activity 2:

1. Provide all the requirements and guiding principles for modeling an


Application Software.
- Requirements and guiding principles for modeling an application
software can vary depending on the specific context and domain of
the application. However, here are some general requirements and
guiding principles that can be considered when modeling an
application software:
 Requirements for Modeling an Application Software:
➢ Functional Requirements: Clearly define the
functionalities that the application software is intended
to provide. This includes identifying the inputs,
processing logic, and outputs of the software.
➢ Performance Requirements: Specify the performance
expectations of the application software, such as
response time, throughput, and scalability, to ensure it
meets the desired performance goals.
➢ Usability Requirements: Define the user interface and
user experience (UI/UX) requirements of the application
software to ensure it is intuitive, efficient, and easy to
use for its intended users.
➢ Security Requirements: Identify and address potential
security risks and vulnerabilities in the application
software, such as authentication, authorization, data
encryption, and protection against malicious attacks.
➢ Compatibility Requirements: Determine the
compatibility of the application software with different
hardware, operating systems, browsers, and other
software components to ensure seamless integration
and interoperability.
➢ Maintainability Requirements: Design the application
software in a modular and scalable manner to enable
DCIT26 APPLICATION DEVELOPMENT AND EMERGING TECHNOLOGIES

easy maintenance, updates, and enhancements over its


lifecycle.
• Guiding Principles for Modeling an Application Software:
➢ Modularity: Break the software into smaller,
independent modules that can be developed,
tested, and maintained separately, promoting
reusability and flexibility.
➢ Abstraction: Use abstraction techniques to
simplify complex functionalities and concepts,
making the software easier to understand,
modify, and maintain.
➢ Encapsulation: Hide the internal implementation
details of the software components to reduce
dependencies and promote encapsulation,
allowing for better maintainability and
extensibility.
➢ Separation of Concerns: Clearly separate different
concerns or functionalities of the software, such
as business logic, user interface, and data access,
to improve code readability, maintainability, and
reusability.
➢ Testability: Design the software with testability in
mind, by using techniques such as unit testing,
integration testing, and automated testing, to
ensure software quality and reliability.
➢ Flexibility: Design the software in a flexible
manner that allows for easy adaptation to
changing requirements or business rules, to
enhance the software's longevity and adaptability.
➢ Documentation: Provide comprehensive
documentation for the software, including design
documents, user manuals, and technical guides, to
facilitate understanding, maintenance, and t
DCIT26 APPLICATION DEVELOPMENT AND EMERGING TECHNOLOGIES

Performance Optimization: Consider performance


optimization techniques, such as caching,
indexing, and code optimization, to ensure
efficient and optimized software performance.
➢ Error Handling: Implement robust error handling
mechanisms in the software to handle exceptions,
errors, and edge cases gracefully, ensuring the
stability and reliability of the software.
➢ Scalability: Design the software with scalability in
mind, allowing for horizontal or vertical scaling to
accommodate growing user bases and increased
workloads.
➢ Compliance: Ensure that the software complies
with relevant industry standards, regulations, and
best practices, such as data privacy laws,
accessibility guidelines, and security standards.
➢ Collaboration: Foster collaboration among team
members and stakeholders throughout the
software development lifecycle to ensure
alignment, transparency, and timely feedback.

These requirements and guiding principles can serve as a foundation for modeling
an application software and can be customized further based on the specific
needs and context of the software being developed.

2. Overview and Elements for Software Application analysis and modeling


a. Managing Capabilities
• Managing the capabilities of software application analysis and
modeling involves several key aspects that ensure the
effectiveness and efficiency of the process. These capabilities
can be managed through the following approaches:
i. Skills and Expertise: Ensuring that the team members
involved in software application analysis and modeling
DCIT26 APPLICATION DEVELOPMENT AND EMERGING TECHNOLOGIES

have the necessary skills, expertise, and knowledge to


effectively analyze the requirements, create accurate
models, and make informed design decisions.
Providing training, mentoring, and resources to
enhance their capabilities can be beneficial.
ii. Tools and Technologies: Utilizing appropriate tools and
technologies to support the analysis and modeling
process. There are various software tools available for
requirements gathering, domain modeling, use case
modeling, data modeling, behavior modeling, and
architectural modeling. Selecting and using the right
tools can enhance the capabilities of the team and
streamline the process.
iii. Tools and Technologies: Utilizing appropriate tools and
technologies to support the analysis and modeling
process. There are various software tools available for
requirements gathering, domain modeling, use case
modeling, data modeling, behavior modeling, and
architectural modeling. Selecting and using the right
tools can enhance the capabilities of the team and
streamline the process.
iv. Tools and Technologies: Utilizing appropriate tools and
technologies to support the analysis and modeling
process. There are various software tools available for
requirements gathering, domain modeling, use case
modeling, data modeling, behavior modeling, and
architectural modeling. Selecting and using the right
tools can enhance the capabilities of the team and
streamline the process.
v. Tools and Technologies: Utilizing appropriate tools and
technologies to support the analysis and modeling
process. There are various software tools available for
requirements gathering, domain modeling, use case
DCIT26 APPLICATION DEVELOPMENT AND EMERGING TECHNOLOGIES

modeling, data modeling, behavior modeling, and


architectural modeling. Selecting and using the right
tools can enhance the capabilities of the team and
streamline the process.
vi. Tools and Technologies: Utilizing appropriate tools and
technologies to support the analysis and modeling
process. There are various software tools available for
requirements gathering, domain modeling, use case
modeling, data modeling, behavior modeling, and
architectural modeling. Selecting and using the right
tools can enhance the capabilities of the team and
streamline the process.
vii. Tools and Technologies: Utilizing appropriate tools and
technologies to support the analysis and modeling
process. There are various software tools available for
requirements gathering, domain modeling, use case
modeling, data modeling, behavior modeling, and
architectural modeling. Selecting and using the right
tools can enhance the capabilities of the team and
streamline the process.
viii. Tools and Technologies: Utilizing appropriate tools and
technologies to support the analysis and modeling
process. There are various software tools available for
requirements gathering, domain modeling, use case
modeling, data modeling, behavior modeling, and
architectural modeling. Selecting and using the right
tools can enhance the capabilities of the team and
streamline the process.
ix. Tools and Technologies: Utilizing appropriate tools and
technologies to support the analysis and modeling
process. There are various software tools available for
requirements gathering, domain modeling, use case
modeling, data modeling, behavior modeling, and
DCIT26 APPLICATION DEVELOPMENT AND EMERGING TECHNOLOGIES

architectural modeling. Selecting and using the right


tools can enhance the capabilities of the team and
streamline the process.
b. What is Requirements Engineering?
• Requirements Engineering is a systematic and iterative process
of eliciting, analyzing, documenting, validating, and managing
the requirements of a software system or application. It
involves understanding the needs and expectations of
stakeholders, identifying the functionalities, performance, and
quality characteristics of the system, and documenting these
requirements in a clear and understandable manner.
i. Elicitation: Gathering requirements from various
stakeholders through techniques such as interviews,
workshops, questionnaires, and observations. This
involves understanding the stakeholders' needs,
expectations, and constraints.
ii. Analysis: Analyzing the elicited requirements to
identify inconsistencies, ambiguities, and conflicts. This
involves prioritizing and categorizing requirements,
validating them for correctness, completeness, and
feasibility, and identifying dependencies among them.
iii. Documentation: Documenting the requirements in a
clear, concise, and understandable manner using
appropriate techniques such as use cases, user stories,
functional and non-functional requirements, and other
visual or textual representations.
iv. Validation: Validating the documented requirements
with stakeholders to ensure that they accurately
reflect their needs and expectations. This involves
obtaining feedback, resolving conflicts, and obtaining
sign-off on the requirements.
v. Management: Managing the requirements throughout
the software development life cycle, including tracking
DCIT26 APPLICATION DEVELOPMENT AND EMERGING TECHNOLOGIES

changes, maintaining traceability, and addressing


issues that arise during the development process.
c. The role of Collaboration
• The role of collaboration is crucial in various aspects of
professional and personal settings. Collaboration involves
individuals or groups working together towards a common
goal, leveraging their collective knowledge, skills, and expertise
to achieve a desired outcome. In the context of software
development and other domains, collaboration plays a
significant role in several ways:
i. Teamwork: Collaboration fosters effective teamwork
among team members, enabling them to work
together towards a shared objective. Team members
can leverage each other's strengths, compensate for
weaknesses, and collectively solve problems, leading
to better decision-making and improved outcomes.
ii. Idea Generation and Innovation: Collaboration
encourages the exchange of ideas and perspectives,
sparking creativity and innovation. Through
collaborative brainstorming, idea sharing, and open
discussions, team members can generate new ideas,
challenge assumptions, and come up with innovative
solutions to complex problems.
iii. Knowledge Sharing and Learning: Collaboration
facilitates the sharing of knowledge, expertise, and
best practices among team members. This promotes
continuous learning and professional development, as
team members can learn from each other's
experiences, insights, and feedback, leading to
improved skills and performance.
iv. Communication and Coordination: Collaboration
enhances communication and coordination among
team members, ensuring that everyone is on the same
DCIT26 APPLICATION DEVELOPMENT AND EMERGING TECHNOLOGIES

page and working towards the same goal. Effective


communication and coordination are critical for
managing tasks, resolving conflicts, and ensuring that
the project progresses smoothly and efficiently.
v. Stakeholder Engagement: Collaboration extends
beyond the team and involves engaging stakeholders
such as customers, users, and other relevant parties.
Collaborating with stakeholders allows for gathering
feedback, understanding their needs and expectations,
and incorporating their input into the development
process, leading to a more user-centric and successful
end product.
vi. Quality Assurance: Collaboration can contribute to
quality assurance by enabling peer reviews, code
reviews, and other forms of collaborative inspection
and verification. This helps in identifying and resolving
defects, ensuring that the software product meets the
desired quality standards.
vii. Change Management: Collaboration is essential in
managing changes and updates during the software
development process. Team members can collaborate
to understand the impact of changes, assess risks, and
implement changes smoothly, minimizing disruption
and ensuring that the project progresses effectively.

In summary, collaboration plays a critical role in software development and other


domains, fostering teamwork, idea generation, knowledge sharing,
communication, stakeholder engagement, quality assurance, and change
management. It promotes a collaborative culture that leads to improved
outcomes, enhanced innovation, and successful project delivery.
DCIT26 APPLICATION DEVELOPMENT AND EMERGING TECHNOLOGIES

d. Elements of Requirements Models


• Requirements models are visual or graphical representations
that capture and communicate the requirements of a software
system or application. They help in understanding,
documenting, and analyzing the various aspects of the
requirements in a structured and organized manner. Some
common elements of requirements models include:
i. Use Cases: Use cases are graphical representations
that capture the interactions between actors (users,
systems, or external entities) and the system under
consideration. Use cases describe the functional
behavior of the system, depicting how it is used by
different stakeholders to achieve specific goals or
tasks. They typically consist of use case diagrams,
which show the relationships between actors and use
cases, and use case descriptions, which provide
detailed information about each use case, including its
name, description, preconditions, postconditions, and
steps.
ii. Data Flow Diagrams (DFDs): DFDs are graphical
representations that depict the flow of data within a
system or application. They show how data is input,
processed, stored, and output by different
components or processes in the system. DFDs consist
of symbols such as data sources, processes, data
stores, and data flows, which represent the various
elements and their interactions in the system.
iii. Entity-Relationship (ER) Diagrams: ER diagrams are
graphical representations that capture the entities,
relationships, and attributes in a system's data model.
They depict the structure of the data and the
DCIT26 APPLICATION DEVELOPMENT AND EMERGING TECHNOLOGIES

relationships between different entities, such as


customers, products, orders, and suppliers. ER
diagrams consist of entities, relationships, and
attributes, which are represented using symbols such
as rectangles, diamonds, and ovals, respectively.
iv. State Transition Diagrams: State transition diagrams
(also known as state machines or finite state machines)
are graphical representations that model the behavior
of a system or application in response to different
events or stimuli. They capture the different states of
the system, the events or triggers that cause state
transitions, and the actions or behaviors associated
with each state or transition. State transition diagrams
consist of states, transitions, events, and actions,
which are represented using symbols such as circles,
arrows, and labels.
v. Activity Diagrams: Activity diagrams are graphical
representations that capture the flow of activities or
tasks within a system or process. They show how
different activities or tasks are performed, their
dependencies, and the flow of control or data between
them. Activity diagrams consist of activities, control
flows, decision points, and swimlanes, which represent
the various elements and their interactions in the
system.
vi. User Interface Mockups: User interface mockups are
graphical representations that depict the visual and
interactive aspects of the system's user interface. They
provide a visual representation of how the user
interface will look and function, including the layout,
design, and functionality of different screens or pages
in the system. User interface mockups can be created
using tools such as wireframing or prototyping tools,
DCIT26 APPLICATION DEVELOPMENT AND EMERGING TECHNOLOGIES

and they can include elements such as buttons, menus,


forms, and screens.

These are some common elements of requirements models used in software


development. Depending on the specific requirements and the modeling
techniques used, other elements such as sequence diagrams, class diagrams, and
decision tables may also be used to capture and communicate different aspects of
the requirements in a clear and organized manner.

Rubrics Deadline
No submission Incomplete Complete
0 pt. 50 pts. 100 pts. Next meeting

You might also like