Current trends in software engineering

15
Presented By : Albara Abdalkhalig Mansour Sudan University E-mail : [email protected] Current Trends Current Trends in Software in Software Engineering Engineering

description

يناقش هذا السمنار التطورات الحالية لهندسة البرمجيات

Transcript of Current trends in software engineering

Page 1: Current trends in software engineering

Presented By : Albara Abdalkhalig MansourSudan University E-mail : [email protected]

Current Trends in Current Trends in Software EngineeringSoftware Engineering

Page 2: Current trends in software engineering

Cloud ComputingCloud Computing

Cloud Computing It’s a technology that uses the internet and central remote servers to maintain data and applications.

Cloud computing allows consumers and businesses to use applications without installation and access to their personal files at any computer with internet access.

Examples:

Yahoo email or Gmail etc

Page 3: Current trends in software engineering

CloudCloud ArchitectureArchitecture

Page 4: Current trends in software engineering

CloudCloud StorageStorage

The approach, cloud storage allows data stored

remotely to be temporarily cached on desktop

computers,

Examples:

Amazon’s Elastic Compute Cloud (EC2).

Simple Storage Solution (S3).

Page 5: Current trends in software engineering

AdvantagesAdvantages ofof Cloud ComputingCloud Computing

Lower computer costs

Improved performance

Reduced software costs

Instant software updates

Improved document

format compatibility

Unlimited storage

capacity

Increased data reliability

Universal document

access

Latest version availability

Easier group collaboration

Device independence

Page 6: Current trends in software engineering

Disadvantages of Cloud ComputingDisadvantages of Cloud Computing

Requires a constant Internet connection.

Does not work well with low-speed connections.

Can be slow.

Features might be limited.

Stored data might not be secure.

Stored data can be lost.

Page 7: Current trends in software engineering

Types of Cloud Computing Services:Types of Cloud Computing Services:

Page 8: Current trends in software engineering

Software as a Service (SaaS)Software as a Service (SaaS)

SaaS is a model of software deployment where an

application is hosted as a service provided to

customers across the Internet. SaaS is generally used

to refer to business software rather than consumer

software.

Page 9: Current trends in software engineering

AdvantagesAdvantages

Accessible from anywhere with an internet connection. No local server installation. Pay per use or subscription based payment methods. Rapid scalability. System maintenance (backup, updates, security, etc) often

included in service. Possible security improvements, although users with high

security requirements (e.g., large corporations) may find SaaS a security concern.

Reliability.

Page 10: Current trends in software engineering

VirtualizationVirtualization Virtualization, in computing, is the creation of a virtual

(rather than actual) version of something, such as a hardware platform, operating system, a storage device or network resources.

Virtualization can be viewed as part of an overall trend in enterprise IT that includes autonomic computing, a scenario in which the IT environment will be able to manage itself based on perceived activity, and utility computing, in which computer processing power is seen as a utility that clients can pay for only as needed. The usual goal of virtualization is to centralize administrative tasks while improving scalability and work loads.

Page 11: Current trends in software engineering

Type of VirtualizationType of Virtualization

Hardware-assisted. Software. Memory. Storage. Data. Network.

Page 12: Current trends in software engineering

Advantages of virtual machinesAdvantages of virtual machines

Run operating systems where the physical hardware is unavailable,

Easier to create new machines, backup machines, etc., Software testing using “clean” installs of operating systems

and software, Emulate more machines than are physically available, Timeshare lightly loaded systems on one host, Debug problems (suspend and resume the problem machine), Easy migration of virtual machines (shutdown needed or

not). Run legacy systems!

Page 13: Current trends in software engineering

Applying Virtualization to Software Applying Virtualization to Software EngineeringEngineering

Software virtualization techniques can be used in nearly all

stages of the software life cycle (regardless of type of

development methodology used) to both improve software

quality and accelerate the software lifecycle, therefore

increasing efficiency and, presumably, profit.

Page 14: Current trends in software engineering

Service-oriented architecture (SOA)Service-oriented architecture (SOA) Service-oriented architecture (SOA) is a flexible set of

design principles used during the phases of systems development and integration in computing. A system based on a SOA will package functionality as a suite of interoperable services that can be used within multiple separate systems from several business domains.

OASIS defines SOA as the following: A paradigm for organizing and utilizing distributed

capabilities that may be under the control of different ownership domains. It provides a uniform means to offer, discover, interact with and use capabilities to produce desired effects consistent with measurable preconditions and expectations.

Page 15: Current trends in software engineering

The FutureThe Future Many of the activities loosely grouped together under cloud

computing have already been happening and centralised computing activity is not a new phenomena:

Grid Computing was the last research-led centralised approach.

However there are concerns that the mainstream adoption of cloud computing could cause many problems for users.

Whether these worries are grounded or not has yet to be seen.

Many new open source systems appearing that you can install and run on your local cluster – should be able to run a variety of applications on these systems.