CC105 Reviewer

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

CC-105 Reviewer

CHAPTER 1

Software is computer instructions that, when executed, provides desired functions and
performance

TYPES OF OPERATING SYSTEMS


Operating Systems are vital for performing the essential tasks of a computer, including
managing files, processes, and memory.

1. Batch Operating System - do not directly interact with the computer. There is an
operator that performs the job. The operator takes similar jobs with the same
requirements, then group them as a batch. The operator’s primary responsibility is to sort
similar jobs with similar needs.

2. Time-Sharing Operating Systems


In time-sharing operating systems, tasks are given enough time to execute. This means that
to execute each task smoothly, each user gets the CPU time, for they only use a single
system. These systems are commonly known as Multi-tasking Systems. Single users or
multiple users can generate tasks.
Quantum Time is the term used to describe the time each task gets to execute.

3. Distributed Operating System - is widely-accepted worldwide with a great pace for it


enables autonomous, interconnected computers to communicate with each other through
shared communication networks. Each autonomous, independent computer has its
memory unit and CPU. Distributed Operating Systems are commonly known as Loosely
Coupled Systems. Since computers are interconnected, it is possible to share files or
software with other computers through remote access.
Locus is one of the examples of a Distributed Operating System.

4. Network Operating System - run on a server and provides the capacity to manage data,
users, groups, security, applications, and other types of networking functions. It enables
sharing files, printers, security, applications, and other essential networking functions over
a small private network. This type of Operating System is also known as a tightly coupled
systems. This means that the network members know the configuration and the other users
connected within the same network.

5. Real-Time Operating Systems


When time is part of the requirements, Real-Time Operating Systems are very efficient.
Applications such as air traffic control systems, robotics, and missile systems are some of
the few examples of real-time operating systems.
Two Categories Of Real-Time Operating Systems:

Hard Real-Time Systems are those that require an application to be very strict with time
requirements. Meaning, possible delays in terms of response are not acceptable. This type
of system is built to live life like an automatic parachute or airbags. Also, virtual memory is
almost never found in this type of system.

Soft Real-Time Systems are those that have less strict time-constraints.

SOFTWARE APPLICATIONS
Software applications include system software, real-time software, engineering,
scientific software, embedded software, personal computer software, and artificial
intelligence software. The system software is a collection of programs written to service
other programs. Examples include compilers, editors, file management utilities,
operating systems, and drivers. Real-time software is a program that monitors,
analyzes, and controls real-world events as they occur. On the other hand, business
software is an application that is used in the business environment and that supports
business operations. Engineering and scientific software are applications in fields such
as astronomy, volcanology, and the space shuttle.

Embedded Software resides in read-only memory and controls


products and systems for the consumer and industrial markets. Examples include
keypad control for microwave oven and braking systems
Personal computer software is an application that supports individual needs such as word
processing, spreadsheets, multimedia applications, and entertainment.
Artificial intelligence software uses a non-numerical algorithm to solve complex problems
that are not amenable to computation or straightforward analysis. Examples include
pattern recognition andgame playing.

CHAPTER 2

Software engineering is the establishment and use of sound engineering


principles to obtain economic software that is reliable and works efficiently on real
machines. Software engineering layers include tools, methods, process, and focus on
Quality.

1. Process. It is the glue that holds the technology layers together and enables
rational and timely development of computer software.

2. Methods. These provide technical “how to’s” for building software.

3. Tools. These provide automated or semi-automated support for the process and
the methods.
SOFTWARE ENGINEERING AND APPLICATION DEVELOPMENT PARADIGMS

1. Prototyping Model. It is a method in which a prototype is built, tested and then


reworked as necessary until an acceptable outcome is achieved, from which the
complete system or product can be developed..

2. Spiral Model. The spiral model is similar to incremental development for a


system, with more emphasis placed on risk analysis.

SIX TASK REGIONS:


a. Customer communication. At this region of the spiral model, it important that
the application developer or software engineer establish an effective communication with
the customer to gather all the essential requirements for the project. One of the major
causes of application or software failure is the lack of communication between
stakeholders. Project leaders and other key technologydrivers of a project must seek to it
that proper and effective communication medium and relationship is well established.

b. Planning. Planning is vital to provide important insights about the project at hand. At this
region of the spiral model, key players must be able to identify the needed resources;define
its relevance to the project; draw timeline; and gather all the project related data which
contributes to the overall success of the undertaking.

c. Risk analysis – This region of the spiral model highlights the core essence of the model.
Tasks essential in this section require assessment of the technical tools needed, and the risk
management capacities of the players and the project at hand. Successful analysis of the
possible risks reduces greater challenges and failures as the project progress.

d. Engineering. In this region of the model, application and software developers are
required to develop representations of the application. It is relevant to perform such tasks
to have an idea of how the system would work and how it captures all the needed
requirements from the customers. Also, engineering phase allows further analysis to
perform immediate changes and adjustments.

e. Construction and release. After the successful completion of the project, this
phase of the model requires construction of user support manual and documentation,
testing and initial deployment, as well as providing user support and training.

f. Customer evaluation. When the actual project is deployed, it is relevant to


gather the customer's feedback and evaluation of the application to continuously
refine the project and to provide additional necessary changes and adjustments.
In this phase, the plan is reviewed and counter checked if it conforms to what the
customer needs and requires.
3. Fourth Generation Technique. The source code is automatically generated
according to the specifications made by the developers. Fourth generation
technique utilizes mechanisms that is close to natural language or specific
notation to achieve significant functions. It includes some or all of the following
tools: non procedural languages for database query, report generation, data
manipulation, screen interaction and definition and code generation.

CHAPTER 3

Requirements play a vital role in the overall success and complete delivery of software
applications. When requirements are not properly identified, analyzed, and collected,
failure of delivery might happen.

