You are on page 1of 332

SOFTWARE ENGINEERING

Lesson 01
The methodology comprises various approaches to software
development under which requirements and solutions evolve
through the collaborative effort of self-organizing and cross-
functional teams and their customer(s)/end user(s).

It advocates adaptive planning, evolutionary development,


early delivery, and continual improvement, and it encourages
rapid and flexible response to change. Scrum is a type of
methodology under Agile.
• Individuals and Interactions over processes and tools

• Working Software over comprehensive documentation

• Customer Collaboration over contract negotiation

• Responding to Change over following a plan


• Tools and processes are important, but it is more
important to have competent people working
together effectively.

• Good documentation is useful in helping people


to understand how the software is built and how
to use it, but the main point of development is to
create software, not documentation.
• A contract is important but is no substitute for
working closely with customers to discover what
they need.

• A project plan is important, but it must not be too


rigid to accommodate changes in technology or the
environment, stakeholders’ priorities, and people's
understanding of the problem and its solution.
• Customer satisfaction by early and continuous
delivery of valuable software.
• Welcome changing requirements, even in late
development.
• Deliver working software frequently (weeks
rather than months)
• Close, daily cooperation between business
people and developers
• Projects are built around motivated individuals,
who should be trusted
• Face-to-face conversation is the best form of
communication (co-location)
• Working software is the primary measure of
progress
• Sustainable development, able to maintain a
constant pace
• Continuous attention to technical excellence and
good design
• Simplicity—the art of maximizing the amount of
work not done—is essential
• Best architectures, requirements, and designs
emerge from self-organizing teams
• Regularly, the team reflects on how to become
more effective, and adjusts accordingly
Agile breaks product development work into small increments
that minimize the amount of up-front planning and design. At
the end of an iteration a working product is demonstrated to
stakeholders to minimize overall risk and allows the product
to adapt to changes quickly. It involves in all functions,
namely:
• Planning;
• Analysis;
• Design;
• Coding; and
• Testing.
Agile Model Waterfall Model

•Agile method proposes incremental and •Development of the software flows


iterative approach to software design. sequentially from start point to end
point.
•The agile process is broken into individual •The design process is not broken into
models that designers work on. an individual models.

•The customer has early and frequent •The customer can only see the product
opportunities to look at the product and at the end of the project.
make decision and changes to the project.
Agile Model Waterfall Model

•Agile model is considered unstructured •Waterfall model are more secure


compared to the waterfall model. because they are so plan oriented.

•Small projects can be implemented very •All sorts of project can be estimated and
quickly. For large projects, it is difficult to completed.
estimate the development time.
•Error can be fixed in the middle of the •Only at the end, the whole product is
project. tested. If the requirement error is found
or any changes have to be made, the
project has to start from the beginning.
Agile Model Waterfall Model
•Development process is iterative, and the •The development process is phased, and
project is executed in short (2-4) weeks the phase is much bigger than iteration.
iterations. Planning is very less. Every phase ends with the detailed
description of the next phase.
•Documentation attends less priority than •Documentation is a top priority and can
software development even use for training staff and upgrade the
software with another team
•Every iteration has its own testing phase. It •Only after the development phase, the
allows implementing regression testing every testing phase is executed because separate
time new functions or logic are released. parts are not fully functional.
Agile Model Waterfall Model
•In agile testing when an iteration end, •All features developed are delivered at once
shippable features of the product is delivered to after the long implementation phase.
the customer. New features are usable right
after shipment.

•Testers and developers work together. At the •Testers work separately from developers.
end of every sprint, user acceptance is User acceptance is performed at the end of
performed. the project.
•It requires close communication with •Developer does not involve in requirement
developers and together analyze requirements and planning process. Usually, time delays
and planning. between tests and coding.
Throughout the years, a number of agile methodologies
have been developed and used by various projects.
Scrum, being among them, share much of the same
philosophy, as well as many of the same characteristics
and practices.

However, from an implementation standpoint, each has


its own recipe of practices, terminology, and tactics. The
approach varies in its project management.
Lesson 02
Scrum is an agile process framework for managing
complex knowledge work, with an initial emphasis
on software development, research and advanced
technologies.

It is designed for teams of ten or fewer members, who


break their work into goals that can be completed within
timeboxed iterations, called sprints in no longer than a
month and most commonly two (2) weeks, then track
progress and re-plan in 15-minute time-boxed daily
meetings, called daily scrums.
While project management methods emphasize building an
entire product in one iteration from start to finish, agile scrum
methodology focuses on delivering several iterations of a
product to provide stakeholders with the highest business value
in the least amount of time.

It encourages products to be built faster, since each set of goals


must be completed within each sprint's time frame. It also
requires frequent planning and goal setting, which helps the
scrum team focus on the current sprint's objectives and increase
productivity.
• Flexibility and adaptability
• Creativity and innovation
• Lower costs
• Quality improvement
• Organizational synergy
• Employee satisfaction
• Customer satisfaction
1.Scrum Master

2.Product Owner

3.Scrum Development
Team
The scrum master is the facilitator of the scrum development
process. In addition to holding daily meetings with the scrum
team, the scrum master makes certain that scrum rules are
being enforced and applied as intended.

The scrum master's responsibilities also include coaching


and motivating the team, removing impediments to sprints,
and ensuring that the team has the best possible conditions
to meet its goals and produce deliverable products.
They represents stakeholders, which are typically customers.
To ensure the team is always delivering value to stakeholders
and the business, the product owner determines product
expectations, records changes and administers a scrum
backlog, a detailed and constantly updated to-do list for the
scrum project.

The product owner is also responsible for prioritizing goals for


each sprint, based on their value to stakeholders, such that
the most important and deliverable features are built in each
iteration.
The scrum team is a self-organized group of three to
ten individuals who have the business, design,
analytical and development skills to carry out the
actual work, solve problems and produce deliverable
products.

Members of the scrum team self-administer tasks and


are jointly responsible for meeting each sprint's goals
while being monitored by the Scrum Master
1. Sprint
2. Sprint Planning
3. Daily Scrum
4. Sprint Review
5. Sprint Retrospective
6. Backlog Refinement
A sprint (or timebox) is the basic unit of development in
Scrum. The sprint is a timeboxed effort with the length
agreed and fixed in advance for each sprint and is normally
between one week and one month, with two weeks being
the most common. Each sprint starts with a sprint
planning event that establishes a sprint goal and the
required product backlog items. The team accepts what they
agree is ready and translate this into a sprint backlog, with a
breakdown of the work required and an estimated forecast
for the sprint goal.
• Mutual discussion and agree on the scope of work
• Select product backlogs that can be completed in one sprint
• Prepare a sprint backlog that includes the work needed to be
completed
• Agree on a sprint goal, a short description of what they are
forecasting to deliver at the end of the sprint.
• Maintain the four (4) hours duration for a 2-week sprint
• From the prepared sprint backlog, development team
forecast (usually by voting) which tasks will be delivered
within the sprint
• Each day during a sprint, the team holds a daily scrum
with specific guidelines. All members of the
development team come prepared. The daily scrum:
• starts precisely on time even if some development team
members are missing
• should happen at the same time and place every day
• is limited (timeboxed) to fifteen minutes
• Anyone is welcome, though only development team
members should contribute.
During the daily scrum, each team member
typically answers three questions:
1. What did I complete yesterday that contributed to the
team meeting our sprint goal?
2. What do I plan to complete today to contribute to the
team meeting our sprint goal?
3. Do I see any impediment that could prevent me or the
team from meeting our sprint goal?
At the sprint review, the team:
• reviews the work that was completed and the planned
work that was not completed
• presents the completed work to the stakeholders
• collaborates with the stakeholders on what to work on next
Guidelines for sprint reviews:
• Incomplete work cannot be demonstrated.
• The recommended duration is two hours for a two-week
sprint (proportional for other sprint-durations)
At the sprint retrospective, the team:
• Reflects on the past sprint
• Identifies and agrees on continuous process improvement actions

Guidelines for sprint retrospectives:


• Three main questions are asked in the sprint retrospective: What went
well during the sprint? What did not go well? What could be improved
for better productivity in the next sprint?
• The recommended duration is one-and-a-half hours for a two-week
sprint (proportional for other sprint duration(s))
• The event is facilitated by the scrum master
Backlog refinement (formerly called grooming) is the
ongoing process of reviewing product backlog items and
checking that they are appropriately prepared and ordered
in a way that makes them clear and executable for teams
once they enter sprints via the sprint planning activity.

Product backlog items may be broken into multiple smaller


ones. Acceptance criteria may be clarified. Dependencies
may be identified and investigated.
Lesson 03
Crystal method is an agile software development
approach that focuses primarily on people and their
interactions when working on a project rather than on
processes and tools.

Developed by Alistair Cockburn, he believed that the


people’s skills and talents as well as the way they
communicate has the biggest impact on the outcome of
the project.
• Teams can streamline their processes as their
work and become a more optimised team

• Projects are unique and dynamic and require


specific methods
1.Chartering

2.Cyclic Delivery

3.Wrap Up
Various activities involved in
this phase are creating a
development team, performing
a preliminary feasibility
analysis, developing an initial
plan and fine-tuning the
development methodology.
The main development phase consists of two or more
delivery cycles, during which the following occurs:

1. Team updates and refines the release plan


2. Implements a subset of the requirements through
one or more program test integrate iterations
3. Integrated product is delivered to real users
4. Review of the project plan and adopted
development methodology
The activities performed in
this phase are deployment
into the user environment,
post- deployment reviews
and reflections are
performed.
DSDM is a software development approach that
provides an agile project delivery framework. The
important aspect of DSDM is that the users are
required to be involved actively, and the teams are
given the power to make decisions. Frequent
delivery of product becomes the active focus with
DSDM.
Timeboxing: is the approach for completing the project
incrementally by breaking it down into splitting the project in
portions, each with a fixed budget and a delivery date. For
each portion a number of requirements are prioritised and
selected. Because time and budget are fixed, the only
remaining variables are the requirements. So if a project is
running out of time or money the requirements with the
lowest priority are omitted.
MoSCoW: is a prioritization technique used in
management, business analysis, project
management, and software development to reach a
common understanding with stakeholders on the
importance they place on the delivery of
each requirement. It is an acronym that stands for
Must have, Should have, Could have, and Won't
have.
Prototyping: refers to the creation of prototypes of
the system under development at an early stage of
the project. It enables the early discovery of
shortcomings in the system and allows future users
to test-drive the system. This way good user
involvement is realized, one of the key success
factors of DSDM, or any System Development
project for that matter.
1. Pre-project;
2. Feasibility Study;
3. Business Study;
4. Functional Model Iteration;
5. Design and build Iteration;
6. Implementation; and
7. Post-project.
Lesson 04
Feature Driven Development methodology is
focused around designing and building features.
Unlike other agile methods, FDD describes very
specific and short phases of work that has to be
accomplished separately per feature. It includes
domain walkthrough, design inspection, promote to
build, code inspection and design.
1. Domain object Modeling
2. Development by feature
3. Component/ Class Ownership
4. Feature Teams
5. Inspections
6. Configuration Management
7. Regular Builds
8. Visibility of progress and results
It is a translation of lean manufacturing principles and
practices to the software development domain. Adapted
from the Toyota Production System, it is emerging with the
support of a pro-lean subculture within the Agile community
based on the principle "Just in time production".

It aims at increasing speed of software development and


decreasing cost. Lean offers a solid conceptual framework,
values and principles, as well as good practices, derived
from experience, that support agile organizations.
1. Eliminating Waste;
2. Amplifying learning;
3. Defer commitment;
4. Early delivery;
5. Empowering the team;
6. Building Integrity; and
7. Optimize the whole.
Eliminating Wastes: If some activity could be bypassed or the
result could be achieved without it, it is waste. Partially done coding
eventually abandoned during the development process is waste.
Extra features like paperwork and features not often used by
customers are waste.

Amplifying Learning: Software development is a continuous


