Introduction to Software Engineering & Information Technology

20
Lecture 10 Introduction to Software Engineering & Information Technology Lecturer: Sumaira Hussain S.M.I University

Transcript of Introduction to Software Engineering & Information Technology

Lecture 10Introduction to

Software Engineering & Information

Technology

Lecturer: Sumaira Hussain

S.M.I University

software is any set of machine-readable instructions that directs a computer's processor to perform specific operations.

Software

Application software consists of programs designed to make users more productive and/or assist with personal tasksTo make business activities more efficientTo assist with graphics and multimedia projectsTo support home, personal, and educational tasksTo facilitate communications

Application Software

Application Software

Available in a variety of forms:

Packaged softwareCustom softwareWeb applicationOpen source softwareSharewareFreewarePublic-domain software

System software

System software serves as the interface between the user, the application software, and the computer’s hardware–Utility programs

Business SoftwareBusiness software is application software that assists people while performing business activities

Word ProcessingSpreadsheetDatabase PresentationNote takingPersonal information manager Business software for phonesBusiness software suitesProject managementAccountingDocument managementEnterprise computing software

Web page authoring software helps users of all skill levels create Web pages that include multimedia and interactive content

Graphics and Multimedia Software

Software for Home, Personal, and Educational Use

Personal finance softwareLegal softwareTax preparation softwarePersonal DTP softwarePersonal paint/image editing softwarePersonal photo editing softwareClip art/image galleryVideo and audio editing softwareHome design/landscaping softwareTravel and mapping softwareReference softwareEducational softwareEntertainment software

Web ApplicationsA Web application (Web app) is a Web site that allows users to access and interact with software from any computer or device that is connected to the Internet

Application Software for Communications

Web BrowserE-MailInstant MessagingChat RoomText, Picture, Video MessagingRSS AggregatorBloggingNewsgroup/Message BoardFTPVoIP (Internet Telephony)Video Conferencing

The IEEE definition:Software Engineering: (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1).

The seminal definition:[Software engineering is] the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.

SOFTWARE ENGINEERING DEFINITION

IMPORTANCE OF SOFTWARE ENGINEERING

• More and more, individuals and society rely on advanced software systems. We need to be able to produce reliable and trustworthy systems economically and quickly.

• It is usually cheaper, in the long run, to use software engineering methods and techniques for software systems rather than just write the programs as if it was a personal programming project. For most types of system, the majority of costs are the costs of changing the software after it has gone into use.

FAQ ABOUT SOFTWARE ENGINEERING

Question Answer

What is software? Computer programs, data structures and associated documentation. Software products may be developed for a particular customer or may be developed for a general market.

What are the attributes of good software?

Good software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable.

What is software engineering? Software engineering is an engineering discipline that is concerned with all aspects of software production.

What is the difference between software engineering and computer science?

Computer science focuses on theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software.

What is the difference between software engineering and system engineering?

System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this more general process.

ENGINEERING PROCESS MODEL• Specification: Set out the requirements and

constraints on the system.• Design: Produce a model of the system.• Manufacture: Build the system.• Test: Check the system meets the required

specifications.• Install: Deliver the system to the customer and

ensure it is operational.• Maintain: Repair faults in the system as they

are discovered.

GENERIC SOFTWARE PROCESS MODELS

• Waterfall• Separate and distinct phases of specification and

development• Evolutionary

• Specification and development are interleaved• Formal Transformation

• A mathematical system model is formally transformed to an implementation

• Reuse-based• The system is assembled from existing components

WATERFALL PROCESS MODELRequirements

definition

System andsoftware design

Implementationand unit testing

Integration andsystem testing

Operation andmaintenance

DEFINITION OF INFORMATION TECHNOLOGY

• Information technology is the technology that uses computing with high speed communication links to spread information from one place to another.

• Computer is a very important component of information technology

• The world has become “global village” due to advancement in IT.

DEFINING INFORMATION TECHNOLOGY

• Information Technologies are systems of hardware and/or software that capture, process, exchange, store and/or present information using electrical, magnetic and/or electromagnetic energy.

ADVANTAGES OF IT• Increases production and saves time• Improves communication through

communication technology• Improves data storage and file management• Improves financial management• Electronic Bill Presentation and Payment• Improved entertainment• Globalization of knowledge

DISADVANTAGES OF IT• Implementation Expenses• Job Elimination• Internet security issues• Privacy• Cyber-sickness• Social implications