0% found this document useful (0 votes)
26 views

Software Engineering Module1

Uploaded by

Angelica Bandong
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views

Software Engineering Module1

Uploaded by

Angelica Bandong
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 15

Binalatongan Community College

Brgy. Ilang San Carlos City, Pangasinan

Bachelor of Science in Information Technology (BSIT)


LEARNING MODULE

Module No. 1

Subject Code : IT 323


Subject Description : Software Engineering
Term : 1st Semester 2024-2025

I. Learning Objectives:
- Provide students an understanding of the software engineering
concepts.

Upon completion of this module, the students will be able to:


II. Learning Outcome:
- To discuss the difference between computer science and
software engineering.
- Explain some the major types of problems that can be
encountered in software engineering
- Explain the need to take a systems approach in building software

III. Learning Resources:


- Essentials of Software Engineering,
Frank Tsui, Orlando Karam, Barbara Bernal,
2018.

- Agile Essentials of team and project management,


Alex Campbbell,
2020

- Software Development in Practice,


Bernie Fishpool, Mark Fishpool,
2020

- Software Engineering Tenth Edition,


Ian Sommerville,
2016
- Scrum: the complete guide for the agile project managing
framework that helps the software development team to
efficiently structure an simplify the work and solve
problems in half the time,
osh Wright,
2020

IV. Tasks to Complete:


- Assignment
- Computer Activities
- Quizzes
- Final Examination
V. Content Items:

Software Plays An Important Role For Computers

While just about everyone uses a computer in some way, shape or form on a
daily basis, there are relatively few people who understand how vitally
important computer software is to the usefulness and functionality of even
simple devices. From very basic items such as a digital watch, to handy
innovations in cell phones, to the grand supercomputing behemoths that
manage things such as space shuttle launches, none of these machines
could function without the programming that gives them life.

Essentially all programs and applications for computers are a set of


instructions designed to create particular outcomes. A computer program is
a collection of these instructions that have a common purpose. A collection
of related programs to carry out coordinated computing tasks is referred to
as a package.

One great example of a package of software programs would be an


application that handles accounting related tasks. Such a package would
have a number of modules, or independent programs, that function together
to comprise a complete package.

For instance, the accounting package might contain a bookkeeping program,


an audit program, a data base management program, a tax preparation
program, a time tracking and billing program or any number of other related
programs. In many cases each of these kinds of accounting programs could
stand alone, but they become much more powerful when they operate
together as a complete package.

These kinds of packages that contain various modules, or programs, have


become very popular because the data is shared between the various
programs. This reduces the need to re-enter data and eliminates tasks of
exporting and importing information from one program to the other. This not
only saves time but it also significantly reduces the possibility of errors,
because even when data is not re-keyed there are numerous possibilities for
data to become corrupt when going through exporting and importing
functions.

All computers operate with what is known as system software, or the


operating system. This programming provides the very basic instructions for
how the computer interacts with the user and how the various programs and
packages operate.

Windows is the most commonly used personal computer operating system,


with the Macintosh OS X operating system being the next most common
system. Other operating systems include Linux and Unix, which are often
used in more high-end computing situations.

If you have computer work that needs to be done, then there are at least
three components in play. The hardware is the first component which is
actually what most people think of when talking about computers. The
hardware includes the "box," the monitor, the keyboard, the mouse and any
other physical components.

The operating system software is the second of the three components. Which
operating system that runs on your computer will have a great deal to do
with which programs you are able to operate and also will make a difference
in how easy or difficult it is to use the computer overall. While Windows
computers are more prevalent, many people say that the Macintosh
computers are more user friendly because of the operating system.

The final of the three components of any computerized task is the specific
software program that has been written to handle the required work. This
relates back to the accounting program example which provided the specific
functions related to the accounting tasks that needed to be done. Without
these specific applications, a computer alone, even with a good operating
system, will not provide many solutions or much functionality.
Software Characteristics

we know that software is any computer program which can also be defined
as a set of instructions which are responsible for guiding the computer to
perform certain tasks. The following are the characteristics of software:

1. Software does not wear out


2. Software is not manufacture
3. Usability of Software
4. Reusability of software components
5. Flexibility of software
6. Maintainability of software
7. Portability of software
8. Reliability of Software

