Date post: | 27-Jul-2015 |
Category: |
Software |
Upload: | belajarkomputer |
View: | 38 times |
Download: | 1 times |
Information System Engineering
Lukito Edi Nugroho
Department of Electrical EngineeringGadjah Mada University
Course Outline
Introduction: what is IS engineering (a.k.a. what is software engineering) ? - 1 wk
Software project management - 1-2 wk Software requirement analysis - 2-3 wk
Object-oriented analysis
Software design - 3 wkObject-oriented design
Implementation - 2 wkObject-oriented programming
Testing and maintenance - 2 wk
Requirements
Hard work :-) Understanding of object-orientation will
be advantageousObject-oriented analysisObject-oriented designObject-oriented programming
One or more REAL programming languageTry Java!
Team work
What is Information System Engineering?
The engineering of information systems… with respect to engineering
Problem-driven activity Analysis, planning, design, and implementation Systematic approach, using well-known principles
What is an information system ? A system that manipulates information
Search and retrieval Transformation Storage Organization Dissemination
What is Information System Engineering?
The engineering of information systems (cont.)Components
Hardware Software People Environment
An integrated activity Hardware engineering Software engineering Human engineering Environmental support engineering
What is Information System Engineering?
The engineering of information systems (cont)Hardware engineering
Does not mean making new computer hardware … but instead designing hardware configuration that
can provide optimal support for running an information system
Example: hardware requirement analysis, network design and implementation, and network configuration
People engineering In essence, to prepare people who will be involved in
the execution of an information system (i.e., users) Through socialization, training, human resource
policies, etc.
What is Information System Engineering?
The engineering of information systemEstablishing environmental support is closely
related to human engineering Organizational structure Management style
While we (presumably) manage to handle the engineering of the three system components, what about the software component ?
Software engineering is not programmingSo many unexplored areas, especially by
practitionersWe will spend much time discussing this
aspect in our lecture
An Illustration: A NASA Project …
A new aircraft safety control software To reduce aircraft
accident rate by 5-10 factors in 10 yrs
By employing “intelligence” using neural network software
Ability to “learn” current situ-ation and characteristics
… and to adjust to the best possible flight performance
On-line intelligent flight control
An Illustration: A NASA Project …
Some challenges … Complexity… so many
flight control components Real-time performance …
exceeding supersonic speed
Cost … expensive aircraft Life … hundreds of human
life aboard
The flight control software must face all the challenges
What is Software Engineering?
A disciplined approach for software developmentSound engineering principlesComprehensive combination of methods, tools,
techniques, and paradigmEncompassing all stages of developmentDriven by well-planned management support
It is like other engineering disciplines, but …Software is an abstract entity how it differs
from engineering of physical matters ?Computing is a relatively new field is it
mature already ?
Why Software Engineering ?
In the early days of software development …Distress in software development - and it
lasts a long time and recurring oftenThe situation
More than just “software that does not work properly”
… but encompassing many other aspects of software development and maintenance
Programs are difficult to maintain Complaints about software quality Late development projects Increasing development budget Incapability of meeting a growing demand for more
software
What about Software ?
Types System software and application software Business, engineering, and scientific software Artificial intelligence software Real-time, embedded software Stand-alone, distributed, and mobile software
Software is developed, not physically mass-manufactured Due to its logical nature Good quality is achieved only by good design - as
opposed to good design AND implementation in hardware manufacturing
Software development needs a correct approach
What about Software ?
Software does not “wear out” Unlike hardware, software does not fail
because of aging ... but it does deteriorate ...Software undergoes changes due to
maintenance, while modifications introduce certain defects, raising its failure rate
There is no “spare-part” to replace defected components - software failure means flawed design software maintenance is more complex than hardware maintenance, because software maintenance related to software failure almost always requires design modifications
Why are there problems ?
Human factor: the logical characteristics of software often misleads people who work with it. They tend to treat software as other physical entities Management myths
Standards and procedures exist sufficiently All that we need in development are computers and newest
development tools If we lag behind schedule, just add more programmers
Customer myths A general statement is sufficient to start a project, details
can follow later Changes in requirements can be easily accommodated,
because software is flexible Developer
Once we finish writing a program, we’re done The only deliverable of a software project is a working
program
Software Engineering Paradigm
Defines how we approach the software crisis problemA unified perspective of software
developmentComprised of a set of steps that encompass:
Methods: technical “how-to” to build software Tools: automated support for methods Procedures: gluing methods and tools
timing of when methods should be applied deliverables (documents, report, forms, etc) control for quality and coordination milestones for progress assessment
The Classic Software Life Cycle
Like a “waterfall”, exhibits a sequential nature of software development
Begin from system level, ending at software maintenanceSystem engineeringSoftware requirement analysisSoftware designCodingTestingMaintenance
The Classic Software Life Cycle
Problems with this paradigm Real projects rarely follow sequential flow Difficulties in stating requirements in the early
stage of development Tangible results (i.e., a working program) will not
be available until late in the project
Software Development with Prototyping
Promotes the concept of modelingNot all details are clear in the beginningStart with important concepts, then dive
into details stepwiselyHighly iterative
Software Development with Prototyping
Problems User temptation to
use prototype as a working version of the software
Developer tends to forget finetuning in order to get a working version quickly
The Spiral Model
Developed to combine the best of the life cycle and prototyping modelsUses an evolutionary approach suggested
by the prototyping paradigmMaintains systematic stepwise approach of
the life cycle model, but incorporates it in an iterative framework
It adds risk analysis component to minimize risk during development
The Spiral Model
Four major activitiesPlanningRisk analysisEngineeringCustomer evaluation
Activities are performed iteratively, progress-ively moving towards more complete versionsRisk analysis to evaluate whether it is still
feasible to continue the projectEngineering phase can employ the
approach of the life cycle model
The Spiral Model
A Generic View of Software Engineering
Three generic phasesDefinition: what we are going to build
System analysis Project planning Requirement analysis
Development: how we build it Software design Coding Software testing
Maintenance: how we adapt to changes Correction Adaptation Enhancement