learning process based on iterations when writing code. Software
design is a problem-solving process involving the developers writing
the code and what they have learned. Software value is measured in
fitness for use and not in conformance to requirements.
Defer Commitment: As software development is always
associated with some uncertainty, better results should be
achieved with a set-based or options-based approach, delaying
decisions as much as possible until they can be made based on
facts and not on uncertain assumptions and predictions.

Early Delivery: The sooner the end product is delivered without


major defects, the sooner feedback can be received, and
incorporated into the next iteration. In the era of rapid technology
evolution, it is not the biggest that survives, but the fastest.
Empowering the team: the managers are taught how to listen to
the developers, so they can explain better what actions might be
taken, as well as provide suggestions for improvements. The lean
approach follows the Agile Principle “build projects around
motivated individuals and trust them to get the job done”.

Building Integrity: The customer needs to have an overall


experience of the System with integrity on how it is being
advertised, delivered, deployed, accessed, how intuitive its use is,
its price and how well it solves problem
Optimize the whole: Defects in software tend to accumulate
during the development process by decomposing the big tasks
into smaller tasks, and by standardizing different stages of
development, the root causes of defects should be found and
eliminated. Modern software systems are not simply the sum of
their parts, but also the product of their interactions.

Lean thinking has to be understood well by all members of a


project, before implementing in a concrete, real-life situation.
“Think big, act small, fail fast; learn rapidly”.
Lesson 05
Extreme Programming technique is very helpful when there is
constantly changing demands or requirements from the
customers or when they are not sure about the functionality of
the system.

It advocates frequent “releases” of the product in short


development cycles, which inherently improves the
productivity of the system and also introduces a checkpoint
where any customer requirements can be easily implemented.
The XP develops software keeping customer in the target.
Planning
• Identification of stakeholders and sponsors
• Infrastructure Requirements
• Security related information and gathering
• Service Level Agreements and its conditions
Analysis
• Capturing of Stories in “Parking lot”
• Prioritize stories in “Parking lot”
• Scrubbing of stories for estimation
• Define Time Iteration
• Resource planning for both Development and
QA teams
Design
• Break down of tasks
• Test Scenario preparation for each task
• Regression Automation Framework
Execution
• Coding
• Unit Testing
• Execution of Manual test scenarios
• Defect Report generation
• Conversion of Manual to Automation regression tests
• Mid Iteration review
• End of Iteration review
Wrapping
• Small Releases
• Regression Testing
• Demos and reviews
• Develop new stories based on the need
• Process Improvements based on end of
iteration review comments
Closure
• Pilot Launch
• Training
• Production Launch
• SLA Guarantee assurance
• Review SOA strategy
• Production Support
Story Cardboard: This is a traditional way of
collecting all the stories in a board in the form of stick
notes to track daily XP activities. As this manual
activity involves more effort and time, it is better to
switch to an online form.

Online Storyboard: Online tool Storyboard can be


used to store the stories. Several teams can use it for
different purposes.
• Agile Methodology
• Scrum Methodology
• Crystal and DSDM
• FDD and LSD
• Extreme Programming
Alfonso, A. (2018). Learn The Scrum Ceremonies In This Stunningly Simple Guide.
Retrieved from, https://thedigitalprojectmanager.com/scrum-ceremonies-made-
simple/

Attkisson, A. (2020). What Is Agile Scrum Methodology? Retrieved from, https://


www.businessnewsdaily.com/4987-what-is-agile-scrum-methodology.html

Bentley, L. D. (2013). Systems Analysis and Design for the Global Enterprise. 7th Edition,
ISBN-13: 978-0071107662: Mc Graw-Hill Press

Cho, L. (2009). Adopting an Agile Culture A User Experience Team's Journey. Agile
Conference, pp. 416-421
Gangji, A., Hartman, B. (2015). Agile SCRUM for Denver Web Development.
Retrieved from, https://www.neonrain.com/agile-scrum-web-development

Guru (2020). Agile Methodology & Model: Guide for Software Development &
Testing. Retrieved from, https://www.guru99.com/ agile-scrum-extreme-
testing.html

Highsmith, J. (2001). History: The Agile Manifesto. Retrieved from, http://


agilemanifesto.org/history.html

Kent, B., Grenning, J., Martin, R. C., et. al. (2010). Principles Behind the Agile
Manifesto. Retrieved from, http://agilemanifesto.org/principles.html
McIntyre, J. (2016). MoSCoW or Kano Models - how do you prioritize?. Retrieved
from, https://www.hotpmo.com/management-models/moscow-kano-prioritize

Moran, A. (2014). Agile Risk Management. ISBN 978-3-319-05008-9: Springer


International Publishing

Mrsic, M. (2017). Crystal Methods. Retrieved from, https://activecollab.com/


blog/project-management/crystal-methods

Plonka, L., et al. (2014). “UX Design in Agile: A DSDM Case Study.” Agile Processes in
Software Engineering and Extreme Programming: Springer International Publishing.
Poppendieck, M., and Poppendieck, T. (2003). Lean Software Development: An Agile
Tool Kit. ISBN 978-0-321-15078-3: Addison-Wesley Professional Press

Pressman, R. S. and Maxim, B. R. (2020). Software Engineering – A Practitioner’s


Approach. 9th Edition, ISBN-13 9781259872976: Mc Graw-Hill Press

Schwanber, K. (2004). Agile Project Management with Scrum. ISBN 978-


0735619937: Microsoft Press

Sommerville, I. F. (2015). Software Engineering. 10th Edition, ISBN-13 978-


0133943030: Pearson Press
SOFTWARE ENGINEERING

Module 03
Chapter 02
Crystal method is an agile software
development approach that focuses
primarily on people and their interactions
when working on a project rather than on
processes and tools.
Developed by Alistair Cockburn, he
believed that the people’s skills and
talents as well as the way they
communicate has the biggest impact on
the outcome of the project.
• Teams can streamline their processes as their
work and become a more optimised team

• Projects are unique and dynamic and require


specific methods
1.Chartering

2.Cyclic Delivery

3.Wrap Up
Various activities involved in
this phase are creating a
development team, performing
a preliminary feasibility
analysis, developing an initial
plan and fine-tuning the
development methodology.
The main development phase consists of two or more
delivery cycles, during which the following occurs:

1. Team updates and refines the release plan


2. Implements a subset of the requirements through
one or more program test integrate iterations
3. Integrated product is delivered to real users
4. Review of the project plan and adopted
development methodology
The activities performed in
this phase are deployment
into the user environment,
post- deployment reviews
and reflections are
performed.
DSDM is a software development approach that
provides an agile project delivery framework. The
important aspect of DSDM is that the users are
required to be involved actively, and the teams are
given the power to make decisions. Frequent
delivery of product becomes the active focus with
DSDM.
Timeboxing: is the approach for completing the project
incrementally by breaking it down into splitting the project in
portions, each with a fixed budget and a delivery date. For
each portion a number of requirements are prioritised and
selected. Because time and budget are fixed, the only
remaining variables are the requirements. So if a project is
running out of time or money the requirements with the
lowest priority are omitted.
MoSCoW: is a prioritization technique used in
management, business analysis, project
management, and software development to reach a
common understanding with stakeholders on the
importance they place on the delivery of
each requirement. It is an acronym that stands for
Must have, Should have, Could have, and Won't
have.
Prototyping: refers to the creation of prototypes of
the system under development at an early stage of
the project. It enables the early discovery of
shortcomings in the system and allows future users
to test-drive the system. This way good user
involvement is realized, one of the key success
factors of DSDM, or any System Development
project for that matter.
1. Pre-project;
2. Feasibility Study;
3. Business Study;
4. Functional Model Iteration;
5. Design and build Iteration;
6. Implementation; and
7. Post-project.
Feature Driven Development methodology is
focused around designing and building features.
Unlike other agile methods, FDD describes very
specific and short phases of work that has to be
accomplished separately per feature. It includes
domain walkthrough, design inspection, promote to
build, code inspection and design.
1. Domain object Modeling
2. Development by feature
3. Component/ Class Ownership
4. Feature Teams
5. Inspections
6. Configuration Management
7. Regular Builds
8. Visibility of progress and results
It is a translation of lean manufacturing principles and
practices to the software development domain. Adapted
from the Toyota Production System, it is emerging with the
support of a pro-lean subculture within the Agile community
based on the principle "Just in time production".

It aims at increasing speed of software development and


decreasing cost. Lean offers a solid conceptual framework,
values and principles, as well as good practices, derived
from experience, that support agile organizations.
1. Eliminating Waste;
2. Amplifying learning;
3. Defer commitment;
4. Early delivery;
5. Empowering the team;
6. Building Integrity; and
7. Optimize the whole.
Eliminating Wastes: If some activity could be bypassed or the
result could be achieved without it, it is waste. Partially done coding
eventually abandoned during the development process is waste.
Extra features like paperwork and features not often used by
customers are waste.

Amplifying Learning: Software development is a continuous


learning process based on iterations when writing code. Software
design is a problem-solving process involving the developers writing
the code and what they have learned. Software value is measured in
fitness for use and not in conformance to requirements.
Defer Commitment: As software development is always
associated with some uncertainty, better results should be
achieved with a set-based or options-based approach, delaying
decisions as much as possible until they can be made based on
facts and not on uncertain assumptions and predictions.

Early Delivery: The sooner the end product is delivered without


major defects, the sooner feedback can be received, and
incorporated into the next iteration. In the era of rapid technology
evolution, it is not the biggest that survives, but the fastest.
Empowering the team: the managers are taught how to listen to
the developers, so they can explain better what actions might be
taken, as well as provide suggestions for improvements. The lean
approach follows the Agile Principle “build projects around
motivated individuals and trust them to get the job done”.

Building Integrity: The customer needs to have an overall


experience of the System with integrity on how it is being
advertised, delivered, deployed, accessed, how intuitive its use is,
its price and how well it solves problem
Optimize the whole: Defects in software tend to accumulate
during the development process by decomposing the big tasks
into smaller tasks, and by standardizing different stages of
development, the root causes of defects should be found and
eliminated. Modern software systems are not simply the sum of
their parts, but also the product of their interactions.

Lean thinking has to be understood well by all members of a


project, before implementing in a concrete, real-life situation.
“Think big, act small, fail fast; learn rapidly”.
Extreme Programming technique is very helpful when there is
constantly changing demands or requirements from the
customers or when they are not sure about the functionality of
the system.

It advocates frequent “releases” of the product in short


development cycles, which inherently improves the
productivity of the system and also introduces a checkpoint
where any customer requirements can be easily implemented.
The XP develops software keeping customer in the target.
Planning
• Identification of stakeholders and sponsors
• Infrastructure Requirements
• Security related information and gathering
• Service Level Agreements and its conditions
Analysis
• Capturing of Stories in “Parking lot”
• Prioritize stories in “Parking lot”
• Scrubbing of stories for estimation
• Define Time Iteration
• Resource planning for both Development and
QA teams
Design
• Break down of tasks
• Test Scenario preparation for each task
• Regression Automation Framework
Execution
• Coding
• Unit Testing
• Execution of Manual test scenarios
• Defect Report generation
• Conversion of Manual to Automation regression tests
• Mid Iteration review
• End of Iteration review
Wrapping
• Small Releases
• Regression Testing
• Demos and reviews
• Develop new stories based on the need
• Process Improvements based on end of
iteration review comments
Closure
• Pilot Launch
• Training
• Production Launch
• SLA Guarantee assurance
• Review SOA strategy
• Production Support
Story Cardboard: This is a traditional way of
collecting all the stories in a board in the form of stick
notes to track daily XP activities. As this manual
activity involves more effort and time, it is better to
switch to an online form.

Online Storyboard: Online tool Storyboard can be


used to store the stories. Several teams can use it for
different purposes.
McIntyre, J. (2016). MoSCoW or Kano Models - how do you prioritize?. Retrieved
from, https://www.hotpmo.com/management-models/moscow-kano-prioritize