Now let us elaborate each of them...

1. Software does not wear out:


Different things like clothes, shoes, ornaments do wear out after some time.
But, software once created never wears out. It can be used for as long as
needed and in case of need for any updating, required changes can be made
in the same software and then it can be used further with updated features.
2. Software is not manufactured:
Software is not manufactured but is developed. So, it does not require any
raw material for its development.
3. Usability of Software:
The usability of the software is the simplicity of the software in terms of the
user. The easier the software is to use for the user, the more is the usability
of the software as more number of people will now be able to use it and also
due to the ease will use it more willingly.
4. Reusability of components:
As the software never wears out, neither do its components, i.e. code
segments. So, if any particular segment of code is required in some other
software, we can reuse the existing code form the software in which it is
already present. This reduced our work and also saves time and money.
5. Flexibility of software:
A software is flexible. What this means is that we can make necessary
changes in our software in the future according to the need of that time and
then can use the same software then also.
6. Maintainability of software:
Every software is maintainable. This means that if any errors or bugs appear
in the software, then they can be fixed.
7. Portability of software:
Portability of the software means that we can transfer our software from one
platform to another that too with ease. Due to this, the sharing of the
software among the developers and other members can be done flexibly.
8. Reliability of Software:
This is the ability of the software to provide the desired functionalities under
every condition. This means that our software should work properly in each
condition.

Software Components

Software Components are deployed to Application Deployments in the


Physical View of the Application Layer in the Essential Meta Model. This
tutorial describes how usages of Software Components are packaged and
deployed into Application Deployments in Essential Architecture Manager.

Purpose

Software Components are used in the high-level software architecture of an


Application Provider to capture the major software elements used to deliver
the application. As these are Software Components in the context of an
architecture, it is the Software Component Usages that are deployed to the
Application Deployment.

Software Components in Essential Architecture Manager are captured to


provide the architectural view of the software elements used to deliver an
application. Detailed software design modelling, e.g. using UML, is handed
over to software engineering tools.

Tasks

To deploy Software Component Usages:

 Ensure that the target Application Deployment has been created.


 From the Software Architecture of the application in question, select each
Software Component Usage and select the target Application Deployment
from the ‘Software Physical Deployments’ field

Software Architectures

Software Architectures in the Essential Meta Model are used to capture the
relationships and dependencies that exist between the main software
components of an application. This short tutorial introduces Software
Architectures and describes how to capture them in Essential Architecture
Manager.

Purpose

Application Providers have a high level software architecture defined against


them to capture the relevant software components - and the dependencies
between them – that are used to deliver the application.

Software Architectures focus on capturing the architectural view of the


application. Detailed software design is handed over to software engineering
tools

Tasks

Creating a Software Architecture is like creating any other architecture in


