Current trends in software engineering

Post on 05-Dec-2014

4.649 views 8 download

description

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

Transcript of Current trends in software engineering

Presented By : Albara Abdalkhalig MansourSudan University E-mail : Brra51@hotmail.com

Current Trends in Current Trends in Software EngineeringSoftware 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

CloudCloud ArchitectureArchitecture

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).

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

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.

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

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.

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.

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.

Type of VirtualizationType of Virtualization

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

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!

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.

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.

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.