Moran, A. (2014). Agile Risk Management. ISBN 978-3-319-05008-9: Springer


International Publishing

Mrsic, M. (2017). Crystal Methods. Retrieved from, https://activecollab.com/


blog/project-management/crystal-methods

Plonka, L., et al. (2014). “UX Design in Agile: A DSDM Case Study.” Agile Processes in
Software Engineering and Extreme Programming: Springer International Publishing.
Poppendieck, M., and Poppendieck, T. (2003). Lean Software Development: An Agile
Tool Kit. ISBN 978-0-321-15078-3: Addison-Wesley Professional Press

Pressman, R. S. and Maxim, B. R. (2020). Software Engineering – A Practitioner’s


Approach. 9th Edition, ISBN-13 9781259872976: Mc Graw-Hill Press

Schwanber, K. (2004). Agile Project Management with Scrum. ISBN 978-


0735619937: Microsoft Press

Sommerville, I. F. (2015). Software Engineering. 10th Edition, ISBN-13 978-


0133943030: Pearson Press
SOFTWARE ENGINEERING

Module 03
Chapter 01
The methodology comprises various approaches to software
development under which requirements and solutions evolve
through the collaborative effort of self-organizing and cross-
functional teams and their customer(s)/end user(s).

It advocates adaptive planning, evolutionary development,


early delivery, and continual improvement, and it encourages
rapid and flexible response to change. Scrum is a type of
methodology under Agile.
• Individuals and Interactions over processes and tools

• Working Software over comprehensive documentation

• Customer Collaboration over contract negotiation

• Responding to Change over following a plan


• Tools and processes are important, but it is more
important to have competent people working
together effectively.

• Good documentation is useful in helping people


to understand how the software is built and how
to use it, but the main point of development is to
create software, not documentation.
• A contract is important but is no substitute for
working closely with customers to discover what
they need.

• A project plan is important, but it must not be too


rigid to accommodate changes in technology or the
environment, stakeholders’ priorities, and people's
understanding of the problem and its solution.
• Customer satisfaction by early and continuous
delivery of valuable software.
• Welcome changing requirements, even in late
development.
• Deliver working software frequently (weeks
rather than months)
• Close, daily cooperation between business
people and developers
• Projects are built around motivated individuals,
who should be trusted
• Face-to-face conversation is the best form of
communication (co-location)
• Working software is the primary measure of
progress
• Sustainable development, able to maintain a
constant pace
• Continuous attention to technical excellence and
good design
• Simplicity—the art of maximizing the amount of
work not done—is essential
• Best architectures, requirements, and designs
emerge from self-organizing teams
• Regularly, the team reflects on how to become
more effective, and adjusts accordingly
Agile breaks product development work into small increments
that minimize the amount of up-front planning and design. At
the end of an iteration a working product is demonstrated to
stakeholders to minimize overall risk and allows the product
to adapt to changes quickly. It involves in all functions,
namely:
• Planning;
• Analysis;
• Design;
• Coding; and
• Testing.
Agile Model Waterfall Model

•Agile method proposes incremental and •Development of the software flows


iterative approach to software design. sequentially from start point to end
point.
•The agile process is broken into individual •The design process is not broken into
models that designers work on. an individual models.

•The customer has early and frequent •The customer can only see the product
opportunities to look at the product and at the end of the project.
make decision and changes to the project.
Agile Model Waterfall Model

•Agile model is considered unstructured •Waterfall model are more secure


compared to the waterfall model. because they are so plan oriented.

•Small projects can be implemented very •All sorts of project can be estimated and
quickly. For large projects, it is difficult to completed.
estimate the development time.
•Error can be fixed in the middle of the •Only at the end, the whole product is
project. tested. If the requirement error is found
or any changes have to be made, the
project has to start from the beginning.
Agile Model Waterfall Model
•Development process is iterative, and the •The development process is phased, and
project is executed in short (2-4) weeks the phase is much bigger than iteration.
iterations. Planning is very less. Every phase ends with the detailed
description of the next phase.
•Documentation attends less priority than •Documentation is a top priority and can
software development even use for training staff and upgrade the
software with another team
•Every iteration has its own testing phase. It •Only after the development phase, the
allows implementing regression testing every testing phase is executed because separate
time new functions or logic are released. parts are not fully functional.
Agile Model Waterfall Model
•In agile testing when an iteration end, •All features developed are delivered at once
shippable features of the product is delivered to after the long implementation phase.
the customer. New features are usable right
after shipment.

•Testers and developers work together. At the •Testers work separately from developers.
end of every sprint, user acceptance is User acceptance is performed at the end of
performed. the project.
•It requires close communication with •Developer does not involve in requirement
developers and together analyze requirements and planning process. Usually, time delays
and planning. between tests and coding.
Throughout the years, a number of agile methodologies
have been developed and used by various projects.
Scrum, being among them, share much of the same
philosophy, as well as many of the same characteristics
and practices.

However, from an implementation standpoint, each has


its own recipe of practices, terminology, and tactics. The
approach varies in its project management.
Scrum is an agile process framework for managing
complex knowledge work, with an initial emphasis
on software development, research and advanced
technologies.

It is designed for teams of ten or fewer members, who


break their work into goals that can be completed within
timeboxed iterations, called sprints in no longer than a
month and most commonly two (2) weeks, then track
progress and re-plan in 15-minute time-boxed daily
meetings, called daily scrums.
While project management methods emphasize building an
entire product in one iteration from start to finish, agile scrum
methodology focuses on delivering several iterations of a
product to provide stakeholders with the highest business value
in the least amount of time.

It encourages products to be built faster, since each set of goals


must be completed within each sprint's time frame. It also
requires frequent planning and goal setting, which helps the
scrum team focus on the current sprint's objectives and increase
productivity.
• Flexibility and adaptability
• Creativity and innovation
• Lower costs
• Quality improvement
• Organizational synergy
• Employee satisfaction
• Customer satisfaction
1.Scrum Master

2.Product Owner

3.Scrum Development
Team
The scrum master is the facilitator of the scrum development
process. In addition to holding daily meetings with the scrum
team, the scrum master makes certain that scrum rules are
being enforced and applied as intended.

The scrum master's responsibilities also include coaching


and motivating the team, removing impediments to sprints,
and ensuring that the team has the best possible conditions
to meet its goals and produce deliverable products.
They represents stakeholders, which are typically customers.
To ensure the team is always delivering value to stakeholders
and the business, the product owner determines product
expectations, records changes and administers a scrum
backlog, a detailed and constantly updated to-do list for the
scrum project.

The product owner is also responsible for prioritizing goals for


each sprint, based on their value to stakeholders, such that
the most important and deliverable features are built in each
iteration.
The scrum team is a self-organized group of three to
ten individuals who have the business, design,
analytical and development skills to carry out the
actual work, solve problems and produce deliverable
products.

Members of the scrum team self-administer tasks and


are jointly responsible for meeting each sprint's goals
while being monitored by the Scrum Master
1. Sprint
2. Sprint Planning
3. Daily Scrum
4. Sprint Review
5. Sprint Retrospective
6. Backlog Refinement
A sprint (or timebox) is the basic unit of development in
Scrum. The sprint is a timeboxed effort with the length
agreed and fixed in advance for each sprint and is normally
between one week and one month, with two weeks being
the most common. Each sprint starts with a sprint
planning event that establishes a sprint goal and the
required product backlog items. The team accepts what they
agree is ready and translate this into a sprint backlog, with a
breakdown of the work required and an estimated forecast
for the sprint goal.
• Mutual discussion and agree on the scope of work
• Select product backlogs that can be completed in one sprint
• Prepare a sprint backlog that includes the work needed to be
completed
• Agree on a sprint goal, a short description of what they are
forecasting to deliver at the end of the sprint.
• Maintain the four (4) hours duration for a 2-week sprint
• From the prepared sprint backlog, development team
forecast (usually by voting) which tasks will be delivered
within the sprint
• Each day during a sprint, the team holds a daily scrum
with specific guidelines. All members of the
development team come prepared. The daily scrum:
• starts precisely on time even if some development team
members are missing
• should happen at the same time and place every day
• is limited (timeboxed) to fifteen minutes
• Anyone is welcome, though only development team
members should contribute.
During the daily scrum, each team member
typically answers three questions:
1. What did I complete yesterday that contributed to the
team meeting our sprint goal?
2. What do I plan to complete today to contribute to the
team meeting our sprint goal?
3. Do I see any impediment that could prevent me or the
team from meeting our sprint goal?
At the sprint review, the team:
• reviews the work that was completed and the planned
work that was not completed
• presents the completed work to the stakeholders
• collaborates with the stakeholders on what to work on next
Guidelines for sprint reviews:
• Incomplete work cannot be demonstrated.
• The recommended duration is two hours for a two-week
sprint (proportional for other sprint-durations)
At the sprint retrospective, the team:
• Reflects on the past sprint
• Identifies and agrees on continuous process improvement actions

Guidelines for sprint retrospectives:


• Three main questions are asked in the sprint retrospective: What went
well during the sprint? What did not go well? What could be improved
for better productivity in the next sprint?
• The recommended duration is one-and-a-half hours for a two-week
sprint (proportional for other sprint duration(s))
• The event is facilitated by the scrum master
Backlog refinement (formerly called grooming) is the
ongoing process of reviewing product backlog items and
checking that they are appropriately prepared and ordered
in a way that makes them clear and executable for teams
once they enter sprints via the sprint planning activity.

Product backlog items may be broken into multiple smaller


ones. Acceptance criteria may be clarified. Dependencies
may be identified and investigated.
Alfonso, A. (2018). Learn The Scrum Ceremonies In This Stunningly Simple Guide.
Retrieved from, https://thedigitalprojectmanager.com/scrum-ceremonies-made-
simple/

Attkisson, A. (2020). What Is Agile Scrum Methodology? Retrieved from, https://


www.businessnewsdaily.com/4987-what-is-agile-scrum-methodology.html

Bentley, L. D. (2013). Systems Analysis and Design for the Global Enterprise. 7th Edition,
ISBN-13: 978-0071107662: Mc Graw-Hill Press

Cho, L. (2009). Adopting an Agile Culture A User Experience Team's Journey. Agile
Conference, pp. 416-421
Gangji, A., Hartman, B. (2015). Agile SCRUM for Denver Web Development. Retrieved
from, https://www.neonrain.com/agile-scrum-web-development

Guru (2020). Agile Methodology & Model: Guide for Software Development & Testing.
Retrieved from, https://www.guru99.com/ agile-scrum-extreme-testing.html

Highsmith, J. (2001). History: The Agile Manifesto. Retrieved from, http://


agilemanifesto.org/history.html

Kent, B., Grenning, J., Martin, R. C., et. al. (2010). Principles Behind the Agile Manifesto.
Retrieved from, http://agilemanifesto.org/principles.html
SOFTWARE ENGINEERING
Lesson 01
A project is a temporary endeavor designed to produce a
unique product or service with a defined beginning and end
(usually time-constrained, and often constrained by funding
or staffing) undertaken to meet unique goals and objectives,
to bring about beneficial change or added value.

It is an activity to meet the creation of a unique product or


service and thus activities that are undertaken to accomplish
routine activities cannot be considered projects.
• Schools and Universities

• Civil and Industry (Private)

• Military and State (Government)

• Computer Software (IT-based)


Project management is the practice of initiating, planning,
executing, controlling, and closing the work of a team to
achieve specific goals and meet specific success criteria
at the specified time.

The primary challenge of project management is to


achieve all of the project goals within the given
constraints. This is usually described in project
documentation, created at the beginning of the
development process.
A professional in the field of project management, in-charge
of people and responsibilities such as planning, execution,
controlling, and closing of any project.

A project manager needs to understand the order of


