System Development Fundamentals CH 1
System Development Fundamentals CH 1
Evolutionary Prototyping
In this method we developed prototype according to the customer opinion.
System Development Life Cycle (Model)
Prototype Model (Phases)
System Development Life Cycle (Model)
Prototype Model (Phases)
Requirement Gathering:
Begins with requirements analysis and the requirements of the system
(interviewed, questionnaires , meeting).
Quick Design
Give an idea of the system to the user.
A quick design helps in developing the prototype.
Build Prototype
Represent the working model of the required system.
System Development Life Cycle (Model)
Prototype Model (Phases)
User Evaluation:
Comments and suggestions are collected from the users and provided to the
developer.
Refining Prototype.
If user is not satisfied , the prototype is refined according to the user requirement.
Engineer Product
System Development Life Cycle (Model)
Need of the Prototype Model
Prototype provides a method to example design problems and evaluating
solutions.
The development of the prototype model is expensive but is a good model
because it satisfy all the requirements of the customers.
System Development Life Cycle (Model)
Advantage of Prototype Model
This model is flexible in design.
It is easy to detect errors .
We can find missing functionality easily.
New requirements are easily accommodated.
Project reused by developer in the future.
Greater level of customer satisfaction and comfort.
It can actively involve users in the development phase.
System Development Life Cycle (Model)
Disadvantage of Prototype Model
This model is costly.
It is a time consuming if customer asks for changes in prototype.
Customer may get confused in the prototype and real systems.
System Development Life Cycle (Model)
Rapid application development Model
RAD model is a software development process based on prototyping without any
specific planning.
It targets at developing software in a short span of time.
System Development Life Cycle (Model)
Rapid application development Model (Phases)
Requirements Planning Phases
During this phase developers , clients (software users ) and team members
communicate to determine the goal and expectations for the project.
Defining the requirements (Time , Cost, manpower etc) of the projects.
System Development Life Cycle (Model)
Design workshops (Phase)
During this phase users respond to actual working prototypes and analysis refine
designed modules based on user response.
Preparation for rapid construction.
Program and application development .
Coding.
Unit, integration and system testing.
Work with users to design system.
System Development Life Cycle (Model)
Implementation Phase.
This is the implementation phase where the finished product goes to launch.
It includes data conversion testing and change over to the new system as well as
user testing. .
System Development Life Cycle (Model)
Spiral Model
The spiral model is a system development lifecycle (SDLC) method used for risk
management that combines the iterative development process model with
elements of the waterfall model.
Each phase of spiral model in s/w begins with a design goal and ends with the
client reviewing the progress.
The spiral model in SE was first mentioned by barry Boehm (1989).
System Development Life Cycle (Model)
Spiral Model (Phases)
Object determination and identify alternative solution. (First Phase)
Requirements are gather form customer.
Objectives are identified , elaborated and analyzed at the start of every phase.
Estimating cost , schedule and resources for the iteration.
Identify and resolve Risks (Second Phase)
All the possible solution are identified and select the best possible solution.
Risks associated with the solution is identified and the risks are resolved.
Identification of potential risks.
System Development Life Cycle (Model)
Spiral Model (Phases)
Develop next vision of the product (Third Phase)
It includes testing , coding and deploying software at the customer site.
Review and plan for next phase (Fourth Phase)
It includes identifying and monitoring risks.
Evaluation of S/W by the customer.
System Development Life Cycle (Model)
When to use spiral Model
When project is large.
Creation of a prototype is applicable.
Applicable for medium to high risk projects.
When changes may require at any time.
System Development Life Cycle (Model)
Advantages of spiral Model.
Project monitoring is easy.
Suitable for high risk project.
Reduces the number of risk.
Changes may be accommodated in late stages.
Good for large and mission critical projects.
System Development Life Cycle (Model)
Disadvantages of spiral Model.
No suitable for low risk projects.
Cost of this approach is usually high.
Strict rules and protocols are followed.
Can be costly model to use.
Does not work well for smaller projects.
System Development Life Cycle (Model)
Agile SDLC
System Development Life Cycle (Model)
Agile SDLC
Agile SDLC model is a combination of iterative and incremental process models
with focus on process adaptability and customer satisfaction by rapid delivery of
working S/W product.
Agile methods breaks the product into small incremental builds.
Each iteration typically last from certain months or weeks .
In Agile the tasks are divided to time boxes (Small time frames) to deliver specific
features for a release.
The final iteration build holds all the features required by the customer.
System Development Life Cycle (Model)
Agile SDLC manifesto was published in 2001. (manifesto principle)
Individuals and interactions (self – organization , motivation)
Working S/w (Demo working s/w is considered)
Customer collaboration .
Responding to change (Focus on quick responses to change).
System Development Life Cycle (Model)
Developmental Process for an Agile Project
Exploration (environment , problem , assemble the team, team member access,
estimate time cost, work environment etc)
Planning (Planning date , cost and fixed , Interface , design , rules and
regulations expense limiting , risk , possible solutions ,
Iterations to the First release (cycle testing , Feedback , change , Customer written
functional test,
Productionizing (product is released )
Maintenance
System Development Life Cycle (Model)
Agile SDLC manifesto was published in 2001. (manifesto principle)
Individuals and interactions (self – organization , motivation)
Working S/w (Demo working s/w is considered)
Customer collaboration .
Responding to change (Focus on quick responses to change).
System Development Life Cycle (Model)
Agile SDLC (Advantages of agile model)
Very realistic approach to S/W development.
Promotes teamwork and cross training .
Functionality can be developed rapidly and demonstrated.
Resource requirements are minimum .
Suitable for fixed for changing requirements.
Easy to manage.
Minimal rules , documentation easily employed.
Gives flexibility to developers.
System Development Life Cycle (Model)
Agile SDLC (disadvantages of agile model)
Not suitable for handling complex dependencies.
More risk of sustainability , maintainability and extensibility.
Depends heavily on customer interaction so if customer is not clear team can be
driven in the wrong direction.
Lack of documentation.
System Development Life Cycle (Model)
Extreme Programming
XP is most important software development frameworks of agile model.
Used to improve Software quality according to customer requirements.
System Development Life Cycle (Model)
Extreme Programming (Continue….)
( Some of the good practices that have been recognized in the extreme
programming are as follow) .
Code review (Detect and correct error , review of written code between
programmers due to pair programming).
Testing ( removes error and improves its reliability)
Incremental Developmental (According to customer feedback development
team come with new increment )
Simplicity (easier to develop, understand, as well as debug and test)
Design ( Good quality software design develop good quality software)
Integration Testing ( identify bugs at the interface)
System Development Life Cycle (Model)
Extreme Programming (Principles)
Coding (include modern coding, drawing diagrams (Modeling) , Scripting (web
based system )
Testing (Provide fault free software )
Listening (Developers need to carefully listen to the customers)
Designing (proper design )
Feedback
Simplicity
System Development Life Cycle (Model)
Extreme Programming (Applications)
Small Projects
Project involving new technology or research projects.
System Development Life Cycle (Model)
Extreme Programming (Advantages )
Slipped Schedules: (Timely Deliveries)
Cancelled Projects.
Costs incurred in changes. (For changing environment current operations are not
affect)
Production and post delivery defects : Emphasis is on: (due to unit text early
detect and fixed error in early stage).
Misunderstanding the business and / or domain.
Business changes
Staff turnover
System Development Life Cycle (Model)
Extreme Programming (Disadvantages )
Difficulty
XP relies on very many factors. (High risk )
Code Centric (code centric rather than Design Centric)
System Development Life Cycle (Model)
Modern Waterfall Modern
Difficulty
XP relies on very many factors. (High risk )
Code Centric (code centric rather than Design Centric)
System Development Life Cycle
Service oriented Architecture
Idea behind SOA is to build system around generic services or specific business
function which can be used in many different application.
Once a set of services have been identified and validated , developers can
assemble them into new applications.
SOA is a middleware solution which makes two or more systems or applications to
talk each others.
Failure of one system does not impact on other system.
System Development Life Cycle
Service oriented Architecture
An example of a service is a credit check.
Any application that deals with customers or suppliers would have credit check.
For an SOA approach to be successful a large number of services would
available for various application to access.
System Development Life Cycle
Service oriented Architecture
eg
System Development Life Cycle
Service oriented Architecture
In order to setup an SOA , the services must be :
Modular (process of subdividing a computer program into separate sub
program).
Reusable
Work together with other modules (interoperability)
Able to be categorized and identified
Able to monitored
Comply with industry specific standards.
System Development Life Cycle
Object – oriented Analysis and design
The object oriented approach combines data and process (Method) into single
entities called objects.
Objects usually corresponds to the real things an information system deals with
such as customers , suppliers contracts etc.
The goal of OOAD is to make systems elements more reusable thus improving
system quality and the productivity of systems analysis and design .
Managing the information system project.
Project management
Project is defined as a sequence of tasks that must be completed to attain a
certain outcome.
Project management is the process of leading the work of a team to achieve all
project goals with in the given constraints.
IT project management
IT project management includes overseeing projects for software developments ,
hardware installations , network upgrades , cloud computing and virtualization ,
business analytics and data management.
It project managers are responsible for planning , budgeting , executing , leading
, troubleshooting and maintaining these projects.
Managing the information system project.
Shaping a project
(completed with in time , budget, and deliver a quality product , satisfies users
and meet requirements )
Triple constraints of project
Managing the information system project.
Triple constraints of project
Scope
It define what is part of the project it’s purpose , objectives , boundaries and the work
needed to achieve the final deliverable.
(activities, Plan , vision , result , product, service , requirements , expectations)
Time
(Schedule project activities , Schedule back on track )
It is the estimated total amount of time the project team needed to complete all the tasks
and deliver the final result.
Cost
( hiring resources needed to complete the project).
Human resources , other resources
Managing the information system project.
Project life Cycle
Managing the information system project.
Project life Cycle
Initiation Phase
(Vision , feasibility study , identify problem , scope , goals , risks , defining
project , resources , Cost).
Why a project was undertaken? What problems need to be addressed?
What needs, objectives and profits were served by this project?
- Who are the key stakeholders, sponsors and project team?
- What are the roles and responsibilities of each person associated with the
project?
Managing the information system project.
Project life Cycle
Planning Phase
Planning is at the heart of the project life cycle and tells
everyone involved where you are going and how you are going
to get them.
Creating project plan , resource , financial, quality, risk ,
communication , Acceptance )
Managing the information system project.
Project life cycle
Execution
Is about building deliverables that satisfy the customer.
Allocating resources and keeping team members focused on their
assigned tasks
Assemble execution phase project team.
Team development.
Assign resource.
Managing the information system project.
Project life cycle
Monitor
IT project manager leads the entire team. The end goal is the deliverable
product or service.
Execute project management plans.
Conduct progress status meetings.
Update project schedule and management plans.
Managing the information system project.
Project life cycle
Closure
Handover all deliverables to your customer.
Gather the core team to invite feedback about what worked and what
didn't.
Managing the information system project.
Project Managers skills
Leadership , communication , management
Customer relation , Technical problem solving
Conflict management , Team management , Risk and change management
Managing the information system project.
Project Management importance
Project management allocate and manage resources in such a manner that it takes
the organization towards it’s goal and success.
It helps to reduce the risk of the project.
Efficient project management system give customer end user satisfied and pays a
vital role in the new global economy.
For better collaboration and productivity (B2C , C2C).
Managing remote employees.
Reducing costs.
Improving data security.
Managing the information system project.
Project Scheduling
A scheduling in our project time table actually consists of sequenced activities
and task that are needed to be delivered under a given period of time.
Effective project scheduling leads to success of project reduced cost, and
increased customer satisfaction.
Managing the information system project.
Project Scheduling
Managing the information system project.
Project Scheduling
GANTT CHART
A Gantt chart is a visualization that helps in scheduling, managing, and
monitoring specific tasks and resources in a project.
It consists of a list of tasks and each task's progress.
It's the most widely used chart in project management.
Gantt charts are used in heavy industries for projects like building dams, bridges,
and highways, as well as software development and building out of other goods
and services.
Henry Gantt (1861-1919), an American mechanical engineer, designed the Gantt
chart.
Managing the information system project.
Project Scheduling
Project Network Diagram
A project network is a graph that shows the activities , duration and
interdependencies of tasks of project.
Project network is usually built and designed with the help of hierarchical
diagrams and charts.
It shows established dependencies between project tasks and processes.
Project network diagram is helpful in defining , documentation, analyzing and
improving project tasks and activities.
It is also called project flowchart.
Eg: Task Analytics chart.
Managing the information system project.
Project Scheduling
Project Network Diagram
PERT is used for those projects where time CMP is used for those projects which are
required to complete various activities is not repetitive in nature and where one has
known with certainty. experience of handling similar projects.
PERT is used in Research and development. CPM is used in plant maintenance and
construction work.
PERT analysis does not consider cost CMP deals with cost
Using project management software
Project management tools are available to help to manage a
development project.
Most of the project management available tools has defined
common features , ability to define and order tasks , assign
resources , easily modified task and resources.
Project management tools are available to run on IBM compatible ,
Macintosh , mainframe and workstation based system.
Some project management programs are as follow: (Openproj,
Bugzilla , and eGroupWare, Microsoft Project etc)
Origins Of software
System Acquisition
Outsourcing
If another organization develops or runs a computer application for your
organization that practice is called outsourcing.
A common example of such an arrangement is a company that runs payroll
application for clients so that clients do not have to develop an independent
payroll system.
Some organizations outsource the IT development of many of their IT functions.
Some of the company that outsourcing and offshoring are as follow : IBM , IBM ,
CISCO, Amazon ,
Origins Of software
System Acquisition
Offshoring
(Working for you and with you)
(Working for you and with you)
Offshoring is the relocation of a business process form one country to another.
Origins Of software
Advantage of outsourcing
Reduced operating expenses.
Flexibility.
Exposure to new talent.
Focusing on core business processes.
Downsize the business by using outsourcing services.
Managing resources.
Time saving.
Origins Of software
Disadvantage of outsourcing
Lowered quality of services.
Miscommunication.
Risk.
Time Zone.
Origins Of software
Reasons to outsourcing
Lowered quality of services.
Miscommunication.
Risk.
Time Zone.
Sources of software.
We can group the sources of software into six major categories.
Information technology services firms.
Packaged software producers.
Enterprise solutions software.
Cloud computing vendors.
Open source software
In house developers.
Sources of software.
Information technology services firms.
IT services firms help companies develop custom information system for internal
use , or they develop host and run application for customers or they provide other
services.
Table: Leading software firms and their development
The applications provider buys , installs maintains and upgrade the application
users pay on a per use basis.
Eg: google apps, office software: office 365, google docs, zoho office
Sources of software.
Open source Software
Freely available including source code.
Developed by a community of interested people.
Performs the same functions as commercial software .
For eg: Linux, MySQL , Firefox,
Sources of software.
In house Development.
If sufficient system development expertise with the chosen platform exists in
House , then some or all of the system can be developed by the organization’s
own staff.
Hybrid solutions involving some purchased and some in house components are
common.
Choosing of the shelf software
(Off the Shelf Software), also called commercial software, is any kind
of software solution that has been developed for the mass market.
Cost: Comparing the cost of developing the same system in house
with the cost of purchasing or licensing the s/w package.
Functionality: The tasks that the S/W can perform and the
mandatory , essential and desired system features.
Vendor support: Whether or how much support the vendor can
provide and at what cost.
Choosing of the shelf software
Viability of vendor: Can the s/w adapt to changes in systems
software and hardware.
Flexibility: How easy it is to customize the S/W.
Documentation : Is the use’s manual and technical documentation
under stable and up to date.
Response Time: How long it takes the s/w package to respond to
the user’s requests in an interactive session.
Ease of installation: A measure of the difficulty of loading the
software and making it operational.
Validating purchased software information
Use a variety for information sources.
Collect information from vendor.
Software documentation.
Technical Market literature.
Validating purchased software information
Request for proposal (RFP).
Documents provided to vendors to ask them to propose hardware
and system s/w that will meet the requirements of a new system.
Information sources For RFP
Vendors proposal.
Running S/W through a series of tests.
Feedback from other users of the vendor product.
Independent S/W testing services.
Article in trade publication.