sit773: software design and engineering week 1- lecture · pdf filesit773: software design and...

55
SIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Upload: lytu

Post on 06-Mar-2018

216 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

SIT773: Software Design and

Engineering

Week 1- Lecture

School of Information Technology

Page 2: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Welcome to SIT773: Software Design and Engineering

This unit is a core unit for students in (MIT) degree.

This unit will introduce how software systems are designed, developed and

maintained

As of IT graduate, many of you will work as IT professionals in industries and

business organization

Where your role may be as

System analysts, Programmer, Hardware-Software co-developer

Tester, IT manager etc

This unit will provide you lessons of different essential steps

that you need to know as a system analysts,

Also will be useful when you are in other roles

as part of the team that design, develop, upgrade and maintain the software.

To get maximum benefit from this unit, I advise you:

Attend all lecture and practical classes

Take note in the class

Practice at home, read the material again

Complete all assessment tasks sincerely and do your best.

Consult with me if you need more explanation

Welcome

Page 3: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

The unit chair has collaborated with one of the top industries

who develop Computer Aided Software Engineering (CASE) tool

Sparx Systems (http://www.sparxsystems.com.au/)

Several times SD Times 100 awards winner

Their product Enterprise Architect (EA) is very popular around the world particularly

in Europe, North America and Australia

Sparx Systems has given EA license for our students to use in their course

Strictly non-commercial purpose

We will use EA in the practical class of this unit

EA has very big market in software industries

You can add this in your PORTFOLIO that you are familiar with EA for Job hunting!

Many companies directly ask in selection criteria in job advertisement for

experience in EA

What’s new in this Trimester

Page 4: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

About Lecturer

Page 5: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Unit Schedule

• 11 Classes

Week 1-11

2 hour each

• 10 Pracs

Week 2-11 (6 Prac tasks, 3

Assignment sessions).

2 hours practicals every week

Start from week 2

• 3 Assignments

– two individual written assignment

– 1 Individual Oral report

– To be released soon

Page 6: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Assessment

• Assessment Components:

3 assignments: 50%

Assignment 1: 20%

Assignment 2: 20%

Assignment 3: 10%

A final exam: 50% (2 hrs)

Detail in the unit Guide

Page 7: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Textbooks and References

• Textbooks J. Hoffer, J. George and J. Valacich, Morden Systems Analysis

and Design, Prentice Hall, 7th version, 2014 (Referred as H).

• References Kendall & Kendal, Systems Analysis and Design, Prentice Hall, 8th

edition, 2013 (referred as K).

J. Whitten & L. Bentley, Systems Analysis & Design Methods, McGraw-Hill, 8th edition, 2014 (referred as W).

J. Satzinger, R. Jackson and S. Burd, Systems Analysis and Design, Thomson, 3rd edition, ISBN: 0-619-21325-6, 2004 (referred as S)

A. Dennis, B. Wixom and R. Roth, Systems Analysis and Design, Wiley, 3rd Ed. 2006 (referred as D).

Page 8: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Class Schedule

• Please see cloud Deakin Lecture Schedule PDF

file

• It is in the Unit information folder

Page 9: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Assignments

• Submission

Via CloudDeakin SIT773 Assignments (Dropbox).

Submission via email will be deleted without marking.

Late submission: 2% penalty for each day (ref policy in unit guide)

• Marking criteria

Correctness, accuracy, presentation, logic, clarity, organization and structure.

Page 10: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Learning Materials

• Overheads Up on the web subject to updating

• Practical sessions Runs from week 2 to week 10.

All practical session should be submitted to Clouddeakin

in the week.

Submitted practical sessions will not be marked.

• Assignments Can be submitted at any time before due date.

Be marked within 2 – 3 weeks after due date.

Page 11: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Teaching/Learning Methods

• Guide Learning; not cover everything

• Theory + Practice

• Lecture + Lab sessions

• Assignments + exam

• Lecture + Self-learning (Reading is

essential)

• Multiple resources

Page 12: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

What is a System?

• A System is a Group of interacting components with a purpose.

• Key Points Group – Consists of more than one item

Interacting – Operate in relation to each other

Components – undividable items or subsystems

Purpose – Get something done.

• Examples: Education system

Transportation system

Human body

A tropical cyclone monitoring system

Market forecasting system

Page 13: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Information Systems• This is a collection of interrelated components

– that collect information from input

– Process information

– Store information

– provide output information as required to complete tasks or to

complete a set of objectives

• Key Points

With Inputs & Outputs

With processing mechanism

Serve for certain purposes

Page 14: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Information Systems

• Examples

• Transaction processing systems (TPS)

– Collects and record information about business organization’s transactions

• Management information systems (MIS)

– Take information from TPS

– Produce reports for planning and control

• Decision support (DSS)

– Takes information form TPS, use computational intelligence technique and provide management decision

Student Record Management System

Page 15: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Information system and its subsystemsSubsystem

part of a larger

system

Super systemcollection of systems

System contains subsystems

Page 16: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

System Boundary

Page 17: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

17

Information Systems and Component Parts

Components:

1) Hardware