execution of a project to schedule the project correctly as well
as the time necessary to accomplish each individual task
within the project. They are the people accountable for
accomplishing the stated project objectives.
Project Management is not a tool or a person,
it’s a practice.”
As a discipline, project management developed from
several fields of application including civil construction,
engineering, and heavy defense activity.
Two forefathers of project management are Henry Gantt,
called the father of planning and control
techniques, famous for his use of the ”Gantt Chart”
and Henri Fayol for his creation of the five management
functions that form the foundation of the body of knowledge
associated with project and program management
Gantt Chart created using Microsoft Project with the red marks indicating the
critical path or the longest stretch of the project
The 1950s marked the beginning of the modern project
management era where core engineering fields come
together to work as one. Project management became
recognized as a distinct discipline arising from the
management discipline with engineering mode.

At that time, two mathematical project-scheduling models


were developed, the “Critical Path Method" (CPM) and the
“Program/Project Evaluation and Review Technique"
(PERT).
A PERT chart is a project management tool used to
schedule, organize, and coordinate tasks within a
project.

It is basically a method to analyze the tasks involved


in completing a given project, especially the time
needed to complete each task, and to identify the
minimum time needed to complete the total project.
Project management methods can be applied to any
project. It is often customized to a specific type of project
based on size, nature and industry.

For example, the construction industry, which focuses on


the delivery of things like buildings, roads, and bridges,
has developed its own specialized form of project
management that it refers to as construction project
management and in which project managers can become
trained and/or certified.
Plan: The planning and forecasting activities.

Process: The overall approach to all activities and project


governance.

People: Including dynamics of how they collaborate and


communicate.

Power: Lines of authority, decision-makers, organograms,


policies for implementation and the like.
• Integration • Procurement
• Scope • Human resources
• Time • Communications
• Cost • Risk management
• Quality • Stakeholder management
• Initiation;
• Planning and design;
• Execution;
• Monitoring and
Controlling;
• Closing or Completion.
The initiating processes determine the nature and scope of
the project. If this stage is not performed well, it is unlikely
that the project will be successful in meeting the business’
needs.

The key project controls needed here are an understanding


of the business environment and making sure that all
necessary controls are incorporated into the project. Any
deficiencies should be reported and a recommendation
should be made to fix them.
After the initialization, the project is planned to an
appropriate level of detail. The main purpose is to plan
time, cost and resources adequately to estimate the work
needed and to effectively manage risk during project
execution.

As with the initiation process group, a failure to


adequately plan greatly reduces the project's chances of
successfully accomplishing its goals.
While executing, one must know what are the planned
terms to be executed. The implementation phase
ensures that the project management plan's
deliverables are executed accordingly.

This phase involves proper allocation, co-ordination


and management of human resources and any other
resources such as material and budget. The output of
this phase are the project deliverables.
Monitoring and controlling consists of those processes
performed to observe project execution so that potential
problems can be identified in a timely manner and
corrective action can be taken, when necessary, to
control the execution of the project.

The key benefit is that project performance is observed


and measured regularly to identify variances from the
project management plan.
Closing includes the formal acceptance and ending of
the project. Administrative activities include the archiving
of the files and documentation. This phase consists of:

• Contract closure: Complete and settle each contract


(including the resolution of any open items) and close
each contract applicable to the project or phase.

• Project close: Finalize all activities across all of the


process groups to formally close the project or phase.
Documenting everything within a project is key to being
successful. To maintain budget, scope, effectiveness and
pace a project must have physical documents pertaining
to each specific task.

With correct documentation, it is easy to see whether or


not a project's requirement has been met. To go along
with that, documentation provides information regarding
what has already been completed for that project.
Documentation throughout a project provides a
documented trail for anyone who needs to go back and
reference the work in the past. In most cases,
documentation is the most successful way to monitor
and control the specific phases of a project.

With the correct documentation, a project's success can


be tracked and observed as it goes on. If performed
correctly, it can be the backbone to a project's success.
• Projects should always have a specific start
and end dates;
• They are performed and completed by a group
of people working as one;
• The output should deliver a working/unique
product or service;
• They are temporary in nature; and
• They are progressively elaborated.
Project Tracking and Control – assess the progress of the
project plan.

Risk Management – assess risks that may affect the product


outcome.

Quality Assurance – conduct activities to ensure product quality.

Technical Review – assess the work product to identify errors


beforehand.
Measurement – defines and collects process to deliver and meet the
needs of the stakeholders.

Configuration Management – manages the effects of changes in the


software process.

Reusability Management – defines criteria to establish mechanisms


for reusable components.

Work Product Preparation and Production – it encompasses activities


required to create work products such as models or documentation.
Lesson 02
Computer science graduates have some of the highest
starting salaries out there and are in such high demand
that they can afford to be picky about the type of job and
industry they opt for.

If you are interested in pursuing a career in computer


science, it’s important to stay up to date with the latest
trends in computer science research, to make an
informed choice about where to head next.
• Artificial intelligence and robotics
• Big data analytics
• Computer-assisted education
• Bioinformatics
• Cyber security
Artificial intelligence (AI) is one of the most controversial
and intriguing areas of computer science research. The
technology is still in its early stages, but tech giants like
Facebook, Google and IBM are investing huge amounts
of money and resources into AI research.

There’s certainly no shortage of opportunities to develop


real-world applications of the technology, and there’s
immense scope for break-through moments in this field.
• The Lottery Ticket Hypothesis: Finding Sparse, Trainable
Neural Networks

• Challenging Common Assumptions in the Unsupervised


Learning of Disentangled Representations

• Meta-Learning Update Rules for Unsupervised


Representation Learning
There has been a surge in demand for experts in this
field and doubled efforts on the part of brands and
agencies to boost salaries and attract data science
talents.

From banking to healthcare, big data analytics is


everywhere, as companies increasingly attempt to
make better use of the enormous datasets they have, in
order to personalize and improve their services.
• An integrated parallel big data decision support tool using the
W-CLUS-MCDA: A multi-scenario personnel assessment

• Effect of E-customization Capability on Financial Performance


of Commercial Banks in Kenya

• Interaction of East Bay Area Voters with California Death


Penalty Ballot Initiatives: a Study

• Command Decision: Ethical Leadership In The Information


Environment
The use of computers and software to assist education
and/or training, computer-assisted education brings many
benefits and has many uses. For students with learning
disabilities, for instance, it can provide personalized
instruction and enable students to learn at their own pace,
freeing the teacher to devote more time to each individual.

The field is still growing but promising, with many educators


praising its ability to allow students to engage in active,
independent and play-based learning.
• Qualitative case studies of innovative pedagogical practices using
ICT

• What strategies are effective for formative assessment in an e-


learning environment?

• Web-based Assessment and Test Analyses (WATA) system:


development and evaluation

• Computer-Assisted Learning in Orthodontic Education: A


Systematic Review and Meta-Analysis
An application of big data, bioinformatics, or the use of
programming and software development to build
enormous datasets of biological information carries
enormous potential.

For example, linking big pharmaceutical companies with


software companies, bioinformatics offers good job
prospects for computer science researchers and
graduates interested in biology, medical technology,
pharmaceuticals and computer information science.
• A Survey for Escherichia coli Virulence Factors in
Asymptomatic Free-Ranging Parrots

• Immunoreactivity of the 14F7 Mab Raised against N-Glycolyl


GM3 Ganglioside in Epithelial Malignant Tumors from Digestive
System

• Investigating the effects of external fields polarization on the


coupling of pure magnetic waves in the human body in very low
frequencies
We live in a hyper-connected world, in which
absolutely everything – from banking to dating to
governmental infrastructure – is done online.

In today’s world, data protection is no longer


optional, for either individuals or nations, making
this another growing strand of computer science
research.
• Intelligence Gathering And Social Media-Based
Sentiment Correlation

• High Accuracy Phishing Detection Based on


Convolutional Neural Networks

• Understanding Security Policies in the Cyber


Warfare Domain Through System Dynamics
Lesson 03
Analysis is defined as "the procedure by which we break
down an intellectual or substantial whole into parts," while
synthesis means "the procedure by which we combine
separate elements or components in order to form a
coherent whole.“ System analysis researchers
apply methodology to the systems involved, forming an
overall picture.
It is the process of studying a procedure or business in
order to identify its goals and purposes and
create systems and procedures that will achieve them in
an efficient way.

It is also a problem-solving technique that breaks down a


system into its component pieces for the purpose of the
studying how well those component parts work and
interact to accomplish their purpose.
The analysis phase involves gathering requirements for the
system. At this stage, business needs are studied with the
intention of making business processes more efficient.

The system analysis phase focuses on what the system


will do in an effort that views all stakeholders, as viable
sources of information. In the analysis phase, a significant
amount of time is spent talking with stakeholders and
reviewing the stakeholder’s input
1. Scope Definition: Clearly defined objectives and
requirements necessary to meet a project's
requirements as defined by its stakeholders

2. Problem analysis: the process of understanding


problems and needs and arriving at solutions that
meet them

3. Requirements analysis: determining the conditions


that need to be met
4. Logical design: looking at the logical
relationship among the objects

5. Decision analysis: making a final decision


• Project Management

• CS Research Areas

• System Analysis
Cleland, D. I. (2006). Global Project Management Handbook. ISBN 0-07-146045-4: Mc
Graw-Hill Professional

Frot, M. (2019). 5 Trends in Computer Science Research. Retrieved from, https://


www.topuniversities.com/courses/computer-science-information-systems/5-trends-
computer-science-research

Juneja, P. (2019). What is a Project? Retrieved from, https://


www.managementstudyguide.com/what-is-project.htm

Mesly, O. (2017). Project Feasibility: Tools for Uncovering Points of Vulnerability. ISBN
978-1498757911: CRC Press, NY
Philips, J. (2018). PMP Project Management Professional Study Guide. 5th
Edition, ISBN-13 978-1259861987: Mc Graw-Hill

Pressman, R. S. and Maxim, B. R. (2020). Software Engineering – A Practitioner’s


Approach. 9th Edition, ISBN-13 9781259872976: Mc Graw-Hill Press

PMI (2017). A Guide to the Project Management Body of Knowledge. 6th Edition, ISBN-
978-1628251845: Project Management Institute

Sebastian, N. (2008). The Definitive Guide to Project Management: The Fast Track to
Getting the Job Done on Time and on Budget. 2nd Edition, ISBN-13 978-0273710974: FT
Press
Sommerville, I. F. (2015). Software Engineering. 10th Edition, ISBN-13 978-0133943030:
Pearson Press

Singh, A. (2019). What Is Rapid Application Development (RAD)? Retrieved from,


https://blog.capterra.com/what-is-rapid-application-development/

Stiner, S. (2016). Rapid Application Development (RAD): A Smart, Quick And Valuable
Process For Software Developers. Retrieved from, https://www.forbes.com/
sites/forbestechcouncil/2016/08/24/rapid-application-development-rad-a-smart-quick-
and-valuable-process-for-software-developers/#232e0d6719e8

Zuhairah, A. A. G. (2015). Rapid Application Development. Retrieved from, https://


www.researchgate.net/figure/Rapid-Application-Development-RAD_fig1_316546533
Systems Analysis

Analysis is a term that could simply be defined as a careful study of things, data or information.
Understanding the structure of a specific object or information also describes the term. Analysis comes into
infinite amount of ways on how it is done, depending on the person who conducts such action or routine.

The terms analysis and synthesis come from classical Greek where they mean respectively “to take apart” and
“to put together”. In general, analysis is defined as the procedure by which we break down an intellectual or
substantial whole into parts or components. Synthesis is defined as the opposite procedure: to combine
separate elements or components in order to form a coherent whole.

System Analysis is the understanding of the overall structure of a certain system, clearly defining all details,
how it works, the functions and relations and all things necessary in order for the entire system to work. It is
an interdisciplinary part of science, dealing with analysis of sets of interacting or entities, the systems, often
prior to their automation as computer systems, and the interactions within those systems.

This field is closely related to operations research. It is also an explicit formal inquiry carried out to help
someone, referred to as the decision maker, identify a better course of action and make a better decision than
he might otherwise have made.

System Analysis Procedure

