software development methodology

31
Systems and Software Development: A Review Dr. Muhammad Ikhwan Jambak Associate Professor School of Computing

Upload: zulfazli-bakri

Post on 23-Jan-2016

230 views

Category:

Documents


0 download

DESCRIPTION

Belajar rajin rajin yee

TRANSCRIPT

Page 1: Software Development Methodology

Systems and Software Development: A Review

Dr. Muhammad Ikhwan JambakAssociate ProfessorSchool of Computing

Page 2: Software Development Methodology

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 { static void Main() { Console.WriteLine("Hello World!"); // Keep the console window open in debug mode. Console.WriteLine("Press any key to exit."); Console.ReadKey(); } } }

Page 3: Software Development Methodology

Why Analysis and Design in Development?Do we really need ‘em? Perhaps not in a simple case but yes, in the complex ones

Page 4: Software Development Methodology

What do we actually develop?Software Vs (Information) Systems

SoftwareSoftware 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.

Page 5: Software Development Methodology

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 delivering information, knowledge, and digital products.(Encyclopedia Britannica)

Page 6: Software Development Methodology

Software DevelopmentSoftware 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)

Page 7: Software Development Methodology

Software DevelopmentWhat does Software Engineering Involve?

The elicitation of the system’s requirementsThe specification of the system, and its architecturalSystem’s detailed designSystem’s verification and validationIncorporated with testing, management and quality control techniques and tools

Page 8: Software Development Methodology

Information System DevelopmentSystem Theory

Page 9: Software Development Methodology

Information System DevelopmentSystem Theory

Every system hasInputs and outputsA purpose (related to transformation)A boundary and an environmentSubsystems and interfacesControl using feedback and feed-forwardSome emergent property

Page 10: Software Development Methodology

Information System DevelopmentIS as a System

Every IS must have:A human activity that needs informationSome stored dataAn input method for entering dataSome process that turns the data into informationAn output method for representing information

May also have:Subsystems that we can also regard as systemsInterfaces with other systems

Page 11: Software Development Methodology

ProjectA planned undertaking that has a beginning and end that produce some definite result

Used to develop a software or an information systemA distinction should be made between

Systems development, which incorporates human, software and hardware elementsSoftware development, which is primarily concerned with software systems

In IS, two important phases in a project areStrategic Information Systems PlanningBusiness Modelling

Page 12: Software Development Methodology

ProjectA 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

Page 13: Software Development Methodology

Systems / Software Development Life Cycle

Page 14: Software Development Methodology

Systems / Software Development Life Cycle (SDLC)

Page 15: Software Development Methodology

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 opportunityPlan and monitoring the projectDiscover and understand the detail of the problems or needDesign the system components that solve the problem or satisfy the needBuild, test and integrate system componentsComplete system tests and then deploy the solution

Page 16: Software Development Methodology

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.

Page 17: Software Development Methodology

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

Page 18: Software Development Methodology

Systems / Software Development Life Cycle (SDLC) Analysis Vs Design

Page 19: Software Development Methodology

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 describedMathematical Model – Formula, statistics, calculationGraphical Model: Diagram, picture

Modeling language is any artificial language that can be used to express information or knowledge or systems in a structure that is defined by a consistent set of rules. The rules are used for interpretation of the meaning of components in the structure

Page 20: Software Development Methodology

Systems / Software Development Life Cycle (SDLC) Classification

It is difficult to have a rigorous classification of the existing SDLCsFrom 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 planAdaptive - that assumes the project must be more flexible and adapt to changing needs as the project progresses

Page 21: Software Development Methodology

SDLC Paradigms, Methodologies, Models, Tools Waterfall

System System Engineering Engineering

Design Design

Code

Construction

Testing

Maintenance Maintenance

Analysis Requirements Analy sis

Code Installation

Page 22: Software Development Methodology

SDLC Paradigms, Methodologies, Models, Tools Iteration: the project that “grown”

Page 23: Software Development Methodology

SDLC Paradigms, Methodologies, Models, Tools Waterfall with Iteration

System Engineering

System Engineering

Design Design

Code

Construction

Testing

Maintenance Maintenance

Requirements Analy sis

Code Installation

Page 24: Software Development Methodology

SDLC Paradigms, Methodologies, Models, Tools Prototyping

Initial analysis

Define objectives

Specify

Construct Evaluate Prototyping completed

Page 25: Software Development Methodology

SDLC Paradigms, Methodologies, Models, Tools Spiral: Combining Iterative, Prototyping and Risk analysis

Page 26: Software Development Methodology

SDLC Paradigms, Methodologies, Models, Tools V : Testing in each stage

Page 27: Software Development Methodology

SDLC Paradigms, Methodologies, Models, ToolsUnified Software Development Process

Capture best practicesDevelop software iterativelyManage requirementsUse component-based architectureVisually model softwareVerify software qualityControl change in software

Page 28: Software Development Methodology

SDLC Paradigms, Methodologies, Models, ToolsUnified 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.

Page 29: Software Development Methodology

SDLC Paradigms, Methodologies, Models, ToolsAgile Development

Emphasizes flexibility to anticipate new requirements during developmentXtreme Programming

Is an iterative and incremental processHigh productivity and high toleranceCommunication is strong with sort pathSmall range deliverables (artifacts) but frequently release

Page 30: Software Development Methodology

SDLC Paradigms, Methodologies, Models, ToolsObject-Oriented Analysis and Design

Looking forward in next lecture !!!

Page 31: Software Development Methodology

ReferencesThis slides is based on:

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

Chapter 1 – 3Maciaszek, L. A., Requirements Analysis and System Design, 3rd Ed, Addison Wesley

Chapter 1