Essential (see Working with Architectures:

 Drag a new Software Component Usage onto the canvas


 Open it and select the Software Component that this is a usage of.
 Drag from one Component to another on the canvas to create
dependencies between Software Components in this architecture.

Application Software Components


Software Components, in the Essential Meta Model, capture the major or
important elements of software that provide the functional behaviour of
applications. This short tutorial introduces Software Components and
describes how they are defined in Essential Architecture Manager.

Each Application Provider has a High Level Software Architecture in Essential


Architecture Manager, which relates the Application Provider to the Software
Components that it is made up of. Each Application Provider should have at
least one Software Component defined in this High Level Software
Architecture.

Software Components can be captured at a very coarse grain - e.g. it is


perfectly valid for an Application Provider to have a High Level Software
Architecture that has a single Software Component in it.

Software Components and the High Level Software Architecture focus on


capturing the architectural view of the software components. Detailed
software design is handed over to software engineering tools

Purpose

Software provides the link between Applications and Technology,


delivering functional behaviour and running on specific technology.

Software Components capture the relevant software elements that must be


managed in the Enterprise Architecture. For many packaged application
solutions, we capture a single Software Component for that package –
treating it as a black-box. For more complex packaged solutions you may
wish to capture the major moving parts as separate Software Components.

Tasks

To define a Software Component:

 Give the component a name and description


 Specify the relevant software architecture layer that this component
operates in
 Specify the software run time technology of the component, e.g.

o Java JVM
o .NET framework
 Specify the Technology Product that tells the model where this
Software Component comes from in the case of packaged solutions.
 Specify the invocation protocol if appropriate
 Specify the application functionality that this software component
provides by selecting the relevant Application Function Implementations.

Application Software

Application software (app for short) is a program or group of programs designed for
end users. Examples of an application include a word processor, a spreadsheet, an
accounting application, a web browser, an email client, a media player, a file viewer,
simulators, a console game or a photo editor.

An application is any program, or group of programs, that is designed for


the end user. Applications software (also called end-user programs) include
such things as database programs, word processors,
Web browsers and spreadsheets.
Image: Application Software Diagram
Figuratively speaking, applications sit on top of systems software because
they are unable to run without the operating system and system utilities.
Systems software consists of low-level programs that interact with the
computer at a very basic level. This includes operating systems, compilers,
and utilities for managing computer resources.
Application Delivery Mechanisms
Developers have many different options for getting their applications to end
users. In decades past, nearly all applications were installed directly on the
users' PCs and/or servers.
Today, many applications are delivered as Web applications. The code for
these applications resides on a Web server, and users access the application
via a Web browser. Common examples of Web applications include Web-
based email, social media platforms, wikis and online auctions.
The distinctions between Web applications and websites can be a bit fuzzy.
However, in general, websites have primarily static content with few
interactive elements, while Web applications have primarily dynamic content
and are designed for user interaction.
A third type, software-as-a-service (SaaS) applications, is closely related to
Web applications. As with Web applications, users generally access SaaS
applications via a Web browser. However, some SaaS applications can also
be accessed via a native mobile app on a device like a smartphone or a
tablet. Also, user data for a SaaS application is stored in a cloud computing
environment (which may or may not be the case for Web applications), and
many SaaS applications charge a subscription fee, which is less common for
Web applications.
Well-known examples of SaaS applications include Salesforce.com, Microsoft
Office 365 and Adobe Creative Cloud.

The collective noun application software refers to all applications


collectively.[1] This contrasts with system software, which is mainly involved
with running the computer.
Applications may be bundled with the computer and its system software or
published separately, and may be coded as proprietary, open-source or
university projects.[2] Apps built for mobile platforms are called mobile apps.
By coding language
Since the development and near-universal adoption of the web, an important
distinction that has emerged, has been between web applications — written
with HTML, JavaScript and other web-native technologies and typically
requiring one to be online and running a web browser, and the more
traditional native applications written in whatever languages are available
for one's particular type of computer. There has been a contentious debate
in the computing community regarding web applications replacing native
applications for many purposes, especially on mobile devices such
as smartphones and tablets. Web apps have indeed greatly increased in
popularity for some uses, but the advantages of applications make them
unlikely to disappear soon, if ever. Furthermore, the two can be
complementary, and even integrated.[7][8][9]
By purpose and output
Application software can also be seen as being either horizontal or vertical.[10]
[11]
Horizontal applications are more popular and widespread, because they
are general purpose, for example word processors or databases. Vertical
applications are niche products, designed for a particular type of industry or
business, or department within an organization. Integrated suites of software
will try to handle every specific aspect possible of, for example,
manufacturing or banking worker, or accounting, or customer service.
There are many types of application software: [12]
LibreOffice Writer, an open-source word processor that is a component
of LibreOffice (running on Linux Mint)

 An application suite consists of multiple applications bundled together.


They usually have related functions, features and user interfaces, and
may be able to interact with each other, e.g. open each other's
files. Business applications often come in suites, e.g. Microsoft
Office, LibreOffice and iWork, which bundle together a word processor, a
spreadsheet, etc.; but suites exist for other purposes, e.g. graphics or
music.
 Enterprise software addresses the needs of an entire organization's
processes and data flows, across several departments, often in a large
distributed environment. Examples include enterprise resource
planning systems, customer relationship management (CRM) systems
and supply chain management software. Departmental Software is a sub-
type of enterprise software with a focus on smaller organizations or
groups within a large organization. (Examples include travel expense
management and IT Helpdesk.)
 Enterprise infrastructure software provides common capabilities needed
to support enterprise software systems. (Examples include databases,
email servers, and systems for managing networks and security.)
 Application platform as a service (aPaaS) is a cloud computing service
that offers development and deployment environments for application
services.
 Information worker software lets users create and manage information,
often for individual projects within a department, in contrast to enterprise
management. Examples include time management, resource
management, analytical, collaborative and documentation tools. Word
processors, spreadsheets, email and blog clients, personal information
system, and individual media editors may aid in multiple information
worker tasks.
 Content access software is used primarily to access content without
editing, but may include software that allows for content editing. Such
software addresses the needs of individuals and groups to
consume digital entertainment and published digital content. (Examples
include media players, web browsers, and help browsers.)
 Educational software is related to content access software, but has the
content or features adapted for use in by educators or students. For
example, it may deliver evaluations (tests), track progress through
material, or include collaborative capabilities.
 Simulation software simulates physical or abstract systems for either
research, training or entertainment purposes.
 Media development software generates print and electronic media for
others to consume, most often in a commercial or educational setting.
This includes graphic-art software, desktop publishing software,
multimedia development software, HTML editors, digital-animation
editors, digital audio and video composition, and many others. [13]
 Product engineering software is used in developing hardware and
software products. This includes computer-aided design (CAD), computer-
aided engineering (CAE), computer language editing and compiling
tools, integrated development environments, and application programmer
interfaces.
 Entertainment Software can refer to video games, screen savers,
programs to display motion pictures or play recorded music, and other
forms of entertainment which can be experienced through use of a
computing device.
Applications can also be classified by computing platform such as a
particular operating system, delivery network such as in cloud
computing and Web 2.0 applications, or delivery devices such as mobile
apps for mobile devices.
The operating system itself can be considered application software when
performing simple calculating, measuring, rendering, and word processing
tasks not used to control hardware via command-line interface or graphical
user interface. This does not include application software bundled within
operating systems such as a software calculator or text editor.

SOFTWARE ENGINEERING – is the systematic application of engineering


approaches to the development of software.

– is a direct sub-field of engineering and has an overlap with


computer science and management science. It is also considered a
part of ever-all systems engineering.

- An engineering discipline that is concerned with all aspects of


software production.
- The establishment and use of sound engineering principles in
order to economically obtain software that is reliable and
works efficiently on real machines.
- As the broad term for all aspects of practice of computer
programming, as opposed to the theory of computer
programming, which is formally studied as a sub-discipline of
computer science.

FIELDS OF SOFTWARE ENGINEERING

1. SOFTWARE REQUIREMENTS
– is about the elicitation, analysis, specification, and
validation of requirements for software.

2. SOFTWARE DESIGN
– is about the process of defining the architecture,
components, interfaces, and other characteristics of a system or
component. This is called Software Architecture.

3. SOFTWARE DEVELOPMENT
– the main activity of software construction is the
combination of programming as known as coding, verification,
software testing and debugging.

SOFTWARE DEVELOPMENT PROCESS – is the definition,


implementation, assessment, measurement, management, change, and
improvement of the software life cycle process itself.

- It heavily uses software configuration management, which is


about systematically controlling changes to the configuration,
and maintaining the integrity and traceability of the
configuration and code throughout the system life cycle.
-
4. SOFTWARE TESTING
– is an empirical, technical investigation conducted to provide
stakeholders with different approaches such as unit testing and
integration testing. It is one aspect of software quality.

5. SOFTWARE MAINTENANCE
– refers to the activities required to provide cost-effective
support after shipping the software product.
SOFTWARE ENGINEER is a person who applies the principles of software
engineering to the design, development, maintenance, testing and
evaluation of computer software.

- Applies mathematical analysis and the principles of computer


science in order to design and develop computer software.
- Can develop, such as operating systems, computer games,
middleware, business applications and network control
systems.
- Must have strong problem-solving and communication skills
and an aptitude for math and science.

A software engineer may be involved with software development, but


few software developers are engineers. Software engineering reefers to the
application of engineering principles to create software, they then have
computer programmers create the code needed to run the software properly.

Summary:

- In this module the student learned about the Internet, World Wide
Web, and associated technologies, including Web servers, Domain,
Domain Name Server. Also the essential introductory topics about
website development.

You might also like