The development of a computer-based information system often comprises the use of a systems analyst.
When a computer-based information system is developed, systems analysis (according to the Waterfall model)
would constitute the following steps:

 The development of a feasibility study, involves determining whether a project is economically,


socially, technologically and organizationally feasible.

 Conducting fact-finding measures, designed to ascertain the requirements of the system’s end-users.
These typically span interviews, questionnaires, or visual observations of work on the existing system.

 Gauging how the end-users would operate the system (in terms of general experience in using
computer hardware/software), what the system would be used for.

Advantages of Systems Analysis

1. Greater Efficiency – improves development and maintenance of an organizational structure.


2. Maximizing Profits – operation efficiency will generate systematic procedures.
3. Resources for best advantage – outputs a high-quality system in least investment of time, materials
and other resources.
4. Reduction of Human effort – encourages the best utilization and allocation of human effort and
labor with the use of system automation.
5. Faster turnaround – organized procedures will makes operations faster to reach the goal faster but
effective way.
6. Reducing or eliminating errors – increase accuracy and precision of data generation.
7. Operation Consistency – synchronization of procedures with standard rules or format.
Limitations of System Analysis

1. Beyond scope problems – such as heavy financial problems, manpower limits is way beyond a system
analyst’s area.
2. Long-term permanent solutions – swift change of technology in a day-by-day basis needs further
extended studies that sometimes may require a long period of time.
3. Human elements – as mentioned, human causing conflicts is not covered.
4. Encouragement – no matter how promising a system can be, if it can’t be sold or be convinced to be
bought, it will be useless. Systems, in reality can’t sell themselves.

The Systems Analyst

A systems analyst is responsible for researching, planning, coordinating and recommending software and
system choices to meet an organization’s business requirements. The systems analyst plays a vital role in the
systems development process.

Systems analysts use their knowledge and skills to solve computer problems and enable computer or
information technology to meet the individual needs of an organization. They study business, scientific, or
engineering data processing problems and design new solutions using computers. This process may include
planning and developing new computer systems or devising ways to apply existing systems’ resources to
additional operations. They may design entirely new systems, including both hardware and software, or add a
single new software application to harness more of the computer's power. They work to help an organization
realize the maximum benefit from its investment in equipment, personnel, and business processes.

Most systems analysts generally work with a specific type of system depending on the type of organization
they work for example, business, accounting or financial systems, or scientific and engineering systems.
Companies generally seek business systems analysts who specialize in the type of systems they use.

Characteristics of a System Analyst

1. Systems analysts must be able to think logically and have good communication skills.
2. Systems analysts can deal with a number of tasks simultaneously.
3. System analysts have the ability to concentrate and pay close attention to detail is important.
4. Although many computer specialists sometimes work independently, system analysts often work in
teams on large projects.
5. System analysts must be able to communicate effectively with computer personnel, such as
programmers and managers, as well as with users or other staff who may have no technical computer
background.

Required Skills of a System Analyst

1. Analytical skills enable systems analysts to understand the organization and its functions, which helps
him/her to identify opportunities and to analyze and solve problems.
2. Technical skills help systems analysts understand the potential and the limitations of information
technology. The systems analyst must be able to work with various programming languages,
operating systems, and computer hardware platforms.
3. Management skills help systems analysts manage projects, resources, risk, and change.
4. Interpersonal skills help systems analysts work with end users as well as with analysts, programmers,
and other systems professionals.
Tasks of a System Analyst

1. Interact with the customers to know their requirements


2. Interact with designers to convey the possible interface of the software
3. Interact/guide the coders/developers to keep track of system development
4. Perform system testing with sample/live data with the help of testers
5. Implement the new system
6. Prepare high quality documentation

Duties and responsibilities of a System Analyst

1. Project management – they are expected to facilitate, coordinate and supervise installation
procedures of projects.
2. Forecasting and simulation – they should be able to predict financial and economical trends.
3. Sales and marketing – they are to supply information and research data for decision makers.
4. Plan organized information flow – they are to specify what data must be collected, in what form and
how it will be processed and reported to the management.
5. Modifying or redesign existing business system – they are to propose changes and improvements on
a data flow of a business.
6. Systems implementation – a designed system must be directed and orderly implemented by system
analysts.
7. Computer programming and utilization – they are to indicate what type of computer program to use
or needed. They are to monitor their development and test it.
8. Database design – they specify what information will be included in a database and plan its layout.
9. Forms design and management – they are to plan and design forms, documents and records.
10. Establish system policies and procedures – they write policy manuals and define routines and
methods for handling information flow.
11. Employment and training – they are involved in specifying personnel needs and describe training
programs and procedure.
12. Work measurement – they record data on the output of various personnel. This allows them to
compare, analyze and report their productivity.
13. Work simplification – they develop easier, faster, more accurate and improved methods of
processing information.
14. Office layout – they are involved in planning the office environment. They indicate number of
workstations, locations and equipment for each.
15. Selection and specification – they spend much time in comparing and selecting hardware and
machines that are necessary for information or data flow.
16. Planning and designing internal and external communications – it is an important responsibility of a
system analyst. This includes type of communication lines and data lines.

Systems Analyst’s Procedure

Though procedures varies depending on the system analyst, most of them follow a linear in path in which
they were able to analyze, find the problem, suggests solutions and designs a new system. The following is a
common procedure:

1. Analysts begin an assignment by discussing the systems problem with managers and users to
determine its exact nature. Much time is devoted to clearly defining the goals of the system and
understanding the individual steps used to achieve them so that the problem can be broken down
into separate programmable procedures.
2. Analysts then use techniques such as structured analysis, data modeling, information engineering,
mathematical model building, sampling, and cost accounting to plan the system. Analysts must
specify the inputs to be accessed by the system, design the processing steps, and format the output to
meet the users' needs. Once the design has been developed, systems analysts prepare charts and
diagrams that describe it in terms that managers and other users can understand.

3. They prepare cost-benefit and return-on-investment analyses to help management decide whether
implementing the proposed system will be financially feasible.

4. After planning a system, analysts test it to make sure it works. They check to make sure that
information is processed quickly and without mistakes. They also watch to see if the system is easy to
use. Often, they have to change their plans to make the systems better.

5. When a system is accepted, analysts determine what computer hardware and software will be needed
to set it up. They coordinate tests and observe initial use of the system to ensure it performs as
planned. They prepare specifications, work diagrams, and structure charts for computer
programmers to follow and then work with them to “debug”, or eliminate errors from the system.
SOFTWARE ENGINEERING

Module 02
Chapter 02
Analysis is defined as "the procedure by which we break
down an intellectual or substantial whole into parts," while
synthesis means "the procedure by which we combine
separate elements or components in order to form a
coherent whole.“ System analysis researchers
apply methodology to the systems involved, forming an
overall picture.
It is the process of studying a procedure or business in
order to identify its goals and purposes and
create systems and procedures that will achieve them in
an efficient way.

It is also a problem-solving technique that breaks down a


system into its component pieces for the purpose of the
studying how well those component parts work and
interact to accomplish their purpose.
The analysis phase involves gathering requirements for the
system. At this stage, business needs are studied with the
intention of making business processes more efficient.

The system analysis phase focuses on what the system


will do in an effort that views all stakeholders, as viable
sources of information. In the analysis phase, a significant
amount of time is spent talking with stakeholders and
reviewing the stakeholder’s input
1. Scope Definition: Clearly defined objectives and
requirements necessary to meet a project's
requirements as defined by its stakeholders

2. Problem analysis: the process of understanding


problems and needs and arriving at solutions that
meet them

3. Requirements analysis: determining the conditions


that need to be met
4. Logical design: looking at the logical
relationship among the objects

5. Decision analysis: making a final decision


Computer science graduates have some of the highest
starting salaries out there and are in such high demand
that they can afford to be picky about the type of job and
industry they opt for.

If you are interested in pursuing a career in computer


science, it’s important to stay up to date with the latest
trends in computer science research, to make an
informed choice about where to head next.
• Artificial intelligence and robotics
• Big data analytics
• Computer-assisted education
• Bioinformatics
• Cyber security
Artificial intelligence (AI) is one of the most controversial
and intriguing areas of computer science research. The
technology is still in its early stages, but tech giants like
Facebook, Google and IBM are investing huge amounts
of money and resources into AI research.

There’s certainly no shortage of opportunities to develop


real-world applications of the technology, and there’s
immense scope for break-through moments in this field.
• The Lottery Ticket Hypothesis: Finding Sparse, Trainable
Neural Networks

• Challenging Common Assumptions in the Unsupervised


Learning of Disentangled Representations

• Meta-Learning Update Rules for Unsupervised


Representation Learning
There has been a surge in demand for experts in this
field and doubled efforts on the part of brands and
agencies to boost salaries and attract data science
talents.

From banking to healthcare, big data analytics is


everywhere, as companies increasingly attempt to
make better use of the enormous datasets they have, in
order to personalize and improve their services.
• An integrated parallel big data decision support tool using the
W-CLUS-MCDA: A multi-scenario personnel assessment

• Effect of E-customization Capability on Financial Performance


of Commercial Banks in Kenya

• Interaction of East Bay Area Voters with California Death


Penalty Ballot Initiatives: a Study

• Command Decision: Ethical Leadership In The Information


Environment
The use of computers and software to assist education
and/or training, computer-assisted education brings many
benefits and has many uses. For students with learning
disabilities, for instance, it can provide personalized
instruction and enable students to learn at their own pace,
freeing the teacher to devote more time to each individual.

The field is still growing but promising, with many educators


praising its ability to allow students to engage in active,
independent and play-based learning.
• Qualitative case studies of innovative pedagogical practices using
ICT

• What strategies are effective for formative assessment in an e-


learning environment?

• Web-based Assessment and Test Analyses (WATA) system:


development and evaluation

• Computer-Assisted Learning in Orthodontic Education: A


Systematic Review and Meta-Analysis
An application of big data, bioinformatics, or the use of
programming and software development to build
enormous datasets of biological information carries
enormous potential.

For example, linking big pharmaceutical companies with


software companies, bioinformatics offers good job
prospects for computer science researchers and
graduates interested in biology, medical technology,
pharmaceuticals and computer information science.
• A Survey for Escherichia coli Virulence Factors in
Asymptomatic Free-Ranging Parrots

• Immunoreactivity of the 14F7 Mab Raised against N-Glycolyl


GM3 Ganglioside in Epithelial Malignant Tumors from Digestive
System

• Investigating the effects of external fields polarization on the


coupling of pure magnetic waves in the human body in very low
frequencies
We live in a hyper-connected world, in which
absolutely everything – from banking to dating to
governmental infrastructure – is done online.

In today’s world, data protection is no longer


optional, for either individuals or nations, making
this another growing strand of computer science
research.
• Intelligence Gathering And Social Media-Based
Sentiment Correlation

• High Accuracy Phishing Detection Based on


Convolutional Neural Networks

• Understanding Security Policies in the Cyber


Warfare Domain Through System Dynamics
Frot, M. (2019). 5 Trends in Computer Science Research. Retrieved from, https://
www.topuniversities.com/courses/computer-science-information-systems/5-trends-
computer-science-research

Pressman, R. S. and Maxim, B. R. (2020). Software Engineering – A Practitioner’s


Approach. 9th Edition, ISBN-13 9781259872976: Mc Graw-Hill Press

Sommerville, I. F. (2015). Software Engineering. 10th Edition, ISBN-13 978-0133943030:


Pearson Press
SOFTWARE ENGINEERING

Module 02
Chapter 01
A project is a temporary endeavor designed to produce a
unique product or service with a defined beginning and end
(usually time-constrained, and often constrained by funding
or staffing) undertaken to meet unique goals and objectives,
to bring about beneficial change or added value.

It is an activity to meet the creation of a unique product or


service and thus activities that are undertaken to accomplish
routine activities cannot be considered projects.
• Schools and Universities

• Civil and Industry (Private)

• Military and State (Government)

• Computer Software (IT-based)


Project management is the practice of initiating, planning,
executing, controlling, and closing the work of a team to
achieve specific goals and meet specific success criteria
at the specified time.