2) Software

(Procedures)

3) Inputs/Outputs

4) People (Users)

Page 18: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

General Objectives (1)

1. Understanding the essential theory of

systems development of methodology.

2. Understanding the essential activities of

different phases of system development

3. Knowing the main approaches to systems

analyses.

4. Knowing system design approaches.

5. Understanding the comparative merits of

different approaches of analyses and

design

Page 19: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

General Objectives (2)

Understanding

not only what System Analyses and Design (SAD) is about, Also knowing

1. how to analyze and design a system,

2. how could we turn out a better system.

In particular, to understand

1. Structured approach to systems analysis and design (SAD).

2. Object-Oriented approach to systems analysis methods in general system analysis.

3. System Implementation tasks and methods.

Page 20: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

The Systems Development Life cycle (SDLC)

• What is a life cycle?

• Let’s see a life cycle of paper production (a simple example)

Page 21: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

The Systems Development Life cycle (SDLC)

• SDLC: This is a framework for managing systems development process

• Like many system, development of information system follows a life cycle

• Five main Phases

Page 22: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

SDLC Phases

Page 23: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

SDLC Phases

• Project planning –

– initiate, ensure feasibility,

– plan schedule,

– obtain approval for project

• Analysis –

– understand business needs

– and processing requirements

• Design – define solution system based on requirements and analysis decisions

Page 24: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

• Implementation –

– Construct, coding,

– test, train users,

– and install new system

• Support –

– Main system

– Running and improve

SDLC Phases

Page 25: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

SDLC Phases and Deliverables

Phases Product

Planning

Analysis

Design

Implementation

Project Plan

System Proposal

System Specification

New System and Maintenance Plan

Page 26: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

SDLC Variations

• Two main variations of SDLC

– Predictive –

• assumes project can be planned out in advance

– Adaptive–

• more flexible,

• assumes project cannot be planned out in advance

• Changes are accepted with user interaction at different

phases

• Many unknown at the beginning

Page 27: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Choosing a type of SDLC

Page 28: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

“Waterfall” Type: Predictive SDLC

Planning

Analysis

Design

Implementation

System

Page 29: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

“Waterfall” Type: SDLC Proceed in sequence from one phase to another

Easy to understand, easy to use

Provides structure to inexperienced staff

Milestones are well understood

Sets requirements stability

Good for management control (plan, staff, track)

Works well when quality is more important than cost or schedule

Page 30: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

“Waterfall” Type: SDLC

Page 31: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

“Waterfall” : Cons:

Waterfall model takes a static view of requirements

Lack of user involvement once specification is written

ignores changing needs

Hence, problems not detected until late in the process

Long time between system proposal and delivery of new system

Page 32: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Adaptive SDLC• Parallel Development

• Rapid Application Development (RAD)

– Phased Development

– Prototyping

• System prototyping

– Throw-away Prototyping

• Design prototyping

• Spiral model

Page 33: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Parallel Development Type SDLC

General design

Divide project into subprojects that are designed and implemented in

parallel

Finally integrated

Pros : Reduces schedule time, less chance of rework

Cons: Sub-projects may be difficult to integrate

Page 34: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

34

Rapid Application Development (RAD):

Phased Development

Phased Development Methodology

Break into a series of versions that are developed sequentially

Pros

User get a system to use quickly

User can identify additional needs for later versions

Cons

Users work with a system that is intentionally incomplete

Page 35: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

35

Rapid Application Development (RAD):

Phased Development

Page 36: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Prototyping Building a scaled-down working version of the system

Concurrent analysis, design and implementation, repeated

Advantages:

Users are involved in design

Captures requirements in concrete form

Users interact with prototype very quickly

Users can identify needed changes and refine real requirements

Cons

Tendency to do superficial analysis

Initial design decisions may be poor

Page 37: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Throw-away Prototyping Design prototype

Pros

Risks are minimized

Important issues are understood before the real system is

built

Cons

May take longer than prototyping

Page 38: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

38

The Spiral Life Cycle

Page 39: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Spiral model

