+ All Categories
Home > Documents > 2Basic Concepts

2Basic Concepts

Date post: 06-Apr-2018
Category:
Upload: mikko-valeros
View: 221 times
Download: 0 times
Share this document with a friend

of 42

Transcript
  • 8/3/2019 2Basic Concepts

    1/42

    November 8, 2011 Software Engineering, 2nd Sem. 2011-12

    Software EngineeringBasic Concepts

    Mrs. Ma. Christina FlorentinoMrs. Ma. Christina Florentino

    CITE FacultyCITE Faculty

    Sources: 1. Software Engineering & Testing by Agarwal, Tayal, Gupta

    2. Software Engineering by Pressman

  • 8/3/2019 2Basic Concepts

    2/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Introduction to Software

    Definition:

    It is a set of instructions used to

    Acquire inputs

    Manipulate inputs to produce output

    Includes:

    Instructions

    Data Structures

    Documents that describes the operation and use of theprograms

    IEEE: It is a collection of computer programs,

    procedure rules and associated documentation

    and data

  • 8/3/2019 2Basic Concepts

    3/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Importance of Software

    It is the engine that drives business

    decision making

    Serves as the basis for modern

    scientific investigation and engineering

    problem-solving

    Embedded in all kinds of systems

  • 8/3/2019 2Basic Concepts

    4/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Types of Software

    2 Categories:

    1. System Software. OS and all utilities

    that enables the computer the function

    2. Application Software. Programs that do

    real work for users.

  • 8/3/2019 2Basic Concepts

    5/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Classes of Software

    1. Generic Software. Designed forbroad customer market whose

    requirements are very common, fairlystable and well understood by thesoftware engineer.

    - sold in the open market

    - there could be several competitorsin the market

  • 8/3/2019 2Basic Concepts

    6/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Classes of Software

    2. Customized Software. Developed

    for a customer where domain,

    environment and requirements are

    unique to that customer and cannot

    be satisfied by generic products

  • 8/3/2019 2Basic Concepts

    7/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Generic vs. Customized

    Developer manages Generic products;

    customer manages customized

    product

    Requirements and specifications of a

    generic product is controlled by the

    developer

  • 8/3/2019 2Basic Concepts

    8/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Introduction to Software Engineering

    IEEE Definition:

    SE is the application of a systematic,

    disciplined, quantifiable approach to the

    development, operation and maintenance

    of software

  • 8/3/2019 2Basic Concepts

    9/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Introduction to Software Engineering

    Other Definition:

    SE deals with cost-effective solutions to

    practical problems by applying scientific

    knowledge in building software artifacts in

    the service of mankind

  • 8/3/2019 2Basic Concepts

    10/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Introduction to Software Engineering

    Other Definition:

    SE is a discipline whose aim is the

    production of fault free software that

    satisfies the users needs and that is

    delivered on time and within budget

  • 8/3/2019 2Basic Concepts

    11/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Engineering Principles

    PRINCIPLES

    METHODSANDTECHNIQUES

    METHODOLOGIES

    TOOLS

  • 8/3/2019 2Basic Concepts

    12/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Engineering Principles

    Rigor and formality

    Separation of concernsModularity and decomposition

    Abstraction

    Anticipation of change

    Generality

    Incrementality

    Scalability

    Compositionality

    Heterogeneity

  • 8/3/2019 2Basic Concepts

    13/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Characteristics

    1. Most software is custom-built, ratherthan assembled from existing

    components.2. Software is developed or engineered;

    it is not manufactured in the classicalsense.

    3. Software is flexible.

    4. Software doesnt wear out.

  • 8/3/2019 2Basic Concepts

    14/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    The Bathtub Curve

    Reliability Studies forHardware Products

  • 8/3/2019 2Basic Concepts

    15/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Curve

    Time

    Failure

    Intensity

    -Software becomesreliable over time

    -It becomes

    obsolete if the

    environment it was

    developed changes

  • 8/3/2019 2Basic Concepts

    16/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Crisis

    Crisis problems and causes

    encountered in the different stages of

    software development

  • 8/3/2019 2Basic Concepts

    17/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Crisis

    ProblemsSchedules and cost estimates are often grossly inaccurate

    The Productivity of software people hasnt kept pace with

    the demand for their servicesThe quality of the software is sometimes less thanadequate

    With no solid indication of productivity, evaluation isimpossible

    Communication between developer and customer is oftenpoor

    Software maintenance tasks devour the majority of allsoftware funds

  • 8/3/2019 2Basic Concepts

    18/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Crisis

    CausesThe quality of the software is not good becausemost developers use historical data to developthe software

    If there is delay in any process or stage thenscheduling does not match the actual timing

    Communications can break down because thespecial characteristics of software and problemsassociated with its development aremisunderstood

    The software people responsible for tapping thepotential often change when it is discussed andresist change when it is introduced

  • 8/3/2019 2Basic Concepts

    19/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Crisis from the programmers point of view

    Problem of

    Compatibility

    PortabilityIn documentation

    Piracy of software

    Coordination of work of differentpeople

    Proper maintenance

  • 8/3/2019 2Basic Concepts

    20/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Crisis from the users point of view

    Software cost is very high

    Hardware goes down

    Problem of different versions ofsoftware

    Problem of views

    Problem of bugs

  • 8/3/2019 2Basic Concepts

    21/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Myths

    If we get behind schedule, we can add

    more programmers and catch up

    If we decide to outsource the softwareproduct to a third party, we can just relax

    and let that firm build it.

    Project requirement continuously changes,

    but changes can be easily accommodated

    because software is flexible

  • 8/3/2019 2Basic Concepts

    22/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Myths

    The only deliverable work product for a

    successful project is the working

    program

    Software with more features is a better

    software

    Once we write the program and get itto work, our job is done

  • 8/3/2019 2Basic Concepts

    23/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Myths

    Until we get the program running, we have

    no way of assessing its quality

    Software engineering will make us createvoluminous and unnecessary

    documentation and will invariably slow us

    down

    A general statement of objectives is

    sufficient to begin writing programs; we can

    fill in the details later

  • 8/3/2019 2Basic Concepts

    24/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Applications

    Applications are grouped into 8 areas

    1. System Software

    2. Real-time Software3. Embedded Software

    4. Business Software

    5. Personal Computer Software

    6. Artificial Intelligence Software7. Web-based Software

    8. Engineering and Scientific Software

  • 8/3/2019 2Basic Concepts

    25/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Applications:

    System Software

    Used to run the system as an

    assistance to other software programs

    Ex: compilers, editors, utilities, OS

    components, drivers, interfaces

  • 8/3/2019 2Basic Concepts

    26/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Applications:

    Real-Time Software

    Deals with the changing environment;it collects input, converts it to digital,

    control component that responds tothe external environment and performsactions

    Monitors, controls and analyze real-world events as they occur

    Ex: Rocket launching, games, etc.

  • 8/3/2019 2Basic Concepts

    27/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Applications:

    Embedded Software

    Written to perform certain functions

    under control conditions and is further

    embedded into hardware as part of alarge systems

    Also called intelligent software

  • 8/3/2019 2Basic Concepts

    28/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Applications:

    Business Software

    Designed to process and drives

    business applications through on-line

    or real-time mode

    Ex: accounting packages, MIS, payroll,

    inventory

  • 8/3/2019 2Basic Concepts

    29/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Applications:

    Personal Computer Software

    Ex: word processing, spreadsheets,

    computer graphics, etc.

  • 8/3/2019 2Basic Concepts

    30/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Applications:

    AI Software

    Uses non-numeric algorithms to solve

    complex problems

    Ex: robotics, expert systems, pattern

    recognition, neural networks, theorem

    proving, game playing, signal-

    processing software

  • 8/3/2019 2Basic Concepts

    31/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Applications:

    Web-Based Software

    Included the languages by which web

    pages are processed

  • 8/3/2019 2Basic Concepts

    32/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Applications:

    Engineering and Scientific Software

    Written for specific applications using

    the principles and formulae of each

    field

  • 8/3/2019 2Basic Concepts

    33/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Engineering Processes

    Process a series of that steps

    involving activities, constraints, and

    resources that produce an intendedoutput of some kind.

    Software Process a set of activities

    whose goal is the development orevolution of software

  • 8/3/2019 2Basic Concepts

    34/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Engineering Processes

    Four Fundamental process activities:

    1. Software Specifications

    2. Software Development

    3. Software Validation

    4. Software Evolution

  • 8/3/2019 2Basic Concepts

    35/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Engineering Processes

    Software Specifications

    The functionality of the software and

    constraints on its operation must be

    defined

  • 8/3/2019 2Basic Concepts

    36/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Engineering Processes

    Software Development

    Software that meets the specifications

    must be produced

  • 8/3/2019 2Basic Concepts

    37/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Engineering Processes

    Software Validation

    The software must be validated to

    ensure that it does what the customer

    wants

  • 8/3/2019 2Basic Concepts

    38/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Software Engineering Processes

    Software Evolution

    The software must evolve to meet

    changing customer needs

  • 8/3/2019 2Basic Concepts

    39/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Some Terminologies

    Deliverables and Milestones

    Deliverables are generated during

    software development

    Milestones are the events that ascertain

    the status of the project

  • 8/3/2019 2Basic Concepts

    40/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Some Terminologies

    Product and Process

    Product is what is delivered to the

    customer (deliverables)

    Process is the way we produce software

  • 8/3/2019 2Basic Concepts

    41/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Some Terminologies

    Measure, Metrics, Indicators

    Measures provides a quantitative

    indication of amount, dimension,capacity, or size of a given attribute of aproduct

    Metrics are quantitative measure of the

    degree to which a system possesses agiven attribute of a product

    Indicators are is a combination of metrics

  • 8/3/2019 2Basic Concepts

    42/42

    November 9, 2011 Software Engineering, 2nd Sem. 2011-12

    Programs vs. Software Products

    Programs Software Product

    Developed by individuals for their

    personal use

    Developed by a group of engineers

    working as a team

    Small in size Usually large in size

    Single user Large number of users

    Single developers Team of developers

    Lack proper documentation Good documentation support

    Adhoc development Systematic development

    Lack of user interface Good user interface

    Limited functionality More functionality


Recommended