The primary challenge of project management is to


achieve all of the project goals within the given
constraints. This is usually described in project
documentation, created at the beginning of the
development process.
A professional in the field of project management, in-charge
of people and responsibilities such as planning, execution,
controlling, and closing of any project.

A project manager needs to understand the order of


execution of a project to schedule the project correctly as well
as the time necessary to accomplish each individual task
within the project. They are the people accountable for
accomplishing the stated project objectives.
Project Management is not a tool or a person,
it’s a practice.”
As a discipline, project management developed from
several fields of application including civil construction,
engineering, and heavy defense activity.

Two forefathers of project management are Henry Gantt,


called the father of planning and control
techniques, famous for his use of the ”Gantt Chart”
and Henri Fayol for his creation of the five management
functions that form the foundation of the body of knowledge
associated with project and program management
Gantt Chart created using Microsoft Project with the red marks indicating the
critical path or the longest stretch of the project
The 1950s marked the beginning of the modern project
management era where core engineering fields come
together to work as one. Project management became
recognized as a distinct discipline arising from the
management discipline with engineering mode.

At that time, two mathematical project-scheduling models


were developed, the “Critical Path Method" (CPM) and the
“Program/Project Evaluation and Review Technique"
(PERT).
A PERT chart is a project management tool used to
schedule, organize, and coordinate tasks within a
project.

It is basically a method to analyze the tasks involved


in completing a given project, especially the time
needed to complete each task, and to identify the
minimum time needed to complete the total project.
Project management methods can be applied to any
project. It is often customized to a specific type of project
based on size, nature and industry.

For example, the construction industry, which focuses on


the delivery of things like buildings, roads, and bridges,
has developed its own specialized form of project
management that it refers to as construction project
management and in which project managers can become
trained and/or certified.
Plan: The planning and forecasting activities.

Process: The overall approach to all activities and project


governance.

People: Including dynamics of how they collaborate and


communicate.

Power: Lines of authority, decision-makers, organograms,


policies for implementation and the like.
• Integration • Procurement
• Scope • Human resources
• Time • Communications
• Cost • Risk management
• Quality • Stakeholder management
• Initiation;
• Planning and design;
• Execution;
• Monitoring and
Controlling;
• Closing or Completion.
The initiating processes determine the nature and scope of
the project. If this stage is not performed well, it is unlikely
that the project will be successful in meeting the business’
needs.

The key project controls needed here are an understanding


of the business environment and making sure that all
necessary controls are incorporated into the project. Any
deficiencies should be reported and a recommendation
should be made to fix them.
After the initialization, the project is planned to an
appropriate level of detail. The main purpose is to plan
time, cost and resources adequately to estimate the work
needed and to effectively manage risk during project
execution.

As with the initiation process group, a failure to


adequately plan greatly reduces the project's chances of
successfully accomplishing its goals.
While executing, one must know what are the planned
terms to be executed. The implementation phase
ensures that the project management plan's
deliverables are executed accordingly.

This phase involves proper allocation, co-ordination


and management of human resources and any other
resources such as material and budget. The output of
this phase are the project deliverables.
Monitoring and controlling consists of those processes
performed to observe project execution so that potential
problems can be identified in a timely manner and
corrective action can be taken, when necessary, to
control the execution of the project.

The key benefit is that project performance is observed


and measured regularly to identify variances from the
project management plan.
Closing includes the formal acceptance and ending of
the project. Administrative activities include the archiving
of the files and documentation. This phase consists of:

• Contract closure: Complete and settle each contract


(including the resolution of any open items) and close
each contract applicable to the project or phase.

• Project close: Finalize all activities across all of the


process groups to formally close the project or phase.
Documenting everything within a project is key to being
successful. To maintain budget, scope, effectiveness and
pace a project must have physical documents pertaining
to each specific task.

With correct documentation, it is easy to see whether or


not a project's requirement has been met. To go along
with that, documentation provides information regarding
what has already been completed for that project.
Documentation throughout a project provides a
documented trail for anyone who needs to go back and
reference the work in the past. In most cases,
documentation is the most successful way to monitor
and control the specific phases of a project.

With the correct documentation, a project's success can


be tracked and observed as it goes on. If performed
correctly, it can be the backbone to a project's success.
• Projects should always have a specific start
and end dates;
• They are performed and completed by a group
of people working as one;
• The output should deliver a working/unique
product or service;
• They are temporary in nature; and
• They are progressively elaborated.
Project Tracking and Control – assess the progress of the
project plan.

Risk Management – assess risks that may affect the product


outcome.

Quality Assurance – conduct activities to ensure product quality.

Technical Review – assess the work product to identify errors


beforehand.
Measurement – defines and collects process to deliver and meet the
needs of the stakeholders.

Configuration Management – manages the effects of changes in the


software process.

Reusability Management – defines criteria to establish mechanisms


for reusable components.

Work Product Preparation and Production – it encompasses activities


required to create work products such as models or documentation.
Cleland, D. I. (2006). Global Project Management Handbook. ISBN 0-07-146045-4: Mc
Graw-Hill Professional

Juneja, P. (2019). What is a Project? Retrieved from, https://


www.managementstudyguide.com/what-is-project.htm

Mesly, O. (2017). Project Feasibility: Tools for Uncovering Points of Vulnerability. ISBN
978-1498757911: CRC Press, NY

Philips, J. (2018). PMP Project Management Professional Study Guide. 5th Edition,
ISBN-13 978-1259861987: Mc Graw-Hill
PMI (2017). A Guide to the Project Management Body of Knowledge. 6th Edition, ISBN-
978-1628251845: Project Management Institute

Sebastian, N. (2008). The Definitive Guide to Project Management: The Fast Track to
Getting the Job Done on Time and on Budget. 2nd Edition, ISBN-13 978-0273710974: FT
Press
Systems Development Life Cycle (SDLC)

It relates to the process of developing systems, and the models and methodologies that people use
to develop these systems, generally computer or information systems. This concept is developed
into all kinds of software development methodologies, the framework that is used to structure, plan,
and control the process of developing an information system.

Systems Development Life Cycle (SDLC) is any logical process used by a systems analyst to develop
an information system, including requirements, validation, training, and user ownership. An SDLC
should result in a high quality system that meets or exceeds customer expectations, within time and
cost estimates, works effectively and efficiently in the current and planned Information Technology
infrastructure, and is cheap to maintain and cost-effective to enhance.

SDLC Phases

SDLC comes in handy for its widespread use nowadays in the field of information technology. As
an analysts studies a system, one follows the typically methodology of seven steps, though
sometimes could be only five and in some instance, the phases may often overlap the other.

1. Planning Phase – this is the initial phase where analysts recognize, diagnose and define
the problem. Various methods are used in order to collect data and information to
determine the cause of the problem.
a. Interview – a direct method used to communicate with people involved in the
system.
b. Research – browsing of written documents to obtain data and information.
c. Observation & Experimentation – the use of the five senses and conducting tests.
d. Survey – an indirect method. It sometimes has a wider scope than an interview
method.

2. Analysis Phase – the phase is more about reviewing all the collected data and
information. System analysts take all measurements necessary to understand the present
system and describe it. In this stage, the problem is expected to be defined and identified
based on all the gathered data and information.

3. Designing Phase – after analyzing the problem, a system proposal will be brought up. A
proposal is created by introducing various solutions to show options. A Feasibility Study
can also be conducted to device a system proposal. An input and output records will be
prepared, with forms laid out and files specifications written. The major aspect of this
phase is the structure, organization and format of the information that will be contained
on the database.

4. Development Phase – after the presentation and the proposed system is accepted and
was approved, the coordination of the system analyst and the program commences. In
here, the actual system is built. It is the analyst’s task to identify vendors, suppliers that
will provide the necessary equipment or facilities at a reasonable price. Everything will
be set up, write programs, configure the network and install the software.
5. Testing Phase – it is carried out by a Quality Assurance (QA) professional to determine
if the proposed design meets the initial goals. Testing may be repeated, specifically to
check for errors, bugs and interoperability. This testing will be performed until the end
user finds it acceptable.

6. System Implementation Phase – it is the application of the proposed system and


therefore completely replaces the old one. Further testing, and final documentation and
reports shall be completed as well. All new methods will now be introduced and training
for users will commence.

7. Maintenance Phase – just like the previous system, the proposed system is also prone to
errors. The system is to be monitored as time progresses and debug any errors previously
not detected. As time goes, further revision to the proposed system may be applied.
Creating of an improved system version is likewise possible as well.

Spiral SDLC
It is an approach in which an analyst uses series of attempts to solve a problem. This includes lists of
possible solutions, trial and error simulation schemes and possibly other methodologies that will
help the analyst solve the problem.

A diagram showing a Spiral SDLC approach, in which a series of attempts are made to solve a problem
SOFTWARE ENGINEERING

Module 01
Chapter 03
• Also referred to as the application development life-cycle, is a process
for planning, creating, testing, and deploying an information system.

• The systems development life cycle concept applies to a range of


hardware and software configurations, as a system can be composed
of hardware only, software only, or a combination of both.

• SDLC is used during the development of an IT project and describes


the different stages involved in the project from the drawing board,
through the completion of the project.
•SDLC describes the stages involved in an information
system development project, from an initial feasibility
study through maintenance of the completed
application. It can apply to technical and non-technical
systems involving hardware and software.

•In SDLC, documentation is crucial, regardless of the type


of model chosen for any application, and is usually done
in parallel with the development process.
There are typically seven (7)
phases of SDLC:
•Planning;
•System Analysis;
•System Design;
•System Development;
•System Testing;
•System Implementation; and
•System Maintenance.
•The first phase that identifies whether or not there is the need
for a new system. This is a preliminary plan (or a feasibility
study) for a company’s business initiative to acquire the
resources to build on an infrastructure to modify or improve a
service.

•The company might be trying to meet or exceed expectations


for their employees, customers and stakeholders too. The
purpose of this step is to find out the scope of the problem and
determine solutions considering resources, costs, time, benefits
and other items.
•The phase where a businesses will work on the source
of their problem or the need for a change. In the event
of a problem, possible solutions are submitted and
analyzed to identify the best fit for the ultimate goal(s)
of the project.

•This is where teams consider the functional


requirements of the project or solution where system
analysis takes place—or analyzing the needs of end
users to ensure the new system can meet expectations.
•Systems analysis is vital in determining what a business’
needs are, as well as how they can be met, who will be
responsible for individual pieces of the project, and what
sort of timeline should be expected.

•There are several tools businesses can use that are


specific to the second phase. They include:
•CASE (Computer Aided Systems/Software Engineering)
•Requirements gathering
•Structured analysis
•The third phase describes, in detail, the necessary
specifications, features and operations that will satisfy the
functional requirements of the proposed system which will
be in place. This is the step for end users to discuss and
determine their specific business information needs for the
proposed system.

•It’s during this phase that they will consider the essential
components (hardware and/or software) structure
(networking capabilities), processing and procedures for the
system to accomplish its objectives.
•The fourth phase is when the real work begins when a
programmer, network engineer and/or database developer
are brought on to do the major work on the project.

•This work includes using a flow chart to ensure that the


process of the system is properly organized.

•Additionally, this phase signifies the start of production.


Focusing on training can be a huge benefit during this phase.
•The fifth phase involves systems integration and system testing
(of programs and procedures)—normally carried out by a
Quality Assurance (QA) professional to determine if the
proposed design meets the initial goals.

•Testing may be repeated, specifically to check for errors, bugs


and interoperability. This testing will be performed until the
end user finds it acceptable.

•Another part of this phase is verification and validation, both of


which will help ensure the program’s successful completion.
•The sixth phase is when the majority of the code for the
program is written. Additionally, this phase involves the
actual installation of the newly-developed system, putting
the project into production by moving the data and
components from the old system and placing them in the
new system via a direct cutover.

•While this can be a risky and complicated, the cutover