• Spiral model

– Project cycles through development activities over and over until

project is complete

– Prototype created by end of each cycle

– Focuses on mitigating risk

– Iteration – Work activities are repeated

• Each iteration refines previous result

• Approach assumes no one gets it right the first time

• There are a series of mini projects for each iteration

Page 40: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Activities of Each SDLC Phase

• Predictive or adaptive approach use SDLC

• Activities of each “phase” are similar

• Phases are not always sequential

• Phases can overlap

• Activities across phases can be done within

an iteration

Page 41: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Activities of Planning Phase of SDLC

• Define business problem and scope

• Produce detailed project schedule

• Confirm project feasibility

– Economic, organizational, technical, resource, and schedule

• Staff the project (resource management)

• Launch project official announcement

Page 42: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Activities of Analysis Phase of SDLC

• Gather information to learn problem domain

• Define system requirements

• Build prototypes for discovery of requirements

• Prioritize requirements

• Generate and evaluate alternatives

• Review recommendations with management

Page 43: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Activities of Design Phase of SDLC

Prepare physical models from logical models

Design the application architecture

hardware, software, communications, security , and global support for

the new application

Design the user interfaces

Design the input and output

Design and integrate the database

Prototype for design details

Program design

create instructions for the programmers

about how code needs to be written

and how pieces of code need to fit together to form a program.

Page 44: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Activities of Implementation Phase of SDLC

• Construct software components

• Test

• Convert data

• Train users and document the system

• Install the system

Page 45: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Activities of Support Phase of SDLC

Maintain system

Small patches, repairs, and updates

Enhance system

Small upgrades or enhancements to expand system

capabilities

Larger enhancements may require separate

development project

Support users

Help desk and/or support team

Page 46: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

What is Systems Analysis &

Design (SAD)?

SAD is a series od processes

for analyzing and designing computer based information

systems.

SAD is a systematic approach to

Identify problems, opportunities and objectives

Analyze the information flows in organizations; and

Design computerized information systems to solve

problems.

Page 47: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Why SAD is Important?

• For large systems

What happen to a system which involves 10s or 100s

developers??

Window 95 involved 200 programmers & testers,

and 11 million lines of code!!! (ACM

Communication , Vol. 40, No. 6, 1997).

Provides consistent and clear pictures to be seen by

development members.

Design & Documentation can be seen as a blueprint

for system maintenance.

Page 48: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Why SAD is Important (cont.)?

• For Small Systems

Forgetting what you have done??

Design & Documentation can be seen as a blueprint for system

maintenance.

• System design allows a development team to roughly

see what and how their system will look like.

Page 49: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Systems Analyst

• What kind person is called a system analyst?

• The Role of a systems analyst.

• Personal Qualities helpful to systems analysts.

Page 50: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

What kind of person is called a system

analyst?

• Systems analyst is the person who

Identifying the problems, considering possibilities

Analyzing requirements, feasibilities, and proposing

solutions

Designing the system.

Page 51: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

What kind of person is called a system

analyst (cont) ?

• and the person should

Have adequate level of programming skill and understand capability of computers

See problem analysis as a challenging task

Be able to systematically tackle problems using tools, techniques and experiences

Be able to communicate well with others

Page 52: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Personal Qualities Helpful to Systems

Analyst

• Problem solving abilities

• Communication skills

• Computer experience

• Self-discipline and self-motivation

• Project management capabilities

Page 53: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Required Skills of Analysts

• An analyst should have fundamental technology

knowledge of:

1. Computers / peripheral devices (hardware)

2. Communication networks and connectivity

3. Database and database management systems (DBMS)

4. Programming languages (for example: VB.NET or Java)

5. Operating systems and utilities

Page 54: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Structured & Object oriented (OO) SAD

Structured SAD

Traditional approach:

structured programming, structured analysis and structured design.

structured program – with a beginning and end consists of sequence, decision

and repetition constructs

Structured analysis –

a technique used to define what processing the system needs to do;

what data the system needs to store and use;

what I/O are needed.

Structured Design –

a technique providing descriptive solution of what the system should be, and what each program

should be accomplished, and how the program should be organized.

Page 55: SIT773: Software Design and Engineering Week 1- Lecture · PDF fileSIT773: Software Design and Engineering Week 1- Lecture School of Information Technology

Structured & Object oriented (OO) SAD

Object-Oriented SAD

O-O programming concept based SAD

Problems are modeled using Objects and their inheritance

Object = Code about the data + Operation to be performed on it.

One of the claims in O-O is allowing REUSE.

The End