Sie sind auf Seite 1von 31

Systems and Software

Development: A
Review
Dr. Muhammad Ikhwan Jambak
Associate Professor
School of Computing

Why Analysis and Design in Development?


Do we really need em? (making a hello world code or tree-swing)

// A Hello World! program in C#.


using System;
namespace HelloWorld
{
class Hello
{
staticvoid Main()
{
Console.WriteLine("Hello World!");
// Keep the console window open in
debug mode.
Console.WriteLine("Press any key
to exit.");
Console.ReadKey(); } } }

Why Analysis and Design in Development?

Do we really need em? Perhaps not in a simple case but yes, in the complex ones

What do we actually develop?


Software Vs (Information) Systems
Software
Software is more than just a program code (is an
executable code, which serves some
computational purpose).
Software is considered to be collection of
executable programming code, associated
libraries and documentations.
Software, when made for a specific requirement is
called software product.

What do we actually develop?


Software Vs (Information) Systems
Information System
An integrated set of components
(hardware, software, data, people,
procedure) for collecting, storing, and
processing data and for
deliveringinformation, knowledge, and
digital products.(Encyclopedia Britannica)

Software Development
Software Engineering

The application of a systematic,


disciplined, quantifiable approach to
the development, operation, and
maintenance of software; that is, the
application of engineering to software.
(IEEE and ACM joint definition)

Software Development

What does Software Engineering Involve?


The elicitation of the systems
requirements
The specification of the system, and its
architectural
Systems detailed design
Systems verification and validation
Incorporated with testing, management
and quality control techniques and tools

Information System Development


System Theory

Information System Development


System Theory

Every system has


Inputs and outputs
A purpose (related to transformation)
A boundary and an environment
Subsystems and interfaces
Control using feedback and feed-forward
Some emergent property

Information System Development


IS as a System

Every IS must have:


A human activity that needs information
Some stored data
An input method for entering data
Some process that turns the data into information
An output method for representing information

May also have:


Subsystems that we can also regard as systems
Interfaces with other systems

Project

A planned undertaking that has a beginning and end that


produce some definite result
Used to develop a software or an information system
A distinction should be made between
Systems development, which incorporates human,
software and hardware elements
Software development, which is primarily concerned with
software systems

In IS, two important phases in a project are


Strategic Information Systems Planning
Business Modelling

Project

A planned undertaking that has a beginning and end that


produce some definite result

Requires knowledge of systems analysis,


systems design, and the methodology,
techniques and tool to do so.
Requires a plan a methodology

Systems / Software Development Life Cycle

Systems / Software Development Life Cycle (SDLC)

Systems / Software Development Life Cycle (SDLC)

Entire process and activities required to build, deploy and maintaining an


information system / a software

Need to Identify the problem or need or opportunity


Plan and monitoring the project
Discover and understand the detail of the problems
or need
Design the system components that solve the
problem or satisfy the need
Build, test and integrate system components
Complete system tests and then deploy the solution

Systems / Software Development Life Cycle


(SDLC)
Terms clarification

Methodology is a collection of problem-solving


methodsg overnedb y a set of principles and a
commopnh ilosophyf or solving targeted problems
(Checkland 1981).
Technique is a set of precisely described procedures for
achieving a standard task (Kettinger, 1997).
Tool is defined as a software package to support one or
more techniques (Palvia and Nosek1 993).
Model is a representation of an important aspect of the
real world. Sometimes, the term abstraction is used
because we abstract (separate out) an aspect that is of
particular importance to us.

Systems / Software Development Life Cycle


(SDLC)
Terms clarification

Paradigm is a theory or a group of ideas


about how something should be done,
made, or thought about (Merriam-Webster
Dictionary)
Approach is the way how to use the
methodology and technique

Systems / Software Development Life Cycle (SDLC)


Analysis Vs Design

Systems / Software Development Life Cycle


(SDLC)
Analysis Vs Design

Both the result of analysis and design activities


need to be modeled
Textual Model Written down and described
Mathematical Model Formula, statistics, calculation
Graphical Model: Diagram, picture

Modeling languageis any artificial language that


can be used to express information or knowledge
or systems in a structure that is definedby a
consistent set of rules. The rules are used for
interpretation of themeaningof components in the
structure

Systems / Software Development Life Cycle


(SDLC)
Classification

It is difficult to have a rigorous classification of


the existing SDLCs
From systems/software requirements point of
view:
Predictive - that assumes the project can be planned
in advance and that the new information system can
be developed according to the plan
Adaptive - that assumes the project must be more
flexible and adapt to changing needs as the project
progresses

SDLC Paradigms, Methodologies, Models, Tools


Waterfall

System
System
Engineering
Engineering
Requirements
A nalysis
Analy sis

Design
Design

Construction

Testing
Code

Installation
Code

M aintenance
Maintenance

SDLC Paradigms, Methodologies, Models, Tools


Iteration: the project that grown

SDLC Paradigms, Methodologies, Models, Tools


Waterfall with Iteration

System
System
Engineering
Engineering
Requirem ents
Analy sis
Design
Design

Construction

Code
Testing

Code
Installation

M aintenance
Maintenance

SDLC Paradigms, Methodologies, Models, Tools


Prototyping

Initial
analysis

Define
objectives

Specify

Prototyping
com pleted

Evaluate

Construct

SDLC Paradigms, Methodologies, Models, Tools


Spiral: Combining Iterative, Prototyping and Risk analysis

SDLC Paradigms, Methodologies, Models, Tools


V : Testing in each stage

SDLC Paradigms, Methodologies, Models, Tools


Unified Software Development Process

Capture best practices


Develop software iteratively
Manage requirements
Use component-based architecture
Visually model software
Verify software quality
Control change in software

SDLC Paradigms, Methodologies, Models, Tools


Unified Software Development Process

The phases are:


Inception is concerned with determining the scope
and purpose of the project;
Elaboration focuses requirements capture and
determining the structure of the system;
Construction's main aim is to build the software
system;
Transition deals with product installation and rollout.

SDLC Paradigms, Methodologies, Models, Tools


Agile Development

Emphasizes
flexibility
to
anticipate
requirements during development
Xtreme Programming

new

Is an iterative and incremental process


High productivity and high tolerance
Communication is strong with sort path
Small range deliverables (artifacts) but frequently
release

SDLC Paradigms, Methodologies, Models, Tools


Object-Oriented Analysis and Design

Looking forward in next lecture !!!

References

This slides is based on:


Bennett, S., et. al., Object-oriented
Systems Analysis and Design Using UML,
3rd Ed, McGraw Hill
Chapter 1 3

Maciaszek, L. A., Requirements Analysis


and System Design, 3rd Ed, Addison
Wesley
Chapter 1