typically happens during off-peak hours, thus minimizing the
risk. Both system analysts and end-users should now see the
realization of the project that has implemented changes.
•The seventh and final phase involves maintenance,
regular operations and required updates.

•This step is when end users can fine-tune the system, if


they wish, to boost performance, add new capabilities
or meet additional user requirements.

•New updates usually requires to look back at the first


phase, thus beginning the cycle again.
It only looks at software components development
planning, technical architecture, software quality
testing and deployment of working software.

It involves end-to-end People, process, Software /


Technology deployment. This includes Change
Management, training, Organizational updates, also.
The meaning of the process gets limited to a
certain boundary beyond which it ceases to
provide relevance.

It is a much broader term which is a superset to the


above and is a larger part of the development phase
which includes many other approach and end phases.
It is about building a software (“only”) in a phased
approach systematically. Hence, its just part of the
other SDLC, in particular during Development Phase.

It is about implementing hardware and software in a


phased manner systematically. Here both the hardware
and the software is considered as a system.
System Development Life Cycle Software Development Life Cycle

It involves end-to-end People, process, It only looks at software components


Software/Technology deployment. This includes development planning, technical architecture,
Change Management, training, Organizational software quality testing and deployment of
updates, also. working software.
It is a much broader term which is a superset to The meaning of the process gets limited to a
the above and is a larger part of the development certain boundary beyond which it ceases to
phase which includes many other approach and provide relevance.
end phases.
It is about implementing hardware and software It is about building a software (“only”) in a
in a phased manner systematically. Here both the phased approach systematically. Hence, its just
hardware and the software is considered as a part of the other SDLC, in particular during
system. Development Phase.
Fernandez, Y., Soria-Ruiz, J., and Macedo, A. (2017). A Software Process
Framework for Guiding the Construction Specification of Geospatial Databases.
Journal of Information Technology & Software Engineering, pp. 1-6

Gillis, A. and Rouse, M. (2019). System Development Life Cycle (SDLC). Retrieved
from, https://searchsoftwarequality.techtarget. com/definition/systems-
development-life-cycle

Pressman, R. S. and Maxim, B. R. (2020). Software Engineering – A Practitioner’s


Approach. 9th Edition, ISBN-13 9781259872976: Mc Graw-Hill
Sommerville, I. F. (2015). Software Engineering. 10th Edition, ISBN-13 978-
0133943030: Pearson Press

Sundar, K., Pelliter, C., and Narayanan, V., (2015). What is the difference between
software development life cycle and system development life cycle? Retrieved
from, https://www.quora.com/What-is-the-difference-between-software-
development-life-cycle-and-system-development-life-cycle
Information Systems

System

It is a set of processes or integrated parts with entities each performing specific functions. In other words it’s
a set of interacting or interdependent entities, real or abstract, forming an integrated whole. It came from
Latin systēma, in turn from Greek σύστημα systēma.

The concept of an “integrated whole” can also be stated in terms of a system embodying a set of relationships
which are differentiated from relationships of the set to other elements, and from relationships between an
element of the set and elements not a part of the relational regime.

Types of System

Open Systems or probabilistic systems are those in which outputs or results can’t be determined precisely
but can only be guessed. One can’t predict such occurrences until the actual event arrives.

Closed Systems on the other hand can be predicted with certainty. The measurement of the given input will
actual let the output be predictable as it appears to be.

Nature of a System

Problem – unrealized expectations


Solution – an answer to the problem
Choice – an action needed to pick the best solution or answer
Decision – an output derived from the final choice.

Business Systems are organized flow of processes that makes up part or all of the business operation and
generally plays a very important role. (Usually involves multiple systems interlinking one another)

Elements of an ideal Business System

1. Manpower – these are the people working for the business, including the bosses.
2. Method – processes, managing within the business.
3. Machine – tools and other apparatus operating within a business.
4. Money – source of wealth, income and also a must have to support the other 3 elements.
5. Information – the backbone that supports all four elements. The other four elements can’t stand on
its own without it. Information is a group or collection of organized data.

Information System

Basically an Information System handles the flow and maintenance of information that supports a business or
some other operation. It is the system of people, data records and activities that process the data and
information in a given organization, including manual processes or automated processes.

The Three IS Activities

1. Input – starts off with acquisition of raw data and is then introduced to the system.
2. Process – involves data processing, classifying, and arranging, calculating data.
3. Output – the processed data becomes and information.
4. Feedback – the evaluation of the input.
Major Types of IS

Executive Support Systems (ESS) or Executive Information System (EIS)

It is designed to help senior management make strategic decisions. It is intended to facilitate and support the
information and decision-making needs of senior executives by providing easy access to both internal and
external information relevant to meeting the strategic goals of the organization. ESS typically involves lots of
data analysis and modeling tools such as “what-if” analysis to help strategic decision-making. It is commonly
considered as a specialized form of a Decision Support System (DSS). The emphasis of EIS is on graphical
displays and easy-to-use user interfaces. They offer strong reporting and drill-down capabilities. In general,
EIS are enterprise-wide DSS that help top-level executives analyze, compare, and highlight trends in
important variables so that they can monitor performance and identify opportunities and problems. EIS and
data warehousing technologies are converging in the marketplace.

The Components

Hardware

For an EIS environment, the focus should be on the hardware that meets the executive’s needs. The
executive must be put first and the executive’s needs must be defined before the hardware can be selected.

1. Input data-entry devices. These devices allow the executive to enter, verify, and update data
immediately;
2. The central processing unit (CPU), which is the kernel because it controls the other computer system
components;
3. Data storage files. The executive can use this part to save useful business information, and this part
also help the executive to search historical business information easily;
4. Output devices, which provide a visual or permanent record for the executive to save or read. This
device refers to the visual output device or printer.

In addition, with the advent of local area networks (LAN), several EIS products for networked workstations
became available. These systems require less support and less expensive computer hardware. They also
increase access of the EIS information to many more users within a company.

Software

Choosing the appropriate software is vital to design an effective EIS. Therefore, the software components
and how they integrate the data into one system are very important.

1. Text base software. The most common form of text is probably documents;
2. Database. Heterogeneous databases residing on a range of vendor-specific and open computer
platforms help executives access both internal and external data;
3. Graphic base. Graphics can turn volumes of text and statistics into visual information for executives.
Typical graphic types are: time series charts, scatter diagrams, maps, motion graphics, sequence
charts, and comparison-oriented graphs (i.e., bar charts);
4. Model base. The EIS models contain routine and special statistical, financial, and other quantitative
analysis.
User Interface

An EIS needs to be efficient to retrieve relevant data for decision makers, so the user interface is very
important. Several types of interfaces can be available to the EIS structure, such as scheduled reports,
questions/answers, menu driven, command language, natural language, and input/output. It is crucial that the
interface must fit the decision maker’s decision-making style. If the executive is not comfortable with the
information questions/answers style, the EIS will not be fully utilized. The ideal interface for an EIS would
be simple to use and highly flexible, providing consistent performance, reflecting the executive’s world, and
containing help information.

Telecommunication

As decentralizing is becoming the current trend in companies, telecommunications will play a pivotal role in
networked information systems. Transmitting data from one place to another has become crucial for
establishing a reliable network. In addition, telecommunications within an EIS can accelerate the need for
access to distributed data.

Applications

EIS enables executives to find those data according to user-defined criteria and promote information-based
insight and understanding. Unlike a traditional management information system presentation, EIS can
distinguish between vital and seldom-used data, and track different key critical activities for executives, both
which are helpful in evaluating if the company is meeting its corporate objectives. After realizing its
advantages, people have applied EIS in many areas, especially, in manufacturing, marketing, and finance areas.

Advantages of ESS/EIS

 Easy for upper-level executives to use, extensive computer experience is not required in operations
 Provides timely delivery of company summary information
 Information that is provided is better understood
 Filters data for management
 Improves to tracking information
 Offers efficiency to decision makers

Disadvantages of ESS/EIS

 Limited functionality, by design


 Information overload for some managers
 Benefits hard to quantify
 High implementation costs
 System may become slow, large, and hard to manage
 Need good internal processes for data management
 May lead to less reliable and less secure data
 System dependent
Decision Support System (DSS)
It is constitute a class of computer-based information systems including knowledge-based systems
that support decision-making activities. They are specifically designed to help management make
decisions in situations where there is uncertainty about the possible outcomes of those decisions.
DSS comprise tools and techniques to help gather relevant information and analyze the options and
alternatives. A properly-designed DSS is an interactive software-based system intended to help
decision makers compile useful information from raw data, documents, personal knowledge, and/or
business models to identify and solve problems and make decisions.

What to expect from DSS

The typical information that a decision support application might gather and present would be:

 An inventory of all of your current information assets (including legacy and relational data
sources, cubes, data warehouses, and data marts),
 Comparative sales figures between one week and the next,
 Projected revenue figures based on new product sales assumptions;
 The consequences of different decision alternatives, given past experience in a context that is
described.

DSS Taxonomies

 A model-driven DSS emphasizes access to and manipulation of a statistical, financial,


optimization, or simulation model. Model-driven DSS use data and parameters provided by
users to assist decision makers in analyzing a situation; they are not necessarily data-
intensive. Dicodess is an example of an open source model-driven DSS generator.
 A communication-driven DSS supports more than one person working on a shared task;
examples include integrated tools like Microsoft's NetMeeting or Groove
 A data-driven DSS or data-oriented DSS emphasizes access to and manipulation of a time
series of internal company data and, sometimes, external data.
 A document-driven DSS manages, retrieves, and manipulates unstructured information in
a variety of electronic formats.
 A knowledge-driven DSS provides specialized problem-solving expertise stored as facts,
rules, procedures, or in similar structures.

DSS Architecture

The three fundamental components of DSS architecture are:

1. The database (or knowledge base),


2. The model (i.e., the decision context and user criteria), and
3. The user interface.

The users themselves are also important components of the architecture.


Development Frameworks

DSS systems are not entirely different from other systems and require a structured approach. Such a
framework includes people, technology, and the development approach.

1. The actual application that will be used to by the user. This is the part of the application that
allows the decision maker to make decisions in a particular problem area. The user can act
upon that particular problem.
2. Generator contains Hardware/software environment that allows people to easily develop
specific DSS applications. This level makes use of case tools or systems such as Crystal,
AIMMS, and iThink.
3. Tools include lower level hardware/software. DSS generators including special languages,
function libraries and linking modules

An iterative developmental approach allows for the DSS to be changed and redesigned at various
intervals. Once the system is designed, it will need to be tested and revised for the desired outcome.

DSS Components

1. Inputs: Factors, numbers, and characteristics to analyze


2. User Knowledge and Expertise: Inputs requiring manual analysis by the user
3. Outputs: Transformed data from which DSS "decisions" are generated
4. Decisions: Results generated by the DSS based on user criteria

DSSs which perform selected cognitive decision-making functions and are based on artificial
intelligence or intelligent agent technologies are called Intelligent Decision Support Systems (IDSS).

Applications of DSS

There are theoretical possibilities of building such systems in any knowledge domain. One example
is the Clinical decision support system for medical diagnosis. Other examples include a bank loan
officer verifying the credit of a loan applicant or an engineering firm that has bids on several projects
and wants to know if they can be competitive with their costs. DSS is extensively used in business
and management. Executive dashboard and other business performance software allow faster
decision making, identification of negative trends, and better allocation of business resources. A
specific example concerns the Canadian National Railway system, which tests its equipment on a
regular basis using a decision support system. A problem faced by any railroad is worn-out or
defective rails, which can result in hundreds of derailments per year. Under a DSS, CN managed to
decrease the incidence of derailments at the same time other companies were experiencing an
increase. Additionally, a DSS can be designed to help make decisions on the stock market, or
deciding which area or segment to market a product toward.
Benefits of DSS

1. Improves personal efficiency


2. Expedites problem solving
3. Facilitates interpersonal communication
4. Promotes learning or training
5. Increases organizational control
6. Generates new evidence in support of a decision
7. Creates a competitive advantage over competition
8. Encourages exploration and discovery on the part of the decision maker
9. Reveals new approaches to thinking about the problem space