Requirement Analysis is a software engineering and application development


task that bridges the gap between system-level software allocation and software design.
It enables the system engineer or application developer to specify software function and
performance, indicate software’s interface with other system elements, and establish
constraints that software must meet.
Five Areas of Efforts
1. Problem recognition
2. Evaluation and synthesis
3. Modeling
4. Specification
5. Review

Configuration Management is a set of procedures that track the requirements that define
the system, the design modules that are generated from the requirements, the program
code that implements the design, the tests that verify the functionality of the system, and
the documents that describe the system.

SOFTWARE REQUIREMENTS

Software Requirements include the description of features and functionalities of the target
system. Requirements are essential for it convey the expectations of the users from the
software product or application. It can be obvious or hidden, known or unknown, expected
or unexpected from the client’s point of view. It covers the process of requirements
engineering.

Requirements engineering is the process of gathering the requirements from the client,
analyzing it, and documenting them. Steps in requirements engineering includes feasibility
study, requirements gathering, software requirement specifications, and software
requirements validation.
a. Feasibility Study. It is the process of studying in details whether the desired system and
its functionality are feasible to be developed. Typically, feasibility studies focus on the goals
of the organization.

b. Requirements Gathering – In requirements gathering, analysts and software developers


communicate with the client and end-users to know their ideas on what the application or
system should provide including the intended features they desired.

c. Software Requirements Specifications (SRS) – The SRS is a document created by system


analysts after the requirements gathering is conducted and essential requirements are
collected from the different types of stakeholders. SRS defines how the intended
application or system will interact with hardware, external interfaces, speed of operation,
response time of the system, portability across different platforms, maintainability, and
speed of recovery after crashing, security, quality, limitations, and the likes.

d. Software Requirements Validation – When software requirement specification


document has been developed, the contents are validated. Users might ask for any illegal,
impractical solutions, or experts may interpret the requirements inaccurately. If not nipped
in the bud, this may result in increase in cost.

SOFTWARE REQUIREMENTS ELICITATION PROCESS


Requirements elicitation process includes requirements gathering, requirement
organization, negotiation and discussion, and requirements specification.

a. Requirements Gathering. The developers discuss with the client and end-users and know
their expectations from the software

b. Organizing Requirements. The developers prioritize and arrange the requirements in


order of importance, urgency, and convenience.

c. Negotiation and Discussion. If the requirements are ambiguous or there are some
conflicts in requirements of various stakeholders, it is then negotiated and discussed with
the stakeholders. Requirements may be then prioritized and reasonably compromised. The
requirements come from various stakeholders. To remove ambiguity and conflicts, they are
discussed for clarity and correctness. Unrealistic requirements are compromised
reasonably.

d. Documentation. All formal and informal, functional and non-functional requirements are
documented and made available for next phase processing.

REQUIREMENTS ELICITATION TECHNIQUES


This process includes activities to find out the requirements for an intended software
system by communicating with client, system users, and others who have a stake in the
software system development. The following are the commonly used techniques in
requirements elicitation process.

a. Interviews. Interviews are strong medium to collect requirements. Organizations


may conduct several types of interviews such as structured (closed) interviews where the
information to be gathered is already identified. A pattern is followed in conducting
structured interview. On the other hand, unstructured or open interviews are more
flexible, less biased, and information to be gathered is not yet identified before the conduct
of interview. Oral interviews and written interviews can also be done. In terms of dynamics,
one-to-one interview or group interviews may be done.

b. Survey. Organizations may conduct surveys among various stakeholders by querying


about their expectations and requirements from the upcoming system.

c. Questionnaire. It is a document with per-defined set of objective questions and


respective options is handed over to all stakeholders to answer, which are collected and
compiled. A disadvantage of this technique is, if an option for some issue is not mentioned
in the questionnaire, the issue might be left unattended.

d. Task Analysis. Members of the development team may analyze the operation for which
the new system is required. If the client already has some software to perform certain
operation, it is studied and requirements of proposed system are collected.

e. Domain Analysis. Every software falls into some domain category. The expert people in
the domain can be a great help to analyze general and specific requirements

f. Brainstorming. It is an informal debate held among several stakeholders and all their
inputs are recorded for further requirements analysis

g. Prototyping. It is the process of building user interface without adding functionality for
user to interpret the features of intended software product. It helps giving better idea of
requirements.

h. Observation. Development team visits the client’s organization to observe the actual
working of the existing installed system. They also observe the workflow and how execution
problems are dealt. In this process, the team draws conclusions which aid to form
requirements from the software.

SOFTWARE REQUIREMENTS CHARACTERISTICS


1. Clear
2. Correct
3. Consistent
4. Coherent
5. Comprehensive
6. Modifiable
7. Verifiable
8. Prioritized
9. Unambiguous
10.Traceable
11.Credible source

CATEGORIES OF SOFTWARE REQUIREMENTS

1. Functional Requirements. These requirements are related to the functional


aspect of the software. They define functions and functionality within and from
the software system.

2. Non-Functional Requirements. Non-Functional Requirements are not related to


the functional aspect of the system. They are the implicit or expected
characteristics of software, which users make assumption of.
Requirements are categorized logically as:
1. Must Have
2. Should Have
3. Could Have
4. Wish List

USER INTERFACE REQUIREMENTS


User interface (UI) are important aspects of systems. A software is widely
accepted if it is easy to operate, quick in response, effectively handle operational errors,
and provide simple yet consistent.

The following are the UI requirements:


1. Content presentation
2. Easy Navigation
3. Simple interface
4. Responsive
5. Consistent UI elements
6. Feedback mechanisms
7. Default settings
8. Purposeful layout
9. Strategical use of color and texture
10.Provide help information
11.User centric approach
12.Group based view settings

You might also like