CpE Laws - Professional Practice - Module 05
CpE Laws - Professional Practice - Module 05
This module or any portion thereof may not be reproduced or used in any manner whatsoever without
the express written permission of the publisher except for educational purposes but with a citation to
this source.
For Permission: Contact Bataan Heroes College, Roman Super Hi-way, Balanga City, Bataan, Philippines
Course Information
Course Title : CpE Laws & Professional Practice
Program : Business & Technology
Course Code : CPE 411
Credit Units : 3 units
Pre-requisite/s :
Instructor Information
Name : Engr. Joel D. Manacmul
Contact Information
Contact Number : 09281421172
Facebook : Joel Manacmul
Email : [email protected]
Course Description
This course provides the importance of the professional and ethical responsibilities of practicing
computer engineers and the effects of their work on society; the importance of understanding
contemporary issues, lifelong learning strategies, and applicable ICT laws
Course Schedule
Week Topic
Reference
CpE Laws and Professional Practice
RA 8293 (Intellectual Property Code of the Philippines)
RA 8792 (Electronic Commerce Act of 2000)
RA 10173 (Data Privacy Act of 2012)
RA 10175 (Cybercrime Prevention Act of 2012)
RA 10844 (Department of Information and Communications Technology)
.
When the systems development project is complete, success will be measured by evaluating
whether the stated business requirements have actually been achieved; therefore, they provide
the overall direction for the project. Business drivers may include both problems (reasons why
the current systems/processes are not sufficient) and opportunities (new business models that
the system will make available). Usually a combination of these two is needed to provide
motivation for a new system.
User Requirements are written from the perspective of the business, focusing on what the
system needs to do in order to satisfy business user needs. They describe tasks that the users
perform as an integral part of the business‘ operations and what the user actually needs to
accomplish with the system in order to fulfill a needed job or task.
Use cases are tools used to clarify the steps involved in performing these user tasks. By
understanding what the user needs to do in terms of tasks to perform, the analyst can then
determine ways in which the new system can support the users‘ needs. User stories are short,
simple descriptions of a feature told from the perspective of the person who desires the new
capability, usually a user or customer of the system. They typically follow a simple template:
As a < type of user >, I want < some goal >, so that < some reason >.
Functional Requirements are identified by determining ways in which the new system can
support user needs and relate directly to a process the system has to perform as a part of
supporting a user task and/or information to provide as the user is performing a task. They are
defined by the IIBA as “the product capabilities, or things that a product must do for its users.”,
these requirements begin to define how the system will support the user in completing a task.
Process models are used to explain the relationship of functions/processes to the system users,
how the functions/processes relate to each other, how data is entered and produced by
functions/processes, and how functions/processes create and use stored data, which is to be
defined in the data models.
Non-Functional Requirements include important behavioral properties that the system must
have, such as performance and usability, as well as the ability to access the system through a
mobile device requirement. These requirements are quality attributes, design, and
implementation constraints, and external interfaces which a product must have. They are
primarily used in the design phase when decisions are made about the user interface, the
hardware and software, and the system‘s underlying architecture. They describe a variety of
system characteristics: operational, performance, security, and cultural and political. These
characteristics are very important in understanding what the final system should be like.
System Requirements Specification (SRS) is a structured collection of information that
embodies the requirements of a system. In the developer‘s perspective, it is a document or set of
documentation that describes the features and behavior of a system or software application. It
includes a variety of elements that attempt to define the intended functionality required by the
customer to satisfy the users.
• Business Drivers – rationale for the new system
• Business Model – includes the organizational context, business context, key business functions
and process flow diagrams.
• Functional Requirements – "System needs the ability to do x"
• Business & System Use Cases – consist of a UML use case diagram
• Technical Requirements – include the technical constraints
• System Qualities – consist of tables of specific acceptance metrics
• Constraints & Assumptions – remove certain options from being considered
• Acceptance Criteria – the criteria by which the client will "sign-off" on the final system
Requirements definition is a straightforward text report that simply lists the system requirements
(functional and nonfunctional requirements) in an outline format. Its main purpose is to define
the scope of the system and to establish the users‘ expectations for the system where
prioritization (low, medium, or high) of requirements is sometimes stated.
combination of techniques. In general, document analysis and observation require the least
amount of training, while JAD sessions are the most challenging.
Interview Method is a natural and most commonly used method, conducted one on one (one
interviewer and one interviewee), but sometimes, due to time constraints, several people are
interviewed at the same time. Questionnaire Method uses sets of written questions for obtaining
information from individuals. It is used when there is a large number of people from whom
information and opinions are needed (e.g., by customers or vendors) or when users spread across
many geographic locations.
Document Analysis Method is used to understand the as-is system as the project team can start
the analysis by reviewing the documentation and examining the system itself. Although there
may not be much technical documentation about the current system available, or it may not
contain updated information about recent system changes, there are many helpful documents that
do exist in the organization: paper reports, memorandums, policy manuals, user training
manuals, organization charts, and forms. Problem reports filed by the system users can be
another rich source of information about issues with the existing system.
Observation Method involves watching processes being performed, is a powerful tool to gain
insight into the as-is system. It enables the analyst to see the reality of a situation, rather than
listening to others describe it in interviews or JAD sessions. It is a good way to check the validity
of information gathered from other sources such as interviews and questionnaires.
Joint Application Development (JAD) Method is a structured information gathering technique
that allows the project team, users, and management to work together to identify requirements
for the system. In this approach, 10-20 users meet under the direction of a facilitator skilled in
JAD techniques.
Use-Case Analysis is used to identify the requirements of a system and the information used to
both define processes used and classes which will be used both in the use case diagram and the
overall use case in the development or redesign of a software system or program.
NOTE: High-level describes operations that are more abstract in nature, while low-level
describes more specific individual components of a systematic operation, focusing on
the details of basic micro functions rather than macro, complex processes.
Use Cases are used to explain and document the interaction that is required between the user and
the system to accomplish the user‘s task. These are often used to derive more detailed functional
requirements for the new system, and are created to help the development team understand more
fully the steps that are involved in accomplishing the user‘s goals.
How to Write a Use Case
User Stories are simple, yet extremely powerful constructs: they describe pieces of functionality
from a user’s point of view, expressed in a solid, compact way. They reflect what a particular
class of user needs and the value to be gained.
System modeling is the process of developing abstract models of a system, with each model
presenting a different view or perspective of that system. It is about representing a system using
some kind of graphical notation, which is now almost always based on notations in the UML.
Models help the analyst to understand the functionality of the system; they are used to
communicate with customers
Process Models are a graphical representation of how a business system should operate. They
illustrate the processes/activities performed and how data move among them. One of the most
common techniques used today in process modeling is the use of data flow diagrams (DFD),
which mainly focuses on the performed processes/activities. This is contrast with data
modeling, which presents how the data created and used by processes are organized.
Levels of DFD
• Context Diagram – shows the entire system in context with its environment. All process models
have one context diagram.
• Level 0 DFD – shows all the major high-level processes of the system and how they are
interrelated. All process models have one and only one level 0 DFD.
• Level 1 DFD – shows only how the major high-level processes in the system interact.
• Level 2 DFD – shows that process 2.2 is decomposed into three processes (2.2.1, 2.2.2, and
2.2.3).
Data Models are a formal representation of data used and created by a business system. They
illustrate people, places, or things about which information is captured and how they are related
to each other. One of the most common techniques used today in data modeling is the use of
entity relationship diagrams (ERD), a graphic drawing technique that shows all the
information in a business system and how they are organized and related to each other.
Special Types of Entities
• Dependent Identity – child entity requires attributes from the parent entity to uniquely identify
an instance; its identifier consists of at least one attribute from the parent entity.
• Independent Entity – can exist without the help of another entity; has identifiers that were
created from its own attributes.
• Identify Relationships – exists in order to capture some information about the relationship
between two other entities.
Architectural Components are the software and hardware components combined in different
ways. Basic hardware components are the client computers (end-users‘ device), the servers
(multi-user computers that store software and data), and the network (connects computers).
System architecture is the conceptual model that defines the structure, behavior, and more views
of a system. An architecture description is a formal description and representation of a system,
organized in a way that supports reasoning about the system structures and behaviors.
4 Basic Software Functions
Data Storage – database that stores an organization‘s records
Data Access Logic – the processing required to access data, often meaning database
queries in Structured Query Language (SQL)
Application Logic – the logic documented in the DFDs, use cases, and functional
requirements; may reside on the client, reside on the server, or be split between both.
Thick clients contain all or most of the application logic. Currently, thin clients are
popular because of lower overhead and easier maintenance.
Presentation Logic – the display of information to the user and the acceptance of the
user‘s commands (the user interface)
• Supportability – can support many different types of clients and servers; Middleware is a
system software designed to translate between different vendors‘ software. It is installed on both
the client and server computers.
• Homogeneity – simple to clearly separate the presentation logic, the application logic, and the
data access logic and design each to be somewhat independent.
An n-tiered architecture distributes the work of the application (the middle tier) among
multiple layers of more specialized server computers. This is to separate out the processing that
occurs to better balance the load on the different servers.
Virtualization is the creation of a virtual device or resource, such as a server or storage device.
• Server virtualization – involves partitioning a physical server into smaller virtual servers.
• Storage virtualization – involves combining multiple network storage devices into what appears
to be single storage unit.
A storage area network (SAN) uses storage virtualization to create a high-speed subnetwork of
shared storage devices for easier and faster backup, archiving, and recovery tasks. Cloud
Computing is everything, from computing power to computing infrastructure, applications,
business processes to personal collaboration— can be delivered as a service wherever and
whenever needed.
The “cloud” is a set of hardware, networks, storage, services, and interfaces that combine to
deliver computing as a service. Cloud services include the delivery of software, infrastructure,
and storage over the Internet based on user demand.
Public Clouds – services provided via Internet
Private Clouds – services deployed via a hosted data center or a company intranet
Hybrid Clouds – combine the power of both public and private clouds
Advantages of Cloud Computing
Elasticity – makes the cloud scalable so that the resources allocated can be increased or
decreased based upon demand.
The design phase is also the time to begin selecting and acquiring the hardware and software that
will be needed for the future system. The hardware and software specification is a document that
describes what hardware and software are needed to support the application.
User Interface Design is the process of defining how the system will interact with external
entities (e.g., customers, suppliers, other systems), as well as how the users will interact with
the system and the nature of the inputs and outputs that the system accepts and produces.
3 Fundamental Parts of a User Interface:
Navigation Mechanism – the way in which the user gives instructions to the system and
tells it what to do (e.g., buttons, menus).
Input Mechanism – the way in which the system captures information (e.g., forms for
adding new customers).
Output Mechanism – the way in which the system provides information to the user or to
other systems (e.g., reports, Web pages)
Processes of UI Design
1. Examine the DFDs and uses cases to develop the Use Scenarios and the Interface
Structure Diagram (ISD).
2. Design interface standards.
3. Create an interface design prototype for each of the system‘s individual interfaces.
4. Evaluate the individual interfaces
Use Scenarios are outline of the steps that the users perform to accomplish some part of their
work. Its goal is to describe the most commonly occurring scenarios for simpler and easier
interface design. Interface Structure Diagram (ISD) defines the basic components of the
interface and how they work together to provide functionality to users, as well as how they are
related and how the user navigates through. It is somewhat similar to a DFD in that it uses boxes
and lines to show structure, but has no commonly used rules or standards for their development.
Interface Standards are basic design elements that are common across the individual screens,
forms, and reports within the system. These include the following:
Interface Metaphor – how the interface will work.
Interface Templates – general appearance of all screens in the information system and the
paper-based forms and reports that are used.
Interface Objects – fundamental building blocks of the system such as the entities and
data stores.
Interface Actions – navigation and command language style and grammar
Interface Icons – represents the interface objects and actions, and also their status (e.g.,
deleted, error)
Interface Design Prototype is a mock-up or a simulation of a computer screen, form, or report,
prepared for each interface in the system to show the users and the programmers how the system
will perform. Common types include:
Storyboard – shows hand-drawn pictures of what the screens will look like and how they
will flow from one screen to another
HTML Prototype – defines the general appearance of all screens in the built with the use
of Web pages created in HTML to create a series of Web pages that show the
fundamental parts of the system
Language Prototype – built in the actual language or by the actual tool that will be used
to build the system
Interface Evaluation is intended to understand how to improve the interface design since
interface design is subjective. It is recommended to have as many people as possible evaluate the
interface—and the more users, the better. Common approaches include:
Heuristic Evaluation – examines the interface by comparing it to a set of heuristics, or
principles, for interface design
Walk-through Evaluation – a meeting conducted with the users who will ultimately have
to operate the system
Interactive Evaluation – the users themselves actually work with the prototype in one-on
one sessions with members of the project team
Formal Usability Testing – commonly done with commercial software products and
products developed by large organizations that will be widely used through the
organization
Navigation Design enables the user to enter commands to navigate through the system and
perform actions to enter and review its content, and also allow the system present messages to
the user about the success or failure of his/her actions. The goal is to make the system as simple
as possible to use. The interface can require the user to first choose the object and then the action
(an object–action order) or first choose the action and then the object (an action– object order).
Most Windows applications use an object–action grammar order.
Basic Principles of Navigation Design:
1. Prevent Mistakes
2. Simplify Recovery from Mistakes
3. Use Consistent Grammar Order
Types of Navigation Control
• Languages – the user enters commands
in a special language developed for the
computer system (e.g., UNIX and SQL
both use command languages)
• Menus – present the user with a list of
choices, each of which can be selected
• Direct Manipulation – the user enters
commands by working directly with
interface objects
Input Design deals on input mechanisms, which facilitate the entry of data into the computer
system, whether highly structured data, such as order information (e.g., item numbers, quantities,
costs), or unstructured information (e.g., comments). It means designing the screens used to enter
the information, as well as any forms on which users write or type information.
Basic Input Design Principles:
1. Use online processing and batch processing appropriately.
2. Capture data at the source. (Source data automation use special hardware devices to
automatically capture data without requiring anyone to type it.)
3. Minimize keystrokes. (Use word predictions)
Input Validation or edit check is used to prevent invalid information from entering the system.
Computer systems should not accept data that fail any important validation check. It is up to the
system to identify invalid data and either make changes or notify someone to resolve the issue.
Output Design is aimed to present information to users so that they can understand it accurately
with the least effort, usually by understanding how reports will be used and designing them to
minimize information overload and bias. Basic Output Design Principles: understand report
usage, manage information load, and minimize bias.
“Design is not just what it looks like and feels like. Design is how it works” – Steve Jobs