Transaction Processing System or Transaction Processing Monitor (TPS/TPM)


It is a set of information which processes the data transaction in database system that monitors
transaction programs (a special kind of program). The essence of a transaction program is that it
manages data that must be left in a consistent state. They are designed to process routine
transactions efficiently and accurately.

Typical Applications
If an electronic payment is made, the amount must be either both withdrawn from one account and
added to the other or none at all. In case of a failure preventing transaction completion, the partially
executed transaction must be ‘rolled back’ by the TPS. While this type of integrity must be provided
also for batch transaction processing, it is particularly important for online processing: if e.g. an
airline seat reservation system is accessed by multiple operators, after an empty seat inquiry, the seat
reservation data must be locked until the reservation is made, otherwise another user may get the
impression a seat is still free while it is actually being booked at the time. Without proper transaction
monitoring, double bookings may occur. Other transaction monitor functions include deadlock
detection and resolution (deadlocks may be inevitable in certain cases of cross-dependence on data),
and transaction logging (in 'journals') for 'forward recovery' in case of massive failures.

Features of TPS

Rapid response. Fast performance with a rapid response time is critical. Businesses cannot afford
to have customers waiting for a TPS to respond, the turnaround time from the input of the
transaction to the production for the output must be a few seconds or less.

Reliability. Many organizations rely heavily on their TPS; a breakdown will disrupt operations or
even stop the business. For a TPS to be effective its failure rate must be very low. If a TPS does fail,
then quick and accurate recovery must be possible. This makes well–designed backup and recovery
procedures essential.

Inflexibility. A TPS wants every transaction to be processed in the same way regardless of the user,
the customer or the time for day. If a TPS were flexible, there would be too many opportunities for
non-standard operations, for example, a commercial airline needs to consistently accept airline
reservations from a range of travel agents, accepting different transactions data from different travel
agents would be a problem.
Controlled processing. The processing in a TPS must support an organization’s operations. For
example if an organization allocates roles and responsibilities to particular employees, then the TPS
should enforce and maintain this requirement.
SOFTWARE ENGINEERING

Module 01
Chapter 02
• It is a set of processes or integrated parts with entities each
performing specific functions.

• It is a set of interacting or interdependent entities, real or abstract,


forming an integrated whole.

• The concept of an “integrated whole” can also be stated in terms of a


system embodying a set of relationships which are differentiated from
relationships of the set to other elements, and from relationships
between an element of the set and elements not a part of the
relational regime.
•Open Systems or probabilistic systems are those in
which outputs or results can’t be determined precisely
but can only be guessed. One can’t predict such
occurrences until the actual event arrives.

•Closed Systems on the other hand can be predicted


with certainty. The measurement of the given input will
actual let the output be predictable as it appears to be.
• It is a set of interrelated components that collect, store, process
and help analyze, support decision-making and perform control
functions in an organization.

• It handles the flow and maintenance of information that supports


a business or some other operation.

• It is the system of people, data records and activities that process


the data and information in a given organization, including
manual processes or automated processes.
Input – starts off with acquisition of raw
data and is then introduced to the
system.

Process – involves data processing,


classifying, and arranging, calculating
data.

Output – the processed data becomes


and information.

Feedback – the evaluation.


•The system is managing information in its own way.

•Focusing on information, any kind of data presented in a


form which is understandable or meaningful and helps
make decisions.

•Today, Information Technology Enabled Services (ITES)


consider information as a “utility”, just like electricity or
telephone, and the key factor is business strategy.
•Accuracy
•Timeliness
•Less Uncertainty
•An element of surprise value
•Should aid in decision-
making
•Should update knowledge
• Data – consists of raw facts and is an important component of an IS. It
has two sources: external and internal.

• Database – is a collection of all relevant and related organized data in an


integrated file.

• Process – is an important component of IS that generates the most useful


information for decision-making.

• Information – consists of analyzed facts that was processed from a data


source and is an output of an IS.
1. Transaction Processing System; (TPS)
2. Decision Support System; (DSS)
3. executive Information System; (EIS)
4. Management Information System; (MIS)
5. Workflow System;
6. Enterprise Resource Planning; (ERP) and
7. Expert Systems.
•It is used primarily for record keeping which is required
in any organization to conduct the business.

•TPS is used for periodic report generation in a


scheduled manner. It is also used for producing reports
on demand as well as exception reports.

•Examples of TPS are sales order entry, payroll, and


shipping records etc.
• It serves the management of an organization. It has sophisticated data
analysis tools, which support and assist all aspects of problem-specific
decision-making.

• DSS may use data from external sources such as current stock prices to
enhance decision-making. It is used when the problem is complex and
the information needed to make the best decision is difficult to obtain
and use.

• DSS is developed with the help of decision-makers in an organization


and helps in the appropriate decision-making process and does not
make any decision.
•It is also called the Executive Support System. Senior managers
of an organization use the EIS. Therefore, it must be easy to use
so that executives can use it without any assistance.

•EIS can do trend analysis, exception reporting and have drill-


down capabilities. The results are usually presented in a
graphical form tailored to the executive’s information needs.

•EIS has online analysis tools and they access a broad range of
internal and external data.
•It provides the management routine summary of basic
operations of the organization. The essential services are
recorded by the TPS of the organization and MIS consolidates
the data on sales, production etc.

•MIS provides routine information to managers and decision


makers. The primary objective behind installing an MIS in the
organization is to increase operational efficiency.

•MIS may support marketing, production, finance, etc.


•It is a rule-based management system that directs,
coordinates and monitors the execution of an
interrelated set of tasks arranged to form a business
process.

•A workflow system may be Internet-based and may be


combined with e-mail. A workflow system may be
based on server architecture that may use a database
or file server.
•There are three types of workflow software. They are:

•Administrative Workflow Systems – focus on the tracking of


expense reports, travel requests, messages;

•Ad-hoc Workflow System – deals with the shaping of


product, sales proposals and strategic plans; and

•Production Workflow Systems – are concerned with


mortgage loans and insurance claims.
•Enterprise Resource Planning (ERP) system is a business
process management software that allows an organization
to use a system of integrated programs capable of
managing a company’s vital business operations for an
entire multi-site, global organization.

•Expert Systems have the ability to make suggestions and


act like an expert in a particular field of an organization.
An expert system has an extensive knowledge base.
Arduin, P.E. (2015). Information and Knowledge Systems. Hoboken, New Jersey:
John Wiley and Sons, Inc.

Fernandez, Y., Soria-Ruiz, J., and Macedo, A. (2017). A Software Process Framework
for Guiding the Construction Specification of Geospatial Databases. Journal of
Information Technology & Software Engineering, pp. 1-6

Mendoza, E.D. (2015). Worktext in Information System. Manila: Mindshapers Co.,


Inc.

Piccoli, G., Pigni, F. (2018). Information Systems for Managers: with Cases. 4th
Edition, ISBN 978-1-943153-50-3: Prospect Press
Pressman, R. S. and Maxim, B. R. (2020). Software Engineering – A
Practitioner’s Approach. 9th Edition, ISBN-13 9781259872976: Mc Graw-Hill

Reddy, V. (2018). Types of Information Systems. Retrieved from,


https://edugeneral.org/ blog/business/types-of-information-systems/

Sommerville, I. F. (2015). Software Engineering. 10th Edition, ISBN-13 978-


0133943030: Pearson Press
SOFTWARE ENGINEERING

Module 01
Chapter 01
• It is a set of instructions/codes or computer
program that when executed provides
desired features, function and performance.

• They are data structures that enable the


programs to adequately manipulate
information (such as databases).

• It is a collection of computer programs,


procedures and documentation that
perform tasks on a computer system.
• Why does it take long to finish a software?

• Why are development costs so high?

• Why can’t we find all errors prior to release?

• Why spend much time and effort to maintain an existing software?

• Why do difficulties continue in measuring progress as software is


developed and maintain?
• System Software – it is a collection of programs written to service other
programs.

• Application Software – these are usually stand-alone programs that solves


specific business needs.

• Engineering/Scientific Software – a broad array of “number crunching”


programs.

• Embedded Software – resides within a product or system that is used to


implement control features for the user and system itself.
•Product-line Software – designed to provide specific
capabilities for use by many customers.

•Web/Mobile Application – network centric applications that


encompasses browser-based apps and/or mobile apps.

•Artificial Intelligence Software – makes use of non-


numerical algorithms to solve complex problems not
amenable to computation or forward analysis.
•These are older programs that were developed
decades ago.

•They are continually modified today to meet changes


in business requirements and computing platforms.

•They can be costly to maintain and risky to evolve


•WebApps – these are sophisticated computing tools
that not only provide stand-alone function to users,
but can also integrate databases and corporate
applications.

•Mobile Applications – it encompasses a user interface


that takes advantage of the unique interaction
mechanisms provided by the mobile platform.
• Cloud Computing – encompasses an
infrastructure or “ecosystem” that
enables any user from anywhere or
anytime to use a computing device to
share or use computing resources on a
broad scale.

• Product Line Software – a set of software-


intensive systems that share a common,
managed set of features satisfying the
specific needs of a particular market
segment.
• Software has become deeply embedded in virtually
every aspect of our lives.

• The IT requirements demanded by individuals or


businesses grow in an increasing complex terms.

• Individuals, businesses and even governments


increasingly rely on software for processes and
decision making.

• The perceived values of specific software application


grows as its user base grows.
• Engineering – it is a discipline or
profession of acquiring and applying
technical, scientific or mathematical
knowledge to design and implement
structures, systems and processes to
realize a desired objective.

• Software Engineering – is a process or


collection of methods and an array of
tools that allow professionals to build
high quality computer software.
•It is a systematic, disciplined and quantifiable approach to
development, operation and maintenance of software.

•Adaptability and agility are both required.

•Software Engineering is a layered technology and its


foundation is the process layer. It is a glue that holds the
technology layers together and enables rational and
timely development of computer software.
TOOLS

METHODS

PROCESS

QUALITY FOCUS
•Process – is a collection of activities , actions and tasks that are
performed when some work product is to be created.

•Activity – strives to achieve a broad objective.

•Action – a set of tasks that produce major work product.

•Task – focuses on small, but well defined objectives to produce


a tangible outcome.
• Communication – communicate and collaborate with user to understand objectives.

• Planning – mapping the software project to create guidelines.

• Modeling – a “sketch” of the project in order to understand the big picture. In other
words, blueprints or software requirements design.

• Construction – building of the software project.

• Deployment – software is delivered to the customer who evaluates and provides


feedback.
• Understand the Problem
• Communication and Analysis (Research)

• Plan a Solution
• Modeling and Software Design
(Designing)

• Carry out the Plan


• Code generation (Programming)

• Examine the result for accuracy


• Testing and Quality Assurance (Deliberate)
• The Reason it all Exists
• Provide value to its users

• KISS (Keep It Simple, STUPID!)


• All design should be as simple as possible, but no simpler.

• Maintain the Vision


• It is essential for the success of the software project.

• What you produce, others Consume


• Always specify design and implement knowing someone else will have to
understand what you do.
•Be open to the Future
• Never design yourself in the corner.

•Plan Ahead for Reuse


• Reduces the cost and increases value of both reusable
components and the system where its incorporated.

•Think!
• Practice a complete and clear thought before taking
action for better results.
Merriam-Webster. (2019). Merriam-Website Dictionary – “Definition of System”:
Springfield, MA, USA

Pressman, R. S. and Maxim, B. R. (2020). Software Engineering – A Practitioner’s


Approach. 9th Edition, ISBN-13 9781259872976: Mc Graw-Hill

Sommerville, I. F. (2015). Software Engineering. 10th Edition, ISBN-13 978-


0133943030: Pearson Press

Wayner, P. (2015). 5 Essential Software Engineering Practices. Retrieved from,


https:// techbeacon.com/security/5-essential-software-engineering-